While I understand some of the technical merits for using mvc, I could leverage the work of third party control vendors to get graphics and features that are not part of the standard control set. How do the advantages of mvc outweigh the disadvantages now I
need to spend even more time developing graphics and specialized controls because even though telerik is trying for example to bridge the gap with mvc offerings I see this as not profitable for third party developers. In short web site development just became
much more costly, how should this be explained to business managers? What am I missing?
In short web site development just became much more costly
This is not entirely true. There are a range of client side controls that work with asp.net mvc and overall there are several places where mvc enhances productivity over webforms. The model binder is a great example of that, instead of developers spending
extra time writing left to right assignment code to populate business objects, the binder does it automatically. MVC also has a scaffolder which makes building crud pages incredibly fast.
Is there a learning curve? Yes there is, but I'd wager that any decent mvc developer can build a website just as quickly as a web forms developer can. The 3rd party control for webforms do offer nice graphics, but so do the client side or mvc controls so
i see that as a non issue.
Lastly, Microsoft has it clear that webforms isn't going anywhere so if your particular development team works well with web forms then you should stick with that, but if you want to be closer to the metal and build more robust javascript heavy websites,
then mvc is a better bet. This is especially important with the growing popularity of single page apps and mobile apps (both tedious with webforms and incredibly easy with mvc).
NOW all mayor producers are producing controls for Mvc......so your assertion is false: in particular The Mvc Controls Toolkit(I am the coordinator of) was built specifically for Mvc...and its controls have nothing less than webform controls. Moreover, Telerik
controls are quite good and improved a lot from their initial version...difficult for me to understand why all these control "doesn't help" developers...
About the fact that producing a web site with Mvc costs more....probably this is due to organization problems.
The point is that "asp.net Mvc" is a more professional tool oriented to "professionals" or to people that would like to acquire a good knowledge of Web programming. This means, that while "anyone" can make something "running" in webforms...the same is not true
with Mvc. Asp.net Mvc requires organization of the code and knowledge of the web. However the stuffs that "anyone" is able to produce with asp.net mvc in a few minutes...have almost no commercial value....if one needs to implement a serious project...it is
not possible to implemt it in a few minuts also with webforms...
ON THE CONTRARY Mvc helps in obtaining a modulare, well organized software that is easy to mantain.
Summing up:
Mvc requires all partecipants to a project be "true developers"
Mvc force them to develop a well organized modular easy to mantain software
The speed you thing you might obtain with webforms is just illusory...
You can do faster just because webforms allow you to make unorganized, confused software that do "something near to" customer specifications if the target code is simple.....Now if you want something Good, and Complex out of Webforms...you have to spend
Time and use "true developers"...as with Mvc
Obviously, if a company would like to use cheap, not skilled "developers" and don't want to invest in "knowledge"...Mvc might appear expansive.....but does someone actually thing that there is...room in the market for low level products produced by low level
teams? I think ...not bcesuse very simple web sites can be implemeted easily by just a graphic designer with a CMS...with no additional programming...and the remainder of the market..doesn't accept low level products due to the globalization and high level
of competition of the field.
I am attempting to quantify the costs associated with web forms vs mvc. Most of the "case studies" that could be found online restate the benefits unit testing, SOC, elimination of view and the abstraction provided by the web page/form model. Have there been
any actual side by side comparisons of the same development team with both technologies? Beyond being the cool new technology, I can't find any objective data to support switching technologies for new product development, data that management requires in order
to make an informed decision. What have I discovered so far? 1) page mode abstraction (bad) direct access to http pipeline (good). C# abstraction for IL but no complaints about that one? 2) unit testing is in fact good but most organizations do not invest
in the sort of resources available to make this work and teaching developers to create good unit tests is harder than it looks 3) the assertion that the use of patterns equals better performing code? Bad code can be generated either way and overuse of patterns
can lead to harder to debug code as the necessary complexity to create loosely coupled components defers more decisions to runtime and therefor harder to fix and analyze for performance issues I can see where this may be useful for very large high volume sites
but I don't see where at the moment the average LOB application fits this mold. Opinions welcome.
I can't find any objective data to support switching technologies for new product development, data that management requires in order to make an informed decision.
In my opinion you will not find . Why ? Because that means same team ( with SAME knowledge of both technologies!) make same product twice. More, you will not find how difficult is to make VERSION 2 of the product in MVC and WebForms .
In my opinion, not management should know about technical details( MVC or WebForms) . Do you inform management if you use repeater or gridview? ( if yes, is technical architect, not management!)
The management should be informed about how much does it costs( man/hour) the development and support of features of the product. And that depend on the skills of your developers, not on the MVC or WebForms. If you developers have small idea of HTML / Javascript
, then WebForms is the answer.
2.
netnic
the assertion that the use of patterns equals better performing code? Bad code can be generated either way
Oh.
Let me put this way: You have a WebForms, with Page_InitializeCulture event for globalization, Page_Init for dynamic controls, Page_Load for loading data and a GridView_RowBound event to format the grid row.
IN a row you have a button that performs a command . The management wants you , for version 2, to not refresh the page when clicking the button.
YOu decide to put an update panel to performa ajax post. Now, fast, tell me the events order!
3. To resume the discussion - this is my rule of thumb:
a. For an intranet site, to deploy and get the money fast , use WebForms
b. For an internet site, in which the bandwith and upgrading and maintenance is important, use MVC.
I am more optimistic than Andrei ..maybe you find a comparative study between Mvc, and Webforms....however it will not be significative of what happens on a ACTUAL project. It is an old strory....comparisons among development techniques are not reliable
for the following reasons:
1) They are done on TOY projects(also if the authors...say thery have setup an ACTUAL project), while the BIG problems are on complex ACTUAL projects. As suggested by Andrei IT COST TOO MUCH doing it on an actual project...
2) If the team that performs the two projects is THE SAME then the technology that will be tried AFTER, has an advantage...because it will benefit from the experience on the subject gained while desenvolving the project with the first technique
3) if one try to avoid problem 2 either by changeing the Team, or by changing the project...than it is impossible to prove either that the two teams have the same skills, or that the two projects have the same level of difficulty.
The only stuffs that are reliable are statistical data taken over several teams, and several projects...this way differences tend to cancel out for the laws of big numbers.
So take balance sheet data of companies working with web forms and Mvc and compare them against some finacial indices set...to have a measure of their success.
On the other side if you would like a comparison on a TOY project you can set up a comparison yourself in a few days. I do this experiment each time I train a team before starting a project, to make they "catch the feel" of Webforms and
Mvc:
1) Choose a simple problem like CRUD on a list of customers, each with a list of order. Keep it very simple..the order will have just a description and an amount,...just two DB tables with a 1 to many relation.
2) Ask them to implement CRUD with web forms...with no "constraints". They should be able to implement it in less than 4 hours.
3) Ask them to do the same in Mvc...without using any scaffolding, but with at least the following requirements:
Well done Css organization. A graphic designer with no knowledge of Mvc ..must be able to style the whole application easily
Complete error handling on all pages, both on server side and on client side.
All strings must be stored in resource file, with No duplication. This means there will be just one label for the Name of the customer that will be used in all forms, and stored into an unique place in the resource file....and so on
It will take less than a couple of days to complete this job for 1 person
4) Ask them to modify the webform project to conforms with the above specifications. ....he he :) . After having played a little with the first version of the webform project for sure they will decide...to restart it from the scratch...The time needed to
complete...WILL NOT BE LESS THAN the one required to complete the Mvc project.
netnic
Member
32 Points
11 Posts
Third party controls not supported by mvc?
Mar 23, 2012 09:06 PM|LINK
ignatandrei
All-Star
135174 Points
21682 Posts
Moderator
MVP
Re: Third party controls not supported by mvc?
Mar 23, 2012 09:11 PM|LINK
1.
What?! Why ?
2.
Why do you see as not profitable ?!
3.
Third party controls WEBFORMS are not supported by MVC.
Other controls yes, like http://mvccontrolstoolkit.codeplex.com/.
4. In short: what are you missing from WebForms in MVC?
CodeHobo
All-Star
18647 Points
2647 Posts
Re: Third party controls not supported by mvc?
Mar 23, 2012 09:18 PM|LINK
This is not entirely true. There are a range of client side controls that work with asp.net mvc and overall there are several places where mvc enhances productivity over webforms. The model binder is a great example of that, instead of developers spending extra time writing left to right assignment code to populate business objects, the binder does it automatically. MVC also has a scaffolder which makes building crud pages incredibly fast.
Is there a learning curve? Yes there is, but I'd wager that any decent mvc developer can build a website just as quickly as a web forms developer can. The 3rd party control for webforms do offer nice graphics, but so do the client side or mvc controls so i see that as a non issue.
Lastly, Microsoft has it clear that webforms isn't going anywhere so if your particular development team works well with web forms then you should stick with that, but if you want to be closer to the metal and build more robust javascript heavy websites, then mvc is a better bet. This is especially important with the growing popularity of single page apps and mobile apps (both tedious with webforms and incredibly easy with mvc).
Blog | Twitter : @Hattan
francesco ab...
All-Star
20912 Points
3279 Posts
Re: Third party controls not supported by mvc?
Mar 24, 2012 08:39 AM|LINK
In addi\tion to Andrei:
NOW all mayor producers are producing controls for Mvc......so your assertion is false: in particular The Mvc Controls Toolkit(I am the coordinator of) was built specifically for Mvc...and its controls have nothing less than webform controls. Moreover, Telerik controls are quite good and improved a lot from their initial version...difficult for me to understand why all these control "doesn't help" developers...
About the fact that producing a web site with Mvc costs more....probably this is due to organization problems.
The point is that "asp.net Mvc" is a more professional tool oriented to "professionals" or to people that would like to acquire a good knowledge of Web programming. This means, that while "anyone" can make something "running" in webforms...the same is not true with Mvc. Asp.net Mvc requires organization of the code and knowledge of the web. However the stuffs that "anyone" is able to produce with asp.net mvc in a few minutes...have almost no commercial value....if one needs to implement a serious project...it is not possible to implemt it in a few minuts also with webforms...
ON THE CONTRARY Mvc helps in obtaining a modulare, well organized software that is easy to mantain.
Summing up:
Mvc requires all partecipants to a project be "true developers"
Mvc force them to develop a well organized modular easy to mantain software
The speed you thing you might obtain with webforms is just illusory...
You can do faster just because webforms allow you to make unorganized, confused software that do "something near to" customer specifications if the target code is simple.....Now if you want something Good, and Complex out of Webforms...you have to spend Time and use "true developers"...as with Mvc
Obviously, if a company would like to use cheap, not skilled "developers" and don't want to invest in "knowledge"...Mvc might appear expansive.....but does someone actually thing that there is...room in the market for low level products produced by low level teams? I think ...not bcesuse very simple web sites can be implemeted easily by just a graphic designer with a CMS...with no additional programming...and the remainder of the market..doesn't accept low level products due to the globalization and high level of competition of the field.
Mvc Controls Toolkit | Data Moving Plug-in Videos
netnic
Member
32 Points
11 Posts
Re: Third party controls not supported by mvc?
Mar 25, 2012 02:26 AM|LINK
ignatandrei
All-Star
135174 Points
21682 Posts
Moderator
MVP
Re: Third party controls not supported by mvc?
Mar 25, 2012 05:37 AM|LINK
1.
In my opinion you will not find . Why ? Because that means same team ( with SAME knowledge of both technologies!) make same product twice. More, you will not find how difficult is to make VERSION 2 of the product in MVC and WebForms .
In my opinion, not management should know about technical details( MVC or WebForms) . Do you inform management if you use repeater or gridview? ( if yes, is technical architect, not management!)
The management should be informed about how much does it costs( man/hour) the development and support of features of the product. And that depend on the skills of your developers, not on the MVC or WebForms. If you developers have small idea of HTML / Javascript , then WebForms is the answer.
2.
Oh.
Let me put this way: You have a WebForms, with Page_InitializeCulture event for globalization, Page_Init for dynamic controls, Page_Load for loading data and a GridView_RowBound event to format the grid row.
IN a row you have a button that performs a command . The management wants you , for version 2, to not refresh the page when clicking the button.
YOu decide to put an update panel to performa ajax post. Now, fast, tell me the events order!
3. To resume the discussion - this is my rule of thumb:
a. For an intranet site, to deploy and get the money fast , use WebForms
b. For an internet site, in which the bandwith and upgrading and maintenance is important, use MVC.
francesco ab...
All-Star
20912 Points
3279 Posts
Re: Third party controls not supported by mvc?
Mar 25, 2012 10:52 AM|LINK
I am more optimistic than Andrei ..maybe you find a comparative study between Mvc, and Webforms....however it will not be significative of what happens on a ACTUAL project. It is an old strory....comparisons among development techniques are not reliable for the following reasons:
1) They are done on TOY projects(also if the authors...say thery have setup an ACTUAL project), while the BIG problems are on complex ACTUAL projects. As suggested by Andrei IT COST TOO MUCH doing it on an actual project...
2) If the team that performs the two projects is THE SAME then the technology that will be tried AFTER, has an advantage...because it will benefit from the experience on the subject gained while desenvolving the project with the first technique
3) if one try to avoid problem 2 either by changeing the Team, or by changing the project...than it is impossible to prove either that the two teams have the same skills, or that the two projects have the same level of difficulty.
The only stuffs that are reliable are statistical data taken over several teams, and several projects...this way differences tend to cancel out for the laws of big numbers. So take balance sheet data of companies working with web forms and Mvc and compare them against some finacial indices set...to have a measure of their success.
On the other side if you would like a comparison on a TOY project you can set up a comparison yourself in a few days. I do this experiment each time I train a team before starting a project, to make they "catch the feel" of Webforms and Mvc:
1) Choose a simple problem like CRUD on a list of customers, each with a list of order. Keep it very simple..the order will have just a description and an amount,...just two DB tables with a 1 to many relation.
2) Ask them to implement CRUD with web forms...with no "constraints". They should be able to implement it in less than 4 hours.
3) Ask them to do the same in Mvc...without using any scaffolding, but with at least the following requirements:
It will take less than a couple of days to complete this job for 1 person
4) Ask them to modify the webform project to conforms with the above specifications. ....he he :) . After having played a little with the first version of the webform project for sure they will decide...to restart it from the scratch...The time needed to complete...WILL NOT BE LESS THAN the one required to complete the Mvc project.
Mvc Controls Toolkit | Data Moving Plug-in Videos