Dot Net FrameWork 4.0 学习笔记(3)

简介:




    睡的迷迷糊糊了,突然想起来今天刚要记录的学习笔记还有更新,哎,,爬起来弄完再睡吧...   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 应用程序中启用动态行为。在这种情况下,需要指定动态数据应如何以及何时在不需要整个网站的基架的情况下
  动态数据体系结构
 
    Dot Net FrameWork 4.0 学习笔记(3) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝

    摘自MSDN关于动态数据描述
 
    说白了,其上所谈到的ASP.NET动态数据为根据路由信息,让我们的Web应用程序可以动态的做一些CRUD的简单数据库操作及关联表自定义操作,还可以将我们的字段罗列出来做一个模板功能,那么下一次再用到此类控件,那么其上的表现样式会和我们定义的逻辑一致,当然还可以做动态数据验证,甚至类型验证等等操作。

    Dot Net FrameWork 4.0 学习笔记(3) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝
    动态数据项目目录结构一览 


    Dot Net FrameWork 4.0 学习笔记(3) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝

    动态数据的起始点,根据以上路由信息开始了第一步
    Dot Net FrameWork 4.0 学习笔记(3) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝

    一个list+details的显示列表
    Dot Net FrameWork 4.0 学习笔记(3) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝

    根据外键属性而来的字段关联修改
    Dot Net FrameWork 4.0 学习笔记(3) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝

    结合数据实体所做的字段验证或类型验证
 
    当然所介绍的这些并不是本节的重点,我们所关注的是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属性
    Dot Net FrameWork 4.0 学习笔记(3) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝


    (5),其他新特性

    ①,DynamicDataManager 控件新增了 DataControls 属性,在其内可以声明多个 DataControlReference,用于指定哪些控件需要启用 Dynamic Data 的功能,当然这样的方式我们在init事件通过设置控件的EnableDynamicData也可以完成  Dot Net FrameWork 4.0 学习笔记(3) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝
     <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

    Dot Net FrameWork 4.0 学习笔记(3) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝
 


     ④,支持多对多的关系(限 Entity Framework 模型).对应的字段模板里也新增了 ManyToMany.ascx 和 ManyToMany_Edit.ascx


     ⑤,原 Dynamic Data 会自动地将类型为 Boolean, Enumeration, ForeignKey 的字段作为查询条件输出到页面上。现在新增了 Filter Template(查询模板),可以对这些查询条件的样式和逻辑等做自定义修改,如3,4两张图所示,我们这关联列表可以由我们自己做主了  Dot Net FrameWork 4.0 学习笔记(3) - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝


    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 包

    嗯,终于把第三节的内容整理完毕,,下节为命名参数和可选参数 ,动态数据绑定,协变与逆变,新增的线程同步类




     本文转自My_King1 51CTO博客,原文链接:http://blog.51cto.com/apprentice/1360550,如需转载请自行联系原作者



相关文章
|
2月前
使用的是.NET Framework 4.0,并且需要使用SMTP协议发送电子邮件
使用的是.NET Framework 4.0,并且需要使用SMTP协议发送电子邮件
59 1
|
2月前
|
开发框架 缓存 监控
NET Framework 到 .NET 5/6 的迁移是重大的升级
本文详细介绍了从 .NET Framework 4.8 迁移到 .NET 5/6 的过程,通过具体案例分析了迁移策略与最佳实践,包括技术栈评估、代码迁移、依赖项更新及数据库访问层的调整,强调了分阶段迁移、保持代码可维护性及性能监控的重要性。
64 3
|
2月前
|
机器学习/深度学习 编解码 算法
【小样本图像分割-4】nnU-Net: Self-adapting Framework for U-Net-Based Medical Image Segmentation
《nnU-Net: 自适应框架用于基于U-Net的医学图像分割》是一篇2018年的论文,发表在Nature上。该研究提出了一种自适应的医学图像分割框架nnU-Net,能够自动调整模型的超参数以适应不同的数据集。通过2D和3D U-Net及级联U-Net的组合,nnU-Net在10个医学分割数据集上取得了卓越的性能,无需手动调整。该方法强调数据增强、预处理和训练策略等技巧,为医学图像分割提供了一个强大的解决方案。
106 0
【小样本图像分割-4】nnU-Net: Self-adapting Framework for U-Net-Based Medical Image Segmentation
winform .net6 和 framework 的图表控件,为啥项目中不存在chart控件,该如何解决?
本文讨论了在基于.NET 6和.NET Framework的WinForms项目中添加图表控件的不同方法。由于.NET 6的WinForms项目默认不包含Chart控件,可以通过NuGet包管理器安装如ScottPlot等图表插件。而对于基于.NET Framework的WinForms项目,Chart控件是默认存在的,也可以通过NuGet安装额外的图表插件,例如LiveCharts。文中提供了通过NuGet添加图表控件的步骤和截图说明。
winform .net6 和 framework 的图表控件,为啥项目中不存在chart控件,该如何解决?
|
4月前
|
开发框架 缓存 前端开发
实战.NET Framework 迁移到 .NET 5/6
从.NET Framework 迁移到.NET 5/6 是一次重要的技术革新,涵盖开发环境与应用架构的全面升级。本文通过具体案例详细解析迁移流程,包括评估现有应用、利用.NET Portability Analyzer 工具识别可移植代码、创建新项目、逐步迁移代码及处理依赖项更新等关键步骤。特别关注命名空间调整、JSON 序列化工具更换及数据库访问层重构等内容,旨在帮助开发者掌握最佳实践,确保迁移过程平稳高效,同时提升应用性能与可维护性。
160 2
|
4月前
|
开发框架 JSON 监控
实战指南:从 .NET Framework 迁移到 .NET 5/6 的策略与最佳实践
【8月更文挑战第28天】从 .NET Framework 迁移到 .NET 5/6 是一次重要的技术升级,涉及开发环境与应用架构的改进。本文通过具体案例分析,介绍迁移策略与最佳实践,帮助开发者顺利完成转变。
95 1
|
4月前
|
缓存 程序员
封装一个给 .NET Framework 用的内存缓存帮助类
封装一个给 .NET Framework 用的内存缓存帮助类
|
4月前
|
XML JSON 程序员
总结一下 .NET FrameWork 和 .NET Core 创建的项目的不同点
总结一下 .NET FrameWork 和 .NET Core 创建的项目的不同点
113 0
|
4月前
|
消息中间件 开发框架 .NET
闲话 .NET(7):.NET Core 能淘汰 .NET FrameWork 吗?
闲话 .NET(7):.NET Core 能淘汰 .NET FrameWork 吗?
|
4月前
|
开发框架 前端开发 .NET
闲话 .NET(3):.NET Framework 的缺点
闲话 .NET(3):.NET Framework 的缺点