从经典的asp.net到带有MVC的asp.net

use*_*358 2 asp.net asp.net-mvc razor

围绕应用程序设计的思维过程会有什么变化,你会推荐给那些通常从事经典asp.net项目的MVC全新的asp.net用户,就MVC希望你考虑你的设计的新方式而言?

除了传统的关注点分离,每个层都有自己的责任,还有一些新的工作方式需要注意.例如.在MVC 3中,我们有剃刀引擎,你无法使用任何服务器控件.没有回发.页面生命周期看起来不同.等等

更具体地说,为了使用webforms或razor从经典的asp.net转换到asp.net MVC,需要忘记或重新学习的东西是什么.

感谢您的时间并分享您的观点......

编辑

会话,缓存有什么变化吗?此外,我试图了解路由.似乎需要对我的mvc webforms应用程序中的每个视图以及参数进行操作.这不是说我必须考虑那里的许多不同的排列吗?在剃刀中似乎没有这种需要映射请求路由.那么在什么条件下我会在MVC应用程序中使用Razor而不是webforms?

bal*_*dre 6

不能使用任何服务器控件

错误!它们现在被称为Helper Controls,它们是Web表单控件的表兄弟,例如:

在WebForms引擎中:

<asp:GridView ID="gv" AutoGenerateColumns="true" runat="server" CssClass="tbl-grid">
    <AlternatingRowStyle CssClass="row-alt" />
    <Columns>
        <asp:TemplateField>
            <ItemTemplate>
                Food: <asp:TextBox ID="txt" runat="server" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>
Run Code Online (Sandbox Code Playgroud)

在MVC引擎中:

var grid = new WebGrid(@Model, canPage: true);

@grid.GetHtml(
    tableStyle: "tbl-grid",        
    alternateRowStyle: "row-alt",
    columns: grid.Columns(
        grid.Column("Title","Movie", 
             @<text><input type="text" id="txt_@item.Title" /></text>), ...
Run Code Online (Sandbox Code Playgroud)

所以你确实有很多助手可以玩,而且一旦你通过了MVC代表的关注点,它就会变得非常容易,而且,你开始完全控制你在每个视图中写的内容,使用PartialViews等等.

在第一次尝试时会很难,但是继续搜索StackOverflow以解决您的问题,我相信他们已经在这里得到了解答,并且:

微软还与合作Pluralsight和他们给你一个梦幻般的MVC(和Web表单)为ASP.NET 4.0必不可少的教程完全免费的,只是要经过所有的视频教程,我自己的PLuralSight每月帐户,他们是在他们做什么真正的好:

MVC 3基本视频

http://www.asp.net/mvc

Webforms基本视频

http://www.asp.net/web-forms

在你开始前往MVC3世界之前,浏览所有视频,最后你就会知道,没有什么是你不能再做的了 :)