﻿# VS2010 上市發表會：Web 開發效率提昇 - ASP.NET 4.0

今天是 Visual Studio 2010 上市發表會 (台北場) 的日子，這段時間無不用盡心思研讀文件與撰寫簡報，為了就是能夠完美演繹我今天講的主題【 **Web 開發效率提昇 - ASP.NET 4.0** 】，這是我第一次講這麼多人的場次，感覺應該要緊張才對，神奇的是今天上台完全沒有緊張感，我覺得可能是準備充分的關係，昨晚又拉公司同事下來聽我預演到晚上 11:30 (萬分感謝)，所以心理感覺很踏實，雖然最近嚴重睡眠不足，但這次學到一次寶貴的演說經驗，感覺蠻開心的。

以下是今天演說的一些重點，最後有我這次準備講義內容的參考連結，可以讓各位持續修練 .NET 技藝，早日成為大內高手。至於**簡報檔**恐怕不適合讓各位下載，我還要給中南部的鄉親有一些些神秘感。

**程式碼片段 (Code Snippets)**

-   [jQuery Code Snippets for Visual Studio 2010](https://marketplace.visualstudio.com/items?itemName=kspearrin.jQueryCodeSnippets)

**專案升級後的注意事項**

-   IIS 的設定也要跟著變才行，以下動作二選一：

-   站台指定到 ASP.NET v4.0
-   應用程式集區切換至 .NET Framework 4.0

-   要求驗證 (Request Validation) 變嚴謹了

```
<httpRuntime requestValidationMode="2.0" />
```

**ASP.NET 4 新玩意**

-   ASP.NET 網址長度不受限

```
<httpRuntime maxUrlLength="1000" relaxedUrlToFileSystemMapping="true" />
```

-   支援 HTTP 301 永久轉向

```
Response.RedirectPermanent("/", true);
```

-   ASP.NET 的三種快取機制

-   ASP.NET 快取

-   跟之前一模一樣

-   .NET 物件快取

-   .NET 4 新增的特性
-   提供 .NET ObjectCache 抽象類別，可統一快取資料儲存的方式

-   ASP.NET 輸出快取

-   提供 OutputCacheProvider 可自行擴充

-   ASP.NET 效能提升

-   Session 自動壓縮
    
    ```
    <sessionState  mode="SqlServer"  sqlConnectionString="data source=dbserver;Initial Catalog=aspnetstate"  allowCustomSqlDatabase="true"  compressionEnabled="true"/>
    ```
    
-   可透過程式控制工作階段狀態開啟或關閉
-   支援 IIS 7.5 的自動啟動網站機制

-   只有 IIS 7.5  +  ASP.NET 4 能用
-   應用程式集區回收過程能讓使用者完全沒感覺

-   ASP.NET 效能監測

-   32 位元網站應用程式監測

-   C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\aspnet.config

-   64 位元網站應用程式監測

-   C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\aspnet.config

-   新增以下設定
    
    ```
    <?xml version="1.0" encoding="UTF-8" ?> <configuration>   <runtime>     <appDomainResourceMonitoring enabled="true"/>   </runtime></configuration>
    ```
    
-   新增效能計數器的時候

-   類別：ASP.NET Application
-   名稱：

-   % Managed Process Time (estimated)
-   Managed Memory Used (estimated)

-   ASP.NET Web Form

-   增強搜尋引擎優化功能

-   MetaDescription
-   MetaKeywords
-   Routing – 建立 SEO Friendly 的網址

-   使用新增的 RouteTable.Routes.MapPageRoute() 方法

-   更有效率的使用 ViewState

-   以前：只有 EnableViewState
-   現在：有了 ViewStateMode 可控制 ViewState 的使用

-   更精緻的 Client IDs 控制

-   以前：控制項的 ClientID 無法自由設定名稱
-   現在：控制項提供 4 種不同的 ClientID 設定方法

-   AutoID
-   Static
-   Predictable
-   Inherit

-   可過濾資料的 QueryExtender 控制項

-   比以前更方便的過濾 LinqDataSource 或 EntityDataSource 的資料

-   控制項輸出的 HTML 更標準化

-   CheckBoxList 與 RadioButtonList 控制項 RepeatLayout 屬性

-   新增 OrderedList 可輸出 <ol> 與 <li>
-   新增 UnorderedList 可輸出 <ul> 與 <li

-   Menu 控制項

-   以前：使用 <table> 排版
-   現在：使用 <div> + <ul> + <li>

-   ListView 控制項

-   以前：再怎麼不願意也要加上 <LayoutTemplate>
-   現在：終於可以省略了

-   透過 ASP.NET 框架輸出的隱藏欄位

-   以前：隱藏欄位的 HTML 輸出成以下這附德行
-   現在：隱藏欄位的 HTML 輸出加上了 aspNetHidden class

-   樣版控制項 (Templated Controls)

-   以前：輸出的 HTML 都會包一層 <table> 很難套版
-   現在：可套用 RenderOuterTable=“false” 屬性隱藏 <table>

-   ASP.NET 圖表控制項

-   ASP.NET 4 已納入 ASP.NET 家族正式成為內建的控制項
-   完整的範例程式: [https://web.archive.org/web/20081023100227/http://code.msdn.microsoft.com/mschart](https://web.archive.org/web/20081023100227/http://code.msdn.microsoft.com/mschart "http://code.msdn.microsoft.com/mschart
    ")
-   透過 Visual Studio 2010 升級至 ASP.NET 4 之後會無法成功編譯

-   修改 web.config 將檔案中所有 3.5 都改成 4.0 即可

-   ASP.NET MVC

-   支援 Area 子網站功能
-   透過 Data-Annotation 屬性驗證 Model 資料
-   增強 View 控制顯示資料的能力 ： Templated Helpers
-   新增 Html.RenderAction
-   更方便的輸出 Html.Encode 訊息的方式

-   Dynamic Data

-   強
-   快速建置網站的密技

-   網站部署

-   Web.config 組態轉換
-   懶人組態轉換法 (點圖可放大)  
    [![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/0b4198c9a5583cc31c5e-image_thumb.png)](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/6a6b6beb7d4098a8c95f-image.png)
-   強大的網站部署工具

-   發行的目標網站不再砍掉重練！而是差異更新！！
-   Web 單鍵發行

**參考連結**

-   [ASP.NET 4 and Visual Studio 2010 Web Development Overview](http://www.asp.net/learn/whitepapers/aspnet4) \[ [Download Whitepaper](http://download.microsoft.com/download/7/1/A/71A105A9-89D6-4201-9CC5-AD6A3B7E2F22/ASP_NET_4_and_Visual_Studio_2010_Web_Development_Overview.pdf) \]
-   [ASP.NET 4 Breaking Changes](http://www.asp.net/LEARN/whitepapers/aspnet4/breaking-changes/)
-   [What's New in ASP.NET 4 and Visual Web Developer](http://msdn.microsoft.com/en-us/library/s57a598e.aspx)
-   [What's New in the .NET Framework 4](http://msdn.microsoft.com/en-us/library/ms171868.aspx)
