简体   繁体   中英

A PHP web developer comfortable with C# .NET wants to learn ASP.NET but confused with ASP.NET MVC & Webforms

I'm a decent level PHP web programmer with enough real world experience. I'm also a decent level C#.NET developer. So, I don't want to learn the basics of web development. I also don't have to learn C#.

Now I want to start with ASP.NET. I don't know even a,b,c's of ASP.NET. I mean don't even know things like what do I need to setup for this development?

I've gone through archives of SO and found that there are "ASP.NET Webforms" (which seems to be the part of OFFICIAL Microsoft .NET) and something called "ASP.NET MVC" (which is not by Microsoft, some 3rd party library but very popular one).

So now, should I learn "ASP.NET Webforms" first and then should I go to "ASP.NET MVC"? I'm confused with these two.

I found that the book "Pro ASP.NET MVC Framework - Steven Sanderson" is best book in the field. So, is it ok for me to jump into this and start reading?

EDIT:

After reading the responses, I understood that "ASP .NET MVC" is more like WPF & "ASP.net web forms" is like ".net winforms" in desktop development. But why didn't Microsoft add ASP.NET MVC to .NET framework? like it added WPF even though Winforms existed in .NET fx stack.

ASP.NET MVC is an official Microsoft-distributed library. See http://www.asp.net/mvc if you have any doubt of this. As far as Webforms vs. MVC, I think coming from PHP, you'll probably be more comfortable with ASP.NET MVC. If you're interested in learning materials for ASP.NET MVC, I posted a pretty lengthy repsonse here .

To expand on the Webforms vs. MVC thing, it really comes down to a matter of preference. Webforms has a lot of built-in controls and makes your traditional web application similar to a desktop application. It was originally intended as a way for Visual Basic Windows developers to bridge the gap between winforms and the web. That said, Webforms is a very mature product with tons of 3rd party controls and documentation available. You can find out how to do pretty much anything with a few google searches when you use WebForms.

ASP.NET MVC is the newer framework and simply offers an alternative to WebForms. ASP.NET MVC is a "closer to the metal" experience where instead of using custom-built controls to build out your website, you write everything yourself. This will be familiar to you having come from PHP, which is why I recommend it to you. Another thing to note is that ASP.NET MVC was built with unit testing in mind from the start. Unit testing is not impossible in WebForms, but it's much more difficult and time-consuming. So if unit testing is important to you, ASP.NET MVC is probably the better choice.

Microsoft has said about 10,000 times that your choice of technologies really comes down to your own personal preference, and they will continue to support both technologies into the foreseeable future. The important thing to remember is that ASP.NET > WebForms and ASP.NET > MVC. ASP.NET is the overall technology, and you just get two different frameworks that you can use to develop with it.

Also, technically speaking, it's possible to mix both frameworks within the same application, although I've never done that myself. It just feels kinda dirty :)

Since you mentioned Steven Sanderson, you might be interested to know that he and Rob Conery have been developing a series of WebCasts surrounding the new version of ASP.NET MVC coming soon. The webcasts aren't free, but they're pretty cheap, and you can find a preview on TekPub, here:

http://www.tekpub.com/preview/aspmvc

ASP.NET MVC does come from Microsoft. It's a framework which allows to build web applications using Model–view–controller pattern. You can find an introductory article here: ASP.NET MVC Framework

Here is a great comparison of ASP.NET MVC books: Thoughts on Choosing an ASP.NET MVC Book

WebForms:PHP::ASP.NET MVC:CakePHP

Except that Microsoft makes both.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM