views:

64

answers:

2
  • I plan to pick up Silverlight in the future.
  • Possibility of going into Microsoft WPF.
  • Currently learning Objective-C 2.0 w/ Cocoa.

I already know Pros and Cons of ASP.NET MVC vs ASP.NET Webforms. What I want to know is what would be more "efficient" for me to learn given the circumstances above?

By efficient I mean learning one design pattern once and then re-using it. Objective-C I believe uses MVC approach? What about Silverlight? WPF?

I'll be going to B&N tomorrow to pick up an ASP.NET book so I need to decide right now between webforms and mvc.

Also as a side question is it true that ASP.NET Webforms is often used by freelancers/small companies and ASP.NET MVC in large enterprises?

+1  A: 

I truly believe that ASP.NET MVC is more aligned to how the web works as winforms, but that doesn't mean anyone should just ditch ASP.NET Webforms and just use ASP.NET MVC. I think you should attempt to look at both, regardless of what your future plans are.

As far as I can tell, the pattern used commonly amongst WPFers is MVVM (Model, View, View-Model).

As for your last question, regarding the use of ASP.NET MVC in large enterprises vs ASP.NET Webforms in small companies. I believe that you should pick the technology (talking specifically about mvc vs webforms) that suites your coding style the best.

There are advantages and disadvantages to both.

PieterG
+1  A: 

I second PieterG's comment and would like to add:

If you are looking to learn a platform on which you want to put different kinds of view layers on top, I would highly recommend MVC over Web forms. Another way to ask the question would be: in your application, does data have first class status?

I build mostly reporting applications, so the answer for me is: yes!

Based on personal experience, its a lot easier for me to build a set of ReSTful controllers which handle business logic. Then when I want to push it to a RIA front-end (I do Flex), all I do is add another ReSTFul method to get me the data in XML so I can work with it in Flex. So, for example if I have Urls like this that return HTML (i.e. aspx) pages:

example.com/stuff/

I can then add a method (or even just a route in the route table) to do this:

example.com/stuff/xml

In other words, I am able to turn my controller into a data service with minimal effort and this has worked very well for me for exporting to XML, Json, even Excel. Doing the same in web forms is very painful.

Space Cow