1、Asp.net mvc和asp.net有什麼區別?
區別:
一、ASP.NET是一個網站開發的技術,是.NET框架中的一個應用模型。(歷史挺長遠的)使用ASP.NET開發Web應用程序並維持其運行,比其他開發語言更加簡單。與Java、PHP和Perl等高級技術相比,ASP.NET具有方便性、靈活性、生產效率高、安全性高及面向對象等優點,是目前主流的網路編程技術之一。
MVC與ASP.NET完全沒有關系,是一個全新的Web開發,事實上ASP.NET是創建WEB應用的框架而MVC是能夠用更好的方法來組織並管理代碼的一種更高級架構體系,所以可以稱之為ASP.NET MVC。可將原來的ASP.NET稱為 ASP.NET Webforms,新的MVC 稱為ASP.NET MVC。
MVC是軟體架構的一種模式,可以說就相當於常說的設計模式。其中主要包括三個模塊,顧名思義。就如MVC名字所顯示的那樣:模型(Model),視圖(View),控制器(Controller)。mvc中的模型(Model)和視圖(View )是完全區別於三層架構中的模型(Model)和視圖(View)的。
二、Asp.net微軟提供web開發框架或者技術。分Web Form和ASP.NET MVC。下面簡單說明各自優缺點。
Web Form
優點:
WebForm優點
1、支持豐富的伺服器控制項。
2、支持視圖狀態,每個控制項狀態以「隱藏域」的形式存在當前表單頁面來達到「有狀態」,這就是ViewState
3、基於事件驅動編程,如:click事件等,aspx頁面與cs文件分離,即顯示邏輯與處理邏輯分離,便於分工,美工、編程。
4、學習成本低。
缺點:
1、站在項目架構的角度,web form不是很理想架構模式,盡管可以使用經典的三層架構或者mvp,但不是最優秀的。
2、性能viewstate成功解決了asp問題,但同樣引入新的問題,viewstate頁面存儲勢必增加頁面大小、降低程序性能。
3、代碼可重用性不好;缺少對並行開發支持,因為aspx頁面與cs緊密耦合太高;Seo不友好,因為url指定具體aspx頁面;不利於單元測試,因為使用大量事件處理函數。
ASP.NET MVC
Asp.net Mvc架構模式是一種低耦合、可測試的web應用程序框架,它是基於CLR和成熟的MVC架構構建的。ASP.NET MVC不支持ViewState和伺服器控制項。
優點:
1、有對數據直接訪問的權利,如:對資料庫的訪問;
2、模型(Model)「不依賴」視圖(View)和控制器(Controller),即模型(Model)不關心它會被如何顯示或者如何被操作;
3、模型(Model)中數據的變化一般會通過一種刷新機制被「公布」;
4、為了實現3中的「機制」用於監視此模型的視圖必須事先在此模型上注冊。從而,視圖可以了解在數據模型上發生的改變。
缺點:
沒有viewstate和基於事件的編程,上手慢,學習成本高。
三、使用場景:
1、快速開發------>web form
2、單元測試、性能-------->mvc
3、大量使用js、jquery------>mvc
4.、代碼重用性------->mvc
四、WebForm的開發方式
伺服器端控制項
一般處理程序+Html靜態頁+Ajax
一般處理程序+Html模板
五、模型不同
WebForm模型
MVC請求模型
DomainModel–領域模型:不僅僅是一個實體類,而是整個業務才處理流程的一個規則。
六、ViewState處理
ASP.Net MVC的開發方式。
2009年第一個開源項目版本發布。
更加簡潔,更加接近原始的「請求-處理-響應」。
更加開發、更多的新的特點、社區活躍。
不會取代WebForm。
底層跟WebForm都是一樣的。管道上不同的處理而已。
MVC只是表示層的一種新的方式。
MVC是微軟2009對外公布的第一個開源的表示層框架,這是微軟的第一個開源項目。
MVC目的不是取代WebFrom開發,只是web開發的另外一種選擇。
2、asp.net和mvc的有什麼關系
ASP.NET MVC Framework是微軟在ASP.NET中所添加的一組類別庫,這組類庫可以使用Model-View-Controller的設計模式來開發ASP.NET的應用程序
Model:包括數據、驗證規則、數據訪問和業務邏輯等應用程序信息。
View:封裝了應用程序的表示層,是呈現給使用者看的信息。
Controller:包括控制流邏輯,控制信息流和應用程序的執行。接受來自用戶的指令與數據,並將Model與View做整合的控制器,當伺服器接到對ASP.NET MVC應用程序的要求時,伺服器(IIS)會先使用UrlRoutingMole(ASP.NET Routing的 HTTP 模塊),由它來解析是否有包含ASP.NET MVC應用程序的URL,若有,則會產生一個MvcRouteHandler對象,這個對象會裝載執行的必要信息,並且會呼叫包含在URL中的Controller的Execute方法來執行工作。
3、asp.net mvc框架優缺點
MVC優點:
1.大型開發的時候容易維護,擴展性很好。
2.能夠對HTML有完全的控制許可權,對於前端來說很友好。
3.能夠進行單元測試,保證功能的實現。
缺點:
1.沒有那麼多的現成控制項使用,開發效率相對較低(特別是對於菜鳥來說)
2.對於大型數據的處理比較難,還是因為沒有現成girdview控制項。這個控制項雖然生成的html結構異常復雜,但是對於處理大量而且復雜的數據來說是很不錯的。不過一般網站是很少有這種大量且復雜的數據,很多菜鳥都是用這個大炮來打蚊子,浪費且低效率。對於網站開發來說這個控制項應該不推薦使用。
剛學的菜鳥和在需要快速開發的情況下用webform就很好。
需要可擴展性,高度控制性情況下用MVC好。但是用這個框架門檻相對較高,如果你只懂asp.net 的webform開發形式的話,因為webform已經幫你做了太多的事情,換句話說你根本不知道真正的web開發是怎麼樣的。反而精通php,asp的人更容易上手。
MVC和webform開發各有各的用途。
但是你不應該使用asp.net mvc框架,如果符合下面幾條:
你對多態不是「非常」的熟悉
你不喜歡在這個框架上構建應用程序
你依賴於很多第三方的UI控制項
你不喜歡使用開源的程序
4、.net用web和mvc哪個好一點,我認為mvc執行效率和seo並沒有優勢?
個人感覺web和mvc確實執行效率都不怎麼樣,web封裝太多,假如用三層架構,方法的調用起碼有延時,mvc路徑偽靜態化--路徑太長,不利於優化,所以對於SEO來說都不理想。但又說回來,優勢還是有的。
5、.net web開發有WEBFORM、MVC、EF等來開發,它們各有什麼優點和缺點?
asp.net Web Forms
優點:最重要的一點解決方案多,經驗豐富,什麼需求基本都能找到解決方法。沒有什麼比伺服器端控制項再好用的東西了。數據綁定控制項(gridview,formview),數據原(objectdatasource,sqldatasource,linqdatasouce),有了這些控制項開發業務系統覺得沒有比用web forms更好,更快的技術了 提供的服務多,到asp.net2.0 .net framework就提供很多非常好的服務,profile,membership,cache,Microsoft patterns & practices(企業庫)UI控制項,AJAX,第三支持的比較多有著很多成熟的開發模型比如微軟推出petshopN層架構 。
缺點:因為使用了功能強大的伺服器控制項導致頁面比較大,每次post,response的數據相對ajax,silverlight肯定是大的,會影響性能。
Silverlight
優點:開發富互聯網應用(RIA)絕對是最合適的技術,,新版Silverlight集成GPU加速,開發3D,多媒體絕對是利器。
對於一些業務系統,做得好的,真的好看,而且好用,用戶體驗也很好網上可以找不少Demo
新的Silverlight開發模式MVVM雖然比較新但真的很好用,如果要做業務系統那麼一定要用MVVM這個設計模式太能體現更多Silverlight開發優勢(databinding 功能強大)
缺點:掌握UI設計工具的人太少,所以做不出很酷,很炫的頁面效果。
與後台交互不方便,所有交互只能是web service(WCF),雖然RIA1.0也很方便,但都是非同步操作,總沒有web form那麼直接了當。回調來對調去的還有4.0提供了很強大的匿名方法還有Action<>這些類庫。
最後我只能說要想做得好真不容易。
ASP.NET MVC
我還沒有用mvc 2,3做過項目只是最近做一些tutorial,給我的影響就是返樸歸真,與後台交互回到了最原始Post,Response,類似回到ASP時代。
優點:層次清晰,Model,Controller,View ,Action,都有向導產生,非常規范,感覺就是很專業,像是搞大項目架構,不想web form那麼隨意。
頁面展現和後台完全分開,去掉了伺服器端控制項,與後台交互使用JSON數據對象,所以性能上一定優於web form 還有同樣強大的Route URL功能,搜索引擎優化SEO。
成熟的MVC設計模式。
缺點:取消了伺服器端控制項,使得一些業務系統的輸入變得更為單調,在一些也用戶的互操作上大打折扣。
與後台交互雖然比Silverlight要好點,不用非同步方法,但只能post,submit還是沒有web form的事件機制好用。
一定要精通javascript,Jquery,Json不然UI這關真不好過。
最後對於開發業務系統最主要還是提供用戶很方便輸入數據,快速響應操作,對於開發人員就能很方便保存和更新數據,能很方便調用的需要數數據,調用特定的方法,並返回需要結果。能很方便的調試代碼。
雖然silverlight,asp.net mvc都是在asp.net webform後出來的技術,但也沒有必要就認為Silverlight,MVC就一定比傳統的asp.net webform就好。其實不關什麼技術都是為了解決不同的問題而產生,每項技術都有他存在的價值。
可惜很多開發人員對web form的了解還停留在asp.net 1.0的時代,很多asp.net的新特性都沒有用到,還有就是拿asp.net的開發模式去開發silverlight應用。
6、大家網站初期一般是怎麼做的SEO
考慮域名,空間的速度, 網站內部的優化要適合搜索引擎的抓取,最好用HTML形式,或者MVC開發最好,在就是做一些外鏈什麼,目的是增加自己的連接,可以參考:https://.baidu.com/question/2140805581507699108
7、asp.net mvc的特色與優點
MVC (Model、View、Controller)將一個Web應用分解為:Model、View和Controller。ASP.NET MVC框架提供了一個可以代替ASP.NETWebForm的基於MVC設計模式的應用。
ASP.NET MVC概述·MVC的優點:
1.通過把項目分成Model、View和Controller,使得復雜項目更加容易維護,減少項目之間的耦合。
2.使用ViewState和伺服器表單控制項,可以更方便的控制應用程序的行為
3.應用程序通過Controller來控製程序請求,並提供了原生的UrlRouting功能來重寫Url。
4.使Web程序對單元測試的支持更加出色
5.在團隊開發模式下表現更出眾
ASP.NET MVC概述·WebForm的優點:
1.採用事件驅動模式來控制應用程序請求,由大量伺服器控制項支持
2.採用頁面控制機制,可以為單個頁面添加事件處理函數。
3.使用ViewState和伺服器端頁面,使管理頁面狀態信息更加輕松。
4.對人數較少的想使用伺服器端控制項的開發團隊,使用起來更加方便
5.開發起來比MVC模式要輕松簡單一些
ASP.NET MVC概述MVC框架特色:
1.分離任務(輸入邏輯,業務邏輯和顯示邏輯),易於測試和默認支持測試驅動開發(TDD)。所有MVC用到的組件都是基於介面並且可以在進行測試時進行Mock,你在不運行ASP.NET進程的情況下進行測試,使得測試更加快速和簡捷。
2.可擴展的簡便的框架。MVC框架被設計用來更輕松的移植和定製功能。你可以自定義視圖引擎、UrlRouting規則及重載Action方法等。MVC也支持Dependency Injection (DI,依賴注入) and Inversion of Control (IoC,控制反轉)的良好支持。
3.強大的UrlRouting機制讓你更方便的建立容易理解和可搜索的Url,為SEO提供更好的支持。Url可以不包含任何文件擴展名,並且可以重寫Url使其對搜索引擎更加友好。
4.可以使用ASP.NET現有的頁面標記、用戶控制項、模板頁。你可以使用嵌套模板頁,嵌入表達式<%=%>,聲明伺服器控制項、模板,數據綁定、定位等等。
5.對現有的asp.net程序的支持,mvc讓你可以使用如窗體認證和Windows認證、url認證、組管理和規則、輸出、數據緩存、session、profile 、health monitoring、配置管理系統、provider architecture特性。
8、.net web開發有WEBFORM,MVC,EF等來開發,各有什麼優點和缺點?
asp.net Web Forms
優點:最重要的一點解決方案多,經驗豐富,什麼需求基本都能找到解決方法。
沒有什麼比伺服器端控制項再好用的東西了。數據綁定控制項(gridview,formview),數據原控制項(objectdatasource,sqldatasource,linqdatasouce),有了這些控制項開發業務系統覺得沒有比用web forms更好,更快的技術了
提供的服務多,到asp.net2.0 .net framework就提供很多非常好的服務,profile,membership,cache,Microsoft patterns & practices(企業庫)
UI控制項,AJAX,第三支持的比較多
有著很多成熟的開發模型比如微軟推出petshopN層架構
缺點:因為使用了功能強大的伺服器控制項導致頁面比較大,每次post,response的數據相對ajax,silverlight肯定是大的,會影響性能。
Silverlight
優點:開發富互聯網應用(RIA)絕對是最合適的技術,,新版Silverlight集成GPU加速,開發3D,多媒體絕對是利器。
對於一些業務系統,做得好的,真的好看,而且好用,用戶體驗也很好網上可以找不少Demo
新的Silverlight開發模式MVVM雖然比較新但真的很好用,如果要做業務系統那麼一定要用MVVM這個設計模式太能體現更多Silverlight開發優勢(databinding 功能強大)
缺點:掌握UI設計工具的人太少,所以做不出很酷,很炫的頁面效果。
與後台交互不方便,所有交互只能是web service(WCF),雖然RIA1.0也很方便,但都是非同步操作,總沒有web form那麼直接了當。回調來對調去的還有4.0提供了很強大的匿名方法還有Action<>這些類庫。
最後我只能說要想做得好真不容易。
ASP.NET MVC
我還沒有用mvc 2,3做過項目只是最近做一些tutorial,給我的影響就是返樸歸真,與後台交互回到了最原始Post,Response,類似回到ASP時代。
優點:層次清晰,Model,Controller,View ,Action,都有向導產生,非常規范,感覺就是很專業,像是搞大項目架構,不想web form那麼隨意。
頁面展現和後台完全分開,去掉了伺服器端控制項,與後台交互使用JSON數據對象,所以性能上一定優於web form
還有同樣強大的Route URL功能,搜索引擎優化SEO。
成熟的MVC設計模式。
缺點:取消了伺服器端控制項,使得一些業務系統的輸入變得更為單調,在一些也用戶的互操作上大打折扣。
與後台交互雖然比Silverlight要好點,不用非同步方法,但只能post,submit還是沒有web form的事件機制好用。
一定要精通javascript,Jquery,Json不然UI這關真不好過。
最後對於開發業務系統最主要還是提供用戶很方便輸入數據,快速響應操作,對於開發人員就能很方便保存和更新數據,能很方便調用的需要數數據,調用特定的方法,並返回需要結果。能很方便的調試代碼。
雖然silverlight,asp.net mvc都是在asp.net webform後出來的技術,但也沒有必要就認為Silverlight,MVC就一定比傳統的asp.net webform就好。其實不關什麼技術都是為了解決不同的問題而產生,每項技術都有他存在的價值。
可惜很多開發人員對web form的了解還停留在asp.net 1.0的時代,很多asp.net的新特性都沒有用到,還有就是拿asp.net的開發模式去開發silverlight應用。
個人建議
如果做業務系統的web項目還是web form好,簡單快速,做一些多媒體應用的Silverlight當然是最好了,MVC可能做大項網站內容管理更合適。
當然了,不管什麼都是孰能生巧,因為web form最的最多自然就最數量,其他主要還是用的少,我想Silverlight還是不錯的如果RIA這塊到2.0的時候可能開發會變得更簡單。
9、c# .net mvc網站技術做大型的門戶網站,是否有利於搜索引擎優化,
mvc做網站肯定是會有利於搜索引擎優化的,因為傳統的asp.net會用到很多的伺服器控制項,會在發布之後的隱藏域裡面產生很多多餘的代碼,這對搜索引擎的爬蟲瀏覽頁面信息很不利。
mvc的目的之一就是要把asp.net生成的頁面還原至最傳統的Html控制項和表單提交,不會生成類似的代碼,就比較利於搜索引擎優化了。
不過搜索引擎優化,跟很多其他的因素是有關系的,比如頁面的標題,關鍵字描述,頁面信息更新頻率,是否有高pv值的外聯等。所以關於搜索引擎優化,主要其實不在於你選擇什麼技術來做,搜索引擎優化有句流行的話叫做「內容為王」。
而且個人認為,mvc其實比較利於做一般的展示型網站和信息管理系統,如果選擇做大型的門戶網站的話是值得商榷的。
10、aspnetmvc網站性能怎麼樣
利用mvc做網站性能都可以滿足用戶需求。
MVC (Model、View、Controller)將一個Web應用分解為:Model、View和Controller。ASP.NET MVC框架提供了一個可以代替ASP.NETWebForm的基於MVC設計模式的應用。
ASP.NET MVC概述·MVC的優點:
1.通過把項目分成Model、View和Controller,使得復雜項目更加容易維護,減少項目之間的耦合。
2.使用ViewState和伺服器表單控制項,可以更方便的控制應用程序的行為
3.應用程序通過Controller來控製程序請求,並提供了原生的UrlRouting功能來重寫Url。
4.使Web程序對單元測試的支持更加出色
5.在團隊開發模式下表現更出眾
ASP.NET MVC概述·WebForm的優點:
1.採用事件驅動模式來控制應用程序請求,由大量伺服器控制項支持
2.採用頁面控制機制,可以為單個頁面添加事件處理函數。
3.使用ViewState和伺服器端頁面,使管理頁面狀態信息更加輕松。
4.對人數較少的想使用伺服器端控制項的開發團隊,使用起來更加方便
5.開發起來比MVC模式要輕松簡單一些
ASP.NET MVC概述MVC框架特色:
1.分離任務(輸入邏輯,業務邏輯和顯示邏輯),易於測試和默認支持測試驅動開發(TDD)。所有MVC用到的組件都是基於介面並且可以在進行測試時進行Mock,你在不運行ASP.NET進程的情況下進行測試,使得測試更加快速和簡捷。
2.可擴展的簡便的框架。MVC框架被設計用來更輕松的移植和定製功能。你可以自定義視圖引擎、UrlRouting規則及重載Action方法等。MVC也支持Dependency Injection (DI,依賴注入) and Inversion of Control (IoC,控制反轉)的良好支持。
3.強大的UrlRouting機制讓你更方便的建立容易理解和可搜索的Url,為SEO提供更好的支持。Url可以不包含任何文件擴展名,並且可以重寫Url使其對搜索引擎更加友好。
4.可以使用ASP.NET現有的頁面標記、用戶控制項、模板頁。你可以使用嵌套模板頁,嵌入表達式<%=%>,聲明伺服器控制項、模板,數據綁定、定位等等。
5.對現有的asp.net程序的支持,mvc讓你可以使用如窗體認證和Windows認證、url認證、組管理和規則、輸出、數據緩存、session、profile 、health monitoring、配置管理系統、provider architecture特性。