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 principal in PH&V Information Services, specializing in ASP.NET development with expertise in SOA, XML, database, and user interface design. His most recent book ("rtfm*") is on writing effective user manuals, and his blog on technical writing can be found at rtfmphvis.blogspot.com.

Reader Comments:

Wed, Jun 22, 2011 KCS London

Why does everyone trot out the same 'you need to reach everyone' argument? No you don't. You need to reach only those who you can practically service and support. Most business are not global, or of a huge size. If you reach 'everyone' you will simply be wasting their time and your own, as you simply could not handle the response.

Sat, Jan 22, 2011 Peter Vogel Canada

If it's not clear why comments by the President of Servers and Tools made on several occasions wouldn't be taken seriously then I'm not sure what comments should be--especially that, while Microsoft may have expanded on those comments, it certainly hasn't contradicted them. I'll disagree with John's comment on Silverlight being a "great platform for cross-browser" development only in detail: Silverlight effectively ignores the browser--it's more a case of delivering applications via the browser rather than "in" the browser. But John's essential point is that it does work with many browser. The problem is that, unlike HTML and CSS, it doesn't work (and can't work) with every browser, especially the mobile ones. And that's what Muglia's comments acknowledge. See my column at http://visualstudiomagazine.com/articles/2011/01/20/platforms-silverlight-and-aspnet.aspx. If you're building what used to be called "desktop apps" for employees you should be using Silverlight; If you want to reach everyone, use ASP.NET.

Fri, Jan 21, 2011

I don't understand why a couple of sentences from Bob Muglia--who is now on his way out--has been taken for MS's full product position. SL 5, Lightswitch, ... seems like there is plenty of emphasis from MS to keeping SL alive and they have only been scrambling to undo the damage done by Muglia that people keep propagating.

Thu, Jan 20, 2011 john mcfetridge florida

I am really amazed by this article as SL is a great platform for cross-browser development. I just came off a great SL project where this was the reason SL was used. We did not have to deal with the issues of Javascript and CSS differences. That and the fact that we could deliver a RIA using an native OO language like C# and have access to the CLR. Now u are right if u are discussing simple web sites but we delivered a web app where we needed to handle 20-30 threads (try that in javascript) as we had so many streams of data. This was a large financial app and it also needed DI and unit testing. Sure u can do this is javascript and we have but the effort in SL is so much less as the model is so elegant. I am working with another group right now where the ojective is the same , a cross browser app. Someday HTML5 tools might approach SL but not for a while.

Mon, Jan 10, 2011 Peter Vogel Canada

"Silverlight sales": Oops--that was an opaque phrase, alright. What I'm looking at are a combination of things. First, as the Products editor for VSM, I get some insight into sales of Silverlight tools (e.g. component suites). We've got an interview with a major tools vendor coming up in the Tool Track blog where Silverlight is mentioned in passed. Second, I'm also looking at "interest in Silverlight" and "job postings". In our February issue, we've got (another) Tool Tracker blog coming up where I look at the stats round some key languages for .NET developers (e.g. C#, VB, JavaScript).

Mon, Jan 10, 2011 TriSys UK

Is RIA Services/Entity Framework the New Emperors Clothes?http://at.trisys.co.uk/hENc9Z, http://at.trisys.co.uk/h0Qtf2, http://at.trisys.co.uk/e2hs1i

Sun, Jan 9, 2011 Clement

Silverlight sales ?! Anyway, there is room for both Html and Silverlight, and that's what Microsoft is saying.

Fri, Jan 7, 2011 Peter Vogel Canada

I appreciate the defense of Silverlight--it's a terrific platform. And, if you're developing an application to be used on your organization's intranet or by company employees on approved browsers (assuming you don't care if those employees can access the application on their mobile device), there's no reason why you can't use Silverlight (and I would recommend that to my clients). But if you want to deliver a cross-platform solution, delivered in any browser anywhere, and maintained at the server--in other words, if you want to create an actual Web application that runs on the World Wide Web rather than some arbitrary subset of it--then ASP.NET is the .NET tool that you should (and will) be using. To suggest that ASP.NET is a niche product to be used when you're targeting the iPhone is wrong headed. Silverlight is the niche product to use when you're willing to not target everyone: when you don't want to create a Web app. Many companies may choose to give up part of the Web for the benefits of using Silverlight. Most, I suspect, will not (and Silverlight sales bear me out). Most will want to create Web applications.

Fri, Jan 7, 2011 Dan US

You may want to clarify your summary section to say "cross-platform AND cross-device Web development target". Silverlight's totally valid otherwise but your statement infers that ASP.NET is the only way to go. Although I love ASP.NET, that's not accurate. I agree Silverlight's not the way to go if you're targeting iOS, Android, etc. through the browser since it just doesn't run there.

Thu, Jan 6, 2011 FritzK US

"Silverlight may have a future in mobile development, but it's no longer a primary platform for the Web....." Microsoft has been doing huge "damage control" on the "Silvelight is going to be depreciated" issue. I can't imagine where you got your information that it is out as a Web Development tool. Good gracious...

Thu, Jan 6, 2011 Peter Vogel Canada

According to Microsoft, actually. See our story at http://visualstudiomagazine.com/articles/2010/12/01/silverlight-futures.aspx which discusses Bob Mugllia, Microsoft's President of Server and Tools division, explanation that "Silverlight is the development platform for Windows Phone 7, 'sweet spots' in media and LOB apps, and a cross-platform runtime solution for some OSes and browsers." If you're only targeting "some" OSes and browsers then it seemed pretty clear to me you're not the company's primary platform for the Web. Especially if you go onto say, as Bob does in the article, "But HTML is the only true cross-platform solution for everything." But, hey, it's also not clear to me why a comment about Silverlight would negate an article focusing on ASP.NET.

Wed, Jan 5, 2011 JohnC

"Silverlight may have a future in mobile development, but it's no longer a primary platform for the Web." Um...according to who? This is mystifying to me and negates the entire article.

Add Your Comment:

Your Name:(optional)
Your Email:(optional)
Your Location:(optional)
Comment:
Please type the letters/numbers you see above