What ASP.NET programming model to choose? [closed]
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 2 years ago.
开发者_如何学Go Improve this questionSummary
I'm a seasoned programmer with years of experience in Windows Forms development using different programming languages as already stated in this question:
Will learning WPF improve my skills in ASP.NET?
ASP.NET or any Web based programming language doesn't feel natural for me to explore or to use. Although I am unfamiliar with Web based technologies, my curiosity about these grows and grows. In addition to it, I am aware of the market place Web based programming takes. I would like to expand my knowledge and experience to the Web, though would it be just to know what I'm talking about instead of speculating whatever.
My experience as an information and process systems developer allows me to understand the concepts and some of the basics. I am aware that Web based applications are stateless, for instance, and that I need to use session or viewstate variables to keep the information the user is working with alive, otherwise I would loose them.
I also understand the basics of Ajax based controls such as the UpdatePanel, which is to update or to refresh only a part of a UI page rather than reloading everything through the connection again.
I can get that CSS defines styles for your page's sections and that you may change radically your Website's aspect just by changing the CSS reference.
I am also aware of masterpages, which I don't really understand, in fact.
Programming Model
I just watched this video about choosing the right model for me/my application:
Choosing the Right Programming Model
If looks like ASP.NET MVC, which I thought was the best approach, is more for the veteran Web developers, people who are comfortable with Web applications.
I have used a lot of DataBinding in Windows Forms, and WebForms seems to be more what I'm looking for into ASP.NET, until they say that MVC allows for Unit Testing, TDD and Agile methodologies, which I adhere to, as a certified Professional Scrum Master.
I'm a bit mixed up on what will be more natural for me speaking of programming model.
Questions
Taking into account my base of knowledge and my experience, what programming model do you think I'm going to be more comfortable with?
Will choosing one over the other allow me to get acquainted enough with ASP.NET to one day try the other model?
In the video about choosing the Programming Model both sat on ASP.NET, I heard about DataBinding while using Web Forms, but no mention of DataBinding in the MVC model. Is there any possible DataBinding in MVC?
Finally
I'm very confused about all of this ASP.NET stuff.
This is so subjective that it's likely to get closed and no matter what answer we give, it's likely to get downvotes as well as ups, BUT....
Given your familiarity with WinForms development I would say to go to WebForms if you want to get up and running as quickly as possible. Even if you eventually switch to MVC, you'll be more comfortable with WebForms at first while you learn the ins and outs of web development, so it will be less of a shock to your system.
And just so I don't get pegged as being biased by the others who will view this, I realize that there are many advantages to MVC, but in my own humble opinion, I think it's silly to get into a "Which is better" discussion. I'm giving this answer because he asked (paraphrasing) "which will be easier for me to grasp and get started with".
Edit I guess I only addressed the first two questions above...
For the third, databinding in MVC is a bit different, but not all that much. The data access under the hood is the same, but you control the output a lot more strictly.
See this other post for a quick glimpse at a good answer explaining how to do a simple "binding". The asker in this question was less familiar with MVC, and was asking how to do databinding on a drop-down list in MVC. The answer given was good, and pointed to a good article.
ASP.Net MVC framework and databinding
just go with asp.net mvc.
it will actually improve the way you write windows apps.
its a mistake to try and find the closest similar paradigm to what you are used to. Its almost better to have a completely different one as it will save getting confused by things that are similar but not quite the same.
basically webforms was microsofts attempt to make it easier to do web stuff coming from the windows world. But its akin to coming from a sailing background and developing a "car" that you control as if it was sail boat. You are simply better off learning how to drive a car, drive when you have to drive, sail when you have to sail.
so you will have to put in the effort to understand web stuff. Its not too hard, it can just take a bit of time. But there is a massive resource of knowledge to draw on.
basically come to web development with your cup empty ready to learn :)
I use WebForms and I came from VB6. It was weird at the start when I had to learn about the page cycle.
精彩评论