Account: (login)

More Channels


Are you the publisher? Claim this channel

Search in 126,187,588 RSS articles:

Channel Description:

aspnet Wiki Rss Description

Latest Articles in this Channel:

  • 08/25/11--05:20: New Comment on "MVC" (chan 1307430)
  • I would like to suggest making controller method's RedirectToAction access modifier from protected internal to public. Because then we could use lambda expressions to eliminate string names of methods when redirecting in controller. It is described in this article by Patrick Steele for Castle MonoRail: http://visualstudiomagazine.com/Articles/2011/04/01/pccsp_Expression-Trees.aspx?Page=2 For now I have put extension code into base controller but I think it would be better to put it into extension method.

  • 08/25/11--05:21: New Comment on "ASP.NET MVC 4 RoadMap" (chan 1307430)
  • I would like to suggest making controller method's RedirectToAction access modifier from protected internal to public. Because then we could use lambda expressions to eliminate string names of methods when redirecting in controller. It is described in this article by Patrick Steele for Castle MonoRail: http://visualstudiomagazine.com/Articles/2011/04/01/pccsp_Expression-Trees.aspx?Page=2 For now I have put extension code into base controller but I think it would be better to put it into extension method.

  • 08/25/11--05:22: New Comment on "ASP.NET MVC 4 RoadMap" (chan 1307430)
  • I would like to suggest changing controller's RedirectToAction method access modifier from protected internal to public. Because then we could use lambda expressions to eliminate string names of methods when redirecting in controller. It is described in this article by Patrick Steele for Castle MonoRail: http://visualstudiomagazine.com/Articles/2011/04/01/pccsp_Expression-Trees.aspx?Page=2 For now I have put extension code into base controller but I think it would be better to put it into extension method.

  • 08/26/11--15:16: New Comment on "ASP.NET MVC 4 RoadMap" (chan 1307430)
  • I would like to see something like Knapsack built-in. Having the ability to combine and compress all javascript (and possibly css) files in release builds would be fantastic. Sure, it's easy enough to add as an extension, but i think this should be part of MVC. This would allow, for instance, the ability for Validators to (optionally) inject their own adapters into the script stream, instead of requiring seperate javascript files.

  • 09/06/11--06:28: New Comment on "ASP.NET MVC 4 RoadMap" (chan 1307430)
  • I strongly recommend including a set of "MVC + jQuery" Controls which can be easily used in a MVC Application, something similar to http://www.infragistics.com/dotnet/netadvantage/jquery-controlsoverview.aspx

  • 09/07/11--20:59: New Comment on "ASP.NET MVC 4 RoadMap" (chan 1307430)
  • I am new to asp.mvc and decided to do my next project on asp.net mvc3. So I am to think about whether I can do everything with mvc that I could do with regular webform. So while I were searching on Google on "how to work with Crystal Report on asp.net mvc3/mvc?", I was dishearten to know that ASP.Net MVC doesn't work well with Crystal Report. But this is very important for developing enterprise application. So I hope that Microsoft will be aware of this issue on their asp.net mvc4 release.

  • 09/11/11--19:09: New Comment on "WCF REST" (chan 1307430)
  • I don't see any activity since Dec 2010. Is this discontinued ? Please advise. Thank you.

  • 09/17/11--15:18: New Comment on "ASP.NET MVC 4 RoadMap" (chan 1307430)
  • I would like to see a localized device switcher which enables developers to quickly provide the ability for end-users to switch from Index.Mobile.cshtml to Index.Mobile.es-CL.cshtml, or, from Index.cshtml to Index.Mobile.es-CL.cshtml. Also, I would like the ability to localize a sub-set of views, while allowing other views to “fall back” to a default culture.

  • 09/19/11--16:10: Updated Wiki: MVC (chan 1307430)
  • ASP.NET MVC

    ASP.NET MVC is a free, fully supported Microsoft framework for developing great web applications using the Model-View-Controller pattern. It provides total control over your HTML and URLs, enables rich Ajax integration, and facilitates test driven development.

    To find out more information about ASP.NET MVC, visit the following resources:

    ASP.NET MVC 4 Developer Preview Released!

    The ASP.NET MVC 4 Developer Preview is now available! To find out more about the release, visit our ASP.NET MVC 4 information page

    You can install it via the Web Platform installer:

    Or if you prefer to download the installers directly, visit the download details page.

    ASP.NET MVC 3 RTM Released!

    We've recently released RTM of ASP.NET MVC 3.

    To learn about the new features introduced in ASP.NET MVC 3, visit the What's new in ASP.NET MVC 3 page and be sure to read the release notes.

    Roadmap

    The ASP.NET team is hard at work on the next version of ASP.NET MVC. To find out what’s coming next, visit the roadmap.

    How to Provide Feedback

    Because we highly value your input on this release version, please do submit feedback. There are two primary means for providing feedback:

    1. The ASP.NET MVC Forum on the ASP.NET Forums site allows you to engage in discussions with other customers and with the ASP.NET MVC product team. This is a great place to ask questions, post comments, and learn more about using ASP.NET MVC.
    2. The Issue Tracker tab on this site allows you to file bugs to the product team for consideration. The Issue Tracker is voting-based, so bugs with the most votes are given priority. (However, the product team will consider each issue individually, and more votes does not necessarily guarantee acceptance.)

    Tip: Please use "Issue" type for logging bugs and "Feature" type for logging new feature suggestions.

    Unit Test Integration

    The ASP.NET MVC Project template (which we'll upload to this project very soon) provides a unit test dialog which allows you to select a unit test framework from a drop down. We are working closely with unit test framework providers to intergrate their frameworks into that drop down. The following is a list of those projects which have installers that integrate with ASP.NET MVC. These projects are run by others in the community, not the ASP.NET team.

    Other Interesting Projects:

    • T4MVC: a T4 Template that generates strongly typed helpers for ASP.NET MVC
    • MVCContrib: A Codeplex project to add functionality to ASP.NET MVC. This project is run by others in the community, not the ASP.NET team.

  • 09/19/11--16:11: Updated Wiki: ASP.NET MVC 4 RoadMap (chan 1307430)
  • ASP.NET MVC 4 Roadmap

    Another year goes by and it’s time to work on another release of ASP.NET MVC. This document covers the high-level roadmap for the ASP.NET MVC 4 framework.

    It’s important to understand that we are in the early stages of 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 Uservoice site to provide feedback on our plans so that we have a better picture of what you want to see in the next release.

    The ASP.NET MVC 4 Developer Preview is now available! To find out more about the release, visit our ASP.NET MVC 4 information page

    You can install it via the Web Platform installer:

    Or if you prefer to download the installers directly, visit the download details page.

    Goals

    Before we dig into the proposed features, let’s look at the overall goals for this release. In the interest of aiming high and reaching big, our goal is to make ASP.NET MVC the best web platform for building modern rich web apps. So we’re focusing on features in ASP.NET MVC 4 (and across the web stack) that will get us closer to reaching this goal.

    Themes

    Before planning specific features, the ASP.NET team came up with a set of themes to guide our planning. Some of these themes are not specific to ASP.NET MVC, which means we can’t fulfill these themes solely within the ASP.NET MVC feature team. We’ll be working with partners across and outside of Microsoft to help us reach these goals.

    • Development and deployment: We want to smooth out the development and deployment workflow to be easier, better, and faster.
    • Capitalize on the platform: The Razor view engine and some of the new helpers in ASP.NET MVC 3 came out of work done for ASP.NET Web Pages. We’ll continue to invest in shared features throughout the web platform that we can incorporate into ASP.NET MVC.
    • Ajax: Whether it be adding a dash of Ajax to an existing web application or implementing a full-fledged single-page application (e.g. Gmail), we are looking at ways to improve the Ajax development story within ASP.NET MVC. We have a few ideas already, but we’re deep in the process of application building to help us expose and understand pain points that we can fix.
    • HTML5, tablet, and mobile: There’s an industry trend towards building mobile and tablet applications by simply building an HTML5 web application. An HTML5 application provides the widest possible distribution option and runs on the widest set of devices. But writing an app geared towards mobile and tablet devices takes experience. We want to make it easier to get started building such applications.
    • Cloud ready: We want the task of deploying and hosting web applications in the cloud (such as on Windows Azure) to be quick and easy. In order to get the most from the cloud, we’ll focus on performance, security, and scalability.

    Features

    And now, to the part you really want to hear about—the features! Note that some features are much more fleshed out than others.

    Recipes (Extensible Task-Based Tooling)

    Some tasks require you to manipulate multiple sections of an application. For example, if you want to add an Ajax grid to a view, you’ll need to generate the view code to render the HTML markup for the grid, create the data-access classes to display in the grid, and add the controller class that the Ajax grid can call asynchronously to retrieve the data. Recipes are going to help with that.

    An ASP.NET MVC 4 recipe is a dialog box delivered via NuGet with associated user interface (UI) and code used to automate a specific task. For example, implementing OAuth-based authentication will probably never be as simple as calling a single method, because it requires multiple settings and multiple pieces of UI. A recipe for implementing OAuth authentication might therefore provide a UI that asks you for the settings and then generates all the necessary code.

    Examples

    Some ideas for potential recipes include the following:

    • Ajax grid
    • Implementing OAuth-based authentication
    • Support for claims-based authentication using Windows Identity Framework (WIF)

    Writing, Deploying, and Installing a Recipe:

    To write a recipe, you only need to implement a dialog box using the recipe API. The dialog box is given an instance of an MVC project interface that’s simpler to use than the EnvDTE.DTE interface typically used to automate tasks in Visual Studio.

    For example, to add a controller to an area within an ASP.NET MVC project using the DTE might take multiple method calls, but it will take only one method call using the recipe API.

    After you’ve written the dialog box, you package it up as a NuGet package and anyone who wants to use it can install it and get cooking.

    Recipe Mockups

    The following mockup shows an example of how recipes might work. To launch a recipe, right-click on the project node in Solution Explorer (or in the appropriate file; some recipes are contextual) and select Run Recipe. This displays a menu with a list of recipes. (This might also be a sub-menu of the Run Recipes context menu option.)

    recipe-menu

    The list of available recipes is determined by recipes that have been installed using NuGet. Select a recipe to launch it. The UI for the recipe is determined by the recipe itself.

    wif-recipe

    Recipes can be as simple as a single dialog box (or even no dialog box in theory) or can involve multi-step wizards. Clicking Finish runs the recipe using the settings that you specify.

    Recipe API

    For the API, the idea is that the recipe developer gets an instance of a project interface that includes context about how the recipe was launched. This interface will provide an easy-to-use façade over the MVC project system without requiring the developer to learn the full DTE set of interfaces. However, the interface does provide access to the DTE in case the project interface is not sufficient.

    Built-in Recipes

    As part of this work, we’re planning to build a number of built-in recipes. Candidates include OAuth support, Ajax grid, and WIF, as noted earlier. We’re looking for more ideas as well.

    Mobile Support

    Mobile devices – phones and tablets – continue to grow in popularity as a means to browse the web. If you’re building a site for the public, you’ll want to consider what kind of experience you’re offering to visitors who have small screens or touch-enabled screens. With ASP.NET MVC 4, we’re aiming to give you straightforward but flexible ways to implement first-class mobile support, whether you’re creating a new site or enhancing one you already have.

    Default Template Changes

    One improvement is a change to the default project templates’ markup and CSS so that all newly created projects look good out of the box on mobile devices as well as on desktops. For example, we’re adding the viewport meta tag so that pages lay out well on small screens and don’t force as much awkward zooming in and out as pages designed solely for the desktop. The following shows a comparison of pages built with the old and (proposed) new template:

    image

    New “Mobile Application” Project Template

    Another change under consideration is a new project template specifically for mobile and tablet web applications. This project template would include layouts, views, and scripts (such as jQuery Mobile) specifically for building applications that are designed to provide a rich user experience and that are optimized for modern mobile devices. A page built with this template might look like the following:

    image

    Device-Specific Views

    It’s often desirable to tailor user interfaces to match the user’s device. We’d like to make it easy to override views, partial views, and layouts for particular device types. This feature would work whether you’re creating a brand-new new project or upgrading an existing one to ASP.NET MVC 4.

    For example, you could override specific views for mobile devices by creating additional views that have a “.Mobile” file name suffix:

    image

    We might also provide new view templates based on jQuery Mobile, and then enhance the Add View and Add Controller dialog boxes so that you can quickly add jQuery Mobile-based view overrides to new or existing controllers and actions. The following example shows a mockup of what the Add Controller dialog box might look like:

    image

    The options in the View type list are independent of the view engine that the application is using.
    Options that are unlikely to change from view to view are being moved to a View Options dialog, as shown in the following mockup:

    viewOptions

    Device Switcher

    One practice on many websites is to provide a simple way for visitors to switch from a mobile experience to a desktop experience. We’re considering adding a device switcher that is both a helper for rendering the appropriate UI (a link to switch from mobile to desktop or vice versa depending on the current device setting) as well as an API for letting users determine which experience they prefer.

    Razor Helpers Support

    ASP.NET Web Pages provides support for writing helper methods using Razor syntax by adding .cshtml or .vbhtml files to the App_Code directory of a web application. It’s possible to add these files to an ASP.NET MVC project, but even if you do, those files don't have access to the ASP.NET MVC context objects (such as ViewContext) or to the ASP.NET MVC HtmlHelper instance.

    In ASP.NET MVC 4, we’ll add support for Razor helpers that work in an MVC-specific way. We’re also investigating tooling support for writing Razor helpers in a class library project so that they can be compiled into libraries. This would make it possible to reuse these libraries in other projects as well as write unit tests against them.

    Task and Task<T> Support for AsyncController Classes

    Writing asynchronous action methods has been tricky with existing versions of ASP.NET MVC. For example, the following ASP.NET MVC 3 code snippet shows an example of an action method that calls into two different asynchronous services.

    public void IndexAsync(string city) {
        AsyncManager.OutstandingOperations.Increment(2);
    
        NewsService newsService = new NewsService();
        newsService.GetHeadlinesCompleted += (sender, e) =>
        {
            AsyncManager.Parameters["headlines"] = e.Value;
            AsyncManager.OutstandingOperations.Decrement();
        };
        newsService.GetHeadlinesAsync();
    
        SportsService sportsService = new SportsService();
        sportsService.GetScoresCompleted += (sender, e) =>
        {
            AsyncManager.Parameters["scores"] = e.Value;
            AsyncManager.OutstandingOperations.Decrement();
        };
        sportsService.GetScoresAsync();
    }
    
    public ActionResult IndexCompleted(string[] headlines, string[] scores, string[] forecast) {
        return View("Common", new PortalViewModel  {
            NewsHeadlines = headlines,
            SportsScores = scores,
        });
    }

    Using ASP.NET MVC 4 and the Visual Studio Async CTP (or in the future, C# 5, which will support the await keyword), that asynchronous action method becomes:

    public async Task<ActionResult> Index(string city) {
        var newsService = new NewsService();
        var sportsService = new SportsService();
        
        return View("Common",
            new PortalViewModel {
            NewsHeadlines = await newsService.GetHeadlinesAsync(),
            SportsScores = await sportsService.GetScoresAsync()
        });
    }

    CSS and JavaScript Bundling Integration

    ASP.NET MVC 4 will include CSS and JavaScript bundling. Bundling consolidates .css and .js files by combining multiple files into a single file and reduces the total size of the resulting (combined) file by removing unnecessary whitespace and comments (minification). This reduces both bandwidth usage and download times, which speeds up the rendering of web pages.

    Other Features

    We haven’t spent time fleshing out every feature under consideration. The following items are on the top of our mind. Some of them will be delivered by other teams.

    • EF Code First Data Migrations. This provides support for migrating from one version of your database schema to the next without losing data.
    • Better support for functional and integration testing of application code.
    • WCF Web API support.
    • Ajax improvements across the board. We’re focusing reducing the friction that developers encounter when using Ajax with ASP.NET MVC.
    • HTML5 support for editor/display templates and HTML helpers. For example, editor templates to might render an input element with its type set to date instead of an input element with its type set to the default text when rendering a DateTime property. Likewise, existing HTML helpers such as TextBoxFor might also be updated to render an appropriate input element based on the model type.
    • Templates for mobile web projects.
    • Support for “donut hole” caching in Razor views and support for the Windows Server App Fabric caching provider.
    • A new AreaAttribute class for better security when using areas.

    Disclaimer

    This is a preliminary document and may be changed substantially prior to final commercial release of the software described herein.
    The information contained in this document represents the current view of Microsoft Corporation on the issues discussed as of the date of publication.  Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information presented after the date of publication.

    This White Paper is for informational purposes only.  MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS DOCUMENT.
    Complying with all applicable copyright laws is the responsibility of the user.  Without limiting the rights under copyright, no part of this document may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without the express written permission of Microsoft Corporation.

    Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document.  Except as expressly provided in any written license agreement from Microsoft, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual property.
    Unless otherwise noted, the example companies, organizations, products, domain names, e-mail addresses, logos, people, places and events depicted herein are fictitious, and no association with any real company, organization, product, domain name, email address, logo, person, place or event is intended or should be inferred.

    © 2011 Microsoft Corporation.  All rights reserved.

    Microsoft and Windows are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.
    The names of actual companies and products mentioned herein may be the trademarks of their respective owners.


  • 09/24/11--08:13: New Comment on "ASP.NET MVC 4 RoadMap" (chan 1307430)
  • If you do both better themeing and razor helper support, it would be really good if we could define a razor helper on a default and theme basis

  • 10/13/11--07:45: New Comment on "MVC" (chan 1307430)
  • Nice post ! It's really helpful for me as well as this link http://www.mindstick.com/Articles/94935ac3-7f7b-4c51-8d11-d00534036e7b/?View%20in%20ASP.NET%20MVC also helped me lot to complete my task. Thanks

  • 11/03/11--00:28: New Comment on "ASP.NET MVC 4 RoadMap" (chan 1307430)
  • Need a receipe to add the mobile template support into a desktop mvc4 project. I am developing a mvc3 multilanguage desktop and mobile app. Right now, I am having to do all this manually.

  • 11/23/11--23:22: New Comment on "ASP.NET MVC 4 RoadMap" (chan 1307430)
  • I like your theme,hao to do,mail me 296955517@qq.com

  • 12/01/11--23:36: New Comment on "ASP.NET MVC 4 RoadMap" (chan 1307430)
  • It would be nice if there was better support for themes (not just switching out the css) - maybe something like Orchard?

  • 12/08/11--02:38: New Comment on "ASP.NET QA" (chan 1307430)
  • Very use full website

  • 12/08/11--04:14: New Comment on "MVC" (chan 1307430)
  • can somebody please tell me, is Dynamic Data available for MVC? I think I saw a preview or beta around two years ago, but I can't find it now

  • 12/08/11--04:15: New Comment on "Dynamic Data" (chan 1307430)
  • is dynamic data available for ASP.NET MVC?

  • 12/29/11--10:16: New Comment on "ASP.NET MVC 4 RoadMap" (chan 1307430)
  • How about better IDE support for Razor, like being able to add breakpoints. It would also be nice if things could be strongly typed instead of using strings everywhere, so when you refactor something you don't stumble upon issues at runtime. These are the types of things I was hoping you guys were working on.

  • 01/12/12--00:37: New Comment on "Dynamic Data" (chan 1307430)
  • I am looking forward there will be a MVC version. I don't like the ASP.NET MvcScaffolding to create so many meaningless CRUD templates.