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 *."

Tool Box

  • ASP.NET
  • ASP.NET MVC
  • JavaScript
  • Windows Communication Foundation
  • Silverlight
  • HTML5


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/.

comments powered by Disqus

Featured

  • Compare New GitHub Copilot Free Plan for Visual Studio/VS Code to Paid Plans

    The free plan restricts the number of completions, chat requests and access to AI models, being suitable for occasional users and small projects.

  • Diving Deep into .NET MAUI

    Ever since someone figured out that fiddling bits results in source code, developers have sought one codebase for all types of apps on all platforms, with Microsoft's latest attempt to further that effort being .NET MAUI.

  • Copilot AI Boosts Abound in New VS Code v1.96

    Microsoft improved on its new "Copilot Edit" functionality in the latest release of Visual Studio Code, v1.96, its open-source based code editor that has become the most popular in the world according to many surveys.

  • AdaBoost Regression Using C#

    Dr. James McCaffrey from Microsoft Research presents a complete end-to-end demonstration of the AdaBoost.R2 algorithm for regression problems (where the goal is to predict a single numeric value). The implementation follows the original source research paper closely, so you can use it as a guide for customization for specific scenarios.

  • Versioning and Documenting ASP.NET Core Services

    Building an API with ASP.NET Core is only half the job. If your API is going to live more than one release cycle, you're going to need to version it. If you have other people building clients for it, you're going to need to document it.

Subscribe on YouTube