1.ASP.NET MVC ä¸ ASP.NET Web Form çä»ç»ä¸åºå«
2.什么是asp.net
3.ASP.NET MVCç®åç¼ç¨ç¯
4.ASP.NET MVC与WebForm的区别
ASP.NET MVC ä¸ ASP.NET Web Form çä»ç»ä¸åºå«
æ¯å¾®è½¯æä¾ç以MVC模å¼ä¸ºåºç¡çASP.NET Webåºç¨ç¨åºå¼åæ¡æ¶ãMVC 模å¼åå«ä¸ºï¼
Model:é¢å模å å¤çåºç¨ç¨åºæ°æ®é»è¾é¨åï¼è·åæ°æ®ï¼å¤çæ°æ®
View:è§å¾ ç¨äºå¤çå®é è¿åç»ç¨æ·ç页é¢
Controllerï¼æ§å¶å¨ éè¿Model 读åå¤çæ°æ®ï¼éè¿View å°ç»æè¿åã
å¨ ASP.NET æ¡æ¶ä¸çä¸ç§åºäºäºä»¶æ¨¡åçå¼å模å¼ï¼æå¼åé度快ï¼å®¹æä¸æçç¹ç¹ã
ASP.NET ä½ä¸ºå¾®è½¯çWebç¨åºå¼åæ¡æ¶ï¼MVCä¸Webform æ¯ä¸åæ¶æçå¼å模å¼ï¼
Webform ä¼ç¹ï¼å¯ä»¥åºäºäºä»¶æ¨¡åå¼åï¼ç±»ä¼¼Winformä¸ï¼ææ请æ±ä½¿ç¨ViewStateå页é¢çå½å¨ææ¥ç»´ææ§ä»¶ç¶æï¼åæ¶æ§ä»¶çå¼åï¼å å¿«äºå¼åé度ï¼æ´ä½Webformçå é¨å°è£ æ¯è¾é«ã
Webform 缺ç¹ï¼ æ£æ¯ç±äºå°è£ ç¨åº¦é«ï¼Webformé常é¾æ©å±ï¼å¼å人å便å©äºè§£å é¨è¿è¡åçï¼ä¸å®¹æ被æµè¯ãåæ¶æ§ä»¶çViewState å¢å äºç½ç«æå¡å¨çä¼ è¾éï¼ä¸å®ç¨åº¦ä¸å½±åç¨åºçæçã
MVC ä¼ç¹ï¼æäºæ©å±ï¼æäºåå æµè¯ï¼æäºæµè¯é©±å¨å¼åãMVCä¸çä¸ä¸ªè·¯ç±çåå¨ï¼å¯ä»¥åä¸äºé¾æ¥ä¼ªéæçå¤çã
æ»ç»ï¼ MVC ä¸æ¯å代äºWebformï¼ä¸¤è éç¨äºä¸åçå¼åç¯å¢ä¸ï¼é½æ¯ç®åä¸å±ä¸ç表示å±çå¼åæ¡æ¶ï¼é½æ¯ASP.NET æ¡æ¶ä¸çå¼å模å¼ã
1 页é¢å¤çæµç¨ï¼
MCVç页é¢å¤çæµç¨ä¾æ§å¨ASP.NETåæä¸ææ©å±ï¼MVCéè¿ç¹å®çIHttpModuleåIHttpHandler æ¥å¤ç请æ±ï¼ä¸Webformä¸åçï¼Webformä¸æ¯ä¸ªaspx页é¢é½ä¼ææ¯ä¸ä¸ªIHttphandlerå®ä¾ãMVCä¸ Controlleré½æ¯æ¯IHttpHandlerçåç±»å®ä¾ï¼Actionæ¯å¨MvcHandlerä¸éè¿MVCçå·¥ååå°æ§è¡çï¼MvcHandlerå¯ä»¥èªå®ä¹ã
2 ä¸ä¸æ 请æ±å¯¹è±¡: Context Session Request Response Cookie åºæ¬ä¸è´
3 é ç½®æ件åºæ¬ä¸è´ï¼ä½ä¸éç¨
4 é¨åæå¡å¨æ§ä»¶å¹¶ä¸æ¯ä¸å¯ä»¥å¨MVCä¸ä½¿ç¨
5 å¨ASP.NET MVCä¸ï¼å æ¬Membershipï¼healthMonitoringï¼
ASP.NET是建立在微软.NET平台架构上,利用Common Language Runtime在服务器后端为用户提供的强大企业级Web应用服务的编程框架。
ASP.NET与现存的ASP保持语法兼容,通过将现有的ASP源码文件扩展名从".asp"改为".aspx",配置在支持ASP.NET运行时的IIS服务器的Web目录下,即可获得ASP.NET运行时的ioc源码全部优越性能。与ASP的主要区别在于ASP.NET是编译执行,而ASP是解释执行,ASP.NET具有更高的效率。
ASP.NET的执行过程可视为编译后的普通语言运行时代码充当与前端浏览器和中间件用户交互的应用程序,它接受用户的请求,输出HTML流到客户端显示。此外,ASP.NET还可以利用.NET平台架构的诸多优势,如类型安全,对XML、SOAP、WSDL等Internet标准的强健支持。
目前ASP.NET的中华养生网站源码开发语言有三种,分别是C#、Visual Basic .Net和JavaScript。
ASP.NET的主要优点包括完全利用.NET架构的强大、安全、高效特性。ASP.NET运行在服务器后端编译后的普通语言运行时代码,具有运行时早绑定、即时编译、本地优化、在线设计软件源码缓存服务、零安装配置以及基于运行时代码受管与验证的安全机制等优势,带来卓越的性能。
ASP.NET主要包括WebForm和Web Service两种编程模型。WebForm为用户提供建立功能强大、外观丰富的基于表单的可编程Web应用。
ASP.NET MVCç®åç¼ç¨ç¯
ããASP NET MVCæ¦å¿µããASP NET MVC æ¯å¾®è½¯å®æ¹æä¾çMVCæ¨¡å¼ è¯´ç½äº ASP NET MVCç¥è¯å¼åASP NET Web
ããåºç¨ç¨åºçä¸ä¸ªæ¡æ¶èå·² èä¸å ¶åªæ¯ä¸ä¸ªè¡¨ç¤ºå±æ¡æ¶ åæ¶ä¹æ¯å¾®è½¯ç第ä¸ä¸ªå¼æºé¡¹ç®
ãã使ç¨ASP NETå¼åwebåºç¨ç¨åºæ¹å¼
ããWebFormæ¹å¼
ããAsp Net MVC æ¹å¼
ãã注æ WebFormæ¹å¼åAsp Net MVCæ¹å¼æ¯ä½¿ç¨å¼åwebåºç¨ç¨åºç两ç§å¹¶è¡æ¹å¼ mvc(以ä¸ç®ç§°mvc)çç®ç并ä¸æ¯å代WebForm èæ¯webå¼åçå¦å¤ä¸ç§éæ©èå·²
ããMVC模å¼ç®ä»
ããMVC模å¼æ¯ä¸ç§è¡¨ç°æ¨¡å¼ å®å°webåºç¨ç¨åºåæä¸ä¸ªä¸»è¦ç»ä»¶ å³ è§å¾(View) æ§å¶å¨(Controller)å模å(Model)
ããM Model主è¦æ¯åå¨æè æ¯å¤çæ°æ®çç»ä»¶
ããModelå ¶å®æ¯å®ç°ä¸å¡é»è¾å±å¯¹å®ä½ç±»ç¸åºæ°æ®åºæä½ å¦CRUD(Create/Retrieve/Update/Delete) å®å æ¬æ°æ® éªè¯è§å æ°æ®è®¿é®åä¸å¡é»è¾çåºç¨ç¨åºä¿¡æ¯
ããV Viewæ¯ç¨æ·æ¥å£å±ç»ä»¶ 主è¦æ¯å°Modelä¸çæ°æ®å±ç¤ºç»ç¨æ·
ããC Controllerå¤çç¨æ·äº¤äº ä»Modelä¸è·åæ°æ®å¹¶å°æ°æ®ä¼ ç»æå®çView
ããè¦ç¹
ãã MåVçå®ç°ä»£ç å离 ä»è使åä¸ä¸ªç¨åºå¯ä»¥ä½¿ç¨ä¸åç表ç°å½¢å¼ Cåå¨çç®çåæ¯ç¡®ä¿MåVçåæ¥ ä¸æ¦Mæ¹å Våºè¯¥åæ¥æ´æ°
ãã æ§å¶å¨é离äºä¸å¡é»è¾åViewè¦å 使å¾ä¸å¡é»è¾åæ°æ®è§åçå¾å®¹ææ¹åèä¸å½±åå°åå°é¡µé¢
ãã ViewåControlleré½å¯ä»¥ç´æ¥è¯·æ±Model ä½æ¯Modelä¸ä¾èµViewåController
ãã Controllerå¯ä»¥ç´æ¥è¯·æ±Viewæ¥æ¾ç¤ºå ·ä½é¡µé¢ Viewä¸ä¾èµController
ãã第ä¸ä¸ªAsp Net MVCç¨åº
ããæ¡ä¾ ä¸é¢æ们éè¿åEFFirstæ°æ®åºçCustomer表ä¸æ·»å æ°æ®æ°æ®å¹¶ä¸å°ææç¨æ·ä¿¡æ¯å±ç¤ºå°å¯¹åºé¡µé¢çæ¹å¼ æ¥ä¹¦å第ä¸ä¸ªAsp Net MVCåºç¨ç¨åº
ããCustomer表ç»æ
ããCustId(客æ·ç¼å·) 主é®èªå¨å¢é¿
ããCustName(客æ·å§å)
ããCustAddress(客æ·å°å)
ãã é¦å å建MVC ç项ç®
ãã对解å³æ¹æ¡ç¹å³é® æ°å»ºé¡¹ç® å¦ä¸å¾
ããå°é¡¹ç®å称å½å为MyMVC ç¶åç¹å»ç¡®å® å¦ä¸å¾
ããéæ©å¦ ç¹å»ç¡®å®
ããæ¥ä¸æ¥å¯¹é¡¹ç®çç®å½ç»æè¿è¡åæ
ããApp_Data;å¨è¯¥æ件夹ä¸çæ件æ¯ä¸åéè¿URL访é®ç èµ·å°ä¿æ¤æ件çä½ç¨
ããContent:项ç®ç¨å°çç´ æåæ ·å¼ççæ件夹 ä¾å¦æ们å¯ä»¥å°Imageæ件夹åCssæ件夹æ¾å°Contentæ件夹ä¸
ããControllers:æ§å¶å¨åå¨æ件夹
ããModels 模ååæ¾æ件夹
ããScripts js(javascript)æ件åå¨æ件夹
ããViews è§å¾åæ¾æ件夹
ãã å建æ§å¶å¨UserInfoController
ãã å建è§å¾Register
ããRegister页é¢å¯¹Controlleråèµ·è¯·æ± è¯·æ±å¯ä»¥åä¸¤ç§ getåpost æ以æ们åäºä¸¤ä¸ªaction 为äºæ¹ä¾¿åç»æä½ æ们å¯ä»¥å¯¹actionåä¸ä¸ªéè½½ æ åçRegister()ç¨æ¥å¤çgetè¯·æ± å¸¦åæ°çRegister(FormCollection collection)ç¨æ¥å¤çpostè¯·æ± å¦ä¸å¾
ããç¶å对æ åçRegisterç¹å³é® éæ©æ·»å è§å¾èå项
ããç¹å»æ·»å æé® åå¨Viewsæ件夹ä¸ä¼èªå¨å建åºä¸ä¸ªå称为UserInfo(åactionæå¨çæ§å¶å¨å称ç¸å)çæ件夹 并ä¸å¨è¯¥æ件夹ä¸å建ä¸ä¸ªå称为Registerçaspxæ件 注æ è¿éçaspxæ件没æåç¼å为 csçæ件
ããå¨Registerä¸ä¹¦å代ç å¦ä¸æ示
ããæ¢ç¶æ¯æ³¨åé¡µé¢ å¿ é¡»å°ç¨æ·è¾å ¥çä¿¡æ¯æ交å°æå¡å¨ æ¤æ¶æ们å¯ä»¥ä½¿ç¨form表å ä¸ºå ¶actionå±æ§è®¾ç½®å±æ§å¼ä¸º /UserInfo/Register UserInfo代表çæ¯UserInfoController Register代表UserInfoControllerä¸çaction ä¹å³æ¯è¯´æ们å°ä¿¡æ¯æ交å°äºRegisterè¿ä¸ªaction
ããç¨æ·å¡«åå®ä¿¡æ¯å æµç¨è·³è½¬å°äºUserInfoController æ¤æ¶æ们å¯ä»¥å¨æ¥æ¶Post请æ±çactionä¸ä¹¦åå¦ä¸ä»£ç
ãã说æ return RedirectToAction( Index )ä½ç¨æ¯è·³è½¬å°å称为Indexçaction继ç»æ§è¡
ãã å建action Indexåè§å¾Index
ããç¨åæ ·çæ¹å¼å¯¹Indexç¹å³é® å建View Index
<style type= text/css > th td { text align: center; } </style> <h >å¾®å·çé¨ ç¨æ·è¯¦ç»ä¿¡æ¯é¡µé¢</h > <h >ç±äºé¡¾å®¢çæ°æ®è¯å®ä¼åºç°å¤æ¡ å æ¤ä½¿ç¨tableæ¾ç¤º</h > <table width= % > <thead> <tr> <td>ç¼å·</td> <td>ç¨æ·å§å</td> <td>ç¨æ·å°å</td> </tr> </thead> <tbody> <% foreach ï¼var item in ï¼IEnumerable<Customer>ï¼ViewData[ Customer ]ï¼ { %> <tr> <td><%:item CustId %></td> <td><%:item CustName %></td> <td><%:item CustAddress %></td> </tr> <%} %> </tbody> </table> View Code æç»æ们å¯ä»¥å®ç°å¦ä¸ææ lishixinzhi/Article/program/net//ASP.NET MVC与WebForm的区别
MVC纵向切割了开发过程中的代码,从服务器到浏览器层层分离,层次之间耦合度很低,筹码涨升排序源码因为它是顺着底层的开发脉络进行封装,所以有利于开发者对整个程序过程流转的理解。但是MVC有一个非常大的缺点,这个缺点是和整个软件发展思路相背离的,那就是它无法封装、无法封装所以无法被重用。有谁看到过mvc下面的组件?有的只是一个个现成的案例,然后拿来修改。因为一个组件肯定牵涉到控制和显示,公众号业务源码但是mvc的开发这两个层次是分离的。MVC只适合轻量级的开发,桌面开发是极少用到mvc模式的。然而web开发恰恰就是轻量级,至今所有的web开发都是轻量级的,因为网络硬件条件的限制,不需要也无法做到非常复杂的逻辑。这也是MVC非常非常适合web开发的原因。
WebForm是微软前面一套web开发的机制。它横向切割了代码,控制和显示是封装在一起的。它从开发者思维逻辑上而不是实际情况上对代码进行封装,开发webform容易上手的原因也就在此了,但这个不利于开发者对底层程序流转机制的理解。WebForm中view和controller是放在一起的,WebForm一出现后,随之而来的是大量的组件诞生,这是mvc模式下看不到的。微软的经验之一是硬件发展很迅速。代码的封装是靠牺牲运行效率来提高开发效率,牺牲的运行效率通过提高硬件性能来解决。但微软在webform上犯了经验主义的错误,这个经验不适合网络硬件,网络硬件要考虑兼容性而且是国家的基础设施,更新的灵活性远比单机要差。大量的组件因为硬件的瓶颈无法给WebForm带来什么优势。在发展了几年webform后,微软觉得这样下去不行,等到网络硬件发展起来不知道到猴年马月了,所以就抄了一下成熟的mvc,通过Entity Framework做数据库和对象的映射,很明显,它是为了充当mvc中那个Model。通过mvc来控制和展示。
webform生产关系是比mvc先进的,但是它不适合现在的网络设施生产力,如果要适合说不定要年后。webform和mvc很好的印证了生产关系必须适合生产力,即使强大如微软也无法改变客观规律。