03 May 2011

Rapid Business Development: Lightswitch vs. Dynamics CRM vs. SharePoint 2010 vs. ASP.NET MVC 3

In this post I am going to look at comparing four technologies that can be used to build business applications easily. This post was inspired by how similar a number of products have become over the last few years and more importantly how the new kid on the block Visual Studio Lightswitch, which is a specialised rapid business tool development platform built on top of Visual Studio, is going to affect this eco-system. It is important to also remember that this is being written in the Lightswitch Beta 2 timeframe, so some details may change by launch.

Lightswitch feels very similar to me, to another product I have worked with in the past: Dynamics CRM, which is a Customer Relationship Management tool from Microsoft. CRM does very well in the xRM (x = extensible) scenario, where I think it will come up against Lightswitch a lot. I haven’t had an opportunity to use the latest CRM release yet, so I have had to rely on the help of experts to fill in my gaps!

SharePoint 2010 is another product I have worked with, can of course be used for building business applications quickly cause it is the “operating system of the enterprise” and has good features for these types of applications.

Finally, while watching Scott Hanselman do the ASP.NET MVC 3 demo in the MIX 11 Keynote, I was struck with how that is very close to a rapid business user development tool with all the new scaffolding features. ASP.NET MVC is a real outsider in this group because it is first a development toolset for web development and, maybe a rapid tool second where the rest are rapid development platforms or tools first.

I think the differences between these four are very interesting and while each has it’s 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.

I have broken down the issues into twenty one(!) 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.

Starting

  • Ready to go out of the box: Once installed, can it do anything? Seems silly, but quick turn around 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 Thoughts
Ready to go out of the box Fast Fastest Fast Slowest LS & MVC need development, while SP needs at least 5min of tailoring. CRM, is ready to go once installed.
Northwind Style Sample development costs $ $$ $$ $$$ ASP.NET MVC has the highest development costs as so little is out of the box. Lightswitch excels in this scenario.

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 organisation 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 Thoughts
Cost for on premise deployments $$$

Unknown.
Likely cost per developer seat.
No per user costs.
$ to $$$

Cost per user & cost per server. Visual Studio only if you are doing integrations or custom workflows.
$$$$ to $$$$+

Cost per user & cost per server. Visual Studio licenses for any serious work.
$$

Visual Studio licenses.No per user costs.
CRM on the small scale with low development is very cheap but since you pay per user can get expensive. LS & MVC only have development software costs, which is more expensive up front but do not increase as you add users to the system.
Deployment Complexity Medium Hard Hardest Easy LS, CRM & SP all have requirements that they need to work, in increasing deployment complexity, but CRM & SP are significantly harder than LS though due to their more complete product nature. MVC is easy because there is no constraints from it (other than a web server).
Deployment Documentation Yes Yes Yes No Only MVC has no official documentation, which makes sense as it is a development tool. All four have GREAT communities to help as well!

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 Thoughts
Front End Technology Silverlight.

Supports out of browser (desktop) & in browser
Web

Just ASP.NET
Web

ASP.NET under the covers with sprinklings of Silverlight
ASP.NET LS clearly best here, since it will give the richest UI out of the box. ASP.NET MVC out of the box scaffolding isn’t pretty but can easily be improved.
How good the standard UI looks (very subjective) Low Medium Very. Low Depends on your web designer This is the most subjective aspect: LS & SP both have a fairly plain out of the box UI but SP has a bad UX to go with it. CRM is much better out of the box and if you are going down the MVC route you will likely be taking advantage of the best UI thanks to the complete flexibility – but that depends on how good your designers are.
Flexibility of UI development in the tool High Medium Medium High MVC & LS can almost do anything on the front end, especially if you combined MVC with Silverlight. SharePoint & CRM too have lots of options and work with Silverlight.
Themability Medium Low Medium High The flexibility of MVC is highest as it is a pure programming, with LS following up thanks to it’s strong theme support. SharePoint can be themed but not the same level as LS. CRM will always look like CRM!

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 Thoughts
API for integration Yes Yes Yes - at least 5 of them. N/A In MVC you could build one, oData for instance, but it doesn’t have one out of the box. LS creates a WCF RIA Service for us. CRM & SP both have API’s, but SP is more complex as it supports so many different API’s with different subsets of features supported.
Marketplace Once it is released a gallery will exist. Yes Nope Gallery available CRM leads here in a big way with a REAL marketplace. ASP.NET MVC has it’s own gallery plus a strong 3rd party marketplace ecosystem.
Additional Authentication Options Anonymous and more available through custom development (e.g. Windows Live). Claims based authentication(custom development required). 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).  
Permission Structure (Authorisation) Very basic and really just a half a step ahead of editing XML that MVC needs. Fantastic out of the box option, plus plenty of extensibility if needed. Good structure with many levels of customisation.
Out of the box is very simple.
Basic support for it but can be extended through development. A lot of XML work though may be needed. LS & MVC are the lightest here, both supports authorisation options but enforcing it is up to the developer to implement. LS is better slightly better at guiding the developer and needs no XML editing. SP authorisation is as varied & powerful as what CRM offers. However SP can easily get messy, users can break permission inheritance, while CRM enforces authorisation all the time and makes for a better structured environment.

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.
  • 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, InfoPath & OneNote) means that your IW’s will be able to work in the tools that they are comfortable with, easing adoption and productivity.
  Lightswitch (LS) Dynamics CRM SharePoint 2010 (SP) ASP.NET MVC My Thoughts
