DotNet软件开发框架

这是我4月份发在donews博客上的文章,现在都转到博客园来,风满袖希望进一步阐述你的架构,我就将这篇文章转移到博客园。原文:http://blog.donews.com/shanyou/archive/2005/04/23/347792.aspx
     以我个人的能力,没有足够的时间和资源自行开发一套完整的平台。在已有的众多开源项目中选择若干优秀的项目进行整合。“站在巨人肩膀上”是牛顿有一句名言.,同样适合我们的IT行业。

我对平台的技术架构的构想,是采用开源的ORM框架做数据持久层, Asp.net没有合适的Web层框架,就采用Asp.net的Code-behind方式编写代码,数据持久层同Web表现层之间的连接采用IOC的容器。

1、 开源框架选择:

数据持久层Nhibernate和IbatisNet这两个都是非常优秀的数据持久层,Nhibernate是优秀的Hibernate的dotNet移植版本,在开源社区具有非常高的人气,IbatisNet是Data Mapper框架,也是JAVA版的Ibatis的移植版本,在dotnet的开源社区一样是非常受欢迎的一个工具。Nhibernate用于支持非常好的面向对象的设计的模型,IbatisNet用于支持应用程序的移植(已经存在数据库,处于生产状态),这两个框架对开发人员的要求。这样就具有更大的弹性。IOC容器Spring.Net和Castle,这是两个dotnet非常优秀的IOC容器。Spring.Net同样是Java的Spring 的移植版本,目前的版本是0.6,Castle则是dotnet下出现新的IOC容器,它的功能,成熟度方面比Spring.Net好得多,框架中准备采用Castle.最后的平台的技术架构就是Nhibernate/IbatisNet + Castle + ASP.NET

2、 架构整合:

Web层的Asp.net负责数据输入输出, 响应用户事件,及输入校验的工作,Web层上如何得到Nhibernate的Session和IbatisNet的SqlMapper?本架构中的DAO,Service以及 Nhibernate的Session和IbatisNet的SqlMapper都是通过Castle进行管理,Web层如何得到Castle IOC容器的实例呢,参照文章在asp.net页面上得到Castle容器的实例 。Asp.net页面通过Service处理业务逻辑,Service负责use case逻辑, domain相关的逻辑委托给domain model去实现. Service通过DAO完成对domain model的持久化工作. Service负责数据库事务和NHibernate Session/IbatisNet SqlMapper的管理。Domain model负责表示问题域的数据,DAO使用Nhibernate/IbatisNet持久化数据以及查询. 在实现DAO时, 我们使用了Castle的Nhibernate/IbatisNet DAO Support,极大地简化了代码, 很多方法都只用简单的一行完成。这样的架构优点很明显, 层次清晰, 各层的职责也明确, 便于分层设计与开发, 结合mock和Castle的IOC, unit test也是非常容易的. 而且后台(Service, domain model and DAO)的代码不依赖于Asp.net框架,同样的代码可以在Web App也可以在WinForm上面使用,只需更换UI层。

使用的框架工具的链接

http://www.castleproject.org/castle/show/HomePage

http://nhibernate.sourceforge.net/

http://sourceforge.net/projects/ibatisnet/

另外这里有一篇精彩文章应用系统架构设计

时间: 2025-01-05 18:41:17

DotNet软件开发框架的相关文章

Enterprise Solution 企业管理软件开发框架

Enterprise Solution 开源项目资源汇总 Visual Studio Online 源代码托管 企业管理软件开发框架 Enterprise Solution 是一套管理软件开发框架,在这个框架基础上开发出一套企业资源计划系统Enterprise Edition. 现将Enterprise Solution开发过程中遇到问题时的解决方案资源共享出来,供参考. 项目源代码地址是 https://enterpriseedition.visualstudio.com/ 1  工具软件界面

Enterprise Solution 开源项目资源汇总 Visual Studio Online 源代码托管 企业管理软件开发框架

Enterprise Solution 是一套管理软件开发框架,在这个框架基础上开发出一套企业资源计划系统Enterprise Edition. 现将Enterprise Solution开发过程中遇到问题时的解决方案资源共享出来,供参考. 项目源代码地址是 https://enterpriseedition.visualstudio.com/ 访问帐户[email protected],密码是abc!12345 1  工具软件界面原型 Management Studio 工具类程序的界面原型,

