Dot Net FrameWork 4.0 學習筆記(3)
睡的迷迷糊糊了,忽然想起來今天剛要記錄的學習筆記還有更新,哎,,爬起來弄完再睡吧...
今天的筆記沿上節記錄繼續往下,今天內容有
1,動態數據(Dynamic Data)加強(以前的版本:你們能夠去google或msdn一下)
(1).EnableDynamicData - 啓用 Dynamic Data 的功能
(2).DynamicHyperLink - 用於方便地生成在 Dynamic Data 站點中導航的超級連接
(3).Entity Template - 實體模板是一個新增的用於自定義數據顯示的模板,其基於 FormView 控件作數據呈現
(4).DisplayAttribute - 新增的一個 Attribute(能夠設置字段的Name和Order)
(5).其它新特性
2,AJAX 加強
3,Visual Studio 2010 加強
ASP.NET 動態數據容許您經過在運行時從數據庫架構推斷數據實體的外觀和行爲並從中派生 UI 行爲,建立可擴展的、數據驅動的 Web 應用程序。
動態數據支持基架,經過基架能夠爲數據庫中的每一個表自動生成網頁。 基架使您能夠基於數據架構建立用於查看和編輯數據的功能性網站。 您能夠輕鬆地自定義基架元素,或者建立新元素以重寫默認行爲。
您還能夠無需使用基架直接在現有或新的 Web 應用程序中啓用動態行爲。在這種狀況下,須要指定動態數據應如何以及什麼時候在不須要整個網站的基架的狀況下
動態數據體系結構
摘自MSDN關於動態數據描述
說白了,其上所談到的ASP.NET動態數據爲根據路由信息,讓咱們的Web應用程序能夠動態的作一些CRUD的簡單數據庫操做及關聯表自定義操做,還能夠將咱們的字段羅列出來作一個模板功能,那麼下一次再用到此類控件,那麼其上的表現樣式會和咱們定義的邏輯一致,固然還能夠作動態數據驗證,甚至類型驗證等等操做。
動態數據項目目錄結構一覽
動態數據的起始點,根據以上路由信息開始了第一步
一個list+details的顯示列表
根據外鍵屬性而來的字段關聯修改
結合數據實體所作的字段驗證或類型驗證
固然所介紹的這些並非本節的重點,咱們所關注的是4.0中動態數據加強了什麼 /微笑
(1). EnableDynamicData 爲控件啓用動態數據
protected void Page_Init()
{
/*
* EnableDynamicData - 啓用 Dynamic Data 的功能(包括字段模板,數據驗證在內的等等 Dynamic Data 的功能都會被啓用)
* 第一個參數:須要啓用Dynamic Data 功能的實體類型
* 第二個參數:當控件啓用插入模板的時候,爲字段指定默認值
*/
DetailsView1.EnableDynamicData(typeof(EmployeeInfo));
}
(2). DynamicHyperLink 動態連接標籤
<!--
DynamicHyperLink - 用於方便地生成在 Dynamic Data 站點中導航的超級連接
Action - 指定 Action(可選值有 List|Details|Edit|Insert)
TableName - 須要連接到的目標表名
ContextTypeName - 上下文的類全名
固然在實際操做中咱們可能僅需提供Action就能夠了,由於其他兩項路由已經
幫咱們註冊了
-->
<asp:DynamicHyperLink ID="dynamicLink"runat="server"Text="所有員工信息" Action="List"
TableName="EmployeeInfo" ContextTypeName="DynamicData.HrmsEntities">
</asp:DynamicHyperLink>
<!--
生成的 HTML 代碼以下:
<a id="ListHyperLink"href="/Products/List.aspx">所有產品</a>
-->
(3). Entity Template 實體模板
在4.0中新增長了實體模板項,這樣一來對於Details或者Insert,Edit的操做就有了更多的定製化,更多的可控性。固然此模板目前僅對FromView適用
<!—FormView模板-->
<asp:FormView runat="server"ID="FormView1" DataSourceID="DetailsDataSource"DefaultMode="Edit"
OnItemCommand="FormView1_ItemCommand"OnItemUpdated="FormView1_ItemUpdated"RenderOuterTable="false">
<EditItemTemplate>
<table id="detailsTable" class="DDDetailsTable"cellpadding="6">
<asp:DynamicEntity runat="server" Mode="Edit"/>
<tr class="td">
<td colspan="2">
<asp:LinkButtonrunat="server" CommandName="Update" Text="更新"/>
<asp:LinkButtonrunat="server" CommandName="Cancel" Text="取消"CausesValidation="false" />
</td>
</tr>
</table>
</EditItemTemplate>
<EmptyDataTemplate>
<div class="DDNoItem">無此類項。</div>
</EmptyDataTemplate>
</asp:FormView>
<!—實體項模板-->
<asp:EntityTemplaterunat="server" ID="EntityTemplate1">
<ItemTemplate>
<tr class="td">
<td class="DDLightHeader">
<asp:Labelrunat="server" OnInit="Label_Init"OnPreRender="Label_PreRender" />
</td>
<td>
<asp:DynamicControlrunat="server" ID="DynamicControl" Mode="Edit"OnInit="DynamicControl_Init" />
</td>
</tr>
</ItemTemplate>
</asp:EntityTemplate>
以後就是後臺代碼,在一些特定事件中完成動態加載列表信息或呈現列表的操做
(4). DisplayAttribute 進行顯示視圖信息文本的命名過程,很簡單的display的name,order屬性
(5),其餘新特性
①,DynamicDataManager 控件新增了 DataControls 屬性,在其內能夠聲明多個 DataControlReference,用於指定哪些控件須要啓用 Dynamic Data 的功能,固然這樣的方式咱們在init事件經過設置控件的EnableDynamicData也能夠完成
<asp:DynamicDataManager ID="DynamicDataManager1" runat="server" AutoLoadForeignKeys="true">
<DataControls>
<asp:DataControlReference ControlID="GridView1" />
</DataControls>
</asp:DynamicDataManager>
<asp:GridView id="GridView1" runat="server" />
②,新增了一個 EnumDataTypeAttribute,能夠聲明某字段爲枚舉類型。對應的字段模板裏也新增了 Enumeration.ascx 和 Enumeration_Edit.ascx (以下圖所示)
③,新增了兩個數據類型
[DataType(DataType.EmailAddress)] 對應的字段模板裏也新增了 EmailAddress.ascx
[DataType(DataType.Url)] 對應的字段模板裏也新增了 Url.ascx
④,支持多對多的關係(限 Entity Framework 模型).對應的字段模板裏也新增了 ManyToMany.ascx 和 ManyToMany_Edit.ascx
⑤,原 Dynamic Data 會自動地將類型爲 Boolean, Enumeration, ForeignKey 的字段做爲查詢條件輸出到頁面上。如今新增了 Filter Template(查詢模板),能夠對這些查詢條件的樣式和邏輯等作自定義修改,如3,4兩張圖所示,咱們這關聯列表能夠由咱們本身作主了
2,AJAX加強
1,Visual Studio 2010 內包含了 jQuery , 固然若是安裝2008SP1補丁+Jquery的話2008也是能夠的
2,JavaScript 框架的 CDN , 在這樣一個細小的細節上更能體現出設計者的心思,真是用心良苦
jQuery - <script src="http://ajax.Microsoft.com/ajax/jquery-1.3.2.js" type="text/javascript"></script>
asp.net ajax - <asp:ScriptManager ID=」ScriptManager1」 EnableCdn=」true」 runat=」server」 />
3,asp.net ajax 的按需加載腳本,以下所示
<asp:ScriptManager ID="ScriptManager1" AjaxFrameworkMode="Explicit" runat="server">
<Scripts>
<asp:ScriptReference Name="MicrosoftAjaxCore.js" />
<asp:ScriptReference Name="MicrosoftAjaxSerialization.js" />
</Scripts>
</asp:ScriptManager>
3,IDE 2010的加強
工欲善其事必先利其器,做爲一個開發者這玩意確定纔是神器
①,HTML 和 JavaScript 支持 Code Snippets(代碼片斷) 經常使用的代碼片斷就能夠放入其中方便管理
組合鍵 ctrl+k ctrl+x 用於插入代碼片斷
組合鍵 ctrl+k ctrl+b 用於調出代碼片斷管理器
②、根據不一樣配置生成不一樣版本的 Web.config 文件
在 Web.config 文件點右鍵,選擇 「Add Config Transforms」,可生成不一樣配置的 Web.config 文件(生成包的時候,按哪一種配置生成則生成哪一種配置的 Web.config 文件)
默認有兩種配置,即 Debug 和 Release ,能夠在 Build -> Configuration Manager 中作 新增/刪除/修改/更新 配置的操做
③、智能提示的改進。好比在對象後面「點」屬性的時候,它將根據已輸入的字母作篩選。例:若是在 TextBox 對象後鍵入 text, 則智能提示只會顯示 Text, TextChanged, TextMode(之前會把對象的全部屬性、方法、事件都列出來)
④、將光標放到某一個標識上的時候,則該頁全部使用了此標識的地方都會被 IDE 突出顯示出來
⑤、新增了一個開發環境配置 - Code Optimized ,在此模式下只有 html 編輯視圖,而沒有設計視圖。在第一次啓動 Visual Studio 2010 的時候,能夠選擇開發環境配置。之後若是須要修改開發環境配置,能夠在此處操做:工具 > 導入/導出設置 > 重置全部選項
⑥、在項目屬性中新增了兩個選項卡,Package/Publish Web 和 Package/Publish SQL,分別用於生成 Web 包和 SQL 包
嗯,終於把第三節的內容整理完畢,,下節爲命名參數和可選參數 ,動態數據綁定,協變與逆變,新增的線程同步類
歡迎關注本站公眾號,獲取更多信息