Offline support No Yes Yes No 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.
Easily Import Data (out of the box) Nope Yes, from CVS. Yes. Multiple options. Nope In all cases there are tools and other ways to import data but CRM & SP have an out of the box options.
Printing (out of the box) Nope Yes Yes – Poor Browser Level LS & MVC can have custom development solutions for printing,  other than that they both offer nothing out of the box. As browser printing has improved MVC has a slight advantage being HTML based normally. SP has printing, but it is very poor. CRM leads the way here with a great print scenario.
Office Integration Low

One way export to Excel.

Others can be custom developed
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.
 

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 sacrfice 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 iPad2 Smile with tongue out. This is not answered in the table as only Lightswitch requires Silverlight. 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. It sends massive amounts of data around. In my view it really does not feel optimised for WAN scenarios.
  Lightswitch (LS) Dynamics CRM SharePoint 2010 (SP) ASP.NET MVC My Thoughts
Databases Supported SQL Server, SQL Azure, SharePoint or anything supported by WCF RIA services. SQL Server SQL Server normally.

With advanced skills can use external data sources.
For scaffolding anything supported by LinqToSQL or Entity Framework. LS & MVC feel very close here, however LS has it’s own OM which MVC uses established ones meaning more options in the MVC camp.
Minimum Skills For Tailoring Intermediate
Lowest
Low Highest Being able to tailor with less skill is a big plus for CRM & SP. MVC doesn’t have tailoring as it is all development. LS really stuck in the middle ground here – for setting it up I suspect nothing more than power user but that ends much sooner and moves to needed a developer than with CRM and SharePoint.
Can run in the cloud? Platform as a service using SQL Azure for database & compute instances for front end. 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 & Partners at a cost per user per month. Recently launched in beta with Microsoft. Platform as a service using SQL Azure for database & compute instances for front end.  
ALM Experience Medium Low High Highest ASP.NET MVC is a pure development experience and so works well with ALM. SP2010 plus VS2010 is a great ALM experience (although mocking is difficult). LS & CRM are oddly very similar with customisations in XML though so expect some source control pain. Plugin’s for CRM and LS Extensions are a great ALM scenario. CRM falls short in the unit testing scenario though.

Special Thanks

A post this in depth could not have been done without input from my “brain trust”, and I thank each one of you for your help:

11 Apr 2011

Community Night: BE THERE

Clipboard01Tomorrow is another community night, and I realised that there is MANY people who do not know about this fun event. This is a gathering of communities (or user groups or interest groups if you prefer) who meet on a regular basis. This is a totally free event which takes place the 2nd Tuesday of every month at Microsoft’s offices in Bryanston.

*Yawn* another Microsoft marketing session? WRONG! This is run by communities and Microsoft has NO say in the content or agenda, unless a community allows them Smile with tongue out Microsoft is really trying to help all communities by providing the facilities – not the content!

MobiZATo give a concrete example MobiZA, a user group focused on mobile development is doing a session on Android! talk about not Microsoft marketing there!

There is also a variety of communities in a attendance so you can also see things you would not have seen before, for example the business user group or the game developer group! And of course there is plenty of corridors for interesting discussions and some even contain food & drinks!

Hopefully I have given you a taste of what is in store and why you should attend and you can find more details on the DPE team blog.

mapFinally, if you have a user group maybe you should think of joining us at community night? Free venue, projectors, seating, food & drink. Plus plenty of people attend, could be a great way to grow your group. I would personally love to see some Linux & PHP groups there because it would allow those who have not had a chance to see the non-Microsoft world an opportunity and hopefully learn that it isn’t so cut & dry out there.

Remember, tomorrow 12th April 2011 @ Microsoft (map to the left) from first sessions kick off at 16:30 and second sessions get started between 17:30 & 18:00!

21 Feb 2011

SharePoint Holiday Loader

March 19, 2012: This tool has had a major make over since the original release!

logo

