随笔分类 -  .NET

.NET
摘要:上周五部门开会讨论新一代产品(基于.net Winform)的设计规范,从设计规范慢慢讨论到体系结构等架构存在的问题,诸如菜单、工具条、状态条、界面布局等不能实现配置化和自动化,子系统之间拥有强依赖,甚至产生强依赖等等,最后我提出通过OSGi 框架来解决界面和模块之间的问题,并立下军令状一周内把核心框架Beta搭建完毕,第二周进行一次培训。 基于项目的特点,结合贞宝兄的OSGi.Net 和Mono.Addins 进行了重新诠释,在两天半的时间里通过Mono.Addins 和NLite 的依赖注入容器相结合实现了诠释后的OSGi规范,再这里首先感谢贞宝兄在OSGi规范的布道和推广工作,其次要.. 阅读全文
posted @ 2013-06-20 16:00 风云 阅读(2467) 评论(14) 推荐(7) 编辑
摘要:关于什么是DI注入,很多人应该都很熟悉,如果不太熟悉,可以看看园友的一篇文章DI,DIP,IOC的演变历史。 DI 注入常常用在Mvc的项目或者领域层和持久层,但是如果DI注入能够和WebPage完美的结合起来,那就更完美了,那么下面就开始了。 新建Web项目-WebPageWithDI 打开Nuget控制台 并键入install-package nlite.web在Web配置文件中加入如下代码:<httpHandlers> <add path="*.aspx" verb="*" type="NLite.Web.PageHan 阅读全文
posted @ 2012-06-13 14:41 风云 阅读(1845) 评论(4) 推荐(1) 编辑
摘要:背景 随着Asp.net mvc的越来越流行,关于和Mvc整合的DI容器也非常的多,而Mini容器一致没有把整合的方案发布出来,以至于不时的收到有些网友询问这些事,于是便有了该文。[源代码从这里下载,Mini容器官方地址]解决方案 创建自定义工厂 public class NLiteControllerFactory : DefaultControllerFactory { private IServiceLocator ServiceLocator; public NLiteControllerFactory(IServiceLocator s... 阅读全文
posted @ 2011-12-19 12:13 风云 阅读(1761) 评论(9) 推荐(2) 编辑
摘要:今天粗粗看了老赵的文章适合C# Actor的消息执行方式 -中看不(3):中用的解决方案,我在想如果用我以前写的消息总线来实现那不是中看也中用了,于是顺手写了一个测试代码(具体内容参见适合C# Actor的消息执行方式 -中看不(3):中用的解决方案回复),说来很惭愧我的消息总线系列已经一年多没有更新了,我这人太懒散惯了,没办法。废话不多说了,下面我就具体讲解一下设计思路。  在Actor模式中,... 阅读全文
posted @ 2009-07-17 14:53 风云 阅读(2697) 评论(25) 推荐(2) 编辑
摘要:委托在.Net Framework中占据着非常重要的作用,它是.Net事件机制的关键,随着.Net2.0中匿名委托以及.Net3.5中的Lamda的表达式的应用等都可以看出委托所扮演的角色。虽然委托的优点数不胜数,但是反对使用以及建议小心谨慎使用的是大有人在,我对委托的使用是既不反对也不盲目而是小心谨慎.对于委托的小心谨慎主要就是委托使用不当常常会造成内存泄露,关于委托内存泄漏的解决方案有很多种,... 阅读全文
posted @ 2008-05-19 15:26 风云 阅读(3943) 评论(21) 推荐(4) 编辑
摘要:自从写了上一篇消息总线设计系列之 - 观察者模式之后,已经好长时间了,实在惭愧,现在抽出时间了,写下这一篇。观察者模式的特点是每个观察者对象可以定阅一个或多个不同类型的主题对象,每个主题对象包括一个或多个相同类型的观察者对象,他们之间是高度耦合并且直接进行通讯。 如果项目中用到大量的观察者模式之后,你会发现系统中的观察者和主题对象形成了一张错乱无章的关系网,非常难以维护。调停者模式就是为了解决这种... 阅读全文
posted @ 2008-05-16 17:44 风云 阅读(6772) 评论(11) 推荐(4) 编辑
摘要:在复杂企业级系统中消息总线占据着非常重要的作用,具体消息总线的产品是非常多的,如MSMQ,IBM 的MQ等,但是这些都是重量级,下面的系列文章将一步一步教你设计一个轻量级的消息总线,该消息总线即可支持嵌入式部署(进程内部署),又可支持分布式部署。1. 消息总线设计系列之 - 观察者模式2. 消息总线设计系列之 - 调停者模式3. 消息总线设计系列之 - 彻底解决消息总线的内存泄漏问题(委托与事件的... 阅读全文
posted @ 2008-04-18 21:13 风云 阅读(5804) 评论(11) 推荐(2) 编辑
摘要:关于委托于事件的关系在网上已经到处可见了,尤其是子阳兄 的C#中的委托于事件更是将它的讲的深入浅出,通俗易懂,实在是博客中的精品之作,无论是初学者还是老江湖都可以从这篇文章中领略不少。本文将从观察者模式的角度进一步来探讨之,希望你先看一下子阳兄C#中的委托于事件然后在看这篇文章,你的收获会是不一样的吆!(注:本文中的例子仍然选用子阳兄的例子,观察者模式的定义图例等大家可以在网上查阅,在这里就不一一... 阅读全文
posted @ 2008-04-18 19:02 风云 阅读(5842) 评论(6) 推荐(3) 编辑
只有注册用户登录后才能阅读该文。
posted @ 2007-08-31 17:26 风云 阅读(1681) 评论(11) 推荐(0) 编辑
摘要: 由于工作的原因,Ndo 的版本发布和更新有点慢,现在简单介绍一下Ndo 的新功能. 1: 支持1.1 和 2.0, 支持泛性 2: INdoManager 接口增加了很多IStatement, IProcedure,Query, Entity 的代理操作,大大简化了代码书写的数量. 3. 增强了IStatement ,IProcedure参数化查询功能(以前可能要写N行代码,现在只需要1行代码即可) 4. Sql 语句的参数占位符一律采用"@"表示,Ndo会自动根据数据库驱动程序的不同自动切换 5. 增强了Query 的Filter 功能 6. 降低了Condition 和Query 的强耦合关系,同时也删除了Condition 直接操作数据的功能 7. Nql 查询支持强类型查询 8. 支持2.0 ConnectionString 的配置 9: 对Ndo 实行了比较全面的单元测试 10. 对活动记录的改动比较大,支持泛性, 以前活动记录的查询用的是实例方法,现在的查询用的都是静态 阅读全文
posted @ 2007-03-08 17:55 风云 阅读(3086) 评论(24) 推荐(0) 编辑
摘要:在NDO 中对于需要持久化的实体对象,在它的生命周期中可处于以下4个状态或混合状态中。 临时状态(isNew),“脏”状态(isDirty),持久化状态,游离状态。。。。。。。 阅读全文
posted @ 2006-12-15 17:57 风云 阅读(2736) 评论(16) 推荐(1) 编辑
摘要:在我的 也谈代码生成器 这篇文章中,我简要的介绍了代码生成器的7中设计方案,这篇文章我将以NDOGenerator为例详细介绍第五种设计方案的具体设计过程,希望和广大代码生成器爱好者在这个平台上相互分享一些设计思想! 如果要做一个通用的代码生成器(基于数据库驱动)必须具备的三要素:M V C 1:需要对数据库元数据进行建模(如,表,视图,列,视图列,存储过程,存储过程参数等) 2:一个良好的基于插件(命令模式)的控制器引擎 3:视图技术采用模板引擎 基于以上三要素来看NDOGenerator 的具体设计 阅读全文
posted @ 2006-12-05 17:07 风云 阅读(5101) 评论(24) 推荐(1) 编辑
摘要:这个版本的Ndo对视图的支持增强了,并且增强对实体类的单表映射,下个版本将增加对一对多关联关系的支持! 简单介绍一下,实体类的使用方法: 阅读全文
posted @ 2006-12-04 11:03 风云 阅读(581) 评论(0) 推荐(0) 编辑
摘要:Ndo 的配置方式非常灵活,可以有如下的几种方式 1: 默认的配置方式-单数据库(支持解析SqlClientDriver,OledbDriver,OracleClientDriver,JetDriver,OdbcDriver,SqlOledbDriver,OracleOledbDriver,如果是其它数据源可以通过后面的其它方式)Ndo自动在appSetti... 阅读全文
posted @ 2006-11-25 20:34 风云 阅读(1214) 评论(0) 推荐(0) 编辑
摘要:NDO - DOTNET Data Access Object 的简称,是一个轻量型的数据访问组件,配置简单,支持多数据库,内部对ADO.Net 进行了良好的封装,使开发者不需要关心和了解ADO.Net 的底层细节,不需要根据不同的数据库专门写一套DAO。该组件内建了Statement 和 Procedure 对象专门针对于Sql 语句和存储过程处理的对象(类似于JDBC API),Statement 和 Procedure 比DAAB提供了更多的API,使开发者使用起来更方便和更快捷。NQL - NDO Query Language 是NDO 组件的又一个数据访问组件,它是基于Statement 对象之上的,使用简单灵活。活动记录 - ActiveRecord 一个ORM的精简版(支持单表的CRUD,多表操作可以借助NQL或Statement或Procuedure组件来实现)。相关内容,请看下面的介绍: 阅读全文
posted @ 2006-11-25 19:52 风云 阅读(3295) 评论(5) 推荐(0) 编辑
摘要:我今天刚开发了一个DNN插件,也是我第一次开发DNN插件,我把开发的过程描述下来,对于精通DNN的希望多多指点,对于希望涉足DNN的起到抛砖引玉的作用. 本示例以一张基本的表Department的CRUD来说明用C#制作DNN4.3插件的全过程 1:首先创建Department表 (ModuleID,DepartmentID,DepartmentName,CreatedByUser,Cre... 阅读全文
posted @ 2006-11-22 14:35 风云 阅读(1574) 评论(0) 推荐(1) 编辑
摘要:配置表: HostSettings:主机设置表,主要设置网站的版本,是否在线升级,与主机相关的主机名,主机URL,EMAIL,代理... 字段 备注 SettingName 配置的名称 SettingValue 配置的内容 SettingIsSecure 是否安全配置 Portals:站点信息配置表 字段 备注 PortalID 站点ID(可架设多个门户站点而共用一个数据... 阅读全文
posted @ 2006-11-22 14:31 风云 阅读(902) 评论(3) 推荐(1) 编辑
摘要:1.理解模块插件开发所依赖的数据库表的关系(HostSettings,Portals,PortalAlias,DesktopModules,MouleDefinitions,ModuleControls,TabModules,Tabs,TabModuleSettings,Permission,ModulePermission,TabPermission,Users,Roles,UserRoles,... 阅读全文
posted @ 2006-11-22 14:29 风云 阅读(884) 评论(1) 推荐(1) 编辑
摘要:首先我们从一个链接请求到达服务器开始讲起,来找出系统是如何处理各种要求的,从而整理出来我们需要的各个组件。 我们首先看看在 web.config 这个网站的配置文件当中,有下面一段配置。它意味着系统在处理连接请求时首先会通过下列过滤器插件的处理。 首... 阅读全文
posted @ 2006-11-22 14:24 风云 阅读(1859) 评论(0) 推荐(0) 编辑
摘要: 关于代码生成器 Teddy's Knowledge Base 兄在博客园上已经谈过几次了,如他的也谈orm和代码生成和没有ORM或代码生成数据就不能持久化了? - 用范型技术代替代码生成! 等,今天我不谈代码生成器的意义,只谈代码生成器的设计方案,最后给一个DEMO供大家下载. 阅读全文
posted @ 2006-11-14 12:06 风云 阅读(6148) 评论(16) 推荐(2) 编辑