Spiga

给Web Api 再加把柴-让它更火起来

2012-05-12 23:14 by 风云, 1616 visits, 网摘, 收藏, 编辑
摘要:WebApi 这两天被dudu老大炒的老火了,看来我也需要加把柴了,呵呵。 Ndf WebApi 是基于Ndf的服务分发器引擎,并借助Asp.net 的http原生态无状态协议的基础上搭建起来的,简单易用,不废话,上过程! 服务端Ndf Web API的实现 需要准备的工具:Visual Studio 2010, NuGet(这两天现学了Nuget 包的制作,虽然去年简单学习并制作了NLite的包,不过早忘光了,看了dudu老大的WebApi介绍,感觉落伍了,抓紧进行了恶补,总算制作了一个NdfWeb Api的Nuget 包了呵呵,在这里要多谢dudu了) 1. 新建一个空的ASP.... 阅读全文

松耦合服务调用利器-服务分发器

2011-12-19 17:23 by 风云, 956 visits, 网摘, 收藏, 编辑
摘要:引言 对象和对象之间是通过消息来进行通信的。具体过程如下: 创建对象a 创建对象b 创建请求消息request 调用对象b的方法 对象b返回对应的response通过上面的过程可以看出通信的调用方需要依赖如下元素:被调用方 (服务契约)请求消息request( 数据契约)被调用方的方法(操作契约)响应消息(数据契约)那么我们可以把通信的过程通过引入一个间接层-服务分发器来解耦对象间的之间通信,具体过程如下: 创建对象a 创建服务分发器dipatcher 创建请求消息request 调用分发器的分发方法 分发器创建对象b,并调用对象b的方法 对象b返回对应的response 给分发器,分发器把. 阅读全文

为ASP.NET MVC创建一个基于Mini容器的ControllerFactory

