`

NET 应用架构指导 V2 学习笔记(十五) 数据访问层指导 技术、性能、安全、部署、以及设计步骤考虑

阅读更多

  技术考虑

  下面的原则帮助你选择适当的技术,依赖于设计的应用类型和应用的需求:

  •   如果你需要基本的查询和参数,考虑直接使用ADO.NET的对象。
  •   如果你需要支持复杂的数据访问方案,或者是想简化你的数据访问代码,考虑使用企业库的数据访问模块,更多信息请查看http://entlib.codeplex.com/
  •   如果你在已经存在数据库的情况下,创建数据驱动的web应用程序,考虑使用ASP.NET Dynamic Data。
  •   如果你需要操作XML格式的数据,考虑使用System.Xml空间,以及下面的子空间,或者使用XLinq。
  •   如果你使用ASP.NET创建用户界面,考虑使用datareader获取数据, 最大化提高性能。datareader提供了只读的、向前的快速处理每一行数据。
  •   如果你访问的是SQL Server数据库,考虑使用ADO.NET 的 SqlClient命名空间来最大化提高性能。
  •   如果你使用SQL Server 2008,考虑使用FILESTREAM来存储和访问BLOB数据。
  •   如果你基于领域模型建立一个面向对象的数据访问层,考虑使用ORM框架,例如ADO.NET Entity Framework或者是开源的NHibernate。

  性能考虑

  性能包括数据访问层的设计和数据库的设计。在为了最大化吞吐量,而调优系统的时候,都应该考虑在内。可以参考下面的原则:

  •   使用连接池。
  •   考虑优化数据查询的分离层次。如果你建立的应用需要高吞吐量,可能会需要低级别的分离层次的特殊的数据操作,合并分离级别对于数据一致性会有负面的影响,你一定要仔细的分析。
  •   使用批量的数据处理,减少和数据库服务器之间的往复。
  •   对于不容易发生改变的数据,考虑使用乐观锁来降低数据库锁带来的损失。这可以避免数据库大量的锁定行,包括在锁的过程中连接一直打开。
  •   如果使用datareader,使用排序查找以提高性能。

  安全考虑

  数据访问应该保护数据库免受偷取数据或者是破坏数据的类似攻击。可以参考下面的设计原则:

  •   使用SQL Server的时候,考虑在可信的子系统模型中使用windows验证。
  •   在配置文件中加密连接字符串,而不是使用系统或者是用户数据源名称。
  •   在存储密码的时候,使用hash值,而不是加密密码。
  •   出于审计的目的,要求数据访问层的调用者发送身份信息到数据访问层。
  •   使用参数化的SQL查询,降低安全问题,减少SQL注入攻击。不要使用用户输入的数据进行字符串拼接。

  部署考虑

  在部署数据访问层的时候,软件架构的目标是考虑在生产环境的性能和安全问题。可以参考下面的原则:

  •   将数据访问层和业务逻辑层部署在一个物理层,来提高性能,除非伸缩性和安全性有更高的要求。
  •   如果你一定要支持远程的数据访问,考虑使用TCP提高性能。
  •   考虑将数据访问层和数据库部署在不同的机器,部署在一起会很大的降低应用的性能。数据库服务的物理参数通常会根据角色进行优化,很少会和数据访问层的操作参数相匹配。

  数据访问层的设计步骤

  一个具有良好设计的数据访问层将会较少开发时间,在应用部署之后在维护上给予协助。下面会降到影响数据访问设计的关键,可以参考下面的步骤:

  •   首先为数据访问层设计一个大概框架。
  •   根据需要选择合适的实体类型。
  •   选择数据访问层技术。
  •   设计数据访问组件。
  •   设计服务代理。

  相关的设计模式

  

分类 相关模式

General

  • Active Record
  • Data Mapper
  • Data Transfer Object
  • Domain Model
  • Query Object
  • Repository
  • Row Data Gateway
  • Table Data Gateway
  • Table Module
Batching
  • Parallel Processing
  • Partitioning

 

Transactions
  • Capture Transaction Details
  • Coarse Grained Lock
  • Implicit Lock
  • Optimistic Offline Lock
  • Pessimistic Offline Lock
  • Transation Script
  未完待续。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
分享到:
评论

相关推荐

    大型金融数据中心网络架构设计V2.pptx

    内容涵盖了金融数据中心网络架构设计的演进路线、金融网络应用场景的划分、数据中心应用服务域、双活数据中心网络解决方案、商业银行数据中心发展及未来的演进路线、网络安全管理、测试环境构建等方面。 从内容中...

    《合作式智能运输系统 车用通信系统应用层及应用数据交互标准》(TCSAE 53-2017)全文 中国 V2X 标准.pdf

    整体而言,TCSAE 53-2017标准为V2X通信技术在中国的应用提供了明确的技术指导和实施框架,同时保证了交通安全和效率。这个标准的推广实施,能够帮助业界统一技术标准,为以后进一步研究和开发V2X相关产品奠定坚实的...

    牛【SystemVerilog】路科验证V2学习笔记(全600页)

    "牛【SystemVerilog】路科验证V2学习笔记(全600页)"是一份详尽的学习资料,涵盖了路科验证方法论的第二版(V2)在SystemVerilog中的应用。 笔记内容可能包含了以下几个关键知识点: 1. **基础语法**:...

    Application Architecture Guide v2

    分层架构是一种常见的设计模式,将应用分为表示层、业务逻辑层和数据访问层。这种结构有助于保持各层之间的职责分离,增强系统的可测试性和可维护性。《指南》中详细解释了每层的功能及其相互关系,帮助开发者理解...

    【SystemVerilog】路科验证V2学习笔记(全600页).pdf

    SystemVerilog的听课学习笔记,包括讲义截取、知识点记录、注意事项等细节的标注。 目录如下: 第一章 SV环境构建常识 1 1.1 数据类型 1 四、二值逻辑 4 定宽数组 9 foreach 13 动态数组 16 队列 19 ...

    一种结合车联网和C-V2X的终端设备系统架构设计.pdf

    结合车联网和C-V2X技术的终端设备系统架构设计,旨在通过高效的通信模块和先进的信息处理能力,推动智能交通系统的发展,实现交通事故的减少和交通效率的提升,最终为驾驶者提供一个更安全、更便捷的驾驶体验。...

    visio信息化设计实例数据存储中心-Dell公司HPC 高性能计算 IT技术支撑平台方案架构图_v2.zip

    【标题】"visio信息化设计实例数据存储中心-Dell公司HPC 高性能计算 IT技术支撑平台方案架构图_v2.zip"所涵盖的知识点主要集中在以下几个方面: 1. Visio信息化设计:Visio是一款由Microsoft开发的专业绘图软件,常...

    AADL 学习笔记_V2_aadl_

    在“AADL学习笔记.docx”文档中,读者可以期待找到对这些概念的详细解释、实例演示以及如何将它们应用到实际项目中的指导。这份笔记对于正在学习AADL或准备采用AADL进行系统设计的人来说是一份宝贵的资源。

    《软件架构设计文档》ADMEMS模板v2.docx

    "软件架构设计文档ADMEMS模板v2" 软件架构设计文档是软件开发过程中的重要文档,旨在描述软件系统的架构设计,包括软件系统的总体架构、组件之间的关系、数据流向、接口定义等。下面是基于ADMEMS模板v2的软件架构...

    kinect V2 学习资料

    Kinect V2 是微软公司推出的第二代体感设备,它不仅用于游戏,还被广泛应用于计算机视觉、人机交互、机器人技术等领域。它通过一系列传感器,可以捕捉用户的动作、声音甚至心跳,与计算机进行自然交互。Kinect V2 ...

    数据架构设计与实践MySQL在高可用演进之路V2.zip

    “数据架构设计与实践MySQL在高可用演进之路V2.pdf”这份文档详尽阐述了MySQL在高可用性方面的演进和最佳实践,对于数据库管理员、系统架构师以及对数据库技术感兴趣的IT从业者来说,是一份非常有价值的学习资料。...

    【SystemVerilog】路科验证V2学习笔记(全600页)

    SystemVerilog的听课学习笔记,包括讲义截取、知识点记录、注意事项等细节的标注。 目录如下: 第一章 SV环境构建常识 1 1.1 数据类型 1 四、二值逻辑 4 定宽数组 9 foreach 13 动态数组 16 队列 19 关联数组 21 ...

    NoSQL数据库技术__城市时空数据引擎JUST的架构与应用实践V2.zip

    JUST的架构设计充分考虑了这些数据的特性,提供了快速检索、实时分析和复杂的空间操作能力。 首先,JUST采用了分布式架构,能够轻松扩展到处理PB级别的数据。这种水平扩展能力使得它能够在不牺牲性能的情况下应对...

    zone v2翼型设计数据

    ### Zone V2翼型设计数据分析 #### 一、概述 Zone V2翼型设计数据主要应用于滑翔机(DLG)的设计与优化之中。通过对这些数据的深入分析,可以更好地理解该翼型的特点及其在飞行器性能提升中的作用。本文将从翼型的...

    中兴物联ME3760_V2公网模块硬件用户指导手册_V1.6.pdf

    中兴物联ME3760_V2公网模块是一种无线通信模块,主要技术参数和机械特性、接口电气特性、射频性能指标等方面进行详细介绍,并提供了模块调试环境的搭建方法和硬件快速上手指导。该文档作为硬件用户指导手册,其内容...

    【论文】旷视科技提出的新型轻量架构ShuffleNet V2

    随着移动设备计算能力的不断提升,以及深度学习技术的不断进步,轻量级神经网络架构设计将继续成为研究热点,ShuffleNet V2作为其中的重要里程碑之一,其创新点和实践经验对后续研究与应用都将有着深远的指导意义。

    ADMEMS方法推荐《软件架构设计文档》模板

    架构设计必须考虑数据保护、访问控制、隐私合规等因素,以预防潜在的安全威胁。 《软件架构设计文档》模板是基于ADMEMS方法的一个实用工具,它提供了标准化的框架,帮助架构师系统化地编写架构文档。v2.dot版本可能...

    LTE-V2X车联网技术、标准与应用.pdf

    LTE-V2X车联网技术是一种旨在提高车联网安全性和可靠性的通信技术。...同时,评估研究也在进行中,内容包括业务模型、信道模型、性能指标、仿真场景以及频谱需求等,确保 LTE-V2X 技术能够支持全自动驾驶等新型应用。

    车联网V2X部署策略及方案研究.pdf

    在进行车联网V2X部署策略和方案研究时,还需要考虑到用户的隐私保护、数据安全、以及与现有交通系统的兼容性等问题。在技术发展的同时,相关标准的制定和法律法规的完善也是推动车联网普及的关键因素。 总体而言,...

Global site tag (gtag.js) - Google Analytics