In-Depth
.NET Survival Guide: Web and RIA Development
Microsoft's latest announcements make it clear that, when it comes to delivering applications over the Web, the choices for the .NET developer are ASP.NET and ASP.NET MVC.
BACK TO .NET SURVIVAL GUIDE
Web and RIA Development
Microsoft's latest announcements make it clear that, when it comes to delivering applications over the Web, the choices for the .NET developer are ASP.NET and ASP.NET MVC. Silverlight may have a future in mobile development, but it's no longer a primary platform for the Web.
If you're happy with the auto-generated HTML and pre-packaged functionality of server-side controls (and don't see the benefit of using Test-Driven Development [TDD] for your UI) then you are well-covered with ASP.NET. If you're willing to sacrifice some productivity for enhanced control over your HTML and the benefits of TDD in the presentation layer, then a move to ASP.NET MVC may be in order. Call the two approaches "ASP.NET *."
What new challenges await? In addition to becoming proficient in developing on the server using your choice of ASP.NET *, developers must know HTML5, JavaScript and Windows Communication Foundation (WCF). The reason for this change is that the future is moving away from the HTTP request/response cycle. The new paradigm involves sending lightweight Web service requests to the server and getting lightweight responses back. JavaScript manages both that conversation and integrating the calls with a UI written in HTML5 to produce the rich Internet application (RIA) that users are coming to expect. But this toolset isn't just about enhancing the user experience: The more you can do at the client, the less you have to do at the shared resource that is the server, which directly addresses scalability.
While both groups will need to become familiar with HTML5, ASP.NET MVC developers will need to be more deeply involved. All ASP.NET * developers are going to need both client-side and server-side toolkits. That's going to include knowing jQuery and, in all probability, some client-side testing tool.
WCF is the Microsoft platform-of-choice for developing Web services (though the old .asmx-based technology still works). Becoming familiar with WCF, especially when integrating with JavaScript calls, is critical. This will include being able to implement different levels of authorization and authentication, among other application development standards. While the WCF templates in Visual Studio take care of many of the ugly details, ASP.NET * developers who know how to build high-performance WCF services will build better service-oriented architecture (SOA) applications than those who don't.
Beyond the technologies involved, developers are also going to have to think architecturally, both about the relationship between the server and the client (think SOA) and what goes on inside the client. The browser is no longer (if it ever was) a passive client that receives and displays HTML. Rather than just being a "view," the browser is now a client-side application that interacts with server-side resources.
The challenge in ASP.NET will be in working with server-side controls that have a rich client-side object model. In ASP.NET MVC, it's about building up a toolkit of "pure" client-side objects that are as diverse, powerful and as easy to implement as the ASP.NET server-side controls.
All ASP.NET * developers will need to develop a rich set of patterns and best practices for developing client-side JavaScript code that works effectively in the .NET environment of choice. The same discipline that these developers apply in creating server-side applications is going to be required in the client -- simply writing more and more functions isn't going to be good enough any more.
If all this talk about client-side resources suggests that server-side development isn't important, that's not the intention. It's just that the client-side development effort has become as important as what you put in your .aspx (and .svc) code files.
In Summary
With Silverlight waning as a cross-platform Web development target, the future belongs to ASP.NET and ASP.NET MVC. Developers valuing TDD and close control over HTML code will favor MVC, but all will benefit with mastering WCF and JavaScript.
About the Author
Peter Vogel is a system architect and principal in PH&V Information Services. PH&V provides full-stack consulting from UX design through object modeling to database design. Peter tweets about his VSM columns with the hashtag #vogelarticles. His blog posts on user experience design can be found at http://blog.learningtree.com/tag/ui/.