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

  • Creating Business Applications Using Blazor

    Expert Blazor programmer Michael Washington' will present an upcoming developer education session on building high-performance business applications using Blazor, focusing on core concepts, integration with .NET, and best practices for development.

  • GitHub Celebrates Microsoft's 50th by 'Vibe Coding with Copilot'

    GitHub chose Microsoft's 50th anniversary to highlight a bevy of Copilot enhancements that further the practice of "vibe coding," where AI does all the drudgery according to human supervision.

  • AI Coding Assistants Encroach on Copilot's Special GitHub Relationship

    Microsoft had a great thing going when it had GitHub Copilot all to itself in Visual Studio and Visual Studio Code thanks to its ownership of GitHub, but that's eroding.

  • VS Code v1.99 Is All About Copilot Chat AI, Including Agent Mode

    Agent Mode provides an autonomous editing experience where Copilot plans and executes tasks to fulfill requests. It determines relevant files, applies code changes, suggests terminal commands, and iterates to resolve issues, all while keeping users in control to review and confirm actions.

  • Windows Community Toolkit v8.2 Adds Native AOT Support

    Microsoft shipped Windows Community Toolkit v8.2, an incremental update to the open-source collection of helper functions and other resources designed to simplify the development of Windows applications. The main new feature is support for native ahead-of-time (AOT) compilation.

Subscribe on YouTube