Curriculum for developing with ASP.NET MVC 3 - asp.net-mvc-3

I want to write a web site using ASP.NET MVC 3.0 and Microsoft technologies. I'm studying it now, and enjoying it.
The web site is experimental, and will be used by me and my son in house, but of course I will want to grow it and let other people use it. It will be in Hebrew.
What other technologies do I need to study? One I'm sure of is C# 4.0 (and LINQ). But I'm not sure about ASP.Net 4.0 - Do I also need to study it? How about Html 5? Javascript? Entity framework? Ajax?

Well here's my $0.02 worth of advice. I guess if your are going to expand this site at some point in the future you would have to add Enfity Framework 4 as well in terms of how you do your data access and JQuery since it comes out of the box with your MVC projects. Since you are developing it now you might as well add HTML5 to the list. With respect to ASP.NET 4 you might not need to if you're only doing this for your site. It's a pity that there aren't any mvc3 books our yet but you could either refer to blogs for newer material or if you don't mind use MVC2 books to help you along with u

Related

Model-View-Controller for GWT

I know that most GWT based application now is being implemented using the MVP pattern, however I still want to know which MVC framework is the most mature and can be used for production-grade web application built with GWT.
Searching the web I can't seem to find a MVC framework anything comparable to Mvp4gwt and GwtPlatform in the MVP frameworks, in terms of user base and activities in the code.
If you must shoot yourself in the foot, these are the only two MVC frameworks for GWT that I've heard of:
http://code.google.com/p/gwt-mvc/
http://code.google.com/p/gwittir/
Neither of these have had a release in over two years. Probably due to lack of community interest, and because MVP is better in every conceivable way. Using MVC with GWT is like installing square tires on a Ferrari.
You could use JetPad-Mappers, a minimalistic MVC framework developed at JetBrains and used in several (currently unreleased) products.
https://github.com/JetBrains/jetpad-mapper
Disclaimer, I am involved in development of this framework.

MVP vs MVC design patterns for web and mobile?

For an upcoming project, I am looking into MVP as an option over MVC. I am highly familiar with and like MVC, and am merely trying to see if I will gain anything using MVP.
What I gather about MVP is that it uses the ASP.Net view engine/MVC# (which I don't particularly like) that uses the ViewState - adding a bunch of extra content to a rendered web page, and not built in routing functionality (can be written in separately into the Global.asax).
MVC/Razor on the other hand, renders very clean HTML.
Certain articles, such as this one seem to lean towards using MVP for multiple views, however in light of MVC3 with jQuery Mobile, there are some fantastic things that can be accomplished with this MVC.
How do these compare to what is currently available with MVP? What are some pros/cons or potential pitfalls of using MVP over MVC?
I am also considering using an existing MVP application to expedite development time.
I know you will cringe at the following, but looking for options:
While this app offers all the required features, if implementing this solution, how difficult is it to tie in additional MVC applications (I know that looks ugly)? If this was something that we had to consider (combining both), would it be best to wrap the application in MVC (routing) and have the MVP app contained inside?
The reason for this is a staggered feature update process, where the requirement is to implement a new feature (which is built using the MVC framework; the rest of the system is not). Future plans are to completely change the current framework to either MVC or MVP.
Thanks.
You seem to be confusing patterns with frameworks here.
Both MVC and MVP are design patterns, ASP.net MVC and MVC# on the other hand are frameworks that implement the MVC/MVP design patterns.
There is a massive confusion and lots of conflicting information on the web about the difference between MVC and MVP patterns and infact Martin Fowler the guy who made MVP popular since "retired" the pattern in favour of 2 new ones. See here
Both patterns are there to aid separation of concerns that is for sure, but other than that there really isnt a lot of difference between them, the only thing I have found is that MVC has a controller per widget on the screen where as MVP is one per screen although even this rule is violated if you have a complex screen. I am still unsure and use the terms interchangeably myself.
The one thing I see over and over is that in MVP the view is responsible for creating the presenter, however this is not part of the original design. It appears to have arisen from the fact that older web frameworks such as asp.net webforms were page centric. You had no way of changing this and so it was the page (view) that created the presenter. Basically the framework is getting in the way of the pattern and so a hack was made to shoe horn it in. Unfortunately this seems to have become the defacto way of describing MVP.
Basically my wall of text above is trying to say that if you want to do MVC properly use a framework designed to do it, ASP.net MVC is a good choice, it is part of the MS stack, well supported (MVC# hasnt been updated since 2008) and if you are already happy with it the loss of productivity trying to learn something else isnt really worth it imo

MVC 3 Architecture?

I don't know whether this is right forum to ask about MVC3 Framework.
Actually my Project Manager asked me to do next project in MVC3 achitecture. I never worked even in MVC.
Can anyone help me to provide a tutorials link about MVC3?
Is it right to go with MVC3 without knowing about MVC?
Please help?
Well since you mention MVC 3 your manager probably means Microsoft ASP.NET MVC 3, and the perfect starting place to learn about ASP.NET MVC is www.asp.net/mvc
You will find a lot of helpful tutorials and video presentation that will help get you started.
It's actually quite easy ( = comfortable) to learn basics of ASP.NET MVC nowadays.
There are many great resources at www.asp.net/mvc.
I can also recommend videos from MIX events by Scott Hanselman. You can look for them in MIX archive (years 09-11) or at his site www.hanselman.com. He + guys like Scott Gu and Phil Haack did project called Nerddinner which was good starting point for beginners (during days of MVC1 and MVC2), because there are videos about it and also free ebook (you can get all at nerddinner.com - link is in footer), but its a bit aged now and there are already newer tutorials aiming newer versions of ASP.NET MVC3 directly at official ASP.NET MVC site.
So your best starting point for ASP.NET MVC3 really is the www.asp.net/mvc site and 1. Getting Started section ;) Read overview, start following the first tutorials (first ASP.NET MVC Applicaton and ASP.NET MVC Music Store). Then when you will get into troubles with something specific, you can come back here and ask again.
Steven Sanderson's book is actually the good one to start. Not only it explains MVC framework in depth, but provides comparison with other web frameworks and all the pros/cons it has got. After reading first chapters, you'll undestand why your project manager asked so :). The book is is mvc2 - so there're some points explained that are already old (WebForms view engine) but anyways, book gives good knowledge
i hope this one may be of help too.
http://kbochevski.blogspot.com/2011/06/architecting-loosely-coupled-mvcnet.html
You can follow some video tutorials on pluralsight. It's not that expensive and one month is quite enough.
There are also plenty of books that may help you during your learning process.
I would suggest this one
Pro ASP.NET MVC 3 Framework 3rd Edition
The official site for asp.net mvc has also some great tutorials
Lets start with what in my opinion is the best tutorial on ASP.NET MVC 3 and the Entity Framework 4.1. Go to
MVC Music Store
I have tried several tutorials and that one is the best. It comes with a PDF that leads you through the process. Next comes the razor view engine syntax, something you definitely need to learn. Here is a good book on Programming Razor
Programming Razor
You must learn the Razor syntax and the razor view engine to build ASP.NET MVC 3 websites.
Now that you have had an introduction, lets get down to it. First, a word of caution about one particular book on MVC 3
Pro ASP.NET MVC 3 Framework
This book has an excellent introduction to the MVC architecture and MVC design pattern, related design patterns and programming techniques. However, its tutorial is riddled with bugs and omissions. Basically, the CRUD code doesnt work. After you have ground through several chapters of code, you find that when you call SaveChanges(), nothing happens, not even an error. I downloaded the sample code and ran it and not even it works. Take that book with a grain of salt. It appears to have been released without proper editing and validation of the code. I am going to try to get my tokens back for downloading that book on safari.oreilly.com. The MvcMusicStore tutorial is a much better one and the code actually works.
Now we come to a book that pretty much nails programming ASP.NET MVC 3, Razor and the Entity Framework
Professional ASP.NET MVC 3
This book is based on the very good MVC Music Store tutorial and expands on it quite nicely. It will get you started much faster and has much better practical information for getting a well designed, complete MVC application up and running quickly. The Entity Framework code-first tutorial is excellent. It is also a short 450 or so pages but there is a lot packed in that book.
You may also want to spend some time learning the Entity Framework 4.1 and LINQ to Entities. The best book for that is Julie Lehrmans excellent book on LINQ and the Entity Framework
Programming Entity Framework, Second Edition
I am a n00b here so I cant post a link to that book. You can find it on safari.oreilly.com or go to programmingentityframework.com, Julie's website. I haven't had a chance to even look at ASP.NET MVC 4!

