We are currently building custom MVC widgets for a client, and noticed a couple of things. First is that the development environment with Sitefinity Thunder is not the best. The provided Visual Studio project is part of the site installation. Since this client pushes content changes from their development installation, we would have to work from the same site. Work would be checked from the physical site and not in a development environment. This slowed us down a great deal. What we did is to create a standard MVC project in Visual Studio and use pre and post build scripts to package everything according to Sitefinity’s specifications and then drop the .DLL in the run-time directory. This approach allowed us to develop faster and still have an easy deployment process for the finished product. The second important concept to develop Sitefinity MVC Widgets is deciding to what level of MVC the Widget will be. The CMS supports both ASP life-cycle pages and MVC routed views. There are three possibilities. The classic MVC approach offers custom routing, but minimal access for content administrators. The Hybrid model offers more access to content administrators, but tons of additional ASP life-cycle overhead. The Pure MVC model is the one we like. It offers content administrators access to the widgets while keeping overhead to a minimum for better performance. Pure MVC Widgets also allow multiple Controllers on the same page. This has value for controlling code scope on complex pages.
In all the best approach we found to creating custom MVC Widgets is to work from a VS MVC project, package it as a pure MVC Widget and drop into the Sitefinity installation.
When Progress bought Telerik and as Sitefinity consultants, we were concerned that the commitment to MVC might be lost. The .ASP life cycle has served its purpose for many years; however, modern client side complexities are better tackled with architecture capable of offering flexible client side packages and proven server side frameworks to handle the business needs.
Over the years we have made a number of custom Modules for Sitefinity. The unusual ability for Sitefinity to allow custom development while giving content administrators creative control has made working with it a very nice experience. From the beginning, as a Sitefinity consultancy, most of our custom Development focused on Sitefinity and not the page lifecycle. This is not the case with many other CMS systems. For clients, this really can save a lot of money in custom Web Application Development.
We looked at MVC and Sitefinity Widgets and feel that Progress seems to be staying true to driving Sitefinity more towards MVC. We can say that for the Windows environment, this is the best CMS on the market and overall among the top CMS solutions available.
Sitefinity offers many ways for developers to add custom features. Often we find ourselves asking, “What would work best”? Create custom controls or a custom module. From our experience working with the CMS on various client projects, the answer resolves to the question, “Native logic and custom controls or custom logic and native controls”? With a module there will be an entire configuration section that gets built for users to set global configuration. This may be a necessity, for example, when integrating Sitefinity to other applications such as SalesForce. Also, a Module’s native functions can be overridden to perform custom logic. This approach obviously involves more interface implementations, more coding and more resources. One might think the easier path would be to just create custom controls for content editors to drop into pages and create their own logic. Not so fast. The native Sitefinity controls extend the native Telerik controls. Those controls extend the native .NET 4.5 Toolbox controls. Many layers of polymorphism have already been applied, so adding another layer is not going to be a quick and trivial project. In fact if you were to look at extending any of the Sitefinity controls, they require over half a dozen supporting files to function properly. There are interfaces which must be implemented, there are JS files to manage the controls while in the browser, there are core references which must be set for everything to work on the platform. This in itself can be just as time consuming as creating a custom Module in C# and MVC.
Best practice for deciding how to create custom Sitefinity features is to first determine how much control over the logic flow content admins need.
With the current administration’s intent to revamp the H1B program, this is a good time to have a look at what is in play.
The IT industry claims a need for H1B workers due to labor shortages. However, other views see the industry simply abusing opportunities for cheap labor at the expense of domestic works. This issue has been around for a while and not of much interest in the scope of this blog, so we will leave it alone.
What are of interest are the influences affecting the US IT industry for the longer term. Domestically we have an administration driving an “America First” policy focused on training and employing domestic workers. On the other side is a large 3+ million army of foreign H1B workers thriving and living well for their standards. Both movements will be limited by the ability to train and supply workers.
Let’s look at the domestic perspective first. Since the beginning of the dot-com age, American IT workers face ever tighter criteria to land a decent paying job. As a result, younger American’s are faced with fewer options to get into the IT industry. Of course there are options, like degrees, certifications, intern work and similar, but the youth entering the job market today is looking for a short and direct path to the labor force. Hence the MOOC, and coder camp like industries are born. Online courses, lasting only a few months can give you IT knowledge which traditionally requires a degree and years of experience. Although the placement rate is considerable low for such programs, they, none the less, are great training centers for those interested in beginning a career in IT. Coder camps and similar and are so much recognized as potential training centers that the current Department of Education has begun a pilot program (EQUIP) to allow Title IV financing to students of these “Tech Trade” programs. Enrolling into a coder camp, millennials can finance a 3 month course on software programming and pursue a career in the field. So we have a solution. Affordable training and supply is not federally supported. The need has always been there so the demand is ready to absorb these youngsters and help them pay their student loans back.
Let us travel to the other side of the world. Millions of IT workers are coming to the US on the H1B program. As of 2012 the IT outsourcing industry contributed 7.5% to the Indian GDP (http://www.nasscom.in/indian-itbpo-industry). India has certainly many great schools and institutions to train its workers for industry. India no doubt has the population to supply the US IT demand. Many of these workers are living higher than average standards in their country and are driven to continue their success.
Of course the issue is not that straight forward. As with all industries there are lobbies, business agreements, contracts and other tools designed to promote the interest of whoever is behind the signatures. So, fundamental economics, at this point, is probably out the door. What is certain is that there is a need for about 4 million additional IT workers whose average salary is way above the US average. The question is who will those jobs go to? The current administration would like US citizens to fill those jobs. India is benefitting greatly from all of those jobs and would like to continue doing so. As the Department of Education under the Trump administration develops its EQUIP program to allow domestic training centers to put US citizens into those millions of jobs, India has an interesting counter plan.
How can there be a plan to counter such a federally supported movement? Simple, do what has worked so far. Underprice the domestic supply. This is what the major India IT companies are planning. Using the same H1B program they will send the same people as educators to train domestic workers to do what they would have done under the current H1B program. The brilliance is phenomenal! The plan is absolute genius! How so? First, the US IT industry has a low wage addiction. Outpacing inflation with lower waged workers is business strategy. This will not easily change. Second, MOOCS and coder camps have notorious low placement. India is betting that even if the federal programs work and short term training with financing creates huge interest, the likelihood of those who complete the programs finding jobs is low. So, the volume of H1B workers will not be affected.
Two things for sure will come of the H1B program changes. A domestic IT training industry will mature. Second, the demand for IT works will continue. India will try to underprice the IT training industry and take that over, while maintaining the current H1B volume, in essence expanding market share. The Trump administration will try to create programs to help US citizens get trained and find work in the IT industry. If India does it right a huge increase in its GDP will be its reward. However, if things go wrong for India, the US middle class will see a consumer boom minus the Butter Chicken dinners.
We did a survey of food truck operators while researching features for an on-line web application which will serve that industry. We found some interesting things.
We asked if they needed an application to let their customers know where they are. All responded in the negative. The next question was if their customers needed an online menu. All responded in the negative. Intuitively, one would think these two questions are the two most important to that industry. They are not as you will see.
The next question was if their customers would like to place and order before the truck arrives. Most responded with a strong affirmative. This one really has a lot of meaning. We think this may be one of the strongest indicators of what drives the mobile food vending industry. Workers no longer have time for anything but to eat and run.
Continuing with the questions, the next one was if customers needed an easy way to get to the vendors information. All responded in the negative. In general it seems that customers are not interested in established daily routines. They have no expectations of a truck showing up, so when it does they are more than ready to eat.
The responses to this next question surprised us. Asked if they would like a web portal for food truck operators to share knowledge, they all responded with a strong affirmative. Why? Perhaps permits requirements and government regulation changes are driving this response. It makes sense in that when a vendor renews their license, they may come across a regulation change and want to let other vendors know. We really have no idea why this questions got a strong affirmative.
This next question we thought would be a strong affirmative, but it was not. The question was if customers want to pay for their food online. The response was a strong negative. This again would seem to be another key indicator of what is driving the industry. Workers have less time and are limiting their budgets for lunch expenses.
Finally, we asked if they could have an web application designed specifically for their business, what sort of application would it be. All responded that it would be a mobile app. Makes total sense.