天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

ASP.NET 4.0 來了

  伴隨著VS2010的公開測試,ASP.NET4.0也進(jìn)入了我們的視線。ASP.NET4.0究竟給我們帶來了什么,將在哪些方面提高我們的生產(chǎn)力?

  在何時你需要使用ASP.NET4.0開發(fā)你的網(wǎng)站程序?

  • 需要更嚴(yán)格的遵守Web標(biāo)準(zhǔn);
  • 需要更流暢的Web Form開發(fā)方式;
  • 需要更好的搜索引擎優(yōu)化;
  • 需要后知后覺的糾正一些不夠優(yōu)良的設(shè)計(jì),這些設(shè)計(jì)甚至可能是在ASP.NET 1.0發(fā)布之前就存在的;
  • 需要將現(xiàn)有的功能重新改造為支持server farm或跨application domains;
  • 需要將.NET調(diào)節(jié)和重組為一個整體。

  你不需要學(xué)習(xí)復(fù)雜的設(shè)計(jì)模式或各種SEO技巧,甚至不需要有代碼重構(gòu)的能力。忘記那些復(fù)雜的規(guī)定和教條吧,使用ASP.NET4.0提供的各種方便又實(shí)用的新功能,你將能輕松的開發(fā)/升級出與時俱進(jìn)的高質(zhì)量的程序。而這一切均需要從這里開始:

VS2010帶來了一個新的預(yù)定義設(shè)置:Web Development(Code Only),如字面所示,它是為了web開發(fā)而設(shè)計(jì)的,但與普通的Web Development模式不同的是,它針對的是喜歡手寫代碼的開發(fā)人員,它讓VS看起來更像一個單純的IDE:

至于您是否喜歡,就蘿卜青菜,各有所愛了。。。(我還是喜歡全屏模式。。)

  • 新的項(xiàng)目類型:


VS2010對ASP.NET的項(xiàng)目類型做了大量的更改,具體改動如下:

  1. ASP.NET Web Service Application被完全的移除了;
  2. .NET3.0 帶來的 WCF Service Application 移至 WCF projects 下;
  3. .NET3.5 SP1 帶來的兩個 Dynamic Data 相關(guān)的項(xiàng)目被改為更容易理解的名稱,例如 Dynamic Data Web Application 使用LINQ to SQL替換了之前的Entity Framework;
  4. MVC項(xiàng)目有了一個稱為 ASP.NET MVC2 Empty Web Application 的新選擇。新的 ASP.NET MVC2 Empty Web Application 項(xiàng)目會建立如下的內(nèi)容:標(biāo)準(zhǔn)的目錄(空),空白的global.asax文件,web.config文件,標(biāo)準(zhǔn)的jQuery和MS AJAX庫。相比較而言,ASP.NET MVC2 Web Application項(xiàng)目會生成一個可工作的網(wǎng)站,實(shí)現(xiàn)一個簡單的membership模型,生成并使用master page,error page及所需的content page,并且可以生成一個示例test project。這對MVC新手非常有幫助,可以較為全面的使用MVC的功能。
  • 簡潔的Web.Config文件

在VS2008SP1中,默認(rèn)的web.config文件代碼有139行,而在ASP.NET4.0中,web.config 文件只有6行:

原理很簡單,ASP.NET團(tuán)隊(duì)對web.config文件進(jìn)行了重構(gòu),將通用的設(shè)置寫進(jìn)默認(rèn)的機(jī)器級別的web.config中。只剩下兩個需要頻繁變化的設(shè)置項(xiàng)。

  1. debug的值在Web Application 項(xiàng)目中會被默認(rèn)設(shè)置為true,在Web Site 項(xiàng)目中會被默認(rèn)設(shè)置為false。
  2. targetFramework的值可以設(shè)置為:4.0,3.5,3.0和2.0。這個選項(xiàng)會被IIS識別并自動賦予ASP.NET程序池相應(yīng)的Framework版本。
  3. Intellisense在舊版的web.config中會不起作用。可以通過刪除原web.config中configuration的namespace(xmlns)屬性就可以了。

*.config文件的層級結(jié)構(gòu):

在新的config文件定義中,一系列功能例如:Dynamic  Data,routing與charting全部默認(rèn)開啟。

關(guān)于不同級別的config文件的關(guān)系,非常類似與CSS文件的復(fù)寫。簡單的來說就是離你越近的config權(quán)值越高,也就是最底層的machine.config權(quán)值最低,你新建的web項(xiàng)目中的web.config的權(quán)值最高。

  • root的config文件為machine.config,位于C:/Windows/Microsoft.NET/Framework/ v4.0.xyz/Config。
  • 機(jī)器級別的web.config文件同樣位于上面的那個目錄,它在machine.config文件的基礎(chǔ)上定義了web特定的一些節(jié)點(diǎn)的默認(rèn)值,也就是在之前的ASP.NET版本中創(chuàng)建項(xiàng)目生成的web.config的文件中的那些值。
  • 同樣在上面那個目錄中,你會發(fā)現(xiàn)如下的文件:web_hightrust.config, web_mediumtrust.config, web_lowtrust.config 和 web_minimaltrust.config。如果你的站點(diǎn)的信任級別不是“FULL”,將會使用對應(yīng)的config文件作為默認(rèn)值。
  • 在你創(chuàng)建的項(xiàng)目中,會默認(rèn)生成一個web.config文件,這也是我們通常所說的web.config文件。
  • 在你的項(xiàng)目的任何目錄中,你都可以添加一個web.config文件,這個文件中的值會覆蓋項(xiàng)目根目錄中的值。你可以利用這個特性做一些例如權(quán)限限制之類的功能。
  • Config Transformation Files

