老尸 发表于 2015-1-18 11:16:06

ASP.NET编程:ASP.NET MVC Framework与WCSF中MVP形式之小小对照仓酷云

兄弟们,想来你们都看过了昨天的比赛了。我现在的痛苦状跟当时应该差不多。希望本版.net老师不吝赐教,为小弟这一批迷途的羊羔指一条阳光之道!您也知道:学习技术如果只有一个人摸索,那是一件多么痛苦的事情!还有,如果万辛能得名师或长者指点,那又是多么一件幸福和快乐的事情!概述

MVC形式已呈现了几十年了,在GUI范畴已失掉了普遍的使用,因为微软ASP.NETMVCFramework的呈现,以致MVC一度成为.NET社区的热名话题。作为MVC的变种MVP形式,也已呈现好几年了,在微软形式与理论小组供应的WebClientSoftwareFactory中,给出了完成MVP形式的使用程序最好理论,本文将试着对这两种完成对照一二。
MVC(Model-View-Controller,模子-视图-把持器)形式是80年月Smalltalk-80呈现的一种软件计划形式,厥后失掉了普遍的使用,其次要目标在于增进使用中模子,视图,把持器间的存眷的明晰分别。MVP(Model-View-Presenter,模子-视图-暗示器)形式则是由IBM开辟出来的一个针对C++和Java的编程模子,也许呈现于2000年,是MVC形式的一个变种,次要用来断绝UI、UI逻辑和营业逻辑、数据。鄙人面的笔墨中,如无出格申明,MVC均指ASP.NETMVCFramework。
处置流程

关于处置流程方面二者的区分,用上面这两幅图就能够申明统统:

:Model-View-Controller

:Model-View-Presenter
处置流程方面,在MVC中,用户的哀求起首会抵达Controller,由Controller从Model猎取数据,选择符合的View,把处置了局出现到View上;在MVP中,用户的哀求起首会抵达View,View传送哀求到特定的Presenter,Presenter从Model猎取数据后,再把处置了局经由过程接口授递到View。
View区分

ASP.NETMVCFramework中的View能够是一个ASP.NET页面、用户控件大概是母版页。必要分离s承继于ViewPage、ViewUserControl、ViewMasterPage。示例代码:
publicpartialclassViews_Blog_New:ViewPage{}接纳行内代码举行数据的出现,固然也能够利用服务器控件,示例代码:
<h2>ASP.NETMVCFrameworkSample</h2><hr/><%=Html.ActionLink("Home","Index")%>|<%=Html.ActionLink("NewPost","New")%><div><%foreach(PostpostinViewData){%><divclass="postitem"><strong>Title</strong>:<%=Html.Encode(post.Title)%></br><strong>Author</strong>:<%=Html.Encode(post.Author)%></br><strong>PubDate</strong>:<%=Html.Encode(post.PubDate.ToShortDateString())%></br><strong>Content</strong>:<%=Html.Encode(post.Description)%></br><%=Html.ActionLink("Edit",new{action="Edit",Id=post.Id})%></div><br/><%}%></div>在MVP中,仍旧接纳WebForm模子,个中View分为View接口和View完成两部分,完成部分能够是ASP.NET页面、用户控件大概母版页:
publicinterfaceIProductDetail{stringName{set;}stringBrand{set;}}publicpartialclassProducts_ProductDetail:Page,IProductDetail{}利用服务器控件举行出现(也能够是HTML控件):
<asp:ContentID="content"ContentPlaceHolderID="DefaultContent"Runat="Server"><h1>ProductDetail</h1><p>称号:<asp:LabelID="lbl_Name"runat="server"Text=""></asp:Label></p><p>品牌:<asp:LabelID="lbl_Brand"runat="server"Text=""></asp:Label></p></asp:Content>Controller和Presenter

ASP.NETMVCFramework中,一个View在全部使用程序中能够被多个Controller所挪用。
publicclassPostController:Controller{publicvoidNew(){RenderView("New");}}publicclassBlogController:Controller{publicvoidNew(){RenderView("New");}}MVP中一个View在全部使用程序中只对应一个特定的Presenter:
publicpartialclassProducts_ProductDetail:Page,IProductDetail{privateProductDetailPresenter_presenter;protectedvoidPage_Load(objectsender,EventArgse){if(!this.IsPostBack){this._presenter.OnViewInitialized();}this._presenter.OnViewLoaded();}publicProductDetailPresenterPresenter{set{this._presenter=value;this._presenter.View=this;}}}对开辟历程的影响

在ASP.NETMVCFramework中,接纳行内代码举行数据出现,逻辑会合在Controller中,可是View没法完整交给UI计划职员完成。在MVP形式中,一切的营业逻辑交给Presenter去向理,如许View中代码就变得及其简便,将能够容易的把开辟职员和UI计划职员分隔,以下图所示:

不过你如果学.net的话,你就不要选os了,这课比较底层的。你可以旁听数据库加上软件构件和中间件。(webservices和面向服务的课也应该听一听)

老尸 发表于 2015-1-20 05:58:47

由于CGI程序每响应一个客户就会打开一个新的进程,所以,当有多个用户同时进行CGI请求的时候,服务器就会打开多个进程,这样就加重了服务器的负担,使服务器的执行效率变得越来越低下。

深爱那片海 发表于 2015-1-21 15:49:14

提供基于组件、事件驱动的可编程网络表单,大大简化了编程。还可以用ASP.NET建立网络服务。

admin 发表于 2015-1-30 20:37:05

当然我们在选择Asp.net主机是,除了要考虑服务提供商在版本是否是实时更新以外,机房的环境和配置也是非常重要的,通常选择骨干网的机房,在速度和稳定性上会非常有保证。

柔情似水 发表于 2015-2-5 14:55:07

通过这次激烈的讨论,我从大家身上学到了太多,开阔了眼界,不管是支持我的还是骂我的,都感谢你们。

再见西城 发表于 2015-2-7 00:59:56

网页从开始简单的hmtl到复杂的服务语言,走过了10多个年头,各种技术层出不穷,单个的主流技术也在不断翻新的版本,现在分析下各种语言的区别、优势、劣势、开发注意事项!

只想知道 发表于 2015-2-7 08:29:40

逐步缩小出错代码段的范围,最终确定错误代码的位置。

乐观 发表于 2015-2-21 06:12:41

Asp.net脚本的出现,为ASP空间带来了更高的稳定性,同时也为程序员建站提供更高环境!

因胸联盟 发表于 2015-3-3 03:15:26

ASP.net的服务器,要求安装一个.net环境,当然我这里指的是windows系统,顺便点一下,.net只能放在windows环境里来运行。Asp.net1.1的就装Framework1.1,Asp.net2.0的就装Framework2.0。

海妖 发表于 2015-3-5 11:19:02

弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。

飘灵儿 发表于 2015-3-8 10:40:26

有一丝可惜的是,这个系列太强了,Java阵营的朋友根本就是哑口无言...争论之火瞬间被浇灭,这不是我想这么早就看到的,但是值了。

爱飞 发表于 2015-3-15 21:39:29

以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。

小魔女 发表于 2015-3-22 05:09:17

是目前ASP在UNIX/Linux上的应用可以说几乎为0)。所以平台的局限性和ASP自身的安全性限制了ASP的广泛应用。

变相怪杰 发表于 2015-3-22 05:09:21

主流网站开发语言之JSP:JSP和Servlet要放在一起讲,是因为它们都是Sun公司的J2EE(Java2platformEnterpriseEdition)应用体系中的一部分。
页: [1]
查看完整版本: ASP.NET编程:ASP.NET MVC Framework与WCSF中MVP形式之小小对照仓酷云