Antyhing SalesForce related is not cheap. Not consider integrating your CMS with SalesForce and the letter “c” drops right out of the alphabet. There is exponential effort in getting a sales lead started as there is maintaining the contact. Why not let customers interested in your services or products start their own contant information. This Sitefinity module is just the thing. It lets you convert the standard Sitefinity forms builder into a self help SalesForce kiosk that allows customers to create their own contact information. It really is worth the money.
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.
I really like the way SalesForce setup its REST API. The intuitive nature makes it simple and unnecessarily complex. Two main principles are involved. The first is the URL path to the SalesForce object. Next is the JSON serialization of that object posted to the URL. That’s it. SalesForce knows if it is an update insert, delete, or anything else. The reverse is true also. GET from the URL path to the object and de-serialize from the JSON string. Of course NOQL queries can be uses as well with the same technique. CRUD interfaces for the standard objects can be built in less than an hour on an MVC platform. Next to Entity Framework or Hibernate this is about as the easiest ORM one has to create manually.
I have worked with the SOAP services also and find it cumbersome in not only in overhead, but serialization of objects and security. These web services rely on before and after triggers which in themselves require some time to create, test and maintain. SalesForce, requires a minimum code coverage before any trigger changes can be pushed to production. This, over time, becomes an additional task and will diminish an organization’s agility during growth spirts.
For quick easy and reliable SalesForce integration, the REST API is the way to go.
Joomla, DNN and other content management systems, once the high hopes of user experience and company information dispensing, are now just past memories. What they lacked was that ability to present information in a very specific way that only worked for that particular organization. They failed because many were designed as modular components. Yes they quickly changed content and gave more control over the content presentation but still confined the user to a pre-programmed experience.
Then came the SiteFinity CMS. Not long ago, we did a SalesForce integration project with it and were totally taken aback. With its MVC architecture and built in support for just about every protocol, it was just as simple as pie to add custom widgets that integrated with SalesForce via REST. In the past, creating a module not only involved some fancy code registration, but a ton of time to build user interfaces. SiteFinity stays true to object oriented principles. Not only is it easy to extend existing components, but the UIs come with base templates that can be extended or left alone and function as any of the many legacy ones.
There never was a Windows based CMS, as I recall, that offered features and extensibility, until now. The base price is affordable. If you need extras of course it will cost more. If you have access to developers, SiteFinity can easily become an enterprise wide information portal.
I give it two space bars and a caps lock. Download the demo version and tell me you don’t agree.
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.