日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
淺析基于.NET平臺(tái)的Web框架搭建

本文將介紹的是基于.NET平臺(tái)的Web框架搭建,筆者最近基于ExtJs和ASP.NET MVC做了一個(gè)系統(tǒng).來(lái)總結(jié)下.一起討論下.

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、成都小程序開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了尼木免費(fèi)建站歡迎大家使用!

一.技術(shù)分析

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

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

2.ASP.NET MVC

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

3.選一款依賴注入容器

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

這里我并沒(méi)有把Service配置在xml中,根據(jù)我的理解,大部分軟件并不需要這么靈活,我就純注冊(cè)就夠了(其實(shí)往往是這樣,我們可以問(wèn)問(wèn)自己,我們用到了多少功能).因?yàn)榇蟛糠侄际亲?cè)一次,永不修改的…真的有必要的時(shí)候可以提出

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

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

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

3年前我會(huì)選ADO.NET

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

1年前我選linq to sql

現(xiàn)在我選nhibernate

關(guān)于NHibernate映射

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

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

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

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

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

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

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

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

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

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

1.注冊(cè)容器

2.初始化Nhibernate

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

3.Nhibernate與容器配合法

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

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

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

三.項(xiàng)目細(xì)分

 

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

  1. Entity項(xiàng)目一個(gè)
  2. Service接口項(xiàng)目一個(gè)
  3. Service接口默認(rèn)實(shí)現(xiàn)項(xiàng)目一個(gè)
  4. Domain項(xiàng)目一個(gè)
  5. 主體輔助類項(xiàng)目一個(gè)(放雜七雜八用的)
  6. 測(cè)試項(xiàng)目一個(gè)(可選)
  7. web相關(guān)項(xiàng)目一個(gè)(放與web相關(guān)的和controller)
  8. web主打項(xiàng)目一個(gè)(運(yùn)行項(xiàng)目,主放js用…)

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

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

四.細(xì)化

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

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

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

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

4.一個(gè)hql配置系統(tǒng),不要因?yàn)槟骋徊樵儣l件改了而重新編寫(xiě)代碼,可以考慮做個(gè)機(jī)制,把hql語(yǔ)句提取出來(lái)

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

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

7.對(duì)于ext,要有一套js加載機(jī)制

總結(jié)起來(lái)細(xì)化的都是對(duì)于不同需求而變化設(shè)計(jì)的.

如果不是很難的項(xiàng)目,花一段時(shí)間實(shí)踐,這種搭配很容易學(xué)會(huì).

接下來(lái)重點(diǎn)還是回到.net framework來(lái)學(xué)習(xí).


當(dāng)前題目:淺析基于.NET平臺(tái)的Web框架搭建
本文URL:http://m.5511xx.com/article/cojhhjh.html