强烈推荐全球最佳.NET开源门户框架: DotNetNuke(DNN)! DotNetNuke中文官方(www.dnnchina.net)授权文章: DotNetNuke中文官方技术支持中心(forum.pspsoft.com) 1、DNN(DotNetNuke)研究手札系列1-资源: http://www.cnblogs.com/unruledboy/archive/2004/09/01/38425.html 2、DNN(DotNetNuke)研究手札系列2-背景、现状:http://www.cnblogs.com/unruledboy/archive/2004/09/01/38607.html 3、DNN(DotNetNuke)研究手札系列3-框架(概述):http://www.cnblogs.com/unruledboy/archive/2004/09/04/39628.html 4、DNN(DotNetNuke)研究手札系列4-框架(硬伤) 1:http://www.cnblogs.com/unruledboy/archive/2004/09/23/46019.html 5、DNN(DotNetNuke)研究手札系列5之DNN的未来(蓝图):http://www.cnblogs.com/unruledboy/archive/2004/10/03/48739.html 6、DNN(DotNetNuke) 3.0感官刺激零距x接触!!!: http://www.cnblogs.com/unruledboy/archive/2004/10/19/54066.html 7、PSP团队、开源事业、DotNetNuke(DNN)中国本地化的一些情况:http://www.cnblogs.com/unruledboy/archive/2004/11/15/63573.html 8、DotNetNuke3.0 Public Beta发布新特性研究手札:http://www.cnblogs.com/unruledboy/archive/2004/11/21/66700.html DNN到底是啥来头? DNN可以追溯到ASP.NET Starter Kits的ASP.NET Portal,这个东西仍然可以在asp.net网站中找到。 相关的文章我之前也写过,请自行搜索。 ASP.NET Portal之后,出现了IBuySpy,也就是大家熟悉的IBS, 这个比ASP.NET Portal进化了不少,使用了大量的.NET技术,也就是DNN的雏形。 2002年,IBS給市场印证了其局限性不能满足用户需求,DNN1.x推出了,它在IBS的基础上主要改善了模块功能, 接下来的DNN2.0.x更是把整个内核重写,带来了革命性的Skin。 DNN在外国到底有么受欢迎? 1、DotNetNuke:http://www.dotnetnuke.com/官方站点每天的注册/访问量,大家可以看看其首页右边的在线统计; 2、DNN论坛http://www.asp.net/Forums/ShowForum.aspx?tabindex=1&ForumID=90是比较热的,相对ASP.NET网站上的其它论坛来说; 3、DNN在众多免费/收费Portal中应用甚广; 4、DNN2.0.x发布的时候,在微软VS-Live! Conference中演示过,呵呵; 在研究的2个多月中,我感觉,与其等待别人来喂自己,到不如自己去觅食,或许这样比喻 不贴切, 意思就是说,动手去研究,比等待别人来教自己来得实际。 DNN倡导的是一种准备就绪、动态的、100%互动的数据驱动网络门户框架。 DNN最大的特点是系统框架、DSL(数据存储层)、 DAL(数据访问层)、BLL(业务逻辑层)、PL(呈现层)完全分离。系统开发人员、业务开发人员、美工和DBA(数据库管理员)都是“互不相干”的。 为了和.NET 2005尽量兼容,DNN应用了大量的所谓Provider(提供者)/Factory(工厂)模式来实现了其广泛的扩展性,可能你会觉得要仅仅实现一个数据的更新, 要在3个类中实现,但当你要在MS SQL、ACCESS、MySQL、Oracle或XML之间自由切换,那么,你将会发现DNN这种模式是会令你愉快的。 DNN的另外一个特性是其Skin(外观),它实现了从Portal(门户)、Tab(栏目)到Module(模块)各个层次的动态外观,每个Skin分Skin和Container(容器), Container可以理解成DNN的模块区域,每个模块都包括在一个Container中。DNN的Skin和动态Module是密不可分的。DNN的Tab和Module定义已经到达了WYSIWYG这个层次了, 不过我认为它不能做到集中处理。 DNN的每个Module都可以理解成一个积木,你可以随时把这个积木放到任何栏目的任何位置,你甚至可以隐藏它。 不过DNN对每个Module的数据处理都没有做到集中,Module删除了,并不对自动删除对应的数据,时间一长就产生大量冗余数据。而且没有集中处理,非常不直观。 以上缺陷我都在实际应用中改善了。 如果你仅仅认为DNN的Skin仅仅是改变一下CSS和换一下图片,如果认为.Text可以和DNN比较,那么,你都错了 。随着深入DNN的内核,绝对让你改观。
关注.Net开源框架- 自从去年转型到管理方面的工作后,对.NET技术上的更新就缺乏关注了。最近项目需要重构, 而Team里边的人大多又没有什么经验。迫使我不得不再次去研究和关注架构方面的技术。 看了许多.NET的开源框架,但都看得不够深,一来是时间关系,二来也淡忘了不少。 发此贴的目的是想让各位高手都来讨论一下当前的一些开源框架,讲讲他们的思想与原理, 他们都优劣,以及他们适应的项目范围。 介以目前开源框架比较多,就先从以下几个入手吧: 1. NBear 2. ESFramework 3. Castle 4. CSLA.Net 5. CAB 6. LinQ 还有其它的请各位也补充一下。 CSLA是Component-based, Scalable, Logical Architecture的简写, CSLA . NET是Rockford Lhotka基于.Net设计的一套N-tier分布式框架。 CSLA .NET包含如下功能: l n-Level undo capability 译:n层撤销功能 l Tracking broken business rules to determine whether an object is valid 译:跟踪违反业务规则以确定某个对象是否有效 l Tracking whether an object's data has changed (is it "dirty"?) 译:跟踪某个对象的数据是否发生了改变(是否“变脏”?) l Support for strongly-typed collections of child objects 译:支持对于子对象的基于强类型的集合 l A simple and abstract model for the UI developer 译:针对UI开发人员的一种简单抽象模型 l Full support for databinding in both Windows Forms and Web Forms 译:对于Windows Forms和Web Forms中数据绑定的支持 l Saving objects to a database and getting them back again 译:将对象保存到数据库中并将它重新取回 l Table-driven security 译:表驱动的安全机制 l Other miscellaneous features 译:其他各种特性 CSLA .NET的关键技术: l Remoting l 串行化 l Enterprise Services(COM+) l 反射l 属性 l .NET基于角色的安全性 l ADO.NET CSLA .NET组件设计图及其依赖关系:
http://images.cnblogs.com/cnblogs_com/pcjim/ComponentDesign.jpg
学习参考资料: 1. Source code of CSLA .NET Download (VB.NET & C# versions): 还包含有CSLA .NET类库文档。 ProjectTracker Sample Application: Instructions for setting up the ProjectTracker sample application Download version 1.2 of the VB ProjectTracker code Download version 1.2 of the C# ProjectTracker code 2. CSLA .NET MSN Group 3 . Rockford Lhotka’s homepage 最近在研究.NET平台下的程序升级补丁安装包制作,原来在.NET平台下开发了一个系统, 系统的安装包是用.NET自代的打包程序和MSDE 2000 Deployment Toolkit 1.0 制作的,打包资源主要包括dll文件和MSDE数据库安装文件(包括数据库、表、存储过程和部分基础数据)。 由于要对系统进行升级,需要对部分dll文件和数据库存储过程进行更新。 现在用的是手工将dll文件覆盖和手工更新存储过程,请问有没有什么好的工具, 能够把这些要更新的资源作成一个exe程序,让更新程序自动实现系统升级。这方面我不是太了解,希望朋友们能给个建议,谢谢了!