是一种建立web解决方案的令人惊异的技术早在aspnet(编辑修改稿)内容摘要:

了极大的便利,甚至还考虑到了类似于根据终端用户的角色如何确定显示站点的哪一部分这类事情。 5. Entity Framework 大多数开发人员都需要使用某种底层的数据库,无论使用的是 Microsoft SQL Server 数据库还是 Oracle 数据库,应用程序通常都要提取某种内容,以执行操作。 使用底层数据库的难点在于数据库与面向对象的代码在处理对象时使用的方式大相径庭。 在数据库 领域中,数据结构放在表中,项中的集合 (例如,附带有相关 Orders 项的 Customers对象 )简单地表示为使用 Join 语句连接起来的两个表。 而在面向对象的代码中,在表示这些对 象时, Orders 项是 Customers 对象的一个属性。 把这两个领域关联起来并映射出这些区别总是比较麻烦的工作。 4 引入了 Entity Framework,它有点类似于 LINQ to SQL。 Entity Framework 的目标是允许创建一个实体数据模型 (Entity Data Model, EDM),以便于映射面向对象的数据与这些数据在数据库中的表达方式。 Entity Framework 的一个优点是它可以使用许多不同类型的数据库,因此不像LINQ to SQL 那样只使用一个数据库。 另一个优点是, Entity Framework 是 前 言 IX 4 引入的其他一些新技术的基础,如。 6. 4 的另一个新功能是 ,利用这个功能可以方便地在几分钟内,通过数据库创建报表和数据输入应用程序。 使用 动态数据很简单,只需指向在应用程序中创建的实体数据模型 (EDM),允许动态数据引擎自动创建 Web页面,以提供数据库中的创建、编辑、更新和删除等全部功能。 动态数据要求有一个实体数据模型才能工作。 但是,不一定非要使用 实体架构,也可以使用已创建好的任意 LINQ to SQL 模型。 动态数据的体系结构的一个优点是,它在动态生成站点上的页面时使用的是模板。 作为使用这个系统的开发人员,用户也可以使用系统的全部功能,甚至可以提取其中的一部分,把它的功能合并 到已有的。 7. WCF数据服务 4 版本的另一个重要功能是 WCF 数据服务。 WCF数据服务的正式名称为 数据服务,它允许用户在数据库上创建 RESTful 服务接口。 使用 WCF数据服务,可以把请求的 URL 用作命令驱动的 URI,并和 HTTP 动词一起使用,告诉服务器如何处理底层数据。 使用这种技术可以创建、读取、更新或删除底层数据库的数据,但接口的实现人员也可以限制终端用户可用的功能和访问权限。 编译系统 中的编译 是一个很复杂的过程。 在 中,要使用 Visual Studio 建立应用程序的隐藏代码文件,部署它,然后在请求每个页面时逐页观察 .aspx文件是否已编译。 如果在 中对隐藏代码文件进行了修改,则只有到重新建立了整个应用程序后,这些修改的内容才会反映到应用程序中。 也就是说,在重新编译整个应用程序之前,必须再次逐个地请 求每个 页面。 处理类和编译的方式在 4 中得到了改进。 新编译系统的机制实际上是从页面在 4 中的构建 方式入手的。 在 中,页面的构建方法有两种,要么使用隐藏代码模型,要么把所有的服务器代码内联放在 .aspx 页面的 script标记之间。 使用隐藏代码模型构建大多数页面,因为在 Visual Studio .NET 2020 或 2020 中,这是默认方式。 在这些 IDE 中使用内联代码的方式创建页面是比较困难的。 如果使用这种方式创建页面,就不能使用 IntelliSense,而在使用 .NET Framework 提供的绝大多数类集合时, IntelliSense 对创建工作是很有帮助的。 4 提供了一个与 ,因为 .NET Framework 4 具有使用部分类 (也称为部分类型 )的功能。 在编译时,各个离散的文件将组合为一个文件,这将生成非常清晰的隐藏代码页面。 作为类中 Web Form Designer Generated 部分的代码与自己创建的隐藏代码类是分开的。 而在 中则与此相反, .aspx页面需要从它自己的隐藏代码文件中派生,以表示单一的逻辑页面。 4 应用程序可以包含一个 App_Code 目录,以放置类的源代码。 放在该目录下的 4 高级编程 —— 涵盖 C 和 (第 7版 ) X 所 有类都是动态编译的,并在应用程序中反映出来。 在进行修改时,不需要像 那样使用独立的构建过程,这是一个“只要保存就可以使用”的部署模型,类似于传统 ASP 中的部署模型。 无论使用隐藏代码模型还是内联编码, Visual Studio 2020 都可以自动地为App_Code 目录中的对象提供 IntelliSense。 4 还提供了一些工具,可以预先编译 ,包括 .aspx页面和隐藏代码,这样当第一次检索页面时,应用程序中的所有页面都不会出现延迟现象。 这也是一个 即使不调用每个页面也能发现页面中错误的好方法。 (以及 和 4 版本 )应用程序的预编译非常简单,只需使用 和某些可用的标记即可。 在预编译整个应用程序时,如果在应用程序中发现错误,我们就会收到错误通知。 预编译还能使用户向部署服务器传送已创建的程序集,从而防止代码在部署后被窃取、修改和损坏。 本书后面会列举这方面的示例。 应用程序的健康监控 内置的 健康监控功能 相当强大,它非常便于管理已部署的 应用程序。 顾 名思义,健康监控功能可以监控已部署的。 使用健康监控系统可以执行健康监控事件 (称为 Web事件 )的记录操作,如失败的登录、应用程序的启动和停止或未处理的异常等。 事件记录操作可以在多个地方执行,因此可以把事件记录到事件日志或数据库中。 除了执行这个基于磁盘的记录操作之外,还可以使用该系统通过电子邮件发送健康监控信息。 除了处理应用程序中的特定事件之外, 健康监控系统 还可以记录正在运行的应用程序在某一时刻的健康状况。 与 4 内置的大多数系统一样,也可以扩展健康监控系统 ,创建自己的事件,以记录应用程序信息。 在系统的 .config文件中,默认为激活健康监控功能。 健康监控的默认设置会把所有的错误和失败的审查记录到事件日志中。 例如,在应用程序中抛出一个错误,就会在 Application 日志中记录一个错误通知。 只需对应用程序的 ,就可以改变默认的事件记录操作。 例如,假设要把这些错误事件信息存储在应用程序的一个 SQL Express 文件中,就可以在 文件中添加一个 healthMonitoring节点,如程序清单 05 所示。 程序清单 05 在 文件中定义健康监控功能 healthMonitoring enabled=true providers clear / add name=SqlWebEventProvider connectionStringName=LocalSqlServer maxEventDetailsLength=1073741823 buffer=false bufferMode=Notification type=, ,Version=,Culture=neutral, 前 言 XI PublicKeyToken=b03f5f7f11d50a3a/ /providers rules clear / add name=All Errors Default eventName=All Errors provider=SqlWebEventProvider profile=Default minInstances=1 maxLimit=Infinite minInterval=00:01:00 custom= / add name=Failure Audits Default eventName=Failure Audits provider=SqlWebEventProvider profile=Default minInstances=1 maxLimit=Infinite minInterval=00:01:00 custom= / /rules /healthMonitoring 进行了这个修改后,事件就会记录到项目中自动创建的 文件内 (如果它还没有出现在项目中的话 )。 打开 这个 SQL Express文件,可以找到 asp_WebEvent_Events 表,其中包含所有这些信 息。 第 34 章将更全面地介绍 4 提供的健康监控功能。 读写配置设置 使用 WebConfigurationManager 类,可以读写服务器或应用程序配置文件。 也就是说,可以读写应用程序所用的 或 文件中的设置。 读写配置文件的功能不但可以处理应用程序所在的本地计算机,还可以在远程服务器或应用程序中执行这些操作。 当然,还可以采用基于 GUI的方式,在这种方式下可以在配置文件上随意地执行这些读取和修改操作。 内置的 GUI工具 使用 WebConfigurationManager 类提供了这个功能 (如 Windows XP中的 MMC 管理单元或 Windows 7 中最新的 IIS界面 ),这个类还可以用于定制管理工 具。 程序清单 06 演示了如何从应用程序的 文件中读取连接字符串。 程序清单 06 从应用程序的 文件中读取连接字符串 Protected Sub Page_Load(ByVal sender As Object, ByVal e As ) Try Dim connectionString As String = (Northwind). () = connectionString Catch ex As Exception = No connection string found. End Try End Sub 4 高级编程 —— 涵盖 C 和 (第 7版 ) XII protected void Page_Load(object sender, EventArgs e) { try { string connectionString = [Northwind]. ()。 = connectionString。 } catch (Exception) { = No connection string f。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。