ASP.NET MVC 4 Roadmap

asp.net, asp.net mvc 0 comments suggest edit

It only feels like yesterday that we shipped ASP.NET MVC 3 followed by a release of updated Visual Studio tooling for ASP.NET MVC 3. But we’re not ones to sit on our hands for long and are busy at work on ASP.NET MVC 4.

In fact, almost immediately after shipping ASP.NET MVC 3, we started working through our backlog of bugs at the same time that we started general planning for the next major version.

Today, I’ve published the result of that planning in the form of a high-level roadmap for ASP.NET MVC 4.

There’s an important disclaimer I want to highlight in the roadmap:

It’s important to understand that we are in the early stagesof development on ASP.NET MVC 4 and that this roadmap is a planning document for the next release. It is not a specification of what is to come. We hope to implement most or all of the features listed here, but there are no guarantees. Plans can change. And you can help change them! Please visit our forums to provide feedback on our plans so that we have a better picture of what you want to see in the next release.

This roadmap is more detailed than roadmaps that we’ve written in the past. My hope is that it provides enough of a taste of the features to come that we can get feedback even earlier on features that we have yet to implement.

One of the cool new features I want to highlight is the feature we’re calling “Recipes”. In brief, a recipe is scaffolding on steroids. These are bits of UI delivered via NuGet for accomplishing common tasks. We put a few ideas in the roadmap, but would love to hear more ideas.

Not included in the roadmap are the many cool enhancements to Razor and other features being considered for the next version of ASP.NET Web Pages that ASP.NET MVC developers will get for free! Erik Porter (aka @humancompiler) and his team are hard at work on those features, so I won’t spoil the surprise.

UPDATE: We started a UserVoice site for ASP.NET MVC features.

Found a typo or error? Suggest an edit! If accepted, your contribution is listed automatically here.

Comments

avatar

