[原创].NET 分布式架构开发实战五 Framework改进篇
.NET 分布式架构开发实战五 Framework改进篇
前言:本来打算这篇文章来写DAL的重构的,现在计划有点改变。之前的文章,园子里的朋友给出了不少的反馈,特别感谢金色海洋和Virus两位朋友的一些反馈。周末的这两天,对文章中开发的那个Framework做了一些改进,虽然说系列文章会慢慢的给出代码,但是这两天的一些想法让我很兴奋,迫不及待的和大家分享一下,也当是对文章中以后给出的Framework先睹为快吧。
系列文章链接:
[原创].NET 分布式架构开发实战之一 故事起源
[原创].NET 分布式架构开发实战之二 草稿设计
[原创].NET 分布式架构开发实战之三 数据访问深入一点的思考
[原创].NET 分布式架构开发实战之四 构建从理想和实现之间的桥梁(前篇)
[原创].NET 分布式架构开发实战五 Framework改进篇
[原创].NET 业务框架开发实战之六 DAL的重构
[原创].NET 业务框架开发实战之七 业务层初步构想
[原创].NET 业务框架开发实战之八 业务层Mapping的选择策略
[原创].NET 业务框架开发实战之九 Mapping属性原理和验证规则的实现策略
[原创].NET 业务框架开发实战之十 第一阶段总结,深入浅出,水到渠成(前篇)
[原创].NET 业务框架开发实战之十 第一阶段总结,深入浅出,水到渠成(后篇)
本篇文章涉及技术不多,主要是些想法(代码部分正在实现)。
最主要的改进主要在于业务层开发的简化。
大家都知道系统的核心就是业务逻辑层了,业务逻辑的代码往往得我们一行行的敲代码,而且不同的系统,每次都得一行一行的重头来写,这样的开发的效率可想而知了。基于这个原因,所以很有必要用一些工具和方法来加速开发。
经过这两天的思考,个人认为最大的改进就是:业务逻辑类的图形化配置。我先给出图的示例,然后再详细的说明这个思想。
大家知道,在一个BLL类中包含了大量的业务规则和验证规则,而且这些规则往往需要手工来写,特别是一个业务类的一些属性,要对他们的数据类型,长度,格式,状态更改跟踪,是否可以读写等进行验证,虽然说现在已经有了一些类库可以使用,如Enterprise Library中的Validation组件,但是我们还是要写代码,如果把这些规则通过图形化的拖拽的方式,或者图形的配置方式来生成C#代码,然后需要定制的部分再手动的修改,这样开发就简化多了(甚至可以把自动生成的代码和需要手写的代码分别放在partial类中,大家可以想想VS中开发Window程序时,VS就把那些自动生成的代码放到了另外的一个partial类中)。用过Enterprsie Library的朋友已经很清楚那个图形化配置工具的威力。
首先,来看第一个图(设计的草图)。
当我们新添加了一个业务类的以后,假设这个业务类的为 Product,在”解决方案”管理器中点击右键,选择”配置业务类”,就会弹出图形化的配置窗体,从草图中可以看出:
1. Properties,为业务类添加的属性。
2. DataProvider,这个配置表明了业务类使用哪个数据提供者:AdoDotNetProvider,LinqProvider,EntityFrameworkProvider.(这些Provider就是之前DAL系列文章最终会完成的那些Provider)
3. MappingType这个业务类和那个数据来源体映射,这里有两个选择:DataTable,DataEntity(Linq实体或者EF实体,DataTable 的改进是来源于金色海洋和virus,thanks)
4. MappingTypeName:这个配置项就表明这个业务类会和哪个数据来源体的属性进行映射,如,在上面选择了MappingType为DataEntity,而且选择DataEntity的名字MS_Product(通过Linq生成的实体,对应数据库中的MS_Product表)。当然,一个业务类的属性字段可能来自多个DataEntity的组合,所以,这里的MappingTypeName是多个。
下面来看第二个草图。
这个图的出现时当点击了第一个图中的Properties出现的,这个界面就是专门来配置业务类的具体的属性的。
Name:就是属性的名字。
MappingTo:就是指出要和哪个数据实体的哪个属性映射。(之前第一个界面已经制定的数据实体)。
ValidationRules:用来指定为这个属性使用哪些规则。
下面就来看看第三个草图。
这个草图和之前的第二个草图类似,只补过这个界面是专门用来给特定的属性配置验证规则的。
就介绍到这里了,希望大家以后多多提出意见,便于进一步的改进,最后开发的Framework会以源代码的形式给出的。
版权为小洋和博客园所有,转载请标明出处给作者。
http://www.cnblogs.com/yanyangtian
[原创].NET 分布式架构开发实战五 Framework改进篇相关推荐
- [原创].NET 分布式架构开发实战之一 故事起源
阅读: 1320 评论: 18 作者: 小洋(燕洋天工作室) 发表于 2010-05-23 09:03 原文链接 .NET 分布式架构开发实战之一 故事起源 前言:本系列文章主要讲述一个实实在在的项目 ...
- .NET 分布式架构开发实战之二 草稿设计
前言: 本篇之所以称为草稿设计,是因为设计的都是在纸上完成的.反映了一个思考的过程. 本篇的议题如下: 1) 第一个数据层草图的提出 2) 对数据访问层的思考 3) 第二个数据层草图的提出 1.数据层 ...
- [原创].NET 业务框架开发实战之十 第一阶段总结,深入浅出,水到渠成(前篇)...
.NET 业务框架开发实战之十 第一阶段总结,深入浅出,水到渠成(前篇) 前言:这个系列有段时间没有动了.主要是针对大家的反馈在修改代码.在修改的过程中,也有了一些新的体会,这里和大家分享一下,同时也 ...
- [原创].NET 业务框架开发实战之九 Mapping属性原理和验证规则的实现策略
.NET 业务框架开发实战之九 Mapping属性原理和验证规则的实现策略 前言:之前的讨论一直关注在怎么从DAL中获取数据,以及数据的Mapping问题.实际上,一个业务框架最主要的作用就是简化业务 ...
- [原创].NET 业务框架开发实战之六 DAL的重构
.NET 业务框架开发实战之六 DAL的重构 前言:其实这个系列还是之前的".NET 分布式架构开发实战 ",之所以改了名字,主要是因为文章的标题带来了不少的歧义:系列文章中本打算 ...
- [原创].NET 业务框架开发实战之十 第一阶段总结,深入浅出,水到渠成(后篇)...
.NET 业务框架开发实战之十 第一阶段总结,深入浅出,水到渠成(后篇) 前言:接着上篇来. 系列文章链接: [原创].NET 分布式架构开发实战之一 故事起源 [原创].NET 分布式架构开发实战之 ...
- 阿里架构师推荐,微服务分布式构架开发实战PDF,快快收藏吧
什么是微服务架构 微服务是一种软件架构风格,目标是将一个复杂的应用拆分成多个服务模块,每个模块专注单一业务功能对外提供服务,并可以独立编译及部署,同时各模块间互相通信彼此协作,组合为整体对外提供完整服 ...
- 微服务分布式构架开发实战PDF,阿里架构师推荐,快快收藏吧
什么是微服务架构 微服务是一种软件架构风格,目标是将一个复杂的应用拆分成多个服务模块,每个模块专注单一业务功能对外提供服务,并可以独立编译及部署,同时各模块间互相通信彼此协作,组合为整体对外提供完整服 ...
- 微服务架构开发实战:如何实现微服务的自动扩展?
微服务架构开发实战:如何实现微服务的自动扩展? 程序员高级码农II 2020-09-25 07:25:00 如何实现微服务的自动扩展 前面讲了一些关于自动扩展的理论知识,但如何实现自动扩展,并不是三言 ...
最新文章
- 蓝牙 GATT 协议
- Oracle 查看library cache 解析命中率
- char截取字符串_字符串的排列(滑动窗口)
- 诗与远方:无题(六十三)- 杂诗,然,矣
- php varexport,PHP函数补完:var_export()
- 移动端报表JS开发示例--获取定位
- 基于Redis+Kafka的首页曝光过滤方案
- css如何把图片设置成梯形,css实现梯形
- 鸿基酒店应收应付报表生成系统
- C#单位档案信息管理系统源码
- html页面设计扁平化,35个扁平化网站设计灵感
- Scratch中做一个简单迷宫小游戏,值得您收藏!
- flyme6 patchrom插桩从入门到放弃
- 查看支付宝所有交易记录方法
- Linux 使用gcore、gdb、pstack、strace命令查死锁问题
- Android开发者的寒冬:轮回之下,几人破茧,几人沉沦?
- 20行代码做一个简易微信群发工具需要哪些单词
- Android开发-创建安卓工程项目+安卓程序的运行
- Excel VBA 导入txt文件内容
- Dynamic Web TWAIN资讯:Web应用程序的扫描仪SDK
热门文章
- Codeup 墓地——问题 B: A+B
- 2-AII--BroadcastReceiver有序广播
- 2017阿里云TECH INSIGHT干货分享第六届隆重回归
- 20145209 2016-2017-2 《Java程序设计》第7周学习总结
- 3117 高精度练习之乘法
- andengine的convertLocalCoordinatesToSceneCoordinates方法
- 黑马程序员---基础加强-----------------第二天(新特性:注解、泛型)
- 《高效程序员的45个习惯》读后感
- ASP.NET 2.0的全球化与本地化之全球化
- [NIO-1]缓冲区