设为首页收藏本站language 语言切换
查看: 1192|回复: 0
收起左侧

实现业务实体

[复制链接]
发表于 2010-2-25 10:31:01 | 显示全部楼层 |阅读模式
<p ><B>适用于:</b><p >Microsoft&reg; .NET 应用程序<p ><B>摘要:</b><p >学习向 Microsoft .NET 应用程序公开数据的最佳方式,以及如何实现一个有效的策略以便在分布式应用程序的层间传递数据。(本文包含一些指向英文站点的链接。)<p ><b>目录</b><p ><ul><li>简介<p ><li>将关系数据映射到业务实体<p ><li>实现数据访问逻辑组件<p ><li>实现业务实体<p ><li>事务处理<p ><li>验证<p ><li>异常管理<p ><li>授权与安全性<p ><li>部署<p ><li>附录及其合作者</UL>业务实体具有以下特点:<p ><ul><li>业务实体提供对业务数据及相关功能(在某些设计中)的状态编程访问。 <p ><li>业务实体可以使用具有复杂架构的数据来构建。这种数据通常来自数据库中的多个相关表。 <p ><li>业务实体数据可以作为业务过程的部分 I/O 参数传递。 <p ><li>业务实体可以是可序列化的,以保持它们的当前状态。例如,应用程序可能需要在本地磁盘、桌面数据库(如果应用程序脱机工作)或消息队列消息中存储实体数据。 <p ><li>业务实体不直接访问数据库。全部数据库访问都是由相关联的数据访问逻辑组件提供的。 <p ><li>业务实体不启动任何类型的事务处理。事务处理由使用业务实体的应用程序或业务过程来启动。  </ul>如本文前面所述,在您的应用程序中表示业务实体的方法有很多(从以数据为中心的模型到更加面向对象的表示法):<p ><ul><li>XML <p ><li>通用 DataSet <p ><li>有类型的 DataSet <p ><li>自定义业务实体组件 <p ><li>带有 CRUD 行为的自定义业务实体组件 </ul>以下各节将介绍如何使用这些格式来表示业务实体。为帮助您确定特定环境中最适宜的业务实体表示,以下各节将介绍如何为各业务实体格式执行以下任务:<p ><ul><li>组织业务实体集合 <p ><li>将业务实体数据绑定到用户界面控件 <p ><li>序列化业务实体数据 <p ><li>在层间传递业务实体数据</ul>以下各节还针对非功能性要求(包括性能、效率、可缩放性和可扩展性)考虑了每种业务实体表示的适用性。<p ><B>将业务实体表示为 XML</b><p >以下示例显示了如何将一个简单的业务实体表示为 XML。该业务实体包含一个产品。<p ><ccid_nobr><table width="400" border="1" cellspacing="0" cellpadding="2" bordercolorlight = "black" bordercolordark = "#FFFFFF" align="center"><tr><td bgcolor="e6e6e6" class="code" ><pre><ccid_code>&lt;?xml version=&quot;1.0&quot;?&gt;&ltroduct xmlns=&quot;urn:aUniqueNamespace&quot;&gt;  &ltroductID&gt;1&lt;/ProductID&gt;  &ltroductName&gt;Chai&lt;/ProductName&gt;  &lt;QuantityPerUnit&gt;10 boxes x 20 bags&lt;/QuantityPerUnit&gt;  &lt;UnitPrice&gt;18.00&lt;/UnitPrice&gt;  &lt;UnitsInStock&gt;39&lt;/UnitsInStock&gt;  &lt;UnitsOnOrder&gt;0&lt;/UnitsOnOrder&gt;  &lt;ReorderLevel&gt;10&lt;/ReorderLevel&gt;&lt;/Product&gt;</ccid_code></pre></td></tr></table></ccid_nobr><p >有关详细信息,请参阅附录中的如何使用 XML表示数据的集合和层次结构。<p >当使用 XML 表示业务实体数据时,请考虑以下原则:<p ><ul><li>确定 XML 文档是包含单个业务实体还是包含一个业务实体集合。前面的示例表示的是单个 Product 业务实体。 <p ><li>使用一个命名空间唯一标识该 XML 文档,以避免与其他 XML 文档的内容发生命名冲突。前面的示例使用名为 urn:aUniqueNamespace 的默认命名空间。 <p ><li>为元素和属性选择合适的名称。前面的示例使用 Product 表的列名称,但并不要求一定这样。可以选择对您的应用程序有意义的名称。 <p ><li>使用以下方法之一以 XML 格式检索您的业务实体:<p ><ul><li>如果您使用的是 SQL Server 2000,则可以在查询或存储过程中使用 FOR XML 子句。在性能测试中,使用 FOR XML 只比返回 DataSet 稍微快一点。 <p ><li>检索 DataSet 并将其转换为 XML 流或以 XML 流的格式写出。这种方法会带来创建 DataSet 的系统开销和额外的转换开销(如果执行转换)。 <p ><li>使用输出参数或数据读取器构建一个 XML 文档。数据读取器是从数据库检索多个行的最快方法,但与构建 XML 相关联的过程可能会减弱这种性能优势。</ul></ul> 将业务实体表示为 XML 的优点如下:<p ><ul><li>标准支持。XML 是 World Wide Web Consortium (W3C) 的标准数据表示格式。有关此标准的详细信息,请参阅 http://www.w3.org/xml。 <p ><li>灵活性。XML 能够表示信息的层次结构和集合。有关详细信息,请参阅附录中的如何使用 XML 表示数据的集合和层次结构。 <p ><li>互操作性。在所有平台上,XML 都是与外部各方及贸易伙伴交换信息的理想选择。如果 XML 数据将由 ASP.NET 应用程序或 Windows 窗体应用程序使用,则还可以把这些 XML 数据装载到一个 DataSet 中,以利用 DataSet 提供的数据绑定支持。 </ul>将业务实体表示为 XML 的缺点如下:<p ><ul><li>类型保真。XML 不支持类型保真。然而,对于简单的数据分类可以使用 XSD 架构。 <p ><li>验证 XML。要验证 XML,可以手动分析代码,或者使用 XSD 架构。但这两种方法都比较慢。有关如何使用 XSD 架构验证 XML 的示例,请参阅如何使用 XSD 架构验证 XML。 <p >显示 XML。您不能将 XML 数据自动显示在用户界面上。可以编写一个 XSLT 样式表将数据转换为 DataSet;但样式表的编写比较麻烦。另一种方法是通过样式表将 XML 转换为 HTML 等可显示格式。有关详细信息,请参阅附录中的如何在 .NET 应用程序中编程应用样式表。 <p ><li>分析 XML。要分析 XML,可以使用文档对象模型 (DOM) 或 Microsoft .NET Framework 类库提供的 XmlReader 类。XmlReader 提供对 XML 数据的快速只读的、仅向前的访问,而 DOM 可以提供随机读/写访问,因此更灵活。然而,使用 DOM 分析 XML 文档的速度较慢;您必须创建一个 XmlDocument 实例(或另一个 XML 分析器类)并把整个 XML 文件装载到内存中。 <p ><li>排序 XML。您不能自动排序 XML 数据,而应使用以下技术之一:<p ><ul><li>按预先排好的顺序提供数据。这种方法不支持在调用应用程序中动态重新排序数据。 <p ><li>应用 XSLT 样式表动态排序数据。如果需要,可以使用 DOM 在运行时改变 XSLT 样式表中的排序条件。 <p ><li>将 XML 数据转换为 DataSet,并使用 DataView 对象排序和搜索数据元素。 </ul><li>使用专用字段。您不能选择隐藏信息。</ul><p align="center"><font color="FF0000" >1</font>23<span class="content01">下一页&gt;&gt;</span></p></p>
您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-4-6 12:20 , Processed in 0.350673 second(s), 23 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表