JetBrains软件开发框架下的类似于“.IntelliJIdea2018.1”文件夹的移动

JetBrains软件开发框架下几款软件,如: 会在C盘用户文件夹下生成很大的文件缓存,十分占空间,也影响电脑性能. 这些索引目录移动的原理相似,现在以Idea为例尝试. (1)找到索引目录,如上图所示,并将其复制到你想要的位置. (2)找到IntelliJ IDEA安装目录中配置文件,如博主的在如下位置处 E:\Program Files\JetBrains\IntelliJ IDEA 2018.1.1\bin\idea.properties (3)修改以上的配置文件 修改为 (4) 重启id

iOS软件开发框架理解

这个东西是硬伤,框架?自带的mvc? 自带的UIViewController UIView UINavigationController 这些算不算?当然算的,cocoa框架嘛,大家都知道. 其实,我想分享的是:整个软件设计的代码结构管理.在阅读了不少源码后,总结出来的好的设计代码结构分布逻辑. 一开始,我们学会了简单的使用UIButton,UIImage等这些常用的视图类的时候,我们其实已经能够写出来一般的软件了.常见的功能,这里添加一点,那里添加一点,这里一个网络请求,这里一个bool类型判

微软正式开放.NET软件开发框架

[牛华网讯]11月13日消息,微软今天宣布,公司将开放.NET软件框架,并要将.NET发布到GitHub平台.微软还向Linux和Mac OS X平台发布.NET. 现在,Windows.Linux和Mac OS X开发者可以使用.NET软件框架.另外,Visual Studio Community 2013现在也免费发布. 为此,微软已经与Mono社区紧密合作.Mono曾为.NET软件框架开发开放标准,现在Mono为微软提供技术支持. 12年前,微软发布.NET.目前,大约600万开发者使用.

Enterprise Solution 管理软件开发框架流程实战

1 定义模块和功能 执行系统功能(SAUTSF),在系统主文件(System Master File SAMF)模块中增加功能SAMFEM,Employee Master. 给有权限的用户组分配功能SAMFEM的权限,包含新增,删除,修改,打印,过帐权限,这是功能权限. 如果需要增加字段权限,比如可以编辑员工薪资字段,应该修改用户表(User)增加权限字段. 2 定义导航菜单 把增加的功能放置到合适的功能菜单中,菜单项的位置根据需要而定.比如员工主文件,可以放置到主档定义中,还可以放置一份到人事

使用开源软件做项目有风险

作者:Ivony链接:https://www.zhihu.com/question/29636221/answer/71201381来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 当然,微软的确有操蛋的地方,作为纯粹的商业公司,微软在任何领域失去假想敌之后都会萎靡不振,这是商业公司的通病.不单是微软,苹果.谷歌.十八摸,包括国内的BAT,一旦在某个领域失去竞争对手,业务裁撤的比微软快多了. 这可以视为商业软件/框架/引擎的一个通病和弊端,但是问题在于,开源软件也并

从零开始编写自己的C#框架(27)——什么是开发框架

前言 做为一个程序员,在开发的过程中会发现,有框架同无框架,做起事来是完全不同的概念,关系到开发的效率.程序的健壮.性能.团队协作.后续功能维护.扩展......等方方面面的事情.很多朋友在学习搭建自己的框架,很多公司也在创建或使用自己的框架,网上开源的框架多如牛毛,每年新上线的各种框架也不知多少.而不停的重复造轮子,也让更多的朋友鸟枪换炮,越跑越快,工作效率越来越高.那么什么是框架呢? 什么是框架 度娘上说:框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间

atitit.提升开发效率---mda 软件开发方式的革命

atitit.提升开发效率---mda 软件开发方式的革命 1. 软件开发方式的革命开发工具的抽象层次将再次提升 1 2. 应用框架和其实现相分离 2 3. 目前的问题模型和代码不同步 2 4. MDA的历史及其由来 2 5. MDA的三个主要目标是:轻便性. 互操作性和可重用性. 3 6. MDA跟代码生成的不同 3 7. 问题:也许MDA不过是已有的Case Tools的"昙花一现" 3 8. 实际的效率提升 3 9. Mda在嵌入式系统的成功 4 10. 我的总结:::基于伪码生