|
Well, I have spent a year with Spring Framework (java), ASP.Net MVC is light years ahead of Spring Framework! What I have seen of both Ruby and Django, they also have a huge leg up on Java. For me, having a tight integration between the template language and the core language is vital to get the most out of the MVC, not something you have in the Java world
|
|
|
|
|
I have done extensive research on the very question you have posed as I have faced the same problem; should I move to MVC or keep working with Web-Forms. This question took me nearly two years to resolve since I had to decide where my career skills would be most benefited. Since I have been in the field for a very long time this decision was more than just where a specific project may lead but more importantly how I wanted my skill-set to develop since you cannot really concentrate on both; you just don't have the time.
All this being said here is my answer to your question...
In a word, stay with Web-Forms. Now here is the "why"...
MVC is an excellent paradigm to work with. It is well crafted and makes a lot of sense from a technical perspective. However, that is all it does. It offers absolutely no benefit to a project's business requirements and nor to the company's IT department as a whole in general. And this is MVC's biggest drawback.
If you look at every positive reply posted here you will find that practically none will support a benefit to a project's business requirements.
True, Web-Forms can be a bear at times to work with but developing with Web-Forms is much easier with far less client-side coding involved, which is more difficult to test. And JavaScript is a horrendous language to work with; not because it is a bad language in of itself but the actual front-end support for debugging and working with it is still rather crude. jQuery makes some of it much easier but adds a truck load of raw code that has to be transferred over the wires to your front-end. And you have to learn how to use jQuery well to make it worth your while.
MVC is also very limited in what you can do with the front-end when compared to what Web-Forms offers in terms of server-controls. Yes, they can be weighty but so will your MVC when you find how much you have to code from scratch to make it worthwhile.
If you decide upon MVC you do it because you and your team will enjoy working with it and you understand its inherent limitations, especially when your project may be up against a deadline with a boat load of user requested features. Its a paradigm with a very nice framework. However, that is all it is.
You can do the same and even more with Web-Forms with less overall effort.
In terms of performance, there is absolutely no difference in terms of overall application performance as both methodologies have their own performance negatives. And you can develop a very slow MVC application with a very fast Web-Forms application running right next to it.
MVC will also not prevent you from poor coding practices, which can be found in any type of project no matter the paradigm being used. And you can develop a very nice modular-based Web-Forms application with nearly the same style as that used with MVC. I do it all the time.
MVC has been popularized by the younger and newer technicians to the IT field. And its "cool" to use new technology. However, most new technologies these days are highly redundant and really offer very little in terms of better development practices or performance gains because no matter what you use on the Internet you are still interfacing with 1970s technology in terms of Internet architecture.
Steve Naidamast
Black Falcon Software, Inc.
blackfalconsoftware@outlook.com
|
|
|
|
|
Thanks, Steve.
From what I've seen, beyond religion (the coolness factor, etc.) what I've seen thus far about performance is the complaint about the weight of webform viewstate & server side postbacks. Shifting to a client-centric paradigm with javascript & jquery might have some advantages in that regard, but for just the reasons you've mentioned I'm not at all wild about a significant chunk of my codebase being client side javascript. And yeah, browsers are a crappy, pseudo-green-screen 1970s develpment platform to begin with.
|
|
|
|
|
Ah I see you have posted it here - have another upvote.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
I have been researching the same thing, and wrote a reference application in MVC and Razor for us to use. But before I actually got to recoding all of our applications, we noticed that Web API had gotten popular and was what was really needed to write for smart phones and implement all of the latest flashy glitzy stuff on the web in JavaScript. I had been thinking of using WCF and web services a few years ago, but Web API is so much easier and cleaner. So, my current track is to write an MVC Web API that matches the CRUD classes we have been using, then writing clients for our applications in JavaScript and AngularJS, using jQuery AJAX calls to get and put the data via a Web API. AngularJS data binding is similar to that in XAML for Silverlight and Windows Phone and is getting to be much more popular than Knockout. The main advantage is that, once you have a Web API, you can write clients for phones and desktops without changing the back end. The server part no longer needs MVC to present data to web pages, so all my work with Razor is being discarded. Silverlight, which I was going to use for SharePoint versions of the apps, has been deprecated, so that has also been discarded, although the XAML experience might come in handy, if I ever write a native front end client for Windows Phone. Of course, we long ago lost the ability to code visually, and lots of people are sad about that. However, there are more IDEs and tools springing up to make coding in JavaScript easier. I am still learning. Hopefully, I will actually be able to implement what I learn before it gets obsoleted yet again.
|
|
|
|
|
Bruce Patin wrote: Hopefully, I will actually be able to implement what I learn before it gets
obsoleted yet again.
That's always the challenge, isn't it?
I'm hoping there's a decent path to mvc that doesn't require becoming a full time javascript programmer. I still find client side coding to be a primative experience from a development point of view, and it's easy to go down the rabbit hole of the various browser bugs and quirks.
Some of the replies have said you can also get good performance using a server side approach, I'm hoping that's the case.
|
|
|
|
|
It looks like the previous responders have covered this pretty well. I recently had to make this decision for a project, and I went with MVC. Based on my experience, one scenario in which I might consider Web Forms over MVC would be if I had deal with heavy use of 3rd Party controls (DevExpress, Telerik, etc). Even in that scenario, at least DevExpress provides MVC extensions that are easy to implement for the most part.
|
|
|
|
|
We're using DevExpress controls, and while I like their functionality, they're very heavy.
Also, I read that their mvc controls are actually built on top of the web controls, view state and all, so I'm not sure if I'd use them in an mvc app or not.
|
|
|
|
|
There are some benefits to MVC, but if they are worth it or not depends on you (and your team).
In general terms, WebForms has gone to great lengths to abstract away the web portion of development. Also, there is a tendency for many developers to mix the business logic and the display logic together. (And in all honesty, sometimes it is hard to not mix them from my point of view.)
As for using AJAX, WebForms makes the easiest stuff easier, and much beyond that harder. (And the hard stuff near impossible.) While MVC doesn't try to hide as much from you and thus many actually find it easier in the long run.
Now for database work, along with MVC comes the WebAPI which makes it easy to create a service that can be consumed by clients not coming from the .NET sphere. (This is only good if you actually have others trying to consume your data.)
From my perspective, there is also more demand for developers who know MVC. It is the latest shiny thing that gets jobs. And being employable by the next company is always a concern for me. So if I have a chance to progress my resume while working for my employer, I take that opportunity. One could argue that in enough years, it will be easier to find someone to maintain MVC than WebForms.
|
|
|
|
|
I know that I personally embraced web development only after asp.net and web forms arrived on the scene, for the exact same reason that you mentioned. It abstracted html / http development (which was an incredibly bad thing to have turn into the de facto development platform) and made it feel like normal application programming. Some of the things that were used to accomlpish this sleight of hand (view state appears to be the front runner) also contribute to poor performance, hence mvc. Or at least so I've surmised thus far.
I still think writing a serious application in a browser is patently bad idea, but like you, I get paid to give the people what they want. So, most of my work is web develoopment. Like you, I also care about the future, so your point about Mvc is also relevant. Of course, honor requires that I first serve the needs of the people who pay me, but if I can do that and serve myself at the same time, everybody wins.
Nonetheless, there's a reason web forms provided an abstraction layer on top of html. Not at all enthusiastic about entering the wild, wild west of native html / javascript and the wonderful world of browser incompatibilities.
Write once, debug everywhere.
|
|
|
|
|
I don't have the time to read everyone else's replies, but here's my 2 cents. WebForms was an attempt to copy the 90s desktop GUI model, and put it on top of a stateless protocol (http). This is why for every UI element, you have both a server control and a client control. In my experience, web forms is awful. The viewstate is ugly. The page postback model is not straight forward. Attempting to sync between client and server controls can be brittle. Everything seems to just sneak in a little hack in (ScriptManager.RegisterStartupScript, etc.) here or there to keep everything working. It's prone to many errors related only to the plumbing.
MVC is simple, clean, fast and based directly on the standards that the web was built on, and that it's using going forward. The conversion isn't difficult once you get comfortable with MVC. Your ui state is in the ui, your data model is in the data layer, and your services and controllers are the middle men. There are TONS of modern options better than webforms. Stay away.
|
|
|
|
|
|
Life is the only incurable disease...
I'm not questioning your powers of observation; I'm merely remarking upon the paradox of asking a masked man who he is (V).
|
|
|
|
|
sexually transmitted.
I'd rather be phishing!
|
|
|
|
|
I'm immortal.
So far...
“I believe that there is an equality to all humanity. We all suck.” Bill Hicks
|
|
|
|
|
Believers of re-incarnation says - Everyone dies at the end and reborn's.
Thanks,
Ranjan.D
|
|
|
|
|
I believe I was reborn 4 times already. At the birth of my kids
I'm not questioning your powers of observation; I'm merely remarking upon the paradox of asking a masked man who he is (V).
|
|
|
|
|
Yes you are right to an extent. Your kids do inherit your attributes and behaviors and look alike Oh this isn't programming
Ranjan.D
|
|
|
|
|
|
Yes we all , includes me , you and all living entities. Some where I read, Our life is required for a soul to experience. Our soul had some desires and in-order to fulfill that we are born, die and reborn. Hmm not too much of philosophy in evening
Thanks,
Ranjan.D
|
|
|
|
|
So you don't believe in reincarnation ?
"If A is a success in life, then A=x+y+z. (Work is x; y is play; and z is keeping your mouth shut.)"
|
|
|
|
|
I do believe in and that's one reason why I started recalling and bringing back the reincarnation things in here.
Ranjan.D
|
|
|
|
|
It starts the day you're born!
|
|
|
|
|
Not everyone...
"If you think it's expensive to hire a professional to do the job, wait until you hire an amateur." Red Adair.
Those who seek perfection will only find imperfection
nils illegitimus carborundum
me, me, me
me, in pictures
|
|
|
|
|
"No one here gets out alive" -- Jim Morrison
"Life; don't talk to me about life." -- Marvin
|
|
|
|
|