溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何搭建基于.NET平臺的Web框架

發(fā)布時間:2021-11-17 15:10:14 來源:億速云 閱讀:162 作者:小新 欄目:編程語言

這篇文章主要介紹了如何搭建基于.NET平臺的Web框架,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

一.技術(shù)分析

1.web數(shù)據(jù)傳輸

ExtJS作為前端UI展現(xiàn)層,傳輸數(shù)據(jù)格式為Json或者xml,一般大部分為Json.

2.ASP.NET MVC

(不要考慮太多mvc其他特性,controller+method就夠了)的和路由url很好的符合了這一要求,實現(xiàn)起來很輕松.

3.選一款依賴注入容器

只要你好好學(xué)過一款I(lǐng)oc組件,概念都還是一樣的,做法不同而已,我選的是微軟的Unity,

這里我并沒有把Service配置在xml中,根據(jù)我的理解,大部分軟件并不需要這么靈活,我就純注冊就夠了(其實往往是這樣,我們可以問問自己,我們用到了多少功能).因為大部分都是注冊一次,永不修改的…真的有必要的時候可以提出

如何搭建基于.NET平臺的Web框架

Ioc組件很多,個人認為比較強大的還是spring.net,功能非常豐富,還有AOP功能,最主要的是其可以和其他組件結(jié)合的很好.

容器作為底層服務(wù),主要就是為我們提供靈活性.想辦法與現(xiàn)有組件結(jié)合,注冊相關(guān)服務(wù).

4.數(shù)據(jù)庫操作(NHibernate)

3年前我會選ADO.NET

2年前我選Microsoft.Practices.Data.Application

1年前我選linq to sql

現(xiàn)在我選nhibernate

關(guān)于NHibernate映射

(1)若你是初學(xué)者,乖乖的自己手動配吧

(2)若你喜歡linq的,有一款FluentNHibernate可供選擇(用新技術(shù)請考慮風(fēng)險,玩的沒關(guān)系)

(3)若你映射配置文件玩的很熟悉了,就用NHibernate.Mapping.Attributes掛標(biāo)簽自動生成吧(不推薦用什么代碼生成器,都是要重新改的)

5.比較java web經(jīng)典平臺

比較慶幸,之前有接觸過java,java的web編程架構(gòu)很穩(wěn)定,3年前如此,現(xiàn)在還是一樣,不同的只是版本升級而已,這點.net程序員比較慘的.這也見證了spring,hibernate,struts(webwork)在目前而言是***的拍檔.

換成.net平臺也就是spring.net(Ioc容器)+nhibernate(orm)+asp.net mvc

spring.net和nhibernate都屬于java移植產(chǎn)品,所以應(yīng)該來說資料是非常的多,想學(xué)習(xí)的人,應(yīng)該把眼光放到j(luò)ava社區(qū)中,收獲會很多的,稍微比較下c#和java語言就好了(千萬別學(xué)了就跑去學(xué)java了:)).

asp.net mvc對比struts而言,方便了很多,但不同的是java附產(chǎn)品比較多,像asp.net mvc這樣的框架,java也有些框架已經(jīng)開始改進了(看到過,基本上理念是一樣的).

當(dāng)然這里均采用的開源路線,大家也可以采用微軟自家平臺的技術(shù).

二.技術(shù)串聯(lián)

1.注冊容器

2.初始化Nhibernate

如何搭建基于.NET平臺的Web框架

我們都知道Ioc是可以與asp.net mvc結(jié)合的

如何搭建基于.NET平臺的Web框架

3.Nhibernate與容器配合法

(1)Nhibernate與spring.net的結(jié)合,這里已經(jīng)有經(jīng)典例子在了,何謂經(jīng)典例子,就是大家都這么干,而且也沒出什么問題,我也就這么干,確實有點道理的…雖然有時候真不懂為什么這么干。。。呵呵
(2)用單例的方式在應(yīng)用啟動時注冊,如上法
(3)Nhibernate若映射換FluentNHibernate的話,或者加入linq to nh,則整個設(shè)計就要重新考慮了

我想上面的設(shè)計有點意思,特別是加入了linq to nh我的設(shè)想是這樣的

(1)簡單查詢用linq to nh
(2)hql主打,標(biāo)準(zhǔn)查詢輔助…
(3)若由于對nh框架不熟,導(dǎo)致查不出來,或者遇到速度慢,先上t-sql(原因一般都是自身學(xué)的不好造成的,先懷疑自己,懷疑不下去了再去懷疑框架本身…)

三.項目細分

這里忽略分布式應(yīng)用,我沒具體搞過…

  1. Entity項目一個

  2. Service接口項目一個

  3. Service接口默認實現(xiàn)項目一個

  4. Domain項目一個

  5. 主體輔助類項目一個(放雜七雜八用的)

  6. 測試項目一個(可選)

  7. web相關(guān)項目一個(放與web相關(guān)的和controller)

  8. web主打項目一個(運行項目,主放js用…)


基本上最基本的就是這樣,你可以細分,也可以把上面很多項目合并為同一項目.

若想靈活就多用反射與配置文件

四.細化

若要完成一般的數(shù)據(jù)增刪改系統(tǒng)的話,我們還可以稍微細化封裝,這樣的封裝是很方便的.

1.沒有絕對的靈活,需要一定的耦合,ext框架對于后端請求的json數(shù)據(jù)有一定要求,所以數(shù)據(jù)轉(zhuǎn)換在所難免,所以準(zhǔn)備一些通用的數(shù)據(jù)類型轉(zhuǎn)換的功能

2.對于千篇一律的數(shù)據(jù)增刪改,若無特殊的業(yè)務(wù)邏輯,可考慮借助asp.net mvc和反射功能完成,這樣一個controller的設(shè)計可以代替很多個.

3.在傳json時勿使用延遲加載等特性.

4.一個hql配置系統(tǒng),不要因為某一查詢條件改了而重新編寫代碼,可以考慮做個機制,把hql語句提取出來

5.巧用nhibernate攔截機制,日志必不可少

6.一套穩(wěn)定的權(quán)限機制

7.對于ext,要有一套js加載機制

感謝你能夠認真閱讀完這篇文章,希望小編分享的“如何搭建基于.NET平臺的Web框架”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

web
AI