随笔分类 - AOP
摘要:这次介绍的这个框架只适用于中小项目,并且各个读写数据库结构是一致的情况,还要并且是写入数据库只有1台情况。我们来看看这个子系统适用的场景:我们来看这个子系统的配置文件: Server=.;Database=d1;User Id=sa;Password=111111; //唯一的主数据库(写入DB) Server=.;Database=d2;User Id=sa;Password=111111; //这些是普通的对等的读数据库,只是做了些普通索引优化 Server=.;Database=d3;User Id=sa;Password=111111; //同...
阅读全文
摘要:大家对这段代码肯定很熟悉吧:public List SearchUsers(string userName) { string cacheKey=string.Format("SearchUsers_{0}", userName); List users = cache.Find(cacheKey) as List; if (users == null) { users = repository.GetUsersByUserName(userName); ...
阅读全文
摘要:放心,这次不是说设计模式中的代理模式,说的是C#的RealProxy的用法,主要用于:通过给class贴标签,让class做更多的工作,比如判断是否存在缓存,有则直接返回缓存object,没有则保存为缓存,等待下次请求是可以更快的获取数据(当然这只是其中一种常用用途,MVC的Action就是采用这种方式)下面是序列图:.Net Object Generation interceptor属于.NET自身行为,不需要额外写代码。Code Consumer指想调用RealObject来进行调用的对象,比如控制台程序,或者WEB程序。ProxyAttribute里定义了具体代理类是哪个,这个代理类是自
阅读全文
摘要:我们先来看看本人对下面这两个名词的个人见解:软件架构:几乎每个软件系统的架构都是不同的,因为软件架构的第一步就是根据当前项目的重要需求及约束来制定一个个技术决策。软件框架:可以分成行业框架和通用框架。通用框架是对大多数软件项目常用的模块(底层+高层)进行封装(同时暴露热点)的一个集合,能提高开发速度以及质量行业框架是针对某特定领域,把类似领域逻辑提取出来进行封装(同时暴露热点)的一个集合,能提高开发速度以及质量行业框架可以是基于通用框架之上的。站在架构师的角度,针对架构的开发,会慢慢演变为针对框架的开发(由于需要考虑复用以及对开发人员友好API特性)伸缩性:一般是指机器级别的横向扩展,如:we
阅读全文
摘要:要想性能高,缓存是关键,缓存处理更是关键最近一直在关注性能方面,回想起以前写cache的场景,纠结啊,一坨一坨的同步代码,都写在了业务方法中,更要命的是由于涉及到取缓存代码导致了多个方法中同时牵涉了很多处理缓存的代码、结构性基本上没有。由此粗略写了这个EventFramework,还没有优化,由于用到了反射,所以效率不高,还需要优化(今天刚搞出来的。。。)代码下载这个EventFramework能够将业务方法和相关event分离开(事件订阅),比如:事件订阅:Order.Add函数调用后,EventFramework能根据订阅的event,逐一进行调用(缓存处理可以放在这里,对处理缓存的结构比
阅读全文
摘要:本文是讲使用微软企业库来实现AOP和IoC/DI的,大家先装下微软企业库5.0,地址:http://www.microsoft.com/en-us/download/details.aspx?id=15104AOP的实现,使用PIAB(Policy Injection Application Block)比如想给这个TestManager类的Method2方法检查权限,有权限时才允许执行Method2方法体,最初的代码如下:public class TestManager{ public void Method2(int x) { Consol...
阅读全文