Chapter 2 ■ Understanding asp.net MVC
17
ASP.NET MVC is well suited for most web applications, and perhaps the paradigm of choice for all new
development. ASP.NET MVC requires that the developer invest time into understanding the Model View Controller
(MVC) pattern. Compared to some of Microsoft’s other frameworks, ASP.NET MVC may not be as easy for
inexperienced developers to learn.
ASP.NET Web Pages
ASP.NET Web Pages is a simple web development framework that provides a mechanism for creating custom web
applications with the WebMatrix IDE. It shares some underpinnings with ASP.NET MVC, including page routing and
the Razor view engine. While it is possible to create sophisticated applications using ASP.NET web pages, it is less
suitable for enterprise scale than ASP.NET MVC.
It may be ideal for experienced developers looking to create a simple application. For example, let’s say that you
need to create a web site for your softball team and would like to expose a database of batting averages. The simplicity
of WebMatrix allows you to do this faster than if you did the same application using MVC in Visual Studio. ASP.NET
Web Pages is less ideal for a team of developers working on a large project.
For enterprise developers, ASP.NET Web Pages and Web Matrix can be a great prototyping tool. Its rapid
application development environment allows you to quickly put together a demo and deploy it to a staging
server where it can be demonstrated to end users. The project can later be ported into Visual Studio and the full
MVC Framework, where you can apply enterprise development best practices and generate unit tests and other
recommended artifacts.
LightSwitch
LightSwitch is a RAD (rapid application development) tool that simplifies the creation of data entry–centric
applications. The initial release of LightSwitch used Silverlight to create the end-user experience. It exploited
Silverlight’s rich data-binding capabilities to create data-driven applications with minimal or no coding. LightSwitch
applications can be run either as a browser Silverlight application or as an out-of-browser application that runs on the
desktop. The latest version supports project output in HTML5 as well as Silverlight.
LightSwitch is a good solution for very simple applications. It has several major limitations, such as the inability
to support forms that need to update data from multiple database tables, which prevent it from being used for
anything other than trivial “peak and poke” applications.
Silverlight
Silverlight is a rich Internet application (RIA) tool that competes with the Adobe Flash plug-in. It is used primarily for
creating rich media streaming experiences by web sites such as Netflix.
Even though Microsoft has pledged to continue supporting Silverlight until 2021, Microsoft’s RIA strategy has
shifted to HTML5. Silverlight still has some advantages over HTML, such as the ability to run on legacy enterprise
desktops that have standardized on browsers such as Internet Explorer 7, which does not support HTML5 and has
poor JavaScript performance. It also is superior to HTML5 in that it can deliver richer streaming experiences with
an extensible codec framework and support for 3D graphics. Silverlight can run outside the browser and be granted
permission to access the local file system.
I recommend that architects and tech leads avoid using Silverlight for new applications. If possible, they
should either opt for an Ajax/HTML5 application or consider using a native Windows technology such as Windows
Presentation Foundation (WPF). If Silverlight is used, I recommend an “islands of richness” model over a full-
browser-window Silverlight application. An example of “islands of richness” is a Silverlight-based media player that
allows playback of Digital Rights Management (DRM)–protected content. In a full-browser Silverlight application, the
entire user experience is created in Silverlight.