We've got a legacy, in-house, classic-ASP app that we are going to extend using either webforms or mvc. It currently works fast on a range of handhelds by using very bare-bones html and avoiding javascript/ajax etc... The original .net tenderers couldn't
satisfy our speed requirement so we went with a classic asp developer (we are wed to Microsoft).
I've just hired two experienced .net programmers with no asp.net mvc experience for a small project (3 months). I'm not a web developer but I feel that asp.net mvc is the right fit for our application and will give us the right foundation for our eventual
migration. However my .net programmers want to stick with what they are comfortable with. They have some good reasons.
1. They don't think they'll be up to speed fast enough to deliver the project on time.
2. Documentation is patchy.
3. The framework is in beta and there aren't many helpers so productivity is low compared with .net webforms
How long should it normally take a couple of experienced webform programmers to be productive in mvc? These guys don't really know html.
I think most people will find it hard to give a specific time and in fact I think that's impossible. However, you do have a lot of things that count in your favor. There are quite a few tutorials on MVC available and countless blog posts dealing with various
topics. You also have the community on these forums to answer questions, so I think that might invalidate your programmer's argument that documentation is patchy. Remeber that MVC is not a replacement for webforms, but an alternative. Many of the things you
do using webforms you still do in MVC, it's just the how that is different. Given that your programmers are experienced using ASP.NET, the learning curve should be less steep. And the fact that you have two people makes it easier because they can learn
together and from each other. As for not knowing HTML, it's just a mark-up language, and there are enough tutorials on the web to get started on the basics. MVC does offer finer control over the HTML that is being rendered, but again, this is a feature of
MVC and does not by default imply that you need to make use of it just because it's there.
I'm NOT saying that MVC is the best or right fit for your project, and the fact that it's still in Beta will have an influence on your decision because I would think that companies might have a difficult time signing off on something like that. I'm
just playing devil's advocate here. You mentioned that the project should only take 3 months. Have you considered other possibilities such as doing an MVC prototype after you've completed the project using webforms? Or if time constraints are too severe, maybe
trying to prototype one or two of the critical features of the project using MVC to see whether it is possible. That might give you a good idea of what to expect in terms of ramp-up time.
Again, these are just thoughts and opinions from my side - I'm neither suggesting nor trying to tell you what's right for your situation. I probably haven't given you the answer you were looking for, but perhaps just some other facts to consider.
I like to add that comming from years of webdevelopement in classic ASP where you do a lot of html (and of course javascript and css), going to MVC was a breeze. I could be productive right away!
However, learning WebForms and the page eventmodel (viewstate and what not) and how to add a dropdown inside a grid was horrifying pain and agony! I read somewhere on the net that it can take a developer years to grasp what is really going on on the WebForms
world. It seems to me that the leaky abstraction you get from dragging components to your page and attach events as you were working in a WinForms application, well, it can drive a developer to the brink of insanity. I honestly feel stupid for not grasping
webforms right away after taking the certification and using it for half a year. We switched to MVC and I cannot even begin to explain how much I appreciate MVC as a framework for building webapplications, and how I really want to stay clear of WebForms (if
I can).
Trying to add that your current asp developer (if he/she is still there) probably will find the MVC-path (more html centric) easier to work with, and the initial pages should be up and running just as fast as if you start off with WebForms. And when you
want a complex interface for your app, your devs might be able to get it done without having to shop the GUI of someone who has struggled with webforms the last decade (nearly).
I don't hate webforms, I just don't like the viewstate+page lifecycle+"faking winforms"-thingy. It leaks and its too much pain, and I'm too honest for my own good. [:$]
"There's no such thing as a silverbullet", The Werewolf anxiously answered the .Net developer.
(http://en.wikipedia.org/wiki/Silver_bullet)
Thanks Jacques for a very balanced answer. I'm not too worried about the beta because we've done so well with classic-ASP and MVC has much more.
Good idea about MVC prototyping - can webforms and MVC code coexist ok? During our lead time I've got one figuring out how to make webforms play nice with the handhelds & css and the other learning/testing mvc. They'll compare experiences and report back.
Since I've not coded in webforms or mvc myself, I probably should leave the decision up to the developers. I have to trust my recruitment choice. But I need to be careful they don't reject MVC just because it's unfamiliar yet I don't want to force MVC upon
them just because I like that sound of it (at the risk of putting the whole project months behind because of the learning).
About the learning time - I may as well be asking "how long is a piece of string?" I wasn't really expecting a hard answer. I suppose I'm interested in some experiences from webform only guys who made the switch and how long it took till they felt comfortable.
The idealist in my really wants it done in MVC but the pragmatist is thinking I'm going to have to choose webforms for the sake of getting this project done.
Hey skaue, you're too funny. Having a bit too much classic-ASP experience than I can be proud of I can totally relate - the little MVC I've seen seems awesome and straight forward to me. I was quite surprised today when I was called upon to explain ViewData
- the webform guys couldn't grok it. The best I could do was explain form posting & request() in classic-ASP. They were shocked and thought managing this stuff yourself was very tedious. I can only guess they don't appreciate the simplicity they've traded
away with webforms.
Unfortunately we don't have our classic-ASP programmer. We contracted out the classic-ASP development and when the lead developer went abroad, quality dipped unacceptably. I've got enough work to directly employ a couple of programmers. This project is a
trial.
This falls a little off topic, but the fact that ASP.Net WebForms developers don't want to "know about" the stateless world webdevelopement lives in, well it scares me. It is actually a bit funny that the "statefull" developement in WebForms scares me
even more. Take a look at this blogpost on the topic
MVC Pro's and Con's.
I believe that MVC will take over even more of the .Net developement that is done on web, and webdevelopers will always have to relate to html, javascript and css. Not GridView, DropDownList or what not. Same goes for php'ers for that matter.
"There's no such thing as a silverbullet", The Werewolf anxiously answered the .Net developer.
(http://en.wikipedia.org/wiki/Silver_bullet)
1) Learning curve. I picked up MVC in less than 2 weeks, working on it in my spare time (so, 1-2 hrs / day, max). Daytime was split between multiple other dev environments. It's *not* hard at all if you're a good developer already. The biggest hitch
is the philosophy, and that's well documented, and there's plenty of getting started stuff to get you through that.
2) Site conversion. Frankly, unless your current site is ASP-soup (which has happened in classic ASP more than once...) you can probably take your existing view pages and modify them only slightly in order to make them working MVC views. This is *huge*
in terms of saving you time, and it obviates their argument about not knowing html. Converting such pages to webforms will involve a lot more mods and you're pretty much going to scrap and start over; I know, I've done it before. If mobile is important to
you (as you suggest) then it's even harder.
3) If you have a guy (or guys) other than these two who are good at HTML or classic ASP, then you can split the work more easily. This is a *major* benefit to MVC is that you can split the work among your skillsets. IF your .Net guys are great C# or VB
devs, but don't know HTML, then don't make them do the Views, keep them on the models and controllers. That also reduces their ability to create an excuse.
Honestly, I really got irritated hearing your developers' response, but then I've always been prejudiced against timid developers. Half the fun of this job is jumping in head first and learning new things, to me. Maybe the answer is to hire a 3rd party
to act as a QA/mentor to these two for this project to bring them up to speed on the framework.
Paul
Help those who have helped you... remember to "Mark as Answered"
I could more than live with 2 weeks 1-2 hrs/day. I wonder what an average case is? What was your main source of learning material - http://asp.net/mvc videos and various blogs? I've ordered/downloaded a few preview and drafts of books.
Great point about site conversion. Our classic-ASP code already follows an MVC-esque pattern and should translate very easily. I didn't realize how straight forward the conversion of these views would be until you mentioned it. We've got our own class of
html helper functions that we'd need to update - in the meantime, they're written in vbscript and might translate to vb.net without too much hacking but then again might be just as easy to update to a more modern/mainstream view engine... This is a serious
plus in favor of asp.net mvc.
Some of their prejudice to change/learning new things could be because their on-going employment hinges on the success of this project. I've got to reassure them by assuming the risk of a time blow out/failure because of my preference for asp mvc. Hence
this post. I need to get a handle on approx how long the learning is should take.
Can't speak to the average, sorry. But yeah, I did most of my learning from the blogs. Videos were good too, but I found the blogs were easier to learn from for my learning style.
Help those who have helped you... remember to "Mark as Answered"
hedonismbot
Member
1 Points
8 Posts
asp.net mvc learning time (inside dev schedule)
Oct 22, 2008 04:50 AM|LINK
Hi
We've got a legacy, in-house, classic-ASP app that we are going to extend using either webforms or mvc. It currently works fast on a range of handhelds by using very bare-bones html and avoiding javascript/ajax etc... The original .net tenderers couldn't satisfy our speed requirement so we went with a classic asp developer (we are wed to Microsoft).
I've just hired two experienced .net programmers with no asp.net mvc experience for a small project (3 months). I'm not a web developer but I feel that asp.net mvc is the right fit for our application and will give us the right foundation for our eventual migration. However my .net programmers want to stick with what they are comfortable with. They have some good reasons.
1. They don't think they'll be up to speed fast enough to deliver the project on time.
2. Documentation is patchy.
3. The framework is in beta and there aren't many helpers so productivity is low compared with .net webforms
How long should it normally take a couple of experienced webform programmers to be productive in mvc? These guys don't really know html.
TIA
learning time mvc classic asp migration
jeloff
Contributor
2493 Points
432 Posts
Microsoft
Re: asp.net mvc learning time (inside dev schedule)
Oct 22, 2008 09:01 AM|LINK
Hi
I think most people will find it hard to give a specific time and in fact I think that's impossible. However, you do have a lot of things that count in your favor. There are quite a few tutorials on MVC available and countless blog posts dealing with various topics. You also have the community on these forums to answer questions, so I think that might invalidate your programmer's argument that documentation is patchy. Remeber that MVC is not a replacement for webforms, but an alternative. Many of the things you do using webforms you still do in MVC, it's just the how that is different. Given that your programmers are experienced using ASP.NET, the learning curve should be less steep. And the fact that you have two people makes it easier because they can learn together and from each other. As for not knowing HTML, it's just a mark-up language, and there are enough tutorials on the web to get started on the basics. MVC does offer finer control over the HTML that is being rendered, but again, this is a feature of MVC and does not by default imply that you need to make use of it just because it's there.
I'm NOT saying that MVC is the best or right fit for your project, and the fact that it's still in Beta will have an influence on your decision because I would think that companies might have a difficult time signing off on something like that. I'm just playing devil's advocate here. You mentioned that the project should only take 3 months. Have you considered other possibilities such as doing an MVC prototype after you've completed the project using webforms? Or if time constraints are too severe, maybe trying to prototype one or two of the critical features of the project using MVC to see whether it is possible. That might give you a good idea of what to expect in terms of ramp-up time.
Again, these are just thoughts and opinions from my side - I'm neither suggesting nor trying to tell you what's right for your situation. I probably haven't given you the answer you were looking for, but perhaps just some other facts to consider.
Jacques
skaue
Member
157 Points
108 Posts
Re: asp.net mvc learning time (inside dev schedule)
Oct 22, 2008 09:50 AM|LINK
I like to add that comming from years of webdevelopement in classic ASP where you do a lot of html (and of course javascript and css), going to MVC was a breeze. I could be productive right away!
However, learning WebForms and the page eventmodel (viewstate and what not) and how to add a dropdown inside a grid was horrifying pain and agony! I read somewhere on the net that it can take a developer years to grasp what is really going on on the WebForms world. It seems to me that the leaky abstraction you get from dragging components to your page and attach events as you were working in a WinForms application, well, it can drive a developer to the brink of insanity. I honestly feel stupid for not grasping webforms right away after taking the certification and using it for half a year. We switched to MVC and I cannot even begin to explain how much I appreciate MVC as a framework for building webapplications, and how I really want to stay clear of WebForms (if I can).
Trying to add that your current asp developer (if he/she is still there) probably will find the MVC-path (more html centric) easier to work with, and the initial pages should be up and running just as fast as if you start off with WebForms. And when you want a complex interface for your app, your devs might be able to get it done without having to shop the GUI of someone who has struggled with webforms the last decade (nearly).
I don't hate webforms, I just don't like the viewstate+page lifecycle+"faking winforms"-thingy. It leaks and its too much pain, and I'm too honest for my own good. [:$]
(http://en.wikipedia.org/wiki/Silver_bullet)
hedonismbot
Member
1 Points
8 Posts
Re: asp.net mvc learning time (inside dev schedule)
Oct 22, 2008 11:11 AM|LINK
Thanks Jacques for a very balanced answer. I'm not too worried about the beta because we've done so well with classic-ASP and MVC has much more.
Good idea about MVC prototyping - can webforms and MVC code coexist ok? During our lead time I've got one figuring out how to make webforms play nice with the handhelds & css and the other learning/testing mvc. They'll compare experiences and report back.
Since I've not coded in webforms or mvc myself, I probably should leave the decision up to the developers. I have to trust my recruitment choice. But I need to be careful they don't reject MVC just because it's unfamiliar yet I don't want to force MVC upon them just because I like that sound of it (at the risk of putting the whole project months behind because of the learning).
About the learning time - I may as well be asking "how long is a piece of string?" I wasn't really expecting a hard answer. I suppose I'm interested in some experiences from webform only guys who made the switch and how long it took till they felt comfortable.
The idealist in my really wants it done in MVC but the pragmatist is thinking I'm going to have to choose webforms for the sake of getting this project done.
mvc prototyping coexist learning decision pragmatic ideal
hedonismbot
Member
1 Points
8 Posts
Re: asp.net mvc learning time (inside dev schedule)
Oct 22, 2008 11:40 AM|LINK
Hey skaue, you're too funny. Having a bit too much classic-ASP experience than I can be proud of I can totally relate - the little MVC I've seen seems awesome and straight forward to me. I was quite surprised today when I was called upon to explain ViewData - the webform guys couldn't grok it. The best I could do was explain form posting & request() in classic-ASP. They were shocked and thought managing this stuff yourself was very tedious. I can only guess they don't appreciate the simplicity they've traded away with webforms.
Unfortunately we don't have our classic-ASP programmer. We contracted out the classic-ASP development and when the lead developer went abroad, quality dipped unacceptably. I've got enough work to directly employ a couple of programmers. This project is a trial.
classic-ASP simplicity ViewData MVC webforms
skaue
Member
157 Points
108 Posts
Re: asp.net mvc learning time (inside dev schedule)
Oct 22, 2008 12:03 PM|LINK
This falls a little off topic, but the fact that ASP.Net WebForms developers don't want to "know about" the stateless world webdevelopement lives in, well it scares me. It is actually a bit funny that the "statefull" developement in WebForms scares me even more. Take a look at this blogpost on the topic MVC Pro's and Con's.
I believe that MVC will take over even more of the .Net developement that is done on web, and webdevelopers will always have to relate to html, javascript and css. Not GridView, DropDownList or what not. Same goes for php'ers for that matter.
(http://en.wikipedia.org/wiki/Silver_bullet)
paul.vencill
Contributor
6716 Points
1358 Posts
Re: asp.net mvc learning time (inside dev schedule)
Oct 22, 2008 05:30 PM|LINK
So, let me answer some of your concerns:
1) Learning curve. I picked up MVC in less than 2 weeks, working on it in my spare time (so, 1-2 hrs / day, max). Daytime was split between multiple other dev environments. It's *not* hard at all if you're a good developer already. The biggest hitch is the philosophy, and that's well documented, and there's plenty of getting started stuff to get you through that.
2) Site conversion. Frankly, unless your current site is ASP-soup (which has happened in classic ASP more than once...) you can probably take your existing view pages and modify them only slightly in order to make them working MVC views. This is *huge* in terms of saving you time, and it obviates their argument about not knowing html. Converting such pages to webforms will involve a lot more mods and you're pretty much going to scrap and start over; I know, I've done it before. If mobile is important to you (as you suggest) then it's even harder.
3) If you have a guy (or guys) other than these two who are good at HTML or classic ASP, then you can split the work more easily. This is a *major* benefit to MVC is that you can split the work among your skillsets. IF your .Net guys are great C# or VB devs, but don't know HTML, then don't make them do the Views, keep them on the models and controllers. That also reduces their ability to create an excuse.
Honestly, I really got irritated hearing your developers' response, but then I've always been prejudiced against timid developers. Half the fun of this job is jumping in head first and learning new things, to me. Maybe the answer is to hire a 3rd party to act as a QA/mentor to these two for this project to bring them up to speed on the framework.
Paul
hedonismbot
Member
1 Points
8 Posts
Re: asp.net mvc learning time (inside dev schedule)
Oct 23, 2008 12:33 AM|LINK
Paul,
I could more than live with 2 weeks 1-2 hrs/day. I wonder what an average case is? What was your main source of learning material - http://asp.net/mvc videos and various blogs? I've ordered/downloaded a few preview and drafts of books.
Great point about site conversion. Our classic-ASP code already follows an MVC-esque pattern and should translate very easily. I didn't realize how straight forward the conversion of these views would be until you mentioned it. We've got our own class of html helper functions that we'd need to update - in the meantime, they're written in vbscript and might translate to vb.net without too much hacking but then again might be just as easy to update to a more modern/mainstream view engine... This is a serious plus in favor of asp.net mvc.
Some of their prejudice to change/learning new things could be because their on-going employment hinges on the success of this project. I've got to reassure them by assuming the risk of a time blow out/failure because of my preference for asp mvc. Hence this post. I need to get a handle on approx how long the learning is should take.
Thanks
paul.vencill
Contributor
6716 Points
1358 Posts
Re: asp.net mvc learning time (inside dev schedule)
Oct 23, 2008 01:25 AM|LINK
Can't speak to the average, sorry. But yeah, I did most of my learning from the blogs. Videos were good too, but I found the blogs were easier to learn from for my learning style.