繁体   English   中英

从经典的ASP.NET到带有MVC的ASP.NET

[英]From classic asp.net to asp.net with MVC

在MVC希望您考虑设计的新方式方面,您会向与MVC完全陌生的MVC推荐一个通常在经典asp.net项目上工作的人,围绕应用程序设计改变什么思维过程?

除了常规的关注点分离(每一层都有责任)外,还有一些新的工作方式需要人们注意。 例如。 在MVC 3中,我们拥有剃刀引擎,您无法在其中使用任何服务器控件。 没有回发。 页面生命周期看起来有所不同。 等等

更具体地说,要使从经典的asp.net转换为带有Webforms或razor的asp.net MVC,需要学习或重新学习的东西是什么。

感谢您的时间和分享您的看法...

编辑

关于会话,缓存有什么变化吗? 另外,我正在尝试了解路由。 我的mvc webforms应用程序中存在的每个视图似乎都需要与参数一起完成。 这是否意味着我必须考虑许多不同的排列? 在剃须刀中似乎不需要映射请求路由。 那么,在什么情况下我应该通过MVC应用程序中的Webform来使用Razor?

不能使用任何服务器控件的地方

errr !, 它们现在称为Helper Controls ,它们是Web表单控件的表亲,例如:

在WebForms Engine中:

<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>

在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>), ...

因此,您确实有很多辅助对象 ,一旦您通过了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世界之前, 仔细阅读所有视频,最后您将知道, 您再也无法做任何事情了 :)

不久前,我写了一系列博客文章,内容涉及将经典的ASP网站转换为MVC,但该系列文章仍未完成(我不是博客最多产的博客!),并且不专门针对MVC 3,但这些文章可能有帮助。 这是一个链接-

http://www.notgoingdark.com/2011/04/converting-classic-asp-site-to-aspnet.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM