菜单

asp.net webform设计思路的思量

2018年11月16日 - MySQL

   
 我动用asp.net的webform框架进行web应用程序的开销都大半四年了,在全路开发生涯中,也采取了千篇一律年asp.net的mvc框架。因为网上经常发生讨论webform框架和mvc框架的高低,所以自己呢针对当时两者进行了关注,因为好无比熟悉webform框架,所以就是会考虑其的优势是什么?设计思路是啊?

官方示例:

   
要明asp.net的筹划思路,必须考虑其的有年代,产生的技能基础,还有观察同时代其他动态网页技术的表征及思路。

http://msdn.microsoft.com/zh-cn/library/dd329551(d=lightweight).aspx

   首先是发生asp.net的技术基础,以下援引百度百科:

简介:
ASP.NET 4 增加了针对运 Web 窗体进行路由的放权支持。 路由是 ASP.NET 3.5
SP1
引入的等同项意义,通过这个作用可拿应用程序配置也运用对用户与查找引擎起含义的
URL,这样不管需点名物理文件称。
使用这项功能,可以提高站点的用户自己度,并加站点内容被搜引擎发现的几率。

*   “1996年,ASP 1.0(Active Server
Pages)版本出现了,它引起了Web开发之初变革,降低了动态网页开发的难度。以前开动态网页需要编制大量混乱的C代码,编程效率很低下,而且得Web网页开发者掌握很高之编程技巧。而ASP使用简便的脚本语言,能够以代码直接坐HTML,使设计Web页面变得重简明。虽然ASP非常简单,但也会落实充分强大的效能,这通得益于其组件。特别是ADO组件,使得在网页中做客数据库易使反掌。这一切推动了动态网页的霎时前进与建设,同时假设ASP得到迅捷流行。*

使手续:
1.添加大局文件Global.asax,引用命名空间System.Web.Routing,(如果没的话,则为品种面临补充加对System.Web.Routing的援)然后以Application_Start
事件受到登记相应的路由.
以身作则代码如下:

*    1998年,微软公司宣告了ASP 2.0,它是用作Windows NT 4 Option
Pack的同等有的提供的。ASP 2.0与ASP
1.0之要分是表面的机件可以初始化,使有的零件都发生了独立的内存空间,并且可以拓展事务处理。内置的Microsoft
Transaction Server(MTS)使打零部件变得再易于。*

manbetx网页手机登录版 1manbetx网页手机登录版 2View Code

*   
2000年6月,微软公司揭晓了祥和之.NET框架。.NET框架的中心思维是:把原的首要由连至互联网的单一网站或配备转移到计算机、设备与劳动群组上,而以互联网本身作为新一代操作系统的底子。这样,用户将会支配信息的传递方式、时间以及情节,从而获取重新多的劳务。*

        protected void Application_Start(object sender, EventArgs e)
        {
            RegisteRoutes(RouteTable.Routes);
        }

        private void RegisteRoutes(RouteCollection routes)
        {
            //其中需要说明的是asp.net 4中使用routes.MapPageRoute方法来添加相应的路由规则.它和.net 3.5 sp1中的routes.add是一样的.只不过更方便些.
            //第一个参数:路由规则名称,用于区别不同的路由规则(随便起)
            //第二个参数:路由规则,{}代表匹配任意,不带{}则表示精确匹配
            //第三个参数:该路由交给那个页面处理,物理页面的路径
            routes.MapPageRoute("", "", "~/Default.aspx");
            routes.MapPageRoute("list", "Items/{action}", "~/Items/list.aspx", false, new RouteValueDictionary { { "action", "all" } });
            routes.MapPageRoute("show", "Show/{action}", "~/show.aspx", false, new RouteValueDictionary { { "action", "all" } });
            routes.MapPageRoute("edit", "Edit/{id}", "~/edit.aspx", false, new RouteValueDictionary { { "id", "1" } }, new RouteValueDictionary { { "id", @"\d+" } });
            官方参数说明:

            routeName
            类型:System.String
            路由的名称。
            routeUrl
            类型:System.String
            路由的 URL 模式。
            physicalFile
            类型:System.String
            路由的物理 URL。
            checkPhysicalUrlAccess
            类型:System.Boolean
            一个值,该值指示 ASP.NET 是否应验证用户是否有权访问物理 URL(始终会检查路由 URL)。 此参数设置 PageRouteHandler.CheckPhysicalUrlAccess 属性。 
            defaults
            类型:System.Web.Routing.RouteValueDictionary
            路由的默认值。
            constraints
            类型:System.Web.Routing.RouteValueDictionary
            一些约束,URL 请求必须满足这些约束才能作为此路由处理。
        }

*   
2001年,ASP.NET浮出水面。它最初的讳为ASP+,后来变动吧ASP.NET。ASP.NET是微软企业出之平等栽起以.NET之上的Web运行环境,它不是ASP的简约升级,而是新一代的Active
Server
Pages。ASP.NET是微软公司新系统布局Microsoft.NET的均等有,其中新的艺架构使编程变得进一步简便易行。借助于ASP.NET,可以创建有内容丰富的、动态的、个性化的Web站点。ASP.NET简单易学、功能强大、应用灵活、扩展性好,可以使任何.NET兼容语言。 [4-5] *

博URL中之参数
Page.RouteData中带有我们要之URL参数.因此,我们好由此以下措施来获取URL中之参数,如下:
方法同样:在后台.CS文件写如下代码:

*    2002年微软发布.NET正式版本.NET Framework
1.0,其中的ASP版本就是ASP.NET
1.0,在这先发布了点儿独.NET测试版本Betal和Beta2。*

if (Page.RouteData.Values.ContainsKey("id"))
this.lb.Text = Page.RouteData.Values["id"].ToString();

*    2003年微软颁发了.NET Frameworrk 1.1正规版,其中ASP版本就是ASP.NET
1.1。*

方法二:在页面被直接利用RouteValue,如下:

*    2005年微软作布.NET Framework 2.0专业版本,也便是ASP.NET 2.0。*”

<asp:Label ID="lb1" runat="server" Text="<%$RouteValue:id%>"></asp:Label>

 

术三: 仍然可据此以前的Request.Form来处理

   
这是同等段子引自百度过百科,介绍由asp发展及asp.net的记述。阅读这段记述你该发现及,asp.net是起asp1.0开始上扬来的,但是它不是直接从asp发展到asp.net的,首先是asp1.0,然后是asp2.0,然后是asp+,再然后改名为asp.net(这里要分别看即是asp
 、
 .net这是个别独词,因为以asp的进化过程被其他一个特别的项目.net出现了,.net为什么起,不以讨论范围,可以自动百度)。asp.net1.1技能之web框架就是webform。

页面url连接的缔造
以骨子里行使得是要页面跳转的,asp.net4资了多方法来创造符合路由于规则之页面url。具体如下:
方法一:
直按规则,来创造url,如下:

    虽然我从未打算梳理叙述.net的生和提高,但是asp.net
webform的起也和.net平台十分严谨。

<asp:HyperLink ID="link1" runat="server" Text="Show All" NavigateUrl="~/show/all">
</asp:HyperLink>
<br />
<asp:HyperLink ID="HyperLink1" runat="server" Text="Edit 1" NavigateUrl="~/Edit/1">
</asp:HyperLink>

   
在asp产生的前方片年,产生了另外一个良著名的动态网页技术,那就是PHP。这里推荐一下php的定义:

方法二:
使用RouteUrl来创建url,如下:

   “PHP(外文名:PHP: Hypertext
Preprocessor,中文名:“超文本先期处理器”)是同种植通用开源脚本语言。语法吸收了C语言、Java和Perl的特性,利于学习,使用广泛,主要适用于Web支付领域。PHP
独特之语法混合了C、Java、Perl以及PHP自创的语法。它可比CGI或者Perl重复速地推行动态网页。用PHP做出的动态页面同其余的编程语言相比,PHP是将程序嵌入到HTML(正规通用标记语言生之一个使)文档中去实施,执行效率比较了变HTML标记的CGI设若大多;PHP还好履编译后代码,编译可以达成加密和优化代码运行,使代码运行更快。”

<asp:HyperLink ID="HyperLink2" runat="server" Text="RouteUrl Show All " NavigateUrl="<%$RouteUrl:routename=show%> ">
</asp:HyperLink>
<br />
<asp:HyperLink ID="HyperLink3" runat="server" Text="RouteUrl Edit 2" NavigateUrl="<%$RouteUrl:id=2,routename=edit %>">
</asp:HyperLink>
<br />

 

方法三:
通过.cs后台代码来具体,比如:页面有个超连接,如下:

   
php的出早于asp技术,asp应该是接到有php技术之建筑思想之,之所以称为建造,是因php的起点非常小,并没有给进行充分的计划,它是自一个略器快速上扬起的。这里尚惦记提一下另外一个首要的动态网页技术,再次援引下百渡过到:

<asp:HyperLink ID="HyperLink4" runat="server" Text="Code behind Edit 2">
</asp:HyperLink>

那么,后台.cs代码可以来给HyperLink的url赋值:

    “JSP全名为Java Server
Pages,中文名叫java服务器页面,其从来是一个简化的Servlet设计,它 [1]  是由Sun
Microsystems供销社发起、许多号参与联合成立之均等种动态网页技术标准。JSP技术有点类似ASP技术,它是当人情的网页HTML(专业通用标记语言的子集)文件(\
.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。
用JSP开发的Web应用是跨平台的,既能够以Linux下运作,也能够在外操作系统及运行。*

RouteValueDictionary p = new RouteValueDictionary { { "id", "3" } };
VirtualPathData vpd = RouteTable.Routes.GetVirtualPath(null, "edit", p);
this.HyperLink4.NavigateUrl = vpd.VirtualPath;

它们实现了Html语法中的java扩展(以 <%,
%>形式)。JSP与Servlet一样,是于服务器端执行的。通常返回给客户端的就算是一个HTML文本,因此客户端只要发生浏览器就是能浏览。

措施四:建议写成GetRouteUrl,这样您以后路由于规则换了,这个链接也非会见失灵

*   
JSP技术以Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能够通过tags和scriptlets访问在被服务端的资源的应用逻辑。JSP将网页逻辑和网页设计之展示分离,支持但选用的因组件的设计,使基于Web的应用程序的开销变得快和易于。
JSP(JavaServer
Pages)是同等种动态页面技术,它的主要目的是用象征逻辑从Servlet蒙分别出去。*

<a href="<%=this.GetRouteUrl("my-route-name", new { id="123"}) %>">xxx</a>

Java Servlet是JSP的技能基础,而且重型的Web应用程序的出需要Java
Servlet和JSP配合才会就。JSP具备了Java技能之粗略好用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的富有特点。

 
 JSP技术比php、asp技术来的重新晚,JSP技术现在给用来支付超大型网站,但是并无是因JSP技术本身非常出色,而是因它们发于java之上。

 
 这个时代的asp、php、jsp等动态网页技术,都发一个共同点,就是你拜访url地址,肯定是在一个如此一个文本在的。asp.net产生的技艺基础是asp,那么asp.net的webform框架下这无异于思想便天经地义了。webform的页面文件发出些许有,后缀名是.aspx和.aspx.cs两局部构成。这个是有别于asp的,asp页面文件只发一个,后缀名是.asp。从.asp到.aspx我们得以视,aspx是以asp的末尾加了x字母,联想微软的别产品,.docx取代.doc、.xlsx取代.xls,多少好窥探到微软本着技术升级的命名思考。

   以上叙述,讲到了asp.net
 webform将页面文件拆分成了简单单有。这是挺怪的一个改良,这种改进是为着缓解一些问题(不是一个,是一样文山会海题材)。改进asp技术cs代码和html混在同,暴露代码细节,asp页面不会见受编译成dll。同时也闹另优势。

   从asp到asp.net,在webform框架中大量放权了ASP.NET
服务器控件,这是一个挺怪之更改,这种服务器控件分三种植:

网上有人说,这是以解决开发asp页面会招致意大利面条的题目。我之知晓服务器控件的反远不止于之,假如你创造一个纯服务器控件的页面(asp.net出现抢,很多口就非建议如此干了,至于怎么,我知会生成大量viewstate串,当然还时有发生其他原因),然后针对页面元素进行操作,随着以的游刃有余,你或会见意识及webform的页面文件未是以html字符中间并东西,或者说非是于平等堆积服务器无法知晓的东东中,动态的变型有字符。它发展了成百上千步,它把页面的富有html便签长标识,经过页面引擎处理,变成了可以叫活操作的好像,程序开发人员可以任意操作这些标签类,然后在一个确切的早晚,再用这些看似依次的“ToString()”成字符串,拼到页面及。发明服务器控件技术,作者的思量根源或是桌面应用程序开发技术,从dos操作系统(命令执行交互),到视窗操作系统(主要是鼠标点击、键盘按键交互),开发桌面应用程序,会大量运用控件技术,控件复用技术可以大大升级开发效率。为什么猜测作者的合计或源于此,因为asp技术出现时,当时桌面应用程序开发或主流,作者或感染在这种空气外,把桌面应用程序开发的统筹思想转换至web主次的开发。这里要引出另外一个物,就是事件驱动,随便新建一个aspx页面,最紧要的凡事件处理方法,Page_Load。windows操作系统被大量采用事件驱动,是因“事件驱动模型”的。那么笔者在webform中行使事件驱动,也说不定借鉴了windows。

   
不管是服务器控件,还是事件驱动,这半种植(或者说是一种,因为控件和波之间以就竞相关联)设计思想非常酷的熏陶了webform框架,开发web应用程序的法门。服务器控件加事件驱动虽然便民很快开发一个管制系统型web程序,但是连无合乎web应用程序本身的运行思想,这无异于触及被过多人数批评,web程序为无运行于桌面操作系统中,最早的时它甚至无能够相互,只是为着便于交流信息,只用于展示信息。web程序本质运行规律是,通过浏览器为web服务器发送请求处理命令,有web托管程序接收请求命令,进行操作,然后回处理结果(结果也许是亮同篇文章,或者是语你文章删除成功,或者是用你提价的信息内容进行了保留)。webform容易让丁误会她运行在操作系统或者浏览器中,所有代码执行在客户端。虽然现在之浏览器真的可以拿动态页面在浏览器端执行,但是webform页面其实是来劳动器端的程序处理的。

   
如果一旦评与审美webform框架的宏图思想,不得不对比另外一个框架思想,那便是mvc的框架(模型)的筹划思想。mvc模型的发明,或许不是刻意设计,而是本着业务的尖锐思考,然后抓住实质的结果。mvc模型是为处理问题清晰明了,降低耦合性。

   
由于未会见php和jsp就从不办法相比就简单种植技术了,其实深怀念管其为拉上对比下,特别是jsp技术,因为java的跨平台性,jsp设计时无会见发出尽多windows的阴影,windows常常来种植不思告诉你复杂的精神,所以我被你包装一个大概的世界为你的发,然后就你的成才,这种早期的包或者会见是一个充分之担当,或者说微软的事物发生极度多windows的影,过于围绕windows了。

   
最后总结一下,如果你放自己神魂颠倒之神经,不深受协调设限,随意联想,随意设计,不过分考虑全盘,你晤面感觉到web技术发展有合计之继与变革。从简单的html纯文本展示,文本浏览器的表明,背后的http协议0.9,再到图片展示,LiveScript的发明(就是javascript),到CGI程序,再届Servlet拼接html技术,到php脚本,到asp动态页面技术,到jsp动态页面技术,到webfrom框架,spring框架,mvc框架这些技术背后隐隐有同等长长的思想在串联起。一个东西的发明不是偶然的,往往时有发生一个不足挂齿的起首。

    

 

 

读书本文请留意,假如你感觉到乱,那么尽管不要看引用的局部,可以大概先只读外内容。

正文并无展开认真的体察与检,有的地方或是荒唐的,一些技能的阐发先后为说不定并无确切。但是指望和平遭遇关心一个技艺之前行历史之思路,能于你念提供一些亮点。

 

 

 

 

 

 

 

 

相关文章

标签:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图