随笔分类 - [04] 架构思想
摘要:在一个基于ASP.NET应用中,我们通常使用Session保存基于某个客户端的状态信息。但是这种单纯使用Session的编程方式具有很多局限。为了实现对客户端状态的有效管理,并提高应用开发效率,在很多年前我们的开发框架体系中就具有相关的编程框架。最近我开始对其进行升级和重新设计,将大体上实现原理写出来与大家分享。
阅读全文
摘要:在上篇文章中我们谈到:当我们通过应用DependencyAttribute特性定义需要自动注入的属性的时候,当这个属性为接口、抽象类或者没有定义无参的构造函数,无论我们调用PIAB的Create方法去创建一个新的对象,还是调用Wrap方法对现有对象进行封装,都会抛出异常。如果说在前文中,我们还对这是否是个BUG抱着“谨慎”的态度,那么在这篇文章中,可以肯定地告诉你:这是一个BUG,而且是一个“致命”的BUG。
阅读全文
摘要:在《这是EnterLib PIAB的BUG吗?》一文中我们讨论了PIAB关于抽象基类的BUG,今天又发现了一个新的问题。问题的起因源于《IoC+AOP的简单实现》这篇文章,因为文中给出的解决方案仅仅支持构造器注入,而不能支持属性注入和方法注入——这是由于EnterLib的PIAB设计本身就存在缺陷。
阅读全文
摘要:2010年3月5 日,微软全球CEO 史蒂夫.鲍尔默先生在美国华盛顿大学发表演讲时指出,微软将举全公司之力投入云计算。“我们将把赌注押在云计算领域。”——他表示,此次演讲旨在让人们从更广阔的角度来看待云计算,并由多个维度来了解云计算所带来的变革。和业内许多公司一样,微软认为云技术的革新攸关未来,从5个维度分享了微软对云计算的理解以及微软在相关领域的创新情况。
阅读全文
摘要:关于如何解决分布式系统中的跨时区问题,上一篇详细介绍了解决方案的实现原理。尽管《原理篇》中介绍了那么多,解决方案的本质就是:在进行服务调用过程中将客户端的时区信息作为上下文传入服务端,并以此作为时间转换的依据。在这一篇中我们根据这个原理通过一个简单的例子来证明其可行性。。
阅读全文
摘要:《谈谈你最熟悉的System.DateTime[上篇][下篇]》从跨时区的角度对DateTime这个我们熟知的类型进行了深入探讨,它们都是为这篇文章作的准备工作。在接下来的两篇文章中,我们将完整的介绍如果在一个分布式系统中处理时区的问题。
阅读全文
摘要:之前园子里也有一些介绍企业库的文章,其中也不乏对Unity的介绍。虽然微软官方声称其为轻量级的IoC框架,但是并不意味着Unity会很简单。相反,也正是因为复杂性,很多人撰文介绍Unity的时候,往往为了面面俱到,导致很多读者不知所云。最终的结果是,了解Unity的读者能够看懂,不懂的人读了还是不懂。在本篇文章中,我试着换一种介绍方式:抓住Unity最本质的东西,剔除一些细枝末节,希望以一种全新的视角让读者了解Unity的本质。
阅读全文
摘要:继EnterLib 4.1之后,微软P&P部门于几天前成功发布了最新版本的EnterLib 5.0。EnterLib 5.0没有增加新的Application Block,主要对现有Application进行了重构和加强,已经对配置的改进。最主要的还是通过IoC让整个EnterLib具有更好的可可扩展性。5.0并将Unity这个IoC容器融入了EnterLib中,并给你创建增加的IoC容器的机会。
阅读全文
摘要:通过上一篇了解了模块内基本的层次划分之后,接下来我们来聊聊PetShop中一些基本基础功能的实现,以及一些设计、架构上的应用如何同WCF进行集成。本篇讨论两个问题:实现分布式的Membership和客户端到服务端上下文(Context)的传递。
阅读全文
摘要:在上篇中我们谈到:将一个生命周期较短的对象(对象A)注册到一个生命周期较长(对象B)的某个事件(Event)上,两者便无形之间建立一个引用关系(B引用A)。这种引用关系导致GC在进行垃圾回收的时候不会将A是为垃圾对象,最终使其常驻内存(或者说将A捆绑到B上,具有了和B一样的生命周期)。这种让无用的对象不能被GC垃圾回收的现象,在托管环境下就是一种典型的内存泄漏问题。我们今天将会着重解释其背后的原因。
阅读全文
摘要:上一篇文章主要讨论的是PetShop的模块划分,在这一篇文章中我们来讨论在一个模块中如何进行层次划分。模块划分应该是基于功能的,一个模块可以看成是服务于某项功能的所有资源的集合;层次划分侧重于关注点分离(SoC:Separation of Concern ),让某一层专注于某项单一的操作,以实现重用性、可维护性、可测试性等相应的目的。
阅读全文
摘要:在《WCF技术剖析(卷1)》的最后一章,我写了一个简单基于WCF的Web应用程序,该程序模拟一个最简单的网上订购的场景,所以我将其命名为PetShop。PetShop的目在于让读者体会到在真正的项目开发中,如何正确地、有效地使用WCF。在这个应用中,还会将个人对设计的一些总结融入其中,希望能够对读者有所启发。
阅读全文
摘要:In the last year or so, after quite a lull, the software architecture business has gotten rather exciting again. We're finally seeing major new topics emerging into the early mainstream that are potential game-changers, while at the same time a few innovations that have been hovering in the margins of the industry are starting to break out in a big way.
The big changes: The hegemony of traditio
阅读全文
摘要:[From J.D Meier’s Blog:http://blogs.msdn.com/jmeier/default.aspx]
Today we released our patterns & practices App Arch Guide 2.0 Beta 1. This is our guide to help solution architects and developers make the most of the Microsoft platform. It's a distillation of many lessons learned. It’s principle-based and pattern-oriented to provide
阅读全文