這個新功能是為了應(yīng)對同一個網(wǎng)站在不同服務(wù)器需要不同的web.config文件的問題,例如需要不同的connectionstring等。在以前我們可能很難維護(hù)這些不同的web.config文件(在我經(jīng)歷的項(xiàng)目中,為了解決這個問題,使用了com組建讀取注冊表,在不同機(jī)器的注冊表中寫入相應(yīng)的信息),而現(xiàn)在有了這個新功能,我們可以以編程的方式統(tǒng)一的解決和處理這個問題(基于XPATH技術(shù))。你只需要在web.config文件上右鍵單擊,并選擇“Add Config Transforms”即可。

  • Browscap.ini

對于使用過ASP的程序員來說,應(yīng)該對這個文件并不陌生。這個文件是用來記錄所有要使用的瀏覽器,以及這些瀏覽器所支持的特性(例如是否支持activeX)。

在.NET2.0中,微軟將browsercap.ini的功能分割為一系列的*.browser文件。當(dāng)收到一個請求的時候,我們就可以根據(jù)這個請求發(fā)起的browser找到對應(yīng)的browser文件來獲取瀏覽器的能力。這些數(shù)據(jù)會被傳遞到HttpBrowserCapabilities對象中,我們就可以使用這些數(shù)據(jù)了。

所有的browser文件可以在C:/Windows/Microsoft.NET/Framework/v2.0.50727/CONFIG/Browsers下被找到。里面其實(shí)還是挺齊全的。

將一個文件分割成一系列文件會造成更加難以維護(hù)的情況,但這么做的理由似乎也不難猜想,就是微軟希望一系列的瀏覽器使用同一個文件,例如ie.browser, mozilla.browser之類的。

在.NET4.0中,微軟繼續(xù)沿襲了這一思路,并且大范圍的更新了這些文件,以支持現(xiàn)在流行的瀏覽器,特別是移動瀏覽器:iPhones, Windows PhoneOS, Android等,并且不會把這些瀏覽器簡單的處理成wap瀏覽器。對于桌面瀏覽器來講,也添加了對Firefox,Chrome和Safari的支持。

這么做很好,但是問題來了,難道我們要等每個新的.NET Framework發(fā)布后才能獲得這些新的文件嗎?答案當(dāng)然是否定的。

如今瀏覽器發(fā)展日新月異,馬上又即將有IE9, Opera 10.5, Gecko 1.9.3和新的IE for mobilephone等等。如果我們希望支持這些新的瀏覽器,我們有四種選擇:

  1. 手動更新這些browser文件或者創(chuàng)建新的browser文件。
  2. 創(chuàng)建一個新的browser文件并將它添加在你的站點(diǎn)的App_Browser文件夾下。但這樣只對你當(dāng)前的站點(diǎn)有效。
  3. 擴(kuò)展現(xiàn)有的browser capabilities provider。
  4. 創(chuàng)建一個自定義的browser capabilities provider替換現(xiàn)有的。

你可以針對你所擁有的資源或網(wǎng)站架構(gòu)來選擇如何解決這個問題。我們推薦使用自定義的browser capabilities provider去解決,雖然需要更多代碼,但一旦完成,之后的更新將會更輕松。這就意味著你能更迅速的支持新的瀏覽器。

但無論如何,支持一個新的瀏覽器都是一個困難的工作,但.NET4.0給我們帶來的最新的browser支持文件和一個可擴(kuò)展的方法。

  • 新的Page屬性

任何ASP.NET開發(fā)人員對于@Page標(biāo)簽都不會陌生。好消息是ASP.NET4.0完全兼容之前版本所提供的42個屬性。更好的消息是,ASP.NET4.0還帶來了6個新的屬性,以應(yīng)對日益復(fù)雜的開發(fā)需求:

  1. ClientIDMode 顧名思義,這個屬性用來定義ASP.NET將如何生成控件的客戶端ID,如果你是一個前端開發(fā)人員,你將會明白能夠確定的控制客戶端ID的生成將帶來多大的便利。可能的值為AutoID(default/current),Predictable,Static和Inherit。
  2. ClientTarget 用來定義頁面將針對哪個瀏覽器來執(zhí)行。這將覆蓋ASP.NET提供的自動瀏覽器識別功能,可能的應(yīng)用場景為比如我們只需要支持IE瀏覽器或只需要支持FIREFOX等。
  3. MetaDescription 顧名思義,用來生成頁面的meta 的description標(biāo)簽。在我看來只是提供了一個更為官方的方法和方式,標(biāo)準(zhǔn)化了這一流程。
  4. MetaKeywords 顧名思義,用來生成meta的keywords標(biāo)簽。
  5. TargetSchema 用來定義驗(yàn)證頁面所需的schema。這個標(biāo)簽只是用來標(biāo)識的,并不會真正的執(zhí)行。可以看作一種代碼注釋。
  6. ViewStateMode 用來定義頁面的VIEWSTATE是opt-in還是opt-out(默認(rèn))模式。

