views:

667

answers:

11

I'm developing a website , job portal. I have 2-3 years of ASP.NET webform development experience, I want to create a professional job portal site (to improve and learn more) but trying to decide on best architecture. Any suggestions or advice will help...

Thanks

+4  A: 

Well, there are a number of ways to answer this question, and I'm sure many others will chime in. I'll just say that since your goal is to improve and learn more, and you already have 2-3 years of webform experience, this might be a good opportunity for you to learn MVC. Then you will have experience in both, and can make more informed decisions regarding the best architecture for future projects.

Happy learning!

Scott Ewers
+1  A: 

Use ASP.NET MVC if you want to:

  • learn the ASP.NET MVC framework
  • use jQuery or similar libraries
  • really learn web-languages (HTML, CSS, JavaScript)
  • use Test Driven Development
  • have a clean separation of concerns

If you don't have the time or will to learn to use the ASP.NET MVC framework correctly, stick with ASP.NET WebForms.

BengtBe
You can't use jQuery with webforms?
Jess
Yes you can, however it is much simpler with ASP.NET MVC, since you have larger control over the HTML, especially the ID attribute. BTW in ASP.NET 4.0 you can use the ClientId property to set the ID, this is an improvement. Also jQuery is included in the ASP.NET MVC project template.
BengtBe
+1  A: 

It really depends on what the end goal of the application is. As Scott Ewers said, if your goal is to learn, then using ASP.NET MVC will expand your breadth of knowledge in the ASP.NET space (since you already know web forms).

Additionally, if this is going to be a public product, you can leverage the testability benefits of MVC and run automated unit tests. Key ideas like Separation of Concerns can also increase long-term scalability and maintainability.

The primary reason why you might choose web forms is if you are rapidly prototyping the job board application. As you know, web forms allows you to drag-and-drop components onto the canvas to quickly create some basic data entry functionality.

YeahStu
A: 

There is a herding code podcast from May 13 on the subject.

Herding Code 47: Joe Brinkman on Webforms vs ASP.NET MVC.

gimel
A: 

I also agree that choosing MVC would have the advantage of allowing you to expand your knowledge. That not being the only reason, given the choice as well I just finished a small MVC project (my first) and let me tell you MVC rocks! Its a great framework which I feel gives you more flexibility and at the same time out-of-the-box tools to create a web app quickly and painlessly. It was my first experience with VS2008 & .NET FW 3.5 & LINQ, and all the guides at www.asp.net helped me go forward quickly (especially the free tutorial chapter from an MVC 1.0 book mentioned here).

I also got to learn JQuery along the way, as it is very much integrated into these new technologies.

One think to take note though is that this being a new tech, version 2 is already being cooked up, so if your project is for the long run, have that in mind and plan accordingly (in my case, being a small project, I'll probably try upgrading my project to version 2 when its officially released). Yet at the same time, having a fully MS (and thus MSDN) supported version 1 was a godsend for me...

Good luck!

Rodolfo G.
The guide I mention dedicates a few pages into TDD, and guides you step by step, with explanations, into how to setup and use a Test Unit project... Very helpful!
Rodolfo G.
A: 

I have good experience in Jquery, CSS, HTML, Javascript but not in TDD.

I have time..and willing to learn MVC but wasn't sure MVC is good choice for Job portal or similar site..

if you have good experience with JQuery, CSS, HTML you should go for MVC. Don't see why MVC should not be suitable for a Job portal site
BengtBe
A: 

This can be considered a shameless self-advertisement but here is my quiz on how to choose between the two: http://sietch.net/ViewNewsItem.aspx?NewsItemID=101

Stilgar
A: 

My answer is almost always "ASP.NET MVC." The amount of flexibility and features and testability and maintainabilty and ... heavily outweigh WebForms.

WebForms has the advantages of a rich ecosystem of existing controls and documentation, and is really powerful for some kinds of tasks (complex, multi-form interactions), but I find its limitations get in the way far too often. You have to mold yourself to it.

Talljoe
+3  A: 

Whilst nobody can tell you exactly what to do, the team I manage is about to release a new CMS / Job portal using ASP MVC. MVC gives us excellent testability and scalability out of the box and it can be quickly combined with tools such as nHibernate / windsor (IOC) / nCache / jQuery - this ensures that you have a wealth of resources on the internet to help accelerate your development and skill. You can also embrace standards such as XHTML 1.1 strict, which is almost impossible with ASP.Net webforms due to the auto generated HTML

1 other advantage is that you also get away from the dreaded ASP.Net viewstate.

David E
A: 

I was recently tasked by one of my clients to write a paper, or simply a checklist, that would help other lead developers make this same decision.

I posted the first 2 rough drafts on my blog. I am admittedly pro-mvc but the paper/checklist has been we received so it might be helpful.

http://eric.polerecky.com/archives/a-somewhat-less-biases-comparison-of-mvp-and-mvc/[http://eric.polerecky.com/archives/a-somewhat-less-biases-comparison-of-mvp-and-mvc/][1]

I think the most often overlooked benefit of MVC is convention; I really see any convention in webforms projects and while not strictly enforced in MVC projects at least its there.

Detroitpro
A: 

i started developing our current app in webforms, mvc wasn't available when development started.. i've chosen the MVP pattern, with URL rewrite HTTP module. currently i'm investigating plugging in some MVC into this, basically to use the front-controller instead of using page-controllers. the other things in already established MVP architecture with web forms in my app give me more flexibility than pure MVC approach without WebForms, which i like, although require a bit more code than MS MVC examples (never tried it for real project to see if it stays that way, like in those examples in screencasts).

what i don't like with MVC is mixing control code inside templates - i believe loops, ifs and stuff like that just shouldn't belong inside the template. but a couple days ago i've ran into Spark view engine that looks kind of promising in that segment, although not still close to the Tapestry 5 (a component-based webGUI framework) in the java world.

But the above mention suggestion to mix both might work for you to explore MVC world and have the safe ground to fallback to if something won't work for you might be ok for you.

zappan