摘要: 你的领域逻辑是否被UI前端绑架了? 你的领域逻辑是否被Asp.net的Session、Cookie、Cache等东东绑架? 你的领域逻辑是否被MVC或者WebApi的什么什么ActionResult.ControllerContext,ControllerBase,ApiController 等绑架? 你的领域逻辑是否被WCF的数据契约、服务契约、操作契约以及繁琐的ABC配置所绑架? 你的领域逻辑是否被WebService、Remoting等分布式架构所绑架? 你的领域逻辑是否被Ado.net 所绑架(强类型的SqlConnection等)? 你的领域逻辑是否被ORM所绑架(如EF、NHibernate等)? 你的领域逻辑是否被不支持多数据库所绑架? 你的领域逻辑是否很难支持多谢分离? 没有裸奔的领域逻辑是否该甩掉包袱开始裸奔呢?阅读全文
posted @ 2012-06-13 02:47 风云 阅读(3574) 评论(12) 编辑
摘要: 上周五部门开会讨论新一代产品(基于.net Winform)的设计规范,从设计规范慢慢讨论到体系结构等架构存在的问题,诸如菜单、工具条、状态条、界面布局等不能实现配置化和自动化,子系统之间拥有强依赖,甚至产生强依赖等等,最后我提出通过OSGi 框架来解决界面和模块之间的问题,并立下军令状一周内把核心框架Beta搭建完毕,第二周进行一次培训。 基于项目的特点,结合贞宝兄的OSGi.Net 和Mono.Addins 进行了重新诠释,在两天半的时间里通过Mono.Addins 和NLite 的依赖注入容器相结合实现了诠释后的OSGi规范,再这里首先感谢贞宝兄在OSGi规范的布道和推广工作,其次要..阅读全文
posted @ 2013-06-20 16:00 风云 阅读(1726) 评论(14) 编辑
摘要: 菜阿斌以前写了两篇很好的文章:为什么要让我们的“领域模型”裸奔?(上),(下),在我的 架构视角面面观中也介绍了领域逻辑经常被Web 组件Api、分布组件Api、ORM组件API、ADO API 等污染,上面的几篇文章讲了领域裸奔的重要性、以及常见项目中的领域被污染的问题,关于如何解决该问题, 网上关于这方面的介绍倒很少。本篇将介绍如何让我们的领域逻辑不被Web组件、分布组件所污染,解决该问题的主角将是NLite.WebAPI 组件,下面就让它登场吧。 NLite WebApi NLite web api 是基于NLite.Web和 Ndf的服务分发器引擎,并借助Asp.net 的ht...阅读全文
posted @ 2013-02-21 00:40 风云 阅读(2607) 评论(6) 编辑
摘要: NLite Web 组件的特点支持泛型Page支持Ndf内核的WebApi支持页面的DI、用户组件的DI注入支持Web页面方法的自动路由支持HttpListener,通过HttpListener自动扩展HttpModule拥有灵活强大的性能监视接口:监视Web页面,监视Ndf服务分发器,监视Nlite WebApiChange log for NLite.WebNUI 0.3(2013/2/20)基于http://nui.codeplex.com/SourceControl/changeset/100290版本1. 更新NLite.web依赖的组件2. 添加强签名支持3. 设置版本号 0.3阅读全文
posted @ 2013-02-20 12:23 风云 阅读(544) 评论(3) 编辑
摘要: NLite Domain Framework 简称NDF, 是一个轻量级的服务分发器框架,该框架以业务逻辑的高内聚,高复用性,高松耦合和便捷的可测试性为宗旨,支持嵌入式和分布式部署, 支持Asp.net Mvc,WebForm, Winform等,以NLite组件为基础, 支持服务别名,方法别名,方法重载,方法参数的自动绑定,校验功能和Filter等扩展功能。NDF和Asp.net MVC进行了深度整合,NDF继承了Asp.netMVC强大的视图引擎,采用桥梁模式把MVC的ActionResult和服务结果的NavigationResult进行了很好的桥接,并扩展了MVC的控制器和控制器工厂,阅读全文
posted @ 2013-02-20 11:02 风云 阅读(436) 评论(0) 编辑
摘要: 关于代码生成器的文章网上已经多的不能太多了,在6年前我写过两篇文章介绍代码生成器的,一篇主要代码生成器的7种模型架构设计思想:也谈代码生成器,另外一篇再谈代码生成器介绍了基于其中一种模型架构的实践文章,现在回顾一下6年前的文章拿到现在其设计思想也从不过时,呵呵自大了。好了废话不多说,今天给大家分享一下利用ELinq内置的数据库元数据模型和T4 模版引擎制作多文件实体代码生成器。(ELinq:是一个轻量简单易用的开源Linq ORM数据访问组件,支持Nullable类型和枚举类型,支持根据实体类自动建库建表建关系,支持根据数据库通过T4模版自动生成实体代码,对Linq 的谓词提供了完美的支持..阅读全文
posted @ 2013-02-15 17:48 风云 阅读(3906) 评论(15) 编辑
摘要: ORM组件 ELinq (五) -映射配置之XML上节介绍了基于FluentAPI的映射配置方式,本节我们将亲自动手,一步一步搭建ELinq的XML映射程序来。备注我使用的开发环境:VS2010,Nuget 包管理器,SqlCe3.51.获取ELinq从Nuget 控制台下载安装ELinq:install-package ELinq,安装成功后,VS的项目就自动引用了ELinq.dll,并且自动添加了ELinq.xsd (xml mapping 的Schema 文件)、Northwind.cs和Northwind.Mapping.xml 等Demo文件,由于第一次使用,所以把Northwind阅读全文
posted @ 2013-01-02 16:51 风云 阅读(1795) 评论(5) 编辑
摘要: 上篇介绍了基于Attribute的ELinq映射配置方式,本篇将给大家介绍基于FluentAPI的映射配置方式。 该篇仍然以Northwind数据库的Customers表和Orders 表为例,客户和订单是一对多关系。 1. Customer和Order的实体类 public class Customer { public string Id; public string ContactName; public string CompanyName; public string City; public ...阅读全文
posted @ 2013-01-01 20:48 风云 阅读(2678) 评论(0) 编辑
摘要: ELinq 发布后,由于公司的项目比较忙,就没有时间进行撰写博文进行介绍,望大家见谅,现在元旦了该抽时间把ELinq的系列补充补充,该篇介绍Attribute的映射配置。 Attribute的映射配置方式和LinqToSQL的配置方式类似,不用太多的笔墨进行介绍每个Attribute的含义,直接用代码说话。 (以Northwind数据库的Customers表和Orders 表为例,客户和订单是一对多关系为例) [Table(Name = "Customers")] public class Customer { [Id(Name="CustomerId"阅读全文
posted @ 2013-01-01 16:15 风云 阅读(1947) 评论(4) 编辑
摘要: Change log for NLiteNLite 0.9.5.7(2013/2/11)基于http://nlite.codeplex.com/SourceControl/changeset/100168版本1. 支持强密钥2. 支持.NET 453. 支持Mono环境4. 版本号升级到0.9.5.7NLite 0.9.5.5(2012/12/30)基于http://nlite.codeplex.com/SourceControl/changeset/98939版本1. 修复获取枚举类型缺省值的Bug2. 优化DataReader到List的性能3. 支持DataReader到动态类型的转换4阅读全文
posted @ 2012-12-23 20:28 风云 阅读(571) 评论(1) 编辑
摘要: Change log for ELinqELinq 0.6.2.1 (2013/3/5)基于http://elinq.codeplex.com/SourceControl/changeset/100616版本1. 修复反射读取私有字段的一个Bug2. 设置版本号0.6.2.13. 从下个版本开始,代码服务器将迁移到GitHub 上ELinq 0.6.2 (2013/2/24)基于http://elinq.codeplex.com/SourceControl/changeset/100401版本1. 修复在自动建表时,解析App_Data目录的数据库文件出错时的Bug2. 修复FluentAPI阅读全文
posted @ 2012-12-17 12:31 风云 阅读(1230) 评论(5) 编辑