MVC Framework and CMS

I'm wondering just where a CMS - out of box like SiteFinity, Sitecore, SharePoint, DotNetNuke, etc. - fits with the MS MVC Framework (1 or 2). The MVC Framework presents a lot of benefits for developers and for overall SEO and SEM value, while most CMS platforms require a lot of the WebForms "stuff" that comes with ASP.NET. Thoughts? I'm trying to figure out if these two pieces fit well together for future projects, or if they are disparate concepts?
BTW: I realize that a custom CMS could work, however that can require an awful lot of extra time than just setting up an instance of an out of box CMS.
MVC is a pattern. There are CMS systems that are webforms-based, like DNN, and ones that are based on MVC, like Orchard. Either framework (Webforms or MVC) are equally capable of supporting a CMS. Your choice should be based primarily on the one that offers the features you want. If you expect to extend it with plugins, and you're already familiar with Webforms, go with the one you know unless you want to learn MVC.
My thoughts are you very limited in the tools/components available to you at present when you choose to go the MVC route. Although there are a few CMS components out there for MVC they lack maturity IMHO. I believe in a couple of years when MVC has more maturity you'll be able to achieve the speed and sophistication of application development that is close or on par with Webforms.
Right now though if you have a lean project budget, and you need sophisticated functionality (i.e. CMS); Webforms still remains hard to beat when you have those constraints.

MVC2 VS custom built framework

We are planning to start a new Sale Management System which will have about 12 subsystem.
We will use MSSQL2008 as a database.
We have got custom framework for ASP.NET that was built about 3 years ago which is not MVC type... And i am planning to move to MVC2 Framework.
My Questions are
What will be the big advantages of moving
to MVC2?
How about the learning curve for MVC2 and will there be any good
guided study flow?
We are planning to use Multirow (Instead of Grid View), inputman (For function key event and validation) from grapecity and ActiveReport.. Will they be easily fit into MVC2 Framework?
Well, you have some good questions, but I think you have abused the question asking here. You will find that people will be more apt to answer if you divide your bullets into their own questions.
Advantages of MVC? Well pick up any MVC book and find those. IMHO however it lets you get to more pure views. It allows for separation of the main components of MVC (Model View and Controller) which allows you to test them. For me its more than that. I like how it allows for more control over what is in the view. I get so sick of the ASP.NET rendered controls that break javascript.
Learning curve? Well that all depends on how well you know HTML, Javascript, AJAX, and JSON. If you dont know them well at all, you will have a bigger curve. Now AJAX and JSON are not a must, but they will make it work better. JQuery is MVCs best friend, learn it and live it.

Resources