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.
The rapid growth of social media has been amazing no question. If you recall MySpace when it was an IPO, the model for raising a social media network was established with some concrete definition. First Hollywood was called upon to show the public how they regularly stay in touch with each other. The younger generation jumped on board quickly and blew up the number of users. Shortly after those younger users, came the small businesses looking to attract customers. Then after business adopted social media, came the politicians. Even with that many people MySpace still struggled to cash in on advertising. The reason why is important to this very day.
MySpace went out and new social networks came in. Using nearly the same business model they went live one after the other. What developed was a wide range of social networking platforms that fall into two categories.
The first are those that profile users by accumulating tons of small pieces of information about the individual over a long time. The other is a platform designed for real time communication over a short period.
The first has longevity. Old posts are the bases of an ever evolving character development. It’s like a job interview which never ends. You are in a room selling yourself in perpetuity, without any idea of what the end outcome can be. The second has engagement. These platforms offer a mechanism to stimulate and gauge a response. These are no doubt an attractive platform for a skilled salesperson.
We are now at a point where both models of social networking platforms have saturated users to the point that most major social media sites have indicated stagnate levels of read content, but increasing levels of newly generated content. We may be at the global social media saturation point.
The current difficulty Twitter is experiencing is an indication of this. What is interesting is that Twitter would fall into the category of the real time engagement platform, which seems to be the one with the most conversion possibility. However, in its current state, Twitter has become the leading news dissemination platform with financial problems. How can this be? A platform designed to engage users in real time became a generator of news feeds. I think the explanation enforces my feeling that social media is saturated and much of the message posts on those sites have not been submitted by average users. I am only saying what everybody is already been thinking! Yes, social media is driven by language recognition software like http://www.antlr.org/ and professional trolls! There it is. Further, users have noticed that their two way communication does not fulfill their needs so they re-purpose social media into something else. In Twitter’s case it got re-purposed into an information portal. The platform now for the most part, generates news and users decide if it is of interest to read. This in effect kills the engagement model. What are you left with then? The answer is something, similar to Yahoo. To put the nail in the coffin, main stream media outlets have the lowest confidence levels ever in history among the public. If this trend continues, social media platforms will be stuck trying to hold traffic with content that the public has less and less interest in reading. It really comes at no surprise that social sites like Twitter are finding it hard to justify their value.
There is good news! Once Twitter finds an interested buyer, not doubt that it will get a new direction which will target a specific audience. Many of the current users may not be among that group and will fall back onto the other social platforms. What is going to happen is that the stagnation will vanish for a while and new content will get read once again. Yippie! A great opportunity may be just around the corner to get your product or services to the attention of the right customers. Don’t let is pass you by.
If I had to pick right now which CMS is best, the answer would come from two questions. The first is, “Is it Windows based or LAMP?” The next question is, “how capable is the person/s managing the content?” There are not many Windows based CMS’s available in the market. Partially, because Sharepoint fills the need and smaller businesses mostly run on LAMP environments at a 30% discount from a Windows platform. However, PHP applications can run on IIS and so most of the emphasis moves to the second question.
How capable is the person/s managing the content? OK, sure Joomla, Sitefinity and others can give a admin the interface with which to change just about everything. These are all fine CMS applications and deployed across the globe. However, what about that start up or small business that needs to target a specific market? The full featured CMS’s will require too much training and or cost to quickly give such a business a specific online presence. As new businesses attack existing markets, they need to stand out from the rest by using responsive design and easy to change content. This gap is filled in nicely with ProcessWire CMS. It is amazing at supporting the concept of creating that custom template and wiring up a content administration pages to it. What clever engineering. Create a template and then insert placeholders for content interfaces that users can log into and make changes as needed. This really supports the idea of market driven development. This is just the sort of principle new businesses and startups are driven by. It is fast, highly customizable and agile in every sense from the business objective perspective.
Now developers, check this out. The template is straight html. PHP variables are placeholders for dynamic content. Those variables are pointers to predefine Fields, that are also HTML WYSIWYG controls. Actually not much software development is really needed other than for highly customized plugins.
ProcessWire is a CMS that makes highly speialized web design into an easily maintained website.
Object reference is a common topic in software development. I don’t recall ever reading how to recognize it in an actual application outside of the code. So, this is good to add as part of my “Live and Learn” articles. We wrote a custom application for a manufacturer. That application had objects representing factory parts used to assemble widgets. Hand scanners were used to associate specific control numbers to each part and once the part objects got all of their properties populate they were sent off to another part of the application for migration into the Account and QA applications.
Because the same part was, at times, used from a box of similar parts with identical control numbers, some part objects got split out into multiples. Pseudo code Stuff now; the original objects are in a collection. A new collection was created with multiple references to one specific original part object. When the time came to scan the control numbers, users reported this. They scanned the first part and then the remaining identical parts showed up pre-scanned. This was correct because there was reference to only one mutable object. The solution was to instantiate new instances of the object class and put that in the second collection. You might declare properties as ReadOnly if possible. Some managed code compilers do not enforce mutability so it is good to recognize these signs also.
We launched and new app a few weeks ago. Now the tedious task of marketing and driving traffic is undergoing. Some of the metrics are surprising so far. Social media currently accounts for about 31% of all web traffic referrers as Shareaholics sees it. This is a huge amount of traffic coming from Facebook, Twitter, Google+, and etc. So far we are seeing about 3 referrers from about 10K+ viewers. Only a few years ago we would have expected at least 1% of the viewers come over to our site. Is Guerrilla marketing on its last days? How is it that 30% of all traffic comes from these same social media sites with tiny referrer rates? It is so because the volume of the remaining 70% has tanked.
Traffic is dominated by paid advertising as Shareaholics is part of that same pay for traffic model. What is left is the lower amounts of volume driven by social media outlets. I think what our data shows is that future marketing campaigns will depend less on high volumes an more on targeted marketing.
Requirements Assessment. Often the first process of many development cycles. The first of a linear sequence of processes within a cycle. Does it really need to be a linear sequential process? It does not! A current project was framed under a typical agile development cycle. However, when it came time to test, stake holders struggled to work with features without the entire production application as a reference. This generated a lot of additional code to proxy missing features and pushed the project past budget and delivery dates. I think part of the problem was the stake holders were not getting hands on frequently and early enough to constructively drive requirement refinements. So the solution was to stretch the requirements assessment over the feature development cycle and redefine the cycle itself by features. This allowed feature testing and approval much sooner. By the time the next feature cycle would start, there would be a near production ready code base to build on. Next time you find yourself thinking the project may need to be re-scoped, think about broadening the requirement assessment period over an entire cycle.
Business applications are sometimes mistaken for enterprise solutions. We have been in requirements meetings where stake holders are focused on a single application with high hopes that it will serve every office in the organization. Unfortunate, hope at times forgets its voice. Frequently, these types of projects arrive at the user testing stage to the dismay of the stake holders. Process short falls, inadequacies and scope issues are not unusual to hurdles at this point. The single point of failure here is that the application was scoped for one major office, but needed across the entire organization. Now what? More meetings on requirement gaps. Refactoring to accommodate network protocols, new endpoints, more code and more money. I think stake holders view technology as being overly simple to extend to other applications. Many times during projects, I have heard things from stake holders like, “It should be easy to….”. Not the case in many situations. It does take some work to get to the broader segment of stake holders that have all the pieces of information regarding application needs. Without the broad perspective, a software application can become a surprise rather than a solution. One of the best engagement methods we often use is to announce the project and perceived scope organization wide and offer an input and feedback period to vet if the project is enterprise or business application.
Products are driven by perceptions. Colors, logos, catchy phrases not to mention hype alone. Much effort is spent developing the product perception. Does your product need a mobile app? Does it need a web site? Last year comScore data showed that 55% of internet usage in the US was from a mobile device. Of that mobile apps drove 47% of the traffic and mobile browsers only 8%. PCs accounted for 45% of the internet traffic. Don’t put all your eggs in one basket and take your product to where your customers are.
Your time is valuable to you and to us. That is why we left out the big list of techno geek stuff we can do. Why are we the ones for you? Low over head for us, means best price for you. No turnover in staff for us, means a well defined and quick development process for you.
We stand out from others. We only commit to what we can do and quote the best price possible.
The only difference in large projects and small ones, is time.