2011-12-19 12:13 by 风云, 1184 visits, 网摘, 收藏, 编辑
摘要:背景 随着Asp.net mvc的越来越流行,关于和Mvc整合的DI容器也非常的多,而Mini容器一致没有把整合的方案发布出来,以至于不时的收到有些网友询问这些事,于是便有了该文。[源代码从这里下载,Mini容器官方地址]解决方案 创建自定义工厂 public class NLiteControllerFactory : DefaultControllerFactory { private IServiceLocator ServiceLocator; public NLiteControllerFactory(IServiceLocator s... 阅读全文

数据库性能优化-摘录

2011-06-20 15:12 by 风云, 307 visits, 网摘, 收藏, 编辑
摘要:1. 树表设计,建议在树表中增加字段TreePath 2. 记录超过一百万的表要考虑是否需要使用分区表。对于能够明确确定分区字段,并且经常通过分区访问记录的。分区表会提高查询性能。 3. 反范式 在第三范式设计的基础上,针对具体的数据情况和应用访问数据情况进行的设计,使用适当的数据冗余和数据不一致风险,提供更高的数据访问性能,以保障应用的性能要求。 4. 避免使用Select * 5. 使用Set代替Select进行赋值 6.必要的时候,使用关键字”NOLOCK”避免锁定 7.不需要排序的时候,不要使用关键字”Order 8.字符列字节长度小于等于10时,使用char或者nchar 9.字符. 阅读全文

Web 高性能开发汇总

2011-06-20 14:53 by 风云, 423 visits, 网摘, 收藏, 编辑
摘要:以下内容收集了Web高性能开发的相关文章1. Http服务器:让Windows Server 2008+IIS 7+ASP.NET支持10万个同时请求大规模网站架构实战之体系结构(一)大规模网站架构之WEB加速器SQUID(二)iis负载均衡 Nginx 常见配置总结nginx实现网站负载均衡(windows+IIS负载实测)玩玩负载均衡---在window与linux下配置nginxWindows版本nginx大型架构.net平台篇(WEB层均衡负载nginx)2、性能测试工具推荐3、图片篇.4、如何加载JS,JS应该放在什么位置.5、为什么要减少请求数,如何减少请求数.6、减少请求,响应. 阅读全文

数据库大型应用解决方案总结 - 笔记

2011-06-20 13:48 by 风云, 200 visits, 网摘, 收藏, 编辑
摘要:数据库大型应用解决方案总结,这篇文章非常详细的总结了在大型项目中,关于数据库的解决方案。负载均衡技术读写分离技术分库(垂直,按功能模块)分表(水平,顺序拆分,hash取模分,在认证库中保存数据库配置)技术 当数据库读取压力太大时应当考虑读写分离技术。 当master负载太高时就要垂直分区-分库 当系统中特定的表异常大时就要考虑进行水平分区(分表) 大型的应用必然会经过一个从单一DB server,到Master/salve,再到垂直分区(分 库),然后再到水平分区(分表,sharding)的过程,而在这个过程中,Master/salve 以 及垂直分区相对比较容易,对应用的影响也不是很大,但. 阅读全文

DI 容器-Mini容器工作机制剖析(下篇)

2011-04-22 17:12 by 风云, 1141 visits, 网摘, 收藏, 编辑
摘要:上篇介绍了DI容器最基本功能,组件注册和组件创建和组件获取。这里将陆续把依赖注入进行详细介绍。 1. 看看组件工厂接口-IActivator的代码: /// <summary> /// 组件工厂 /// </summary> public interface IActivator { /// <summary> /// 创建组件 /// </summary> /// <param name="ctx">创建上下文</param> /// <returns>返回所创建的组件</retur 阅读全文

DI 容器-Mini容器工作机制剖析(上篇)

2011-04-21 17:45 by 风云, 1293 visits, 网摘, 收藏, 编辑
摘要:DI容器在DotNet 中已经不是什么稀罕东西了,如Castle,Unity,Ninject,StructureMap,Spring,MEF等等,这些DI容器都是老外设计的,国内开发的DI容器是少之又少,Mini容器便是少之又少中的一员。关于Mini容器的介绍,请参考去年7月份写的这篇文章:Mini容器介绍。 DI容器核心功能包含2大件,服务注册表和服务定位器。 服务注册表:掌管服务的配置或注册,服务注册成功后,DI容器会生成组件的元数据信息包含: 组件Id标志(服务定位器根据该标志获取组件实例),如果组件在注册时未提供标志,那么系统根据组件类型动态生成一个标志 组件类型 契约接口集合,一个. 阅读全文

Struct 创建性能大比拼(反射,泛型反射,泛型创建,缓存Emit)

2011-04-19 11:18 by 风云, 2005 visits, 网摘, 收藏, 编辑
摘要:上篇介绍了 Class 创建性能大比拼(反射,泛型反射,泛型创建,缓存Emit,非缓存Emit), 在这里做一个总结(执行10万次)直接创建Class对象最快 5ms缓存Emit 6ms (不包含Emit时间)泛型反射147ms泛型创建159ms(其实是编译器的语法糖,内部仍然调用泛型反射)反射340ms非缓存Emit 12786ms 经过上面的对比应该很清楚了Class创建原则: 直接创建->用缓存Emit->泛型反射->泛型创建->反射(反射大约比直接调用慢68倍左右),避免非缓存Emit 这篇就来一个Struct创建性能大比拼。因为Struct和Class一个是值 阅读全文

Class 创建性能大比拼(反射,泛型反射,泛型创建,缓存Emit,非缓存Emit)

2011-04-18 16:37 by 风云, 2307 visits, 网摘, 收藏, 编辑
摘要:一说到反射,很多人都想到了性能,更有甚者直接说“慎用反射,遗患无穷”,“用反射,感觉怎么像是退步啊~”,看到这种言论,直接把反射妖魔化了,如果这种言论长此以往,势必会对很多对反射初学者造成负面影响。反射是一把双刃剑,看你怎样使用了,下面我就用代码说话。class TestEntity { } 1. 手工创建TestEntity [TestInfo(Category = "Class.Constructor", Name = "Direct")] class DirectInvokeMode:IRunable { public void Run() { n 阅读全文