One Microsoft Access developer's search for an exit path from Access into .Net development led him to Microsoft Silverlight and MVC2. If you're serious about adding technologies to your toolkit, are looking for a web solution or just something new, Silverlight or MVC2 might be it.
My February 2010 article about how Microsoft Access still rocks for developers got more feedback, positive and negative, than I ever could have anticipated. I understand both sides of the argument and while I love Access as a development tool, I recently began looking for an exit path. My research has led me to believe the path I'm seeking is Microsoft Silverlight and MVC2. Why do I like this path?
1. New technologies rock
2. The time is right
3. The learning curve is doable
4. It's cool stuff!
New Technologies Rock
I've been programming with Microsoft Access since 1995 which means I was actively writing code in January of 2002 when the .Net platform came on the scene. I was determined to be part of the revolution but it just never came together for me. I built a few ASP .Net apps and some Web Services but I kept gravitating back to Microsoft Access to build user interfaces connecting to data in SQL Server. I did a fair amount of classic ASP but the Dot Net paradigm just didn't resonate with me.
A few months ago I started investigating ASP .Net MVC 1.0 and was pleasantly surprised. According to the book, Professional ASP .Net MVC, the Model-View-Controller pattern has been around since 1978 and was popularized in the Ruby on Rails framework. As legend has it, Scott Guthrie was instrumental in getting Microsoft MVC rolling in 2007. Scott contributed to the book mentioned above, where the pros and cons of MVC verses Web Forms are discussed at length. To make a long story short, the discussion convinced me that while I may not have been able to get excited about Web Forms, MVC is something I could embrace.
Just as I was getting up to speed on MVC 1.0 the .Net 4.0 Framework was released which included MVC 2, Silverlight 4 and much more. Just as I thought I had a clear exit path from Microsoft Access via MVC technology, other likely candidates suddenly appeared. The list of possibilities for Access developers seeking an entry point into .Net development now includes the following:
- MVC (Model-View-Controller)
- WPF (Windows Presentation Foundation)
- Dynamic Data
- Silverlight (subset of WPF)
WPF is effectively a framework for developing Windows applications, which, while technically cool, was not the direction I was aiming at. If I want a Windows solution, I'll use Access 2010. What I'm looking for is a web solution.
I'm not sure where Dynamic Data fits in, but it's described as a tool for creating data-driven web apps without writing any code. While this isn't what I'm looking for, it very well may be of interest to Access developers who wish to "publish" data to the web. The examples I saw were simple and straightforward.
Silverlight has been around for years but I thought it was just Microsoft's glorified substitute for Adobe Flash. It may have been little more than that two years ago but it's evolved into a valuable tool for application developers.
Both Silverlight and WPF use XAML (eXtensible Application Markup Language) to create the UI. Some have compared Silverlight to Adobe Flash and maybe the comparison is valid, but Silverlight goes way beyond Flash with respect to performance and toolset. Silverlight apps run in the browser and require that a 5 MB plug-in be downloaded and installed first.
Here's the thing: Silverlight applications can run in a variety of browsers, or optionally may run out-of-browser (OOB) like a traditional desktop program. At the Visual Studio Launch, there was a demonstration of a Windows Phone application written in Silverlight. Moreover, these are not just fluff and media but real-time data apps. A technology called WCF RIA Services provides a framework for connecting to a remote data source with two-way mode transactional functionality.
The Time Is Right
The time has never been better to make the switch from Microsoft Access to .Net alternatives. In fact, Microsoft wants you to take the plunge and they are willing to help. They initiated a program called WebsiteSpark, through which developers seeking an entry point to development with new Microsoft technologies can get Visual Studio 2010, and other software, at no cost today. The program does require a $100 exit fee at the end of the three-year program and the user agrees to write at least one web application hosted on a Windows Server but that's it!
Now I'm not a lawyer, nor am I an expert about WebsiteSpark, but the way I read the website's FAQs, we Access developers are exactly the kind of people they had in mind when they set up the program. It reads, in part
Microsoft® WebsiteSpark™ is designed to ignite the success of professional Web developers and designers. The program enables you to get software, support and business opportunities from Microsoft at no upfront costs for 3 years or exit from the program.
My gut tells me that MVC 2.0 and Silverlight 4.0 are the right "next technologies" for Access developers who want to try something new. WebsiteSpark will provide you the tools you need today, virtually for free. All that's left is to learn how to do it.
The Learning Curve
I'm not going to lie to you and say it will be easy, because won't. However, I don't think the learning curve to Silverlight (or MVC) is as steep for Access programmers as was the move to ASP .Net and Web Forms. In fact, some of the binding paradigm used is reminiscent of Access bound forms. It's just the plumbing and the XAML presentation you need to learn. What's more, there is a cornucopia of resources to help you.
For example, consider the rather complex form below. It includes a data grid connected to the Album table, a paging control, a busy indicator and a child/detail form that is synched with the selected grid row. I built this app by following an 18 minute video from the Silverlight site.
Access developers should notice that the data grid (read datasheet here) is connected to a "query" named AlbumListing through the Binding attribute of the Grid control. This is like the RecordSource property in an Access form. Each column of the grid uses the Binding attribute to set the Text property, which is akin to the ControlSource property for the controls on an Access form. The paradigm is very close to what we Access developers are already familiar with.
Below is how the XAML is resolved into a user interface. We're spoiled by how Access takes care of the INSERT, UPDATE and DELETE methods without the need to write any code. While Silverlight isn't quite that automatic, with the help of RIA and Domain Services it is greatly simplified. The full explanation is beyond the scope of this article but you can see from this screen shot below how much one can accomplish from watching a brief video. It's truly amazing!
There are a number of technical books for Silverlight that have not been released yet. I may get the opportunity to review the Wrox books and if I do, look for a future article on the topic. The books currently available are either based on Silverlight 3 or were a little disappointing, so I suggest looking to online resources, such as the following:
I'm also currently exploring the Pluralsight (http://www.pluralsight-training.net) online training website's Silverlight course. What I've seen so far is helpful but not enough to make one proficient. The site includes different kinds of resources so it deserves a look but it's not my first choice for training.
MVC Self-Paced Training
The first place to look for training resources, specifically for MVC, is the Nerd Dinner Sample Application. Below are links to the code download and the free chapter that explains it step by step. You can see a live running version at the Nerd Dinner website. The source code is also available and the first chapter is available for download.
I also have two MVC books on my desk that I haven't had time to get to yet. One is a the updated version of the Wrox MVC book mentioned above. The other is an O'Riley book named Programming Microsoft ASP.Net MVC by Dino Esposito from Microsoft Press.
It's Cool Stuff!
For over a decade, Access developers have been seeking a way to publish their databases on the web. I took the Classic ASP route, which was a lot of fun but lacked both framework and security. Access Data Pages appeared and disappeared without anyone noticing. Publishing to SharePoint was made possible with Access 2007 and is greatly enhanced in Access 2010 but by its very nature it requires you have SharePoint, which limits its application.
So, it's only natural that once I started playing with Silverlight my thoughts returned to the idea of publishing Access databases on the web. The question was, can Silverlight and/or RIA Services connect to an MDB file for data? A quick Google search revealed that it could. Again, the scope of that particular solution is beyond this topic but rest assured that the trail has been blazed.
If you've read this far, you must be serious about adding technologies to your toolkit. I'm not a prophet and I don't have special insight into the future but I believe Silverlight will be around for a while. What's more, I have confidence that I can quickly get up to speed with Silverlight and once I'm comfortable, MVC development is just a hop away. As early as 2011 I could already be transitioned from Access to Dot Net. If you're looking for something new, Silverlight or MVC2 might be it.