86 responses

  1. Avatar for Alex
    Alex July 13th, 2011

    I like the recipes idea a lot. One thought that comes to mind off the bat would be a Recipe for IDependencyResolver implementations for all the major IoC frameworks out there (Unity, StructureMap, Ninject etc).

  2. Avatar for Scott Koon
    Scott Koon July 13th, 2011

    hmmmmm, how about a recipe that would let you commit and push changes to a Git repository? ;)

  3. Avatar for Luiz Adilson S Bon
    Luiz Adilson S Bon July 13th, 2011

    What about recipes across multiple assemblies, just like PortableAreas from MVCContrib?

  4. Avatar for Petrus Theron
    Petrus Theron July 13th, 2011

    Device-specific Views like Index.Mobile.cshtml will completely invalidate my use of a /Mobile/ Area just for mobile and make my life better. Is there an extension/view engine that can already do this?
    P.
    FreshCode.co

  5. Avatar for Jason
    Jason July 13th, 2011

    "Better support for functional and integration testing of application code."
    Does that mean we'll finally be able to write real unit tests for our views?
    We’ve got a pretty robust system and we could really use the tuning we get from writing unit tests around our helper classes that output a Razor view. We've been compiling our views and hope that we can now just bind a model to them and check the output.

  6. Avatar for pbz
    pbz July 13th, 2011

    New features are nice, but I'm even more interested in you guys going back to the 3.0 code and clean up some of the less than elegant code.
    For example: stackoverflow.com/... or the fact that I need to make my own helpers just to have maxLength for my inputs.
    These may seem trivial, but these bumps we have to fight, when added together, take away far more time than new features help save.

  7. Avatar for Afshin
    Afshin July 13th, 2011

    Can I ask, what is the name of application you used for creating that sketches in your codeplex post?
    Like this one: download.codeplex.com/.../FileDownload.aspx

  8. Avatar for Joe Doe
    Joe Doe July 13th, 2011

    Basically just fire NikhilK and Bleroy and all the other guys that came up with the asp.net model and let it slide...

  9. Avatar for Luke
    Luke July 13th, 2011

    Love the balsamiq mockups images in the roadmap. =)

  10. Avatar for Brian Vallelunga
    Brian Vallelunga July 13th, 2011

    The changes look good, but I'd like to see MVC add less VS tooling and more support to help with common scenarios like bootstrapping tasks when an application starts. Additionally, how about built-in support for portable areas and modules. What about helping encourage best practices by providing a mechanism for unit of work implementations built in? There are a bunch of helpers/layers on top of MVC that do this, but why not provide it out of the box?

  11. Avatar for Andrew
    Andrew July 13th, 2011

    Hmm...
    u know, partial stuff ?
    partial view = .cshtml + .js + .css
    view = partial view + partial view + so on...
    if possible, is the .js and .css is combined, minified, obfuscated automatically and separated from its .cshtml (if any)

  12. Avatar for KevDog
    KevDog July 13th, 2011

    I'd like to see ootb integration of the sprite generation framework.

  13. Avatar for James Culbertson
    James Culbertson July 13th, 2011

    Thanks for the info Phil!
    I noticed one of the images were broken:
    aspwiki/GetFile.aspx
    One recipe that would be nice would be a default simple membership provider that's nicely integrated with Code First EF. That would cut some of the friction of creating logins/roles and would better integrate with other models.
    I wrote an article on one way to do it with an existing simple membership provider that's on Nuget.
    http://www.culbertsonexchange.com/wp/?p=120
    Thanks,
    James

  14. Avatar for Harry M
    Harry M July 13th, 2011

    Yay, wizard based development!

  15. Avatar for Ray
    Ray July 13th, 2011

    I'd love to see some better support for model binding collections of things. If I have a parent model with a collection of child view models (products with options for instance), I'd like to be able to edit all of them with one post without having to use the FormCollection. That would make me very happy.

  16. Avatar for Jason
    Jason July 13th, 2011

    I'll give you a dollar if you give me donut caching. What say you?

  17. Avatar for John
    John July 13th, 2011

    For single-page applications, Backbone.js support will be nice.

  18. Avatar for Phillip
    Phillip July 13th, 2011

    Time to pick up Fubu MVC I think. Clearly direction of ASP.NET MVC isn't Core MVC but all the fluff around it.

  19. Avatar for haacked
    haacked July 13th, 2011

    @Phillip we're making a lot of core improvements as well. But not major changes other than the potential REST changes as part of the investigation we're doing with the WCF Web API folks.
    Is there something in particular you think we're missing?

  20. Avatar for Mikael Koskinen
    Mikael Koskinen July 13th, 2011

    Looking good.
    What I'm personally hoping to see in a future release is an official way of splitting you ASP.NET MVC application into multiple projects. Something like the portable areas, but more friction-free. This would help when creating larger sites where different teams are responsible for the different parts of the site.
    I think the FubuMVC people have done something in this area with the Bottles project.

  21. Avatar for Fle
    Fle July 13th, 2011

    Out of the box integration with the Orchard CMS

  22. Avatar for Adrian Grigore
    Adrian Grigore July 13th, 2011

    Thanks for the roadmap!
    You mention a backlog of bugfixes that have been applied to MVC. This this include the following?
    forums.asp.net/.../1
    I have a library which makes reusing modelmetadata (validation, scaffolding) a breeze and I'd like to distribute via Nuget, but I'm scared of releasing the library because it might not work anymore in MVC 4 if the bug is not fixed.

  23. Avatar for shaun
    shaun July 13th, 2011

    Will there be dynamic language support in ASP.Net MVC at any stage?
    (Last i checked, the DLR didnt support MVC but please correct me if i'm wrong;) )

  24. Avatar for Mike
    Mike July 13th, 2011

    I think the roadmap has too much focus on tooling.

  25. Avatar for Daan
    Daan July 13th, 2011

    @Haacked will the hardcoded validation messages (int, decimal) be replaced for localizable ones?
    Now im forced to use strings so i can control the localization for client side validation.

  26. Avatar for clear
    clear July 13th, 2011

    @Jason, I'll throw in another $1!

  27. Avatar for Stephen Burns
    Stephen Burns July 13th, 2011

    Some ideas...
    1) Better bootstrapping
    2) Bake in more from futures and/or community contributions, such as calling controller actions without magic strings.
    3) Dynamic registration of HttpModules (without needing to reference an external assembly)

  28. Avatar for Robert Milne
    Robert Milne July 13th, 2011

    Another vote for the strongly named redirects/actions (using lambdas) to make it out of MvcContrib/MvcFutures

  29. Avatar for Paul Hiles
    Paul Hiles July 13th, 2011

    Support for "donut hole" caching would be greatly appreciated. I am hoping that partial caching will also support cache profiles.

  30. Avatar for Paul Hiles
    Paul Hiles July 13th, 2011

    Oops, I meant Donut Caching. Donut Hole Cachning is already availably using partials.

  31. Avatar for av
    av July 13th, 2011

    So...all these tooling ideas...was community actually asking for it? There are all these core issues that people have been asking even on your blog...yet you guys keep coming up with things seemingly out of no where. Even all this scaffolding stuff...rails guys aren't even encouraging using it. Just seems like more demo-driven features...we like mvc cause its not webforms...yet here we go with more wizards

  32. Avatar for Stephen Burns
    Stephen Burns July 13th, 2011

    @av: I would like to know about the wizard thing as well.
    We really enjoy developing for this framework, especially when compared to WebForms. I hope the team doesn't lose its motivation and run out of ideas for improving the developer experience.

  33. Avatar for Michael A. Volz
    Michael A. Volz July 13th, 2011

    Awesome news!
    What i would like is a big performance upgrade for NuGet commands. The MVC Scaffolding for example is so slow, it's no fun to use. If the commands are not fast enough, people won't use them that much.
    But maybe this is possible just by updating NuGet alone.
    For Debug builds i would love that every RazorView and -Part will be indented correctly in HTML source view. To get a better overview of the hierarchy.
    Thanks!

  34. Avatar for ChrisC
    ChrisC July 13th, 2011

    Hmm... not liking all this built-in wizardry.
    Much of what is described as "recipes" can already be achieved quite easily using a great choice of third-party packages via the amazing Nuget - indeed the "Recipe API" seems more suited to be exposed to Nuget rather being a core part of the MVC system. I do not believe the MVC team should actually "supply" ANY recipes, just the API. Recipes should be chosen and installed by the developer.
    CSS/Less,JS/Cofeescript bundling and compression support already available using the fantastic "Chirpy".
    Some things I would like to see:
    Full integration of T4MVC - no more Magic Strings
    Official Sub-controllers
    Official CSS/HTML "theme" support (I think also covers proposed "Mobile Application")
    Pre-compiled views by default
    ScriptSharp support
    (not MVC) TRUE T4 editor for Visual Studio (Razor based)
    (not MVC) EF Code First Data Migrations

    I am sad to say this roadmap is leaving me slightly cold ... wizards, "recommended" libraries/plug-ins - but seemingly very little to improve the CORE of MVC.

  35. Avatar for Anthony Mills
    Anthony Mills July 13th, 2011

    I would like to echo some of those things.
    - Something T4MVC-like to get rid of magic strings in routes
    - Subcontrollers to more easily encapsulate functionality for big controllers
    - Pre-compiled views option, especially allowing deployment without .cshtml files (or at least better integration of MvcBuildViews)
    I think some of the options mentioned by your document are really good ideas:
    - Razor Helpers support
    - Task<ActionResult> integration
    - CSS/JS bundling

  36. Avatar for haacked
    haacked July 13th, 2011

    @ChrisC we are considering making Recipes part of NuGet instead of MVC so it can be exposed to more than just ASP.NET MVC.
    I saw a comment that described recipes as "Wrapping a UI around a command line.". That's not the goal nor purpose of recipes.
    Think of it more as the modularization of our tooling. For example, when you install ASP.NET MVC, we install one big tool for ASP.NET MVC which includes:
    * Add Controller
    * Add View
    * Scaffolding
    * etc.
    Instead, each of these things could have been implemented as Recipes. That would allow you to pick the ones you care about. Or even better, allow you to swap out our built-in ones for better implementations.

  37. Avatar for Deepak Chitnis
    Deepak Chitnis July 13th, 2011

    Phil,
    This is great. I hope the mobile features don't fall through the cracks like it did in the web forms world.
    Deepak

  38. Avatar for haacked
    haacked July 13th, 2011

    @Brian, @Stephen what do you mean when you say "Bootstrapping". Can you describe the scenario so that what I think when I hear that word matches with what you think when you say that word? :)

  39. Avatar for Dan Appleyard
    Dan Appleyard July 13th, 2011

    What about having the ability to dynamically create js or css files using some sort of view?

  40. Avatar for ChrisC
    ChrisC July 13th, 2011

    >> I saw a comment that described recipes as "Wrapping a UI around a command line.". That's not the goal nor purpose of recipes.
    I agree. MVCScaffolding is a great tool which I use and customise frequently - but (despite my earlier criticism of wizards)- I often wish it had some kind of GUI if only to remind/prompt you of its many functions and options - If the "recipe" concept and API will allow tool-makers (or customizers) to easily achieve that, it would be a great idea.

  41. Avatar for @andrebaltieri
    @andrebaltieri July 13th, 2011

    Awsome!

  42. Avatar for Kyle Rogers
    Kyle Rogers July 13th, 2011

    I sent an email about this to you once, but never got a reply. UpdateModel() breaks entity when you have a one-to-many relationship it is binding to. Here is the stackoverflow question I have about it. stackoverflow.com/...
    Can't wait to see MVC4! Good job to you and your team.

  43. Avatar for Stephen Burns
    Stephen Burns July 13th, 2011

    Phil, sorry about that. What I should have said is that the current convention in using types defined in the App_Start folder with the explicit registration of the "Start" method with WebActivator.PreApplicationStartMethod seems a bit afterthought-ish.
    Also, while I'm at it, another cool feature would be to allow Razor partials to access Sections defined in their parent views. For example, maybe a partial wants to define some javascript or css yet not have it rendered inline with its markup.

  44. Avatar for Mike
    Mike July 14th, 2011

    There are many options for bundling CSS, JavaScript, why do you feel you need to reinvent the wheel? Is it all for the 'tooling'?
    I am really getting sick of Microsoft reinventing the wheel only to sell more tools. You are NOT acknowledging the community, it's becoming a mono culture and I'm almost done with it.

  45. Avatar for Jalpesh Vadgama
    Jalpesh Vadgama July 14th, 2011

    Hello Phil,
    You guys have done great job with asp.net mvc3. Same way best of luck for asp.net mvc4.
    Best Regards,
    Jalpesh

  46. Avatar for Fırat Esmer
    Fırat Esmer July 14th, 2011

    I'm so excited!!!

  47. Avatar for Brian Vallelunga
    Brian Vallelunga July 14th, 2011

    Phil: I have a number of tasks that need to happen when an application starts. Traditionally, these might be put into the Global.asax file under Application_Start. This is fine when there's just a little bit of code, but at some point, you want to break the code out.
    I have implemented a solution that provides an IBootstrapperTask interface with an Execute method. When my application starts, I scan the loaded non-MS assemblies for these tasks and then execute them. I think this is a common practice in the MVC community. In my case, this integrates with my IoC container as well.
    I really don't like the App_Start method since that doesn't work well with other compiled libraries.

  48. Avatar for John
    John July 14th, 2011

    I'm not sure that I know exactly what I want, but I know my pain point: TDD is still way harder than it ought to be, especially when it comes to testing Javascript. Maybe a DSL for :
    Add class Foo
    Method Bar
    Which would bring up code multiple code snippets: a created class, a test class(I wouldn't have to specify tests, since TDD would be enabled by default),, a method Bar(), a test method for Bar. You setting the type is part of the snippet as well as creating the parameters. But you're not changing Bar() and Bar_SomeTest(), you're changing a signature and the code for the test and the method are changing simultaneously and the IDE is reflecting that in real time(ala Code Rush). A DSL not for code, but for the recipes.
    OK, this is crazy brainstorming, but I'll give you the pain points are you can figure them out:
    1) Going from IDE window to IDE window. Create new class, solution explorer, test class file, class file, etc. Useful for organizing, but when writing boilerplate stuff, give me a simple way to write it in one place.
    2) Repeating myself -- Why do I have to create a class and a test class? I should write it once. When I write a method, why do I have to specify the method name 3 times: in the method, the name of the test method, and the line in the test method that calls the method. I want a method. I want 3 tests. I should be able to write 4 things once.
    3) Real-time indication of what's going to happen. I love how Code Rush does this with inline edits. If you can do what they do, but for entire recipes, you guys will be geniuses.
    4) Promote code contracts with TDD together. Their goal is the same so shouldn't they play together?
    5) Code generation is too hard.
    6) Learning resources are painfully disconnected from the product. I'm always doing the same pattern: CRUD. I want to learn a better way. Fortunately, there are guys like Hanselman and Haack that tell me about T4, but why do I have to spend so much time searching for resources. If I'm in the library, I can ask the librarian how to use the online search system. If I'm in Visual Studio, shouldn't there be something telling me "he bonehead, would you like to learn about snippets . . . you'e written the same code 50 times in the last week".

  49. Avatar for Konstantin Tarkus
    Konstantin Tarkus July 14th, 2011

    * I would be really happy if you guys could implement Class Diagram tool for EF Code-First POCO classes, which would show entity classes, relationships between them, constraints etc. I think it should be pretty easy to implement but add lots of value (you could build it on top of existing Class Diagram tool).
    http://data.uservoice.com/forums/72025
    * A new class(es) for caching, testable, with the same interface as Windows Azure AppFabric Caching, so it would be easy to switch between in-memory cache, Windows Server AppFabric Caching and Windows Azure AppFabric Caching as simple as a .config file setting change.
    * Web app project should be pre-configured so that it starts up instantly at the first web request on the server.
    * More build-in data annotations attributes which could be used in models.
    * Good documentation and samples needed for custom MSDeploy configurations and maybe more options in Publish UI, where you could for example specify which folders should be created on the server, an ability to set permissions on them etc., specify a windows service which should be deployed alone with web app on the server.
    ...wait, there is more :)

  50. Avatar for haacked
    haacked July 14th, 2011

    Wow! Thanks for all the feedback. I'll do my best to respond.
    @Dan You can do that today.
    @Stephen well the convention for naming the files doesn't do anything other than provide a nice way of organizing them. What matters is the attribute on the method.
    @Mike, what bundling/compression frameworks out there would you like to see us use? Note that many of the items I listed aren't going to be built by the MVC team. We just want to integrate such features "in the box".
    @Brian have you looked at the WebActivator library available on NuGet?
    @Konstantin my team doesn't work on EF Code First, but if you install their tooling, I think they already provide that.
    Also, I believe we already have an AppFabric caching provider so you can swap it out via web.config today.
    What data annotation attributes would you like to see? We're adding more to the core .NET Framework, but you won't see them for a good while.

  51. Avatar for Anon
    Anon July 14th, 2011

    Additional discussion from Reddit:
    www.reddit.com/.../aspnet_mvc_4_roadmap/

  52. Avatar for Harry McIntyre
    Harry McIntyre July 14th, 2011

    I'd like to see
    - official portable code system*
    - Dynamic editor/display templates that can interrogate the object being rendered so forms which require rules like "only show User.Email field if current user IS that user" can be easily rendered
    which leads on to...
    - convention based dynamic scaffolding. code generation is a bad thing. it leads to over-generation and identikit classes which are then hard to maintain and refactor. e.g. linq to sql and the requirement for yucky partial classes. Generate the scaffold at runtime from conventions and reflection though, and you have a UI that grows with your object model.

  53. Avatar for Antwan Wimberly
    Antwan Wimberly July 14th, 2011

    Expose the types for all controllers. I can't tell you how many times I've seen people have to scan for controller types. Also, it'd be nice to have action filters that are triggered for a specific verb. For example, execute these action filter for every post. In case you were super paranoid and wanted the ValidateAntiForgeryToken action filter to run on every post. That's just one example.

  54. Avatar for av
    av July 14th, 2011

    - precompiled views is a big one and definitely should be brought into the framework

  55. Avatar for tassaaque
    tassaaque July 14th, 2011

    Regarding crystal reports, I heard that mvc will soon support crystal reports. any update

  56. Avatar for Mike
    Mike July 14th, 2011

    Glad you asked!
    Client Dependency Framework, YUI, Google Closure tools, ASP.NET Ajax ScriptManager, Chirpy (which is really awesome as it combines all sorts of options in a smart way and it should make you happy as it builds on tooling in VS) and there are probably lots more.
    But if you need to ask me AND you want to use tools from the community, perhaps it's better to start a poll to see what everyone is using?

  57. Avatar for Konstantin Tarkus
    Konstantin Tarkus July 14th, 2011

    @haacked, here is a list of data annotations which would be good to have in the .NET itself: http://dataannotationsextensions.org/

  58. Avatar for Vidar
    Vidar July 14th, 2011

    It's not specific to MVC, but one of my major pains with ASP.NET is the frequent restarts that happen due to changes made in most of the built-in folders or when you update a dll. On a site with a bit of traffic, this is a BIG problem.
    My wishlist:
    1.) Possibility to update a dll to a new version without restarting the web application.
    2.) Possibility to update a code file(or add new ones) in App_Code without restarting the web application. We're using a lot of code generation, and if we could do it without restarting the application, it would open up a lot of possibilities.
    3.) To be able to delete folders without restarting the application. There are some nasty hacks to get around this, but it has some side effects.
    In general, I think the focus on scaffolding is wasteful. In my experience, these days most web projects use a CMS. Scaffolding is more or less useless in that context. Those that aren't using a CMS for a web projects these days are often big projects where scaffolding doesn't fit very well IMO.
    Do you actually know many companies that are using scaffolding for real projects in a non-trivial way?

  59. Avatar for Brian Vallelunga
    Brian Vallelunga July 14th, 2011

    Phil, I've looked at WebActivator, but it seems to require source code being copied into a specific folder and it lacks any integration with an IoC container.
    I'm worried that MVC seems to be headed towards a more "Wizard" future instead of one that encourages better application design and testing.

  60. Avatar for Steve
    Steve July 14th, 2011

    any thoughts given towards Task Oriented UI and javascript framework hooks (eg. backbone.js, knockout.js, srouptcore, etc.)?

  61. Avatar for haacked
    haacked July 15th, 2011

    @Brian it doesn't require source code being copied into a specific folder. It requires an attribute being applied to your library. Once you apply that attribute, that code in your library is run on startup in any web app.
    As for the DI with WebActivator, it's very easy to shim that in. What are you really trying to accomplish? It helps to discuss in concrete scenarios and not in technical implementation details. Is what you really want is a way to instantiate Http Modules with DI? If so, I wrote an approach that does that.

  62. Avatar for MartinF
    MartinF July 18th, 2011

    Make the core framework small, fast and extensible (you did some really nice thing for mvc 3).
    Dont spend time creating all kind of fluff that has nothing to do with the core, it should go into a different project which people can install if they need it.
    People seem to suggest all kind of different stuff that should have nothing to do with the mvc framework.
    Please seperate the projects and dont mix all of it together.

  63. Avatar for Stephajn
    Stephajn July 19th, 2011

    I'd really like to see the Html.ActionLink helper that requires you to pass null as the last argument get refactored to have an overload that DOESN'T require that null paramter at the end. Seems to me that it's bad design to have an overload for this method that many developers will through null at for the htmlAttributes when they don't need it.

  64. Avatar for Tooling
    Tooling July 19th, 2011

    I know a lot of early users of MVC love to code. But I love the tools. If tool can generate the template to do most of common task, it saves time. And it will bring new scope of developers who love the tool to MVC.
    I am excited Recipes!

  65. Avatar for daniel glenn
    daniel glenn July 20th, 2011

    I like the Mobile integration with "Jquery Mobil"...sweet
    Thanks a lot for the information.
    would be nice:
    simplifies the control of asynchronous accesses the MVC controller. For better load performance ..... I like the approach of Ruby on Rails => HTTP Streaming

  66. Avatar for Chance
    Chance July 20th, 2011

    Thank you for your great work on ASP.NET MVC!
    My question is when we can use MVC 4? Mix 2012 ?

  67. Avatar for Jenda
    Jenda July 20th, 2011

    I can't check it at the moment, but in case this insane bug is not fixed in MVC 3 is there any chance UpdateModel(whatever) will stop throwing exceptions after a perfectly fine update just because the ModelState had some errors BEFORE the UpdateModel()?
    Yes, if you happened to be lucky enough you may not know, but once there is any error whatsoever in ModelState any call to UpdateModel() will do it's job and then throw an exception. Lovely indeed.

  68. Avatar for lynn eriksen
    lynn eriksen July 20th, 2011

    Phil, would you guys be providing a facility for mobile device detection to go with these '.mobile.cshtml' pages?

  69. Avatar for lynn eriksen
    lynn eriksen July 20th, 2011

    @Jenda - you want to use TryUpdateModel instead.

  70. Avatar for Ruben
    Ruben July 21st, 2011

    Localization, localization, localization.
    In your previous mail you already noted the incredibly cumbersome way of annotating model classes with localization in mind. Your proof of concept would really be awesome if it could be integrated into MVC4 *and* the caveats are fixed as well. There's way too much fanfare to do something relatively simple.
    Also, MVC provides some automatic validation, which either uses hard coded validation messages (shame on you), and if it doesn't, there's no clear, central mechanism you can use to hook up your resources: each class has its own ResourceClassKey, and there's no obvious naming of the resource keys you can override (nor which class you should set the ResourceClassKey on).
    It's not just painful for non-English locales, but it's also painful if you don't agree with the wording of the messages and want to change them to something of your liking.

  71. Avatar for nick
    nick July 21st, 2011

    model types: text to speech, color blind, low bandwidth user, failure model(if db fails switch to xml constring)
    controller is smart but its not AI smart. if my controller fails, it should have definitions to where else it should go. example is if my db connection fails, my controller fails by default, assuming i bind in my controller. when honestly all I really should need to do is insert a partial view of an xml bound object relating to the same query.
    why does the prebuilt model use forms authentication while the rest of the world develops multi-login specific applications?

    Last tid bit, make mvc xml, excel able to load data as a failover from slow db connections. bring ssis back into the equation but slim it down to conform to the model definitions of mvc.

  72. Avatar for Sean
    Sean July 21st, 2011

    What about a proper handling for properties that are lists of other complex classes ?
    I mean parsing, validation, easy marked up generation on client side so dynamic (client side) add, remove, reorder is not as painful as it is today. MVC lacks that functionality from day one. In each version it gets just a bit better. The only proper way to do it today is with json, and still the validation binding for inner fields must be done "manually".
    It should work with a complex EF Model too.

  73. Avatar for pbz
    pbz July 22nd, 2011

    So Phil, when do we get the "revised" MVC4 Roadmap? Reading FlySwat's list (on the Reddit page linked above) made me so excited at the prospect of having those fixed/implemented... Here's to hoping you'll reconsider.

  74. Avatar for shawn
    shawn July 24th, 2011

    Better handling for sub-collections of entities would be great, especially so that binding to an existing entity with a sub-collection of entities doesn't wipe out and re-create the entities in the sub-collection. See for example: www.codetuning.net/...
    Support for CoffeeScript, SCSS, and LESS in the new asset manager, along with various minification options (including the ones with the best compression ratios, which means Closure and Uglify) would be great. Even better would be baking support for these into Visual Studio (Intellisense, syntax highlighting, etc). The new Rails asset manager in 3.1 is a good example to look at.
    Yay for MVC! :)

  75. Avatar for Feng
    Feng July 26th, 2011

    Is Attributes property adding to SelectListItem in MVC 4?

  76. Avatar for Stacey
    Stacey July 27th, 2011

    While I think a lot of this is very interesting, I will agree that the emphasis on tooling is making me nervous. Part of what made MVC feel so powerful is that I didn't have to drag and drop. I didn't have to think about Visual Studio, it was just there to give me a hand.
    When you bind so much to the tools, you begin to let them become the workers. I am a programmer because I know how to use the tools, not because the tools exist.
    I agree with several of the sentiments on the Reddit page, but I do think people are proclaiming a bit too much doom and gloom. They're only adding stuff that many of us don't want, not yet taking away things that we need.

  77. Avatar for Mike
    Mike July 28th, 2011

    @Phil
    It looks like you are not listening here. If I see one theme in the comments here but especially elsewhere (the places where .NET is discussed as 'my former platform of choice') it's that the MVC developers are not waiting for 'tooling'. They are a special bunch that can think for themselves, that innovate faster than your team (FubuMVC), that spot trends before your company even knew there was something else (simplified DB access).
    Now I know Microsoft is in it for the tooling but MVC is the wrong vehicle for that. I don't think you are confident enough (like shanselman) to come out and discuss this issue. But I do want the record to show that there 'seems' to be a general feeling that we don't want tools, we want libraries. And anytime that you are ready to ask that question ("should we focus on tools or on the framework") we will be here to support you. If you are not confident, let shanselman do it (like he did this week with the versioning issue).
    Also, if there already is a library that does X, you should NOT do X. Especially not when the reason you want to do X is because you can offer 'tooling'. Just back off, we got this, the community can handle it.
    Thanks for listening!

  78. Avatar for Hendry Luk
    Hendry Luk July 31st, 2011

    Phil, I often find that the framework generally would not recognize attributes defined in interfaces. I always have to reimplement my own metadata-provider, validation-provider, model-binder, etc, just to make them take interface's attributes into account.
    Is this a concious decission?

  79. Avatar for haacked
    haacked September 7th, 2011

    @Hendry, my co-worker Brad Wilson just blogged about this very subject. :) bradwilson.typepad.com/...

  80. Avatar for Dan M
    Dan M September 13th, 2011

    I'd just like to add my voice to those calling for solutions to the "magic strings" problem that has plagued ASP.NET MVC since the beginning. I would also like to see improvements to the Razor editor, including better refactoring support (I should never have to use find/replace when renaming something) and more intelligent auto-formatting (the auto-formatter should indent code and markup in a logical/hierarchical manner).

  81. Avatar for Zaia Youkhanna
    Zaia Youkhanna October 21st, 2011

    Phil, thanks for mvc4 mobile presentation.
    Razor enhancements:
    It would be convenient to declaratively add jQuery-Mobile attributes (data-theme, data-icon, and others) and HTML 5 attributes to razor statements (@HTML.TextBoxFor, @Html.CheckBoxFor and others), for example @Html.TextBoxFor(m => m.UserName, @{ data-theme=”e”, data-icon= "home"})
    Knockout - Single page application:
    While it is a neat idea it is not a standard. Standardize it with JQuery-Mobile and let the world not just us Microsoft developers contribute to this neat implementation.
    MVC4 Restful:
    [HttpPut] and [HttpDelete]

  82. Avatar for Smith
    Smith January 8th, 2012

    I always consider performance one of the most important factor of a good website, so I want mvc4 can improve on that, for example, it can provide simple option to choose aspx or cshtml
    file to find when render the view instead of trying to find them all if one cannot be found, after all, no one would use the two on the same project. BTW, I found the simple use register process is too slow!

  83. Avatar for tech.abi
    tech.abi January 14th, 2012

    nice...
    ASP.NET lovers check this URL:
    http://tech-records.blogspot.com
    This blog describes new features of ASP.NET 4.0(Session State Compression,ViewState,URL Routing,
    Output Cache Extesibility, diff between ASP.NET 4.0 and its previous version) and the BASICS of
    ASP.NET(Common Language Runtime,Common Type System,Common Language Specification, Class Library,
    FCL)

  84. Avatar for Tom
    Tom April 11th, 2012

    Agree with Vidar.
    1. The default scaffolding options are only good for impressing year one uni students with a CURD HelloWorldModel. Also making the ef/data context options useless. I don't know anyone uses it for real projects.
    2.Models and view models Redux. Again, only year one students will return one View(HelloWorldModel). Multiple models strongly-typed ViewBag for real please? Just hack some dirty workaround at the back to make it happen.
    3. Can't edit any code while running the debug is also a pain. Old ASP.NET can do it, no excuse for MVC not to be able to do it. Only year one students.... :P
    Please don't deliver us half baked features. It ruins the good stuff.

  85. Avatar for Saeed Neamati
    Saeed Neamati May 30th, 2012

    My personal view about Razor is that it can shake the most fundamental foundations of PHP. I love you guys. Make Razor truly what it deserves to be.

  86. Avatar for joyce
    joyce June 10th, 2012

    wizard... not good. quote from @Stacey "I am a programmer because I know how to use the tools, not because the tools exist. ".