I’m sure, as a SharePoint power user, you’ve had the fun of your boss walking up to you and asking why the public holidays aren’t in your SharePoint calendar? (guess what happened to me last week)

You would think this would be easy, in fact Outlook supports adding holidays to calendars easily. So why isn’t SharePoint easy like that too?

I’ve had this asked a few times and never had a good answer to do it, so I decided that a simple tool needed to be built to solve this once and for all – Let me introduce SharePoint Holiday Loader (SHL).

SHL takes a standard holiday file (.hol) and allows you to publish that to a SharePoint list!

Clipboard01

This tool is very easy to use (just need the file, the server and the calendar name) and it is free and open source. You can get the download the tool, source code, leave comments (or complaints) at: https://bitbucket.org/rmaclean/sharepoint-holiday-loader/

24 Jan 2011

Source Code Management for the Individual SharePoint Developer

imageWith SharePoint 2010 and Visual Studio 2010 the ability to be a productive developer was key and there is tight out-of-the-box integration and this means that it is easy for SharePoint developers to put code into source control easily. Hilton Giesnow covers this brilliantly in a video he has: http://bit.ly/g71Gnb

Imagine a number of dedicated SharePoint developers, they may have an enterprise ALM solution like TFS and on their own machines have SharePoint 2010 Developer and VS2010 installed and life is good – but what about the individual, or ad-hoc, developer?

The problem for him is that installing SharePoint 2010 is a resource hog and you may not want it running all the time (what Hilton nicely calls the 9 to 12 development) and what about if you switching between projects, how do you switch SharePoint? The solution I found, is to have a virtual machine (VM) for SharePoint with the dev tools installed and do all work on the VM. This is great because the overhead is only there when you need it and you can easily switch between different virtual environments. The downside: source code management.

Sure you can hook up the VM to the network and manage code using the source control as you are used too, but this isn’t always easy or possible, so what else you can do? I had this problem recently where the source control is on one domain and my development was another domain. I choose to use the Mercurial Distributed Version Control System (DVCS) and I thought I would share this experience with you.image

DVCS differs from “traditional” source control like TFS or SubVersion which has a client/server model where each developer is a client talking to a central server, however in DVCS every developer is their own server and does pushes/pulls (think like a sync) between other developers.

What this enables is a very lightweight set of tools installed along side SharePoint and the developer tools on the VM. At the end of each day I could run Mercurial on my machine and pull the source control down to my own machine. This meant the VM had the code and my “real” machine had the code. Then this code could easily be checked into the corporate source control system creating another backup and ensuring compliance with source management policies!

This has been a very exciting project and this configuration really made the management of the source code very smooth.

13 Dec 2010

Bring your hard drive to Community Night

Blue Male Student in a Graduation Cap, Reading a Book and Leaning Against a Stack of Books Clipart IllustrationIf you are coming to tomorrow’s community night, you want to bring your hard drive along because I will have some stuff to fill it up with:

Plus I hear that some prizes may be given away at the events too Winking smile

AttachmentSize
File DevExpress.csv3 KB
10 Dec 2010

Visual Studio Service Pack 1 - Beta: Field Guide

Brian Harry announced the availability of the service pack 1 beta which is fantastic news for all developers. This post is a field guide of me doing the installs.

Before that I wanted to point out a few key things included in this SP:

  • This can installed in production – this beta includes a “go live” license so it is supported and upgrades to the RTM of the SP will be supported.
  • This includes over 80 hotfixes for between 800 and 1000 bugs and many new features. For a full list see the link above, but here is a brief list:
    • Silverlight 4 tool support!
    • Unit testing can target the 3.5 framework now.
    • IntelliTrace support for 64bit and SharePoint!
    • Performance Wizard for Silverlight!
    • HTML 5 support
    • IIS Express support
    • SQL Compact Edition 4 Tooling

Details on the last three can be found on Hanselman’s blog.

  • Some third party systems may break with this, at this time known ones are:
    • ASP.NET MVC 3 RC 1 – this will be fixed in the next update.
    • Visual Studio Async CTP – this will break completely! No news, yet, on when it will be fixed.

The Process

For me there are three files you need to get:

  • Update for .NET 4
  • Update for Visual Studio
  • Update for Team Foundation Server (not covered in this post)

Step 1

.NET 4 installInstall the .NET 4 update first – this took on my machine 24 minutes to do. It is important to note that I did shutdown Visual Studio first but I had some other applications open, including Pull which is .NET 4.

At the end of the process I needed to restart!

image

This step is no specifically needed as the VS SP will include this automatically, however I personally like the idea of doing it manually and making sure .NET 4 apps continue to work before I continue to the VS install.

Step 2

imageOn to the Visual Studio install which after a few minutes tells you what will be updated and then, tells you that it wants to download 490Mb!

image

