MMN实用架构过程概览
摘要:MMN(Macro-Micro-Nano,即宏观-微观-纳米)实用架构过程初步体现了我的架构观:即以实用主义态度把握架构原则与本质思想,从系统的各个层次剖析架构,提供一个具有指导意义和实施价值的架构过程,采取简略、敏捷而又全面的方式,对软件系统进行架构与设计。架构的步骤必须是清晰可见,每一步都有明确的目标与实际的指导意义。MMN实用架构过程既有大局观的思考与基本原则指导,又要着眼于细处,突出强调宏观、微观与纳米粒度在架构视图中的合力,既关注宏观的体系架构,又重视层、模块、组件之间的协作方式与公开的接口,同时还极度重视编码质量,并将这种细节的编码风格与重构模式纳入到架构体系中来。对于MMN架构而
阅读全文
三层架构[转]
摘要:在项目开发的过程中,有时把整个项目分为三层架构,其中包括:表示层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。三层的作用分别如下: 表示层:为用户提供交互操作界面,这一点不论是对于Web还是WinForm都是如此,就是用户界面操作。我们网站展示给用户看的界面。 业务逻辑层:负责关键业务的处理和数据的传递。复杂的逻辑判断和涉及到数据库的数据验证都需要在此做出处理。根据传入的值返回用户想得到的值,或者处理相关的逻辑。 数据访问层:见名知意,负责数据库数据的访问。主要为业务逻辑层提供数据,根据传入的值来操作数据库,增、删、改或者其它。 以下我简单介绍下一个用户管理模块: 为了整个项目的开发方
阅读全文
在ASP.NET中实现Model-View-Presenter(MVP) (转)
摘要:[原文地址]Implementing Model-View-Presenter in ASP.NET[原文作者]Alex Mueller[示例代码]下载示例代码介绍我在ASP.NET中使用MVP设计模式已经一年有余,在此之前我在一个使用事件驱动实现的SmartClient应用程序中第一次接触到了MVP模式,与富客户端环境相比,将MVP模式应用到Web环境仍然存在一些问题。本文将介绍这些问题,并提供我认为针对ASP.NET具有最大可用性和可测试性的实现方式。本文将介绍MVP模式的基础以及在ASP.NET中的3中实现方式,让读者了解在各种不同的实现方式中ASPX页面,ASCX用户控件和Presen
阅读全文
CYQ.Data 框架系列
摘要:CYQ.Data 框架系列构造轻量极的数据层CYQ.Data 数据框架 跨平台应用开发摘要: 昨天发布的一篇:CYQ.Data 数据框架 性能评测为大伙揭开了CYQ.Data 的性能体验,在写数据方面,表现的相当接近原始的ADO.NET操作。那在数据读取方面呢?有兴趣的朋友可自行测试一下。本篇为你揭开的是:CYQ.Data 能否跨平台使用?相信大伙都有点知道,.NET跨平台,目前也只能折腾M阅读全文posted @ 2011-03-09 22:52 路过秋天 阅读(1328) | 评论 (10) 编辑 CYQ.Data 数据框架 性能评测摘要: CYQ.Data 的性能基本维持和ADO.NET
阅读全文
架构师要了解
摘要:一. 架构师?1.1 架构设计涉及范围图 如图所示架构设计说涉及到的范围,首先是对架构支撑的底层平台选择,目前业界流行和通用的就是.Net平台和Java平台(J2EE);然后在平台支持之上做技术相关架构设计(主要会采用面向对象OO,面向方面编程AOP以及面向服务架构设计SOA等思想),在SOA推广上IBM和SUN两家公司尤为突出;在业务不断的变化中、架构的更新中,找到变化中不变的东西,并针对服务、架构制定一系列规范对架构进行有效的管理和成为架构设计的原则;当然,最上层就是善变的业务架构层。1.2 一个优秀的架构师需要了解的知识操作系统OS:能对操作系统内核有很好的了解和认识,从中吸取设计理念;
阅读全文
基于.NET的大型Web站点StackOverflow架构
摘要:A lot has happened since my first article on theStack Overflow Architecture(2009-8-5). Contrary to the theme of that last article, which lavished attention on Stack Overflow's dedication to a scale-up strategy, Stack Overflow has both grown up and out in the last few years.自从2009年8月发布了第一篇关于“Stac
阅读全文
remoting架构探讨
摘要:(文/金延涛)1.remoting技术的特点 remoting技术可以为分布式应用提供强有力的支持,我们可以根据需求和特定的环境选择合适的通道和序列化的方式满足我们的应用。另外remoting技术具有非常好的扩展特性,我们甚至可以在remoting体系结构的每个组件上进行扩展和自定义来满足丰富的应用需求。2.环境分析网络环境分析 假设公司是一家大型机构,内部出于安全的需要,不同的部门和不同的子部分可能被不同的网络防火墙隔离,但是不同的部门或者子部门需要共同协作来管理一些应用,因此我们可能需要穿越公司内部的防火墙来满足我们的应用需要。软件环境分析 假设公司的大部分应用建立在windows平台之上
阅读全文
系统架构设计资源
摘要:我的架构经验小结(五)-- 日志记录摘要: 以前写的关于架构经验方面的文章(如上一篇实战中演化的三层架构)都是从整体的角度出发的,采用全局的视角,本文我们将拉近镜头,聚焦于日志记录这一块。随着做软件的时间越长、经验积累得越来越多,就越觉得日志记录的重要。 日志记录的主要作用可以从正反两个方面来说:(1)如果程序运行出现问题,可以通过相关日志快速定位到出问题的地方,找到问题的根源,从而快速解决问题。对于已上线的系统来说,如果出现一个bug,通常,解决这个bug的时间主要花在定位bug上,一旦找到bug根源,修复它是非常快的。而恰当的日志记录可以帮我们迅速定位bug。(2)确保我们的系统运行在正常
阅读全文
SOA是什么
摘要:估计很多人都听说过SOA这个词了,但是很多人还是不知道到底什么是SOA。开发人员很容易理解为是一个Web Service,但是这绝对不是SOA,那顶多只能算是SOA的一种实现方法。那么,到底什么是SOA呢?最近正在看SOA Source Book,本篇我将介绍一下SOA到底是什么?如有错误,欢迎指正。SOA是Service-Oriented Architecture的首字母简称,它是一种支持面向服务的架构样式。从服务、基于服务开发和服务的结果来看,向服务是一种思考方式。服务是一种有特定结果的可重复业务活动的逻辑表示(例如,检查客户信用度、提供天气预报等)自包含可以组合其他服务对于服务使用者来说
阅读全文
Jla框架
摘要:Jla框架介绍(四) 配置管理模式摘要: 今天轮到分享这个框架的配置管理机制,一般来讲,每个代码单元都可能允许通过配置参数来实现定制化的界面和功能,如果没有配置,一般是很难将一个代码单元直接移植到另一个应用里面去使用,这一章,我简单的分享一下我为Jla框架设计的配置机制。 配置机制需要实现在任意地方,对任意的代码单元进行统一的配置,而代码单元在读取这个配置的时候,按照统一的标准去读取,而不应该该配置是由哪个代码单元设置的,这就是配置机制的设计思路,进一步将代码单元和应用本身分离开来。 我设计的配置机制非常简单,对代码单元来讲,只需要这样使用即可读取配置:[代码] 这个程序简单的读取了自己的两项
阅读全文
网站架构之缓存应用(3)
摘要:实现篇这篇来讲如何利用memcached实现一级缓存,以及如何让一级缓存组件支持在企业库,memcached或者其它第三方实施方案之间的切换。memcached本人并没有太多经验,如果文中有说的不对的地方,还希望批评指出,且文中关于memcached的代码大多来自网络。 创建memcached实现类MemcachedWebCacheProvider,由它来继承缓存提供者接口IWebCacheProvider,主里memcached客户端我采用.NET memcached client library ,这个类库很久没有更新这过了,没有和java版同步,有部分功能目前没有实现。 1:初始化me
阅读全文
网站架构之缓存应用(1)
摘要:概念篇网站缓存这个话题并不新颖,但是能否将它用好,可是一门学问,同一件工具在不同人的手中会做出不同的事情来。这里我来分享总结下我对于网站架构中缓存应用的一些看法和经验,大家有好的想法可以补充。 第一:缓存的一些基本概念。 1:缓存(CACHE)与缓冲(BUFFER)的区别,我认为缓存可以在某种程序上理解成一级缓存(Primary Cache),数据全局共享。缓冲则属于二级缓存,只对一部分对象共享数据,二级缓存在某种程序上主要是降低一级缓存组件的访问压力以及提高缓存的存取效率。 2:缓存的一些基本属性:命中率,表示缓存命中的次数/总的请求数,这是缓存设计的重要质量指标之一;缓存执行效率,例如G
阅读全文
云计算-从基础到应用架构系列-虚拟化的技术(上)
摘要:开篇 上篇我们讲述了云计算的中的核心技术-虚拟化技术的相关概念,当我们了解了虚拟化技术的概念及相应的目的及作用后,虚拟化技术将是未来一段时间内的热门话题,很多的商业巨头,已经将虚拟化作为未来的重要发展战略,掌握了虚拟化的技术,也就意味着我们在未来的技术上处于领先地位。虚拟化技术的使用可以说现在已经在计算机信息化中有了广泛的使用,但是并未得到广泛的使用,当然这个其中也是有很多的规定,法律法规等相关制度的约束,还有是因为虚拟化技术目前还有很多的不成熟的原因,比如说在性能和效率上还有欠缺,无法和硬件起到同样的功效,当然如果说我们对性能上的约束不是太强烈的时候,虚拟化是很好的解决方案,云计算的提出,颠
阅读全文
金色海洋自然框架
摘要:http://www.naturefw.com/nature/down.aspx原来是在博客园里提供下载的,但是下载的东西多了博客园的空间就不够用了,所以改成在网络U盘里下载 自然框架源码。2011.1.7上传点击下载:自然框架源码 自然框架综合演示源码。2011.1.7上传点击下载:自然框架综合演示源码 自然框架演示用的数据库,SQL Server2000 。2011.1.7上传点击下载:自然框架演示用的数据库 自然框架,配置信息管理程序,单项目个人体验版。2011.1.7上传点击下载:配置信息管理程序——单项目个人体验版 最新的下载地址:http://www.naturefw.com/na
阅读全文
Spring.NET企业架构实践之 NHibernate + Spring.NET + WCF + Windows服务 + Silverlight 中小企业应用架构完整Demo
摘要:最近由于工作忙的原因,博客更新的比较慢,在此给园子里的朋友说声抱歉。于是,我利用周末的时间写了一份Spring.NET架构的综合应用,希望这样的实用型架构能受到大家的欢迎。 一、概括 此Demo使用的开发工具是:VS2010,数据库任意,Silvelright版本是4.0。Demo分为三层(Tier),数据库,服务器端,客户端。其中,服务器端又分为三层(Layer),持久层,服务层,门面层。WCF以Windows服务作为宿主,客户端使用Silverlight运行浏览器之外。图1 图1是解决方案中包含的项目。其中,Server文件夹下是服务器端的代码,Host文件夹下是服务器端的Windo
阅读全文
Spring.NET企业架构实践之 Nhibernate + WCF + ASP.NET MVC + NVelocity 对PetShop4.0重构(三)——持久层
摘要:什么是持久层?先解释什么是持久,英文persistence,将内存中的数据固化,保持在物理储存设备中。然而在企业应用中,往往通过关系型数据库来完成这一过程。那么持久层的定义是:相对于三层架构中的表示层、业务层而言,专门负责持久化数据的独立领域。设计模式中的“单一职责”原则确定了分层的目的,说白了,持久层就是专门与数据库打交道的。如图1所示 图1 在PetShop4.0中的DAL(数据库访问层)就是操作数据库的。在其DAL中,通过SQL语句返回DataReader,然后给Model对象赋值;在添加、修改、删除操作中,通过Model对象的数据生成SQL语句,然后写入数据库。此时,我们能够看出每张
阅读全文
Spring.NET企业架构实践之 Nhibernate + WCF + ASP.NET MVC + NVelocity 对PetShop4.0重构(二)——领域模型
摘要:什么是领域模型?领域模型是对领域内的概念类或现实世界中对象的可视化表示。又称概念模型、领域对象模型、分析对象模型。它专注于分析问题领域本身,发掘重要的业务领域概念,并建立业务领域概念之间的关系。 当我们不再对一个新系统进行数据库提炼时,取而代之的时面向对象的模型提炼。我们必须大刀阔斧地对业务领域进行细分,将一个复杂的业务领域划分为多个小的子领域,同时还必须分清重点和次要部分,抓住核心领域概念,实现重点突破。 著名建模专家Eric Evans提出了Domain Driven Design(领域驱动设)。最初层次只分为三层:表现层、业务层和持久层,DDD其实告诉我们如何让实现业务层。 领域
阅读全文
Spring.NET企业架构实践之Nhibernate + WCF + ASP.NET MVC + NVelocity 对PetShop4.0重构(一)——架构设计
摘要:PetShop4.0是微软针对.NET企业系统推出的一个范例。业界有许多.NET与J2EE之争,许多数据是从微软的PetShop和Sun的PetStore而来。这种争论不可避免带有浓厚的商业色彩,对于我们开发人员而言,没有必要过多关注。然而PetShop随着版本的不断更新,至现在基于.Net 2.0的PetShop4.0为止,整个设计逐渐变得成熟而优雅,而且有很多可以借鉴之处。PetShop是一个小型的项目,系统架构与代码都比较简单,却也凸现了许多颇有价值的设计与开发理念。 然而PetShop4.0存在很多争议,我想园子里一定有很多PetShop4.0的“粉丝”,重构PetShop4.0会
阅读全文
开源软件----Mono框架和架构
摘要:http://www.mono-project.com/Main_Pagehttp://zh.wikipedia.org/zh/MonoMono是一个由Novell公司(先前是Ximian)主持的项目。该项目的目标是创建一系列符合ECMA标准(Ecma-334和Ecma-335)的.NET工具,包括C#编译器和共通語言執行平臺。与微软的.NET Framework不同,Mono项目不仅可以运行于Windows系统上,还可以运行于Linux,FreeBSD,Unix,Mac OS X和Solaris。Mono现由Novell持有双重许可,这和Qt和Mozilla应用程序套件的情况相似。Mono的
阅读全文