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

ASP.NET 4.0 來了

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

  在何時你需要使用ASP.NET4.0開發你的網站程序?

  • 需要更嚴格的遵守Web標準;
  • 需要更流暢的Web Form開發方式;
  • 需要更好的搜索引擎優化;
  • 需要后知后覺的糾正一些不夠優良的設計,這些設計甚至可能是在ASP.NET 1.0發布之前就存在的;
  • 需要將現有的功能重新改造為支持server farm或跨application domains;
  • 需要將.NET調節和重組為一個整體。

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

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

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

  • 新的項目類型:


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

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

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

原理很簡單,ASP.NET團隊對web.config文件進行了重構,將通用的設置寫進默認的機器級別的web.config中。只剩下兩個需要頻繁變化的設置項。

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

*.config文件的層級結構:

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

關于不同級別的config文件的關系,非常類似與CSS文件的復寫。簡單的來說就是離你越近的config權值越高,也就是最底層的machine.config權值最低,你新建的web項目中的web.config的權值最高。

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

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

  • Browscap.ini

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

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

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

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

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

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

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

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

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

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

  • 新的Page屬性

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

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

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

  • 生成更純凈,更標準的HTML代碼

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

不幸的是,在Legacy模式運行的網站與ASP.NET AJAX不兼容,而且盡管Transitional與Strict模式與XHTML標準兼容,但生成的代碼對CSS也是非常不友好的。例如:

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

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

  • ControlRenderingCompatibilityVersion

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

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

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

  • 新增的一些小功能

列舉一些新增的細節功能

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

NET技術ASP.NET 4.0 來了,轉載需保留來源!

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

主站蜘蛛池模板: 日日夜夜天天操 | 在线观看国产亚洲 | 国产精品97久久AV麻豆 | 一区二区三区无码被窝影院 | 国产又爽又黄又不遮挡视频 | 高傲教师麻麻被同学调教123 | 呻吟翘臀后进爆白浆 | 亚洲欧洲久久 | 亚洲高清国产拍精品动图 | 男人的天堂MV在线视频免费观看 | 水蜜桃亚洲一二三四在线 | 亚洲AV一宅男色影视 | 成视频高清 | 色宅男午夜电影网站 | jizz非洲 | 啪啪激情婷婷久久婷婷色五月 | 亚洲色图激情文学 | 亚洲成色WWW久久网站夜月 | 中文字幕乱码在线人视频 | 日韩AV片无码一区二区三区不卡 | 久久久精品久久久久三级 | 岛国在线永久免费视频 | 99久久免费精品国产免费 | 亚洲性无码AV久久成人 | 久久精品国产亚洲精品2020 | 大地影院免费观看视频 | av av在线| 与子敌伦刺激对白亂輪亂性 | 亚洲色婷婷久久精品AV蜜桃 | 久久综合中文字幕佐佐木希 | 国产成人精品一区二区三区视频 | 国产精品A久久久久久久久 国产精品A久久777777 | 麻豆国产人妻精品无码AV | 久久毛片基地 | 亚洲乱码在线卡一卡二卡新区 | 精品久久久久久久高清 | 欧美色图14p| 美女医生深夜在家裸睡惨死 | 嗯啊…嗯np男男双性总受 | 久久久综合中文字幕久久 | 哪里能看毛片 |