What I had done was to download the smaller installer version (less than 1Mb) which means it first figures out what is needed and then downloads the rest. This is great for some people as the download size is less, however since I live in South Africa (read: bandwidth is a luxury) and I work with 300+ other developers it is better for me to get the “DVD” labelled one which is bigger (in my case 103Mb bigger) but contains everything in one go so it can be shared easily and the bandwidth hit just once!

image

Step 3

We re-join the action a while later (when the “DVD” edition downloaded, approx. 1 hour 21 min later) we start process again and this time the download size is 0Mb Open-mouthed smile 

image

This took 29 min to process (remember this is without the download) this install and success!

image

Notes

I haven’t found anything in the many extensions I use daily that has broken! In particular my favourites all work

09 Dec 2010

Upgrade to SharePoint 2010 on Small Business Server: Field Guide

SharePoint2010_LogoRecently I needed to do an upgrade from SharePoint 2007, to be exact WSS 3.0, to SharePoint 2010 – “No big deal” I thought, “I’ve done it before”. Assumptions, they do make for interesting life experiences, because this was something different – this was an upgrade on a Small Business Server (SBS) deployment.

logo-ms-sbsFor those who do not know, SBS is a lightweight all in one server product. So when you install it you get Windows Server 2008, plus Exchange Server, plus ISA, plus SharePoint, plus plus plus – ALL PRE-CONFIGURED! It is fantastic to use in small companies.

Microsoft has produced a fantastic upgrade guide for this very scenario: http://technet.microsoft.com/en-us/library/ff959273(WS.10).aspx but I think is missing a few footnotes of things I found during my upgrades, which this blog post aims to share.

Check Lists

Blue Man Holding a Clipboard While Reviewing Employess Clipart IllustrationI’ve made two check lists of things you should do ahead of time:

Software

This is the software that you will need during the upgrade.

Environment

This is some prep for the environment you can do a head of time.

  • Get a service account created on the domain for SharePoint to use.
  • Get a service account created on the domain for SQL 2008 R2 to use as it can’t use network service on a domain controller.
  • Check if there is a public internet FQDN setup and get the details of that, will need this when setting up the AAM.
  • Get domain name used for email.
  • Check for a local domain name for the site, normally companyweb. Verify this can be access on the server and also from a workstation on the network.
  • Make sure it is a domain controller – there is some scenarios where you are not installing on a domain controller but it is SBS in which case a lot of the guide and process will be broken.

Notes

Here are my additional notes for the guide. For some steps I have no notes because there was nothing extra special about those processes that needed noting.

Step 1

  • It is easier to check the version number in add/remove programs by showing the version number column. Service Pack 2 has a version number of 12.0.0.6421 so we want that or higher.
  • Alternatively turn on show updates in add/remove programs and see if SP 2 is installed.

Step 4

  • It is not important to disable the service during the copy, provided your server will not be rebooted during step 4 and no one is accessing the SharePoint site.
  • It is VITAL to place these files in a backup location and then copy the content database files MDF/LDF to a secondary location. This location is where the database files will be used from in future.
  • Make sure the database files are NOT read only.

Step 6

  • It is a complete farm install, not a stand alone farm install

Step 7

  • It is ok for the site not to exist

Step 8

  • If the Central Admin “Getting Started Wizard” pop’s up, it is ok to cancel it wizard
  • Make sure the app pool is set to Network Service

Step 13

  • If you get a Default Web Error it is because the default and intranet names are the same – make sure they are not.
Additional steps post upgrade
07 Dec 2010

CommNight December - Some interesting events

Happy Blue Man Partying With a Party Hat, Confetti and a Bottle of Liquor Clipart IllustrationIn the middle of the company parties, you should take one night off to do some fantastic learning and networking at CommNight (Community Night) on the 14th December! You can read about all the details on the Microsoft DPE Blog.

There are two groups which I want to highlight which will be at CommNight:

S.A. Developer

S.A. Developer is a user group for developers and in December will be hosting the following topics:

  • Tool of the month: This short (10min to 15min) session is where someone can present their favourite developer focus tool or add-on.
  • Unit Testing WPF & Silverlight – Tools & Techniques: Silverlight and WPF can be used to create truly immersive UI experiences for users.  Testing these UI components and the logic around it can become complex – especially when using frameworks like PRISM.  Join us in this session as we take a look at a few tools and techniques that can be used when unit testing WPF and Silverlight applications. 

Really looking forward to this session!

Information Worker

Information Worker is a user group for those in the IW space, not just developers but everyone even people who job just involves Excel and Outlook! This month we are looking at:

  • Lync – Microsoft’s Unified Communication System
  • Windows Phone 7 – What does this give the IW user? Things like Office and SharePoint integration will be discussed

Pages