Over a year ago I wrote a post where I compared four technologies that can be used to build business applications rapidly. The original post was inspired by how similar a number of products have become over the last few years and more importantly how Visual Studio LightSwitch, which is a specialized rapid business tool development platform built on top of Visual Studio, is going to affecting the development eco-system. That post was written in the LightSwitch Beta 2 timeframe and the world has changed a lot since then – LightSwitch has shipped, not once but TWICE! So it is about time it got a refresh.
As with the previous post I am going to compare LightSwitch against Dynamics CRM, SharePoint & ASP.NET MVC Scaffolding. If you are not aware of these different products see my older post for a brief overview of them.
I think the differences between these four are very interesting and while each has its strong & weak points, this should definitely not be looked at as a pick one only post. There are many scenarios where you want to combine them for even better experiences.
To be clear that ASP.NET MVC is greater than ASP.NET MVC Scaffolding – you can do almost anything with MVC, however for this article we are looking at the concept of rapid development and comparing MVC with MVC scaffolding, scaffolding will give you a more rapid development with trade-offs. An example of this is databases supported, where MVC supports anything .NET does but scaffolding is a subset of databases.
I have broken down the issues into twenty two (!) aspects (key points we can compare them against each other) which are grouped into six scenarios to make it easier to digest. Each scenario starts with a list of the aspects and a brief description followed by a comparison table of those aspects. All the aspects are numbered so you can easily scan the table & if there are notes available the information will give you the relevant note numbers (see image below for more info).
Starting
- Ready to go out of the box: Once installed, can it do anything? Seems silly, but quick turnaround at the start, even if actual development is longer is important as it helps with prototyping, shows some rapid development and hints at how hard it is to learn (for me at least, if it does something I find I can experiment and learn quickly). Important to note, we are not looking at making it align with your company needs here, we just want it to do something. Eating CPU cycles & RAM is not something either.
- Northwind Style Sample development costs: This aspect looks further than the above aspect and looks at how much more would it take to get it tailored for a company, like the fictional Northwind, to have a XRM type system as it can be done across all four. Fewer $ signs means less time and/or resources for the functionality.
LightSwitch (LS) | Dynamics CRM | SharePoint 2010 (SP) | ASP.NET MVC | My Notes | |
Aspect 1 Ready to go out of the box | Medium (see note 1) | Fastest (see note 2) | Fast | Slowest (see note 1) |
|
Aspect 2 Northwind Style Sample development costs | $ (see note 2) | $$ | $$ | $$$ (see note 1) |
|
Finishing
- Cost for on-premise deployments: This looks at the money cost for licensing to get the solution up and running on premise (i.e. in your company). Licensing is, of course, flexible and this will vary based on who you are – so this is not indicative for all. It does not include such things as server hardware or common costs, for example operating system licensing.
- Deployment Complexity: Getting a solution up and running shouldn’t be difficult for an organization and a lot of time can be lost (and costs incurred) changing, upgrading and troubleshooting systems that do not want to be deployed.
- Deployment Documentation: When it happens that you need to deploy, having a wealth of documentation (be that video’s, best practice guides, troubleshooting material) is vital and plays a large part in getting a solution up that works every time.
LightSwitch (LS) | Dynamics CRM | SharePoint 2010 (SP) | ASP.NET MVC | My Notes | |
Aspect 1 Cost for on premise deployments | $$ Visual Studio licenses. No per user costs. (see note 2) | $ to $$$ Cost per user & cost per server. Visual Studio only if you are doing integrations or custom workflows. (see note 1) | $$$$ to $$$$+ Cost per user & cost per server. Visual Studio licenses for any serious work. | $$ Visual Studio licenses. No per user costs. (see note 2) |
|
Aspect 2 Deployment Complexity | Easy (see notes 1 & 2) | Hard (see note 1) | Hardest (see note 1) | Easiest (see notes 1 & 3) |
|
Aspect 3 Deployment Documentation | Yes (see note 2) | Yes (see note 2) | Yes (see note 2) | Yes (see note 1 & 2) |
|
User Experience
- Front End Technology: A good looking, feature rich UI can seriously ease adoption, and what we are looking at here is the richness level of technology used for the out of the box front end user interface.
- How good the standard UI looks: Completely subjective and really this is based on what I think looks best.
- Flexibility of out of box front end: In this aspect we are concerned about how easy it is to adjust and tweak the out of the box front end.
- Themability: Corporate branding is massive business and making sure the application out of the box looks like it is part of your business is important. It is important to note that both CRM & SharePoint can have custom front ends built which enable this scenario, but that requires extra development, and we are focusing on the out of the box options here and assuming you have the theme built already.
LightSwitch (LS) | Dynamics CRM | SharePoint 2010 (SP) | ASP.NET MVC | My Notes | |
Aspect 1 Front End Technology | Silverlight. Supports out of browser (desktop) & in browser (see note 1) | Web Just ASP.NET | Web ASP.NET under the covers with sprinklings of Silverlight | ASP.NET (see note 2) |
|
Aspect 2 How good the standard UI looks (very subjective) | Medium (see note 2) | Medium (see note 3) | Today: Very Low Future: Medium (see note 1) | Depends on your web designer (see note 3) | This is the most subjective aspect:
|
Aspect 3 Flexibility of UI development in the tool | High (see note 1) | Medium (see note 2) | Medium (see note 2) | High (see note 1) |
|
Aspect 4 Themability | Today: High Future: Highest (see notes 1, 2 & 3) | Low (see note 4) | Medium (see note 3) | Highest (see note 1) |
|
Extensibility
- API for integration: In the short term having an API means it is easy to get data into your new solution, in the medium term it means more ways to sync data and mash up your systems and in the long term it gives you a way to get your data out. It is vital to have an API.
- Marketplace: Apple kicked the idea of having an AppStore into reality for many of us and now having a marketplace to get extensions, customisations or themes is an important aspect. I am ignoring public sites, like Codeplex for example, and only focusing on an official marketplaces. Galleries are just marketplaces with no vetting, which means they are bigger but the quality bar is not guaranteed.
- Additional Authentication Options: Only your employees or customers (which may be everyone if you are lucky enough) should access your solutions. What do we get out of the box to limit access to the system? All four systems support Windows & Forms based authentication so I am only listing other options which are available.
- Permission Structure (Authorisation): Being able to control what parts of a solution you can access, once you have logged in is also vital and having a lot of flexibility in this space is also important as very seldom will one structure work for everyone.
LightSwitch (LS) | Dynamics CRM | SharePoint 2010 (SP) | ASP.NET MVC | My Notes | |
Aspect 1 API for integration | Yes (see note 2) | Yes (see note 3) | Yes - at least 5 of them. (see note 3) | Yes (see note 1) |
|
Aspect 2 Marketplace | Gallery available (see note 3) | Yes (see note 1) | Nope (see note 2) | Gallery available (see note 3) |
|
Aspect 3 Additional Authentication Options | Anonymous, Custom, Windows Authentication (AD) & Forms based. (see notes) | Claims based authentication via STS | Anonymous and more available through custom development (e.g. Windows Live). Claims based authentication (custom development required). | Anonymous and more available through custom development (e.g. Windows Live). Claims based authentication (custom development required). | LS makes use of ASP.NET Authentication Provider so it fits nicely into the technologies developers already know. |
Aspect 4 Permission Structure (Authorisation) | Very complete model for permissions. Minor coding required. (see note 2) | Fantastic out of the box option, plus plenty of extensibility if needed. (see note 3) | Good structure with many levels of customisation. Out of the box is very simple. (see note 3) | Basic support for it but can be extended through development. A lot of XML work though may be needed. (see note 1) |
|
Information Worker Features
- Offline support: Being able to work when you are not in the office is a vital need for many people. So how do these platforms enable that scenario? In theory it is always possible to build this, so we are just looking at the out of box offering. This scenario is focused on offline with a laptop, not a tablet or mobile phone.
- Easily Import Data: How do we get information into the solution, besides the API? Does the product make this easy with out of the box tooling?
- Printing: Despite the promise of a paperless office, it still is not the case and being able to print is important, even if it is just to XPS or PDF for invoicing.
- Office Integration: Integration into Microsoft Office products (i.e. Word, Excel, Outlook, PowerPoint, Access, Publisher, and InfoPath & OneNote) means that your IW’s will be able to work in the tools that they are comfortable with, easing adoption and productivity.
- Mobile Device Support: Information workers are increasingly mobile and having good mobile device support is a critical feature. When I look at this I am not just thinking about the simple, does it support it but also how well it supports mobile devices.
LightSwitch (LS) | Dynamics CRM | SharePoint 2010 (SP) | ASP.NET MVC | My Notes | |
Aspect 1 Offline support | No (see notes) | Yes (see notes) | Yes (see notes) | No (see notes) | Being able to work offline is important if you are a roaming user. LS & MVC offer nothing in this space while CRM & SP both offer offline via Outlook. |
Aspect 2 Easily Import Data (out of the box) | Nope (see notes) | Yes, from CVS. (see notes) | Yes. Multiple options. (see notes) | Nope (see notes) | In all cases there are tools and other ways to import data (for example LS has the http://officeintegration.codeplex.com extensions) but CRM & SP have an out of the box options. |
Aspect 3 Printing (out of the box) | Nope (see note 1) | Yes (see note 4) | Yes – Poor (see note 3) | Browser Level (see notes 1 & 2) |
|
Aspect 4 Office Integration | Low One way export to Excel in out of browser mode only. Others can be custom developed or use the OfficeIntegration extensions (http://officeintegration.codeplex.com) | Medium One way to Excel. Mail merge with Word & Outlook. Deep integration with Outlook is available too. | High Only Publisher doesn’t have some integration with SharePoint. Every other Office product does, some like Excel are one way while others like Access are two way. SP internally has features that understand Office files too, for example PowerPoint Libraries show thumbnails. | None Can be custom developed. | |
Aspect 5 Mobile Device Support | Today: Limited Future: Fantastic (see note 1) | Good (see note 2) | Okay (see note 3) | Fantastic (see note 4) |
|
Other
- Databases Supported: Where the data can come from for your application is a critical piece of the puzzle because it means the difference between building ETL solutions to handle moving it around if the source is supported or having it just work.
- Minimum Skills for Tailoring: Tailoring is what I refer to when I think of customisation of a system, without the need for a programming language. At some point you will need a developer but how far away that is and what can be done by a analyst or super user early on is important from a time to solution and cost perspective. Lower is better here.
- Can run in the cloud? If you not thinking about how you can leverage the cloud, then you are not thinking. Making sure the solutions can cater for the cloud is an important consideration. All four solutions can run in the cloud but how do they run is also important
- ALM Experience: How does this tool work with a full ALM experience? Can I unit test it easily? Will it go into source control easily and what happens when multiple developers are updating the same files? How about build server and development tool integration? All important questions in understanding a complete picture of that these tools cost or what you sacrifice with some of them.
- Requires Silverlight: Despite decent market penetration and ease of deployment in corporate scenarios, the requirement for Silverlight can be a deterrent to business, especially those where the CEO uses an iPad. This is not answered in the table as only LightSwitch requires Silverlight today (in the future it will support HTML). CRM has no dependencies, SharePoint has a fall back mode and if you used Silverlight with MVC it would be possible to have a fallback mode, provided you developed it.
- Data performance: This is also not in the table since it only applies to LightSwitch. For CRM, MVC & SharePoint I assume your front end (web) is always close enough, for example the same LAN, to the database but in LightSwitch you can really separate them. Here it is important to note LightSwitch is NOT great with data performance between backend & frontend out of the box, however with careful tailoring of data sources & screens you can greatly improve it. It sends massive amounts of data around. In my view it really does not feel optimised for low bandwidth WAN scenarios.
LightSwitch (LS) | Dynamics CRM | SharePoint 2010 (SP) | ASP.NET MVC | My Notes | |
Aspect 1 Databases Supported | Out of the box:
| SQL Server | SQL Server normally. With advanced skills can use external data sources with BDC. External content types can also be used in place of BDC with a lower skill set (power users) but at a smaller feature set supported. | For scaffolding anything supported by LinqToSQL or Entity Framework. | |
Aspect 2 Minimum Skills For Tailoring | Low (see note 3) | Lowest (see notes 1 & 3) | Low (see note 1) | Highest (see note 2) |
|
Aspect 3 Can run in the cloud? | Platform as a service using SQL Azure for database & compute instances for front end. Also supports the new Azure Websites options. | Software as a service: Can get it from Microsoft & Partners at a cost per user per month. | Software as a service: Can get it from Microsoft (Office 365) & Partners at a cost per user per month. | Platform as a service using SQL Azure for database & compute instances for front end. Also supports the new Azure Websites options. | |
Aspect 4 ALM Experience | Medium (see note 3) | Low (see note 3) | High (see note 2) | Highest (see note 1) |
|
Finally
A post like this is not possible to do without some amazing people providing feedback and I want to say a special thanks to: