随笔分类 - 架构设计
摘要:系列回顾 在前面的文章中,我用了大量的篇幅对UDA及ORM的使用进行了讲解和演示,我们已经知道并熟悉的使用UDA和ORM构建简单的应用,AgileEAS.NET在应用的纵向结构上建议使用分层结构,提出独立数据层,数据层构成以ORM技术为基础、UDA技术做为辅助,共同完成这一系列功能。基于接口开发 关于基于接口驱动的开发请参考DoNET企业架构应用-基于接口开发介绍以及应用场景和案例一文,在此不做具...
阅读全文
摘要:基于接口开发介绍 基于接口编程的本质是分离对象的实现与使用者之间的关系,即变更以下对象结构的依赖变化: 这样说的好处是客户对象依赖于服务接口,即在开发过程中我们只关注于服务接口的定义,而不关注于服务对象的具体实现,客户对象只有在运行期才通过解耦与后期绑定辅助工具(类)与具体的服务实现对象动态的建议依赖。 这样做的好处是很显然的,从技术上讲,如果把服务接口与服务实现分别放在不同的组件之中,那么修改...
阅读全文
摘要:前面的四篇文章演示ORM的一些常规操作与配置,通过前面的文章,应用开发人员要可以使用ORM开发出简单的应用,但是,ORM也不是万能钥匙,在业务应用中,还有很多是ORM解决不了的问题,对于这些问题,我们必须景借助于SQL语句。本文重点 既然ORM解决不了所有的问题,我们得借助于SQL语句,也就是我们可以理解为在DAL层,在ORM对象中,还得支持SQL的操作: AgileEAS.NET平台中的ORM提...
阅读全文
摘要:系列回顾 前面的文章一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-演示ORM的基本操作和一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-演示ORM的条件查询两篇文章我演示了ORM的基本使用并引申到开发中最常见的条件查询业务,今天我基于前一篇文章的条件查询的基础演示根据条件的批量删除与更新。问题提出 在演示ORM的基于操作一文中我们演示了基于单记录(实体...
阅读全文
摘要:系列回顾 本系列前面有三篇文章介绍和演示了AgileEAS.NET平台ORM组件的开发流程及其常见的使用方式,通过前面的三篇文章,大家都可以正常的使用ORM进行正常的开发,本文将提到一个ORM结构性的问题,ORM对象的访问器。情况说明 提到ORM访问器,我们就不得不提到一个面对对象设计的问题,那就是到底是对象.操作(),还是操作者.操作(对象),对于这样一个有着争论性并且也没有一个明确最优结果的问...
阅读全文
摘要:前文回顾 前面的文章一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-演示ORM的基本操作一文给大家介绍了如果使用ORM实现数据的读取、插入、更新与删除基本业务也讲解了ORM开发基本流程。问题提出 在前面的一文中我展示了数据表的查询示例,关键的一句代码:table.Query()返回字典表的所有数据,演示的例子就这么用了,但是在实际的使用过程中你不可能每次都取把全表数据取回来,...
阅读全文
摘要:系统回顾 前面的四篇文章我详细的介绍了AgileEAS.NET平台中统一数据访问(UDA)组件的用法,分析了两种数据处理流程的优缺点,以及基于懒惰模式的委托执行,事务处理方法,基本涵盖了基于数据库支持的业务系统的技术点。 ...
阅读全文
摘要:前文回顾 前面的三篇文章,我把AgileEAS.NET平台的UDA的应用案例从数据处理方式与流程、基础的语句执行、查询处理以及引入的委托处理机制、事务的两种处理方法,基本上涵盖了基于数据支撑的业务信息系统所涉及的所有数据库处理。存在的问题 前三篇文章中所涉及的例程代码中,对于数据库连接环境程序中定义了一个单例模式工的类UdaContext:[代码] 各示例方法中使用数据操作对象都是通过IDataA...
阅读全文
摘要:上文回顾 上一篇文章基于AgileEAS.NET平台基础类库进行应用开发-使用UDA操纵SQL语句一文中演示如何使用UDA进行常规的业务进行操作,我们看到两种数据操纵流程,一种是原始的操作流程,另一种是简化的数据操作流程,应用开发人员不用关心数据库的打开与关闭,这些工作由UDA为我们完成,我们只需要实现与业务相关代码即可。问题引出 我们现在再看一眼我们在前面提供的数据处理流程: AgileEAS....
阅读全文
摘要:上一篇文章基于AgileEAS.NET平台基础类库进行应用开发-总体说明及数据定义中对本案例所涉及的数据表及部分数据,本文开始将从最基本的业务,数据访问--SQL语句操纵开始。 在AgileEAS.NET平台中,对数据访问进行了封装,称为UDA(统一数据访问),有关于AgileEAS.NET平台UDA的介绍请参考AgileEAS.NET之统一数据访问一文。 在UDA中定义两个接口IDataConn...
阅读全文
摘要:基实这个系统是我AgileEAS.NET平台应用开发教程-案例计划的详细分解,原来想着按前面文章的思路应用写,但是发布之前的想法有点乱,我就把他分解成两个系列,使用step-by-step的方式来降解,或许这样可以会更好一些。 本系列目标是让更多的开发人员快速的掌握AgileEAS.NET平台基础类库的主要功能,并能快速的使用这些功能快熟的构建应用,在本系列中我将从最基本的数据访问讲起,直到完成一...
阅读全文
摘要:集成与测试 AgileEAS.NET采用的是平台加插件的开发方式,也就是说,开发好插件需要集到AgileEAS.NET平台并进行集成测试,这将涉及到插件的安装、管理与组织,因为要涉及到的AgileEAS.NET平台管理部分的操作,可以参考《AgileEAS.NET平台系统管理使用教程》。 产品的部属 WinForm应用的部属 AgileEAS.NET对于WinForm运行时提供ActiveXForm、SmartClient两种运行环境的部属,这两种都支持自动升级,在完成插件模块的安装、配置、和模块组织之后。需要配置软件的运行期参数和自动升级参数。 SmartClient运行环境的部属需要在升级
阅读全文
摘要:以往回顾 我在之前的文章中都着重从AgileEAS.NET平台的介绍和开发指南两方面入手,参看AgileEAS.NET应用开发平台-系列目录和AgileEAS.NET平台开发指南-系列目录,但是对于开发者来说,看了还是会有太多的恍惚,从本文开发,我按照开发应用中的由简单到复杂的开发进阶逐步深入的讲解基于AgileEAS.NET平台的应用开发。数据库 AgileEAS.NET平台所擅长的是基于数据库...
阅读全文
摘要:AgileEAS.NET平台提供了独立的配置文件,主要涉及一般配置信息、IOC对象配置信息、SL服务配置信息、WinService插件配置信息: 系统配置文件重有如下配置项定义: <configSections> <section name="EAS.Configurations" type="EAS.Configuration.ConfigHandler,EAS.Kernel" /> <section name="EAS.WinServices" type="EAS.WinService.Co
阅读全文
摘要:基础类库介绍 AgileEAS.NET平台/中间件是一套以平台+插件为核心的应用平台,平台在纵向扩展上以平台加插件为准则。而在针对每个插件或者平台的实现,则由一组公共组件支撑插件开发过程的数据访问、业务逻辑等支撑。 AgileEAS.NET平台基础类库主要包含数据访问、ORM、 服务定位、对象反转控制、日志记录、报表、序列化、常用控件库、系统扩展组件、数据UI映射以及数据对象设计工作开发限制与特色...
阅读全文
摘要:AgileEAS.NET平台介绍 AgileEAS.NET应用开发平台,或者说AgileEAS.NET应用中间件,简称EAS.NET,是基于敏捷并行开发思想以及.NET构件技术而开发的一个应用系统快速开发平台,用于帮助中小型软件企业建立一条适合快速变化的开发团队,以达到节省开发成本、缩短开发时间,快速适应市场变化的目的,AgileEAS.NET应用开发平台包含基础类库、资源管理平台、运行容器、开发...
阅读全文
摘要:分布式系统 分布式系统(distributed system)是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。内聚性是指每一个数据库分布节点高度自治,有本地的数据库管理系统。透明性是指每一个数据库分布节点对用户的应用来说都是透明的,看不出是本地还是远程。在分布式数据库系统中,用户感觉不到数据是分布的,即用户不须知道关系是否分割、有无复本、数据存于哪个站点以及事务在哪个站点上执行等。 在一个分布式系统中,一组独立的计算机展现给用户的是一个统一的整体,就好像是一个系统似的。系统
阅读全文
摘要:报表系统介绍 我们都知道,在信息系统开发过程中,报表占据着很重要的位置,业务运营数据最后给领导的反应就是那么几张综合的业务数据报表,在如何选择一个合适的报表系统也让很多开发员纠结,AgileEAS.NET平台采用了基于RDL语言的开源报表系统fyireporting,最早基于其2.X版本进行了中文化并和AgileEAS.NET进行集成,到目前为止AgileEAS.NET平台中集成的是3.96版本,下面展示一下报表在AgileEAS.NET中的一个呈现: AgileEAS.NET平台对于fyireporting开源项目,只采用了其中的RdlEngine,RdlViewer和ReportDesig
阅读全文
摘要:业务分层 依据行业经验来看,分层是解决复杂问题的简单方法,通过分层,可以把一个复杂问题分解为不同层次应用的小问题,解决各层小问题的难度小于总的问题难度;分层最成功能莫过于计算机网络通信协议,ISO/OSI、TCP/IP。 在信息系统开发中,我们也对一个应用按逻辑上划分为三层:数据层、业务层、界面层,其业务逻辑如下图所示: 大家通俗的对这样的结构称之为三层结构,或者演变为N次结构(对其中的某一层进行分解),两层结构(合并界面与业务为一个层,或者合并业务层与数据访问层)或者一层结果(所有的都在UI层)。 分层的架构设计或者实践在于应用开发的需求以及开发人中技术相制约,只有选择合适的分层模型,没有最
阅读全文
摘要:对象关系映射 AgileEAS.NETORM并没有采用如NHibernate中映射文件的文件的模式,而是采用了直接硬编码的模式实现,ORM体系设计采用了属性/列>数据对象>数据集合(表)的结构: 最基本的思路是一个记录/实体(IEntity)映射一条记录,一个实体包括若干属性/列(Colunm),而一组IEntity和一组Colunm组成一个数据表对象(IEntity),用于对象一个表、视图、或者一个查询结果,下面我涉及到的类、接口介绍一下: Column 相当于一个数据库表的一个列。组织于数据库与数据库表行中,由1-n个列组成一行数据或一个数据库表,包含了标题、名称、数据类型、数
阅读全文