總體來說變化不大,提供了一些呼聲很高的功能。

  • 生成更純凈,更標(biāo)準(zhǔn)的HTML代碼

這一直是ASP.NET中比較大的問題。ASP.NET1.1生成的html代碼基本都不符合標(biāo)準(zhǔn),這一點(diǎn)在ASP.NET 2.0中已經(jīng)進(jìn)行了改進(jìn),我們在web.config中引入了xhtmlConformance,用來定義控件將生成何種標(biāo)準(zhǔn)的HTML代碼,默認(rèn)為XHTML1.0 Transitional standard(Transitional)。相應(yīng)的,我們可以將它設(shè)定為XHTML1.0 Strict(Strict)或者選擇生成與ASP.NET1.1相同的HTML代碼(Legacy,主要用來兼容從ASP.NET1.1升級而來的網(wǎng)站)。

不幸的是,在Legacy模式運(yùn)行的網(wǎng)站與ASP.NET AJAX不兼容,而且盡管Transitional與Strict模式與XHTML標(biāo)準(zhǔn)兼容,但生成的代碼對CSS也是非常不友好的。例如:

  1. menu用table輸出而不是UL/OL。
  2. 服務(wù)器端的控件屬性例如 border=0 或disabled=disabled 是強(qiáng)制的并且無法移除。
  3. 對于支持template的控件,你可以對template內(nèi)的代碼進(jìn)行任何的自定義,但無法移除最外層的table標(biāo)簽。

ASP.NET3.5帶來的ListView,DataPager和CSS Control Adapters控件帶來了過渡性的解決方案,ASP.NET4.0完全將他們集成在新版本的System.Web中,使得微軟可以使ASP.NET 4.0可以盡可能的對CSS友好。毋庸置疑,生成干凈的HTML標(biāo)簽是ASP.NET 4.0的重要目標(biāo)之一。

  • ControlRenderingCompatibilityVersion

與xhltmlComformance類似,ASP.NET4.0為web.config帶來了這個新的屬性。當(dāng)設(shè)置為3.5時,一切將和原來一致,但當(dāng)你設(shè)置為4.0時,控件將按照全新的模式輸出HTML代碼:

  1. xhtmlConformance被設(shè)置為Strict。
  2. menu將會用UL/OL的形式輸出。
  3. 多余的HTML屬性將被移除,甚至連validation的字體顏色也不會被設(shè)置為紅色。
  4. 將可以對控件使用RenderOuterTable屬性來控制是否輸出外圍的table標(biāo)簽。

在我看來這對于習(xí)慣使用控件的同學(xué)是個好消息。微軟又幫你做了許多工作。

  • 新增的一些小功能

列舉一些新增的細(xì)節(jié)功能

  1. 內(nèi)置<ASP:chart>。
  2. 三種新的Redirect方式:Response.RedirectToRoute(HTTP302), Response.RedirectToRoutePermanent(HTTP301)和Response.RedirectPermanent(HTTP301)。
  3. Inline的HTML encoded 字符串。
  4. Routing配置更便捷。

NET技術(shù)ASP.NET 4.0 來了,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 久久强奷乱码老熟女 | 伊人久久精品99热超碰 | 电影内射视频免费观看 | 相声flash | 黑色丝袜美腿美女被躁翻了 | 久久99re6国产在线播放 | 伊人久久五月丁婷婷 | 99久久国产露脸精品国产吴梦梦 | 男生jj插入女生jj | 精品国产三级a | 蜜芽最新域名解析网站 | 嫩草欧美曰韩国产大片 | 日本高清在线一区二区三区 | 午夜福利网国产A | 恋孩癖网站大全在线观看 | 亚洲熟妇AV乱码在线观看 | 日本护士hd | 久久人妻少妇嫩草AV蜜桃99 | 午夜办公室在线观看高清电影 | japanesematur乱儿| 娇小亚裔被两个黑人 | 美女伸开两腿让我爽 | 久久大香线蕉综合爱 | 少妇大荫蒂毛多毛大 | 青草久久久 | 亚洲色大成网站www久久九九 | 久久亚洲国产成人影院 | 男女全黄h全肉细节文 | 我的美女房东未删减版免费观看 | 久久成人免费观看草草影院 | 日韩欧美中文字幕一区 | 奶水四溅54p | 日韩免费一区 | 蜜桃传媒星空传媒在线播放 | 强姧伦久久久久久久久 | 成人精品亚洲 | 精品久久久久久综合网 | 一本道dvd久久综合高清免费 | 巨污全肉np一女多男 | 同桌上课把奶露出来给我玩 | 一级毛片视频免费 |