Fork me on GitHub

2013年5月22日

摘要: 使用MEF实用IOC(依赖倒置)〇、目录一、前言二、MEF的优势三、MEF在桌面程序中的使用四、在MVC中使用MEF五、源码下载六、系列导航一、前言 在《上篇》中,基本的项目结构已经搭建起来了,但是有个问题,层与层之间虽然使用了接口进行隔离,但实例化接口的时候,还引入了接口实现类的依赖。如下图: 面向接口编程,Controller应该只依赖于站点业务层的接口,而不能依赖于具体的实现,否则,就违背了在层之间设置接口的初衷了。 另外,如果上层只依赖于下层的接口,在做单元测试的时候,就可以用Moq,Fakes等Mock工具来按实际需求来模拟接口的实现,就可以灵活的控制接口的返回值来对各种情况进... 阅读全文
posted @ 2013-05-22 09:21 HackerVirus 阅读(370) 评论(0) 推荐(0)

2013年5月21日

摘要: 基于Node的代码生成器 之 入门教程背景为了方便团队和其它朋友使用我开发的这款代码生成器,特此写一篇入门教程。环境要求Node:http://nodejs.org/。.Net4.5:http://www.microsoft.com/zh-cn/download/details.aspx?id=30653。happy.node:http://happy.codeplex.com/SourceControl/latest。目录结构模板文件和最终生成的代码文件生成程序app.js 1 var _ = require('underscore'); 2 3 var DatabaseSc 阅读全文
posted @ 2013-05-21 22:28 HackerVirus 阅读(1235) 评论(0) 推荐(0)
摘要: NSubstitute完全手册(一)入门基础NSubstitute入门最简单的入门方式就是创建一个测试项目,并将 NSubstitute 引用到其中。可以通过NuGet或OpenWrap来获取 NSubstitute 包。也可以直接下载 NSubstitute 文件,然后将 NSubstitute.dll 引用到项目中。然后就可以创建一个新的测试 Fixture(可以选择使用你最喜欢的UT测试框架,本文涉及的示例中我们使用MSTest),开始思考从哪里入手。首先,添加 using NSubstitute; 到当前的C#代码文件中,有了它我们就可以开始创建替身了。现在,比如我们有一个非常简单的计 阅读全文
posted @ 2013-05-21 22:20 HackerVirus 阅读(308) 评论(0) 推荐(0)
摘要: Unity移动Basic版授权从此免费具体信息参见官方博客:http://blogs.unity3d.com/2013/05/21/putting-the-power-of-unity-in-the-hands-of-every-mobile-developer/在今年的Unite 2013大会上,Unity CEO David Helgason宣布,原本需要分别购买、总价合计800美元 的Unity Android Basic与Unity iOS Basic License,从今天起将会整合在原本就免费的Unity Basic中,一起免费提供。另外,一旦BlackBerry与Windows 阅读全文
posted @ 2013-05-21 22:16 HackerVirus 阅读(218) 评论(0) 推荐(0)
摘要: 搭建Squid反向代理服务器好吧,更新个文章,有段时间没写技术博文了。今天就说说squid反向代理这个服务,当然,这是在Linux下配置完成的。说自己没偏见似乎不可能了。大概是相对喜欢Linux而已。但我从不否认Windows Server功能及性能会比Linux差。只是个人爱好哈,不多说。下面说下搭建squid反向代理多个域名,多个web站点的方法。环境(这个很重要)两台CentOS6.3一台RHEL6.2网卡信息和DNS记录信息比较多,似乎有点烦,有需要的看清楚就是了。纯属个人喜好和习惯划分的。DNS Server IP:192.168.2.10 (VMnet2)Squid Server 阅读全文
posted @ 2013-05-21 17:01 HackerVirus 阅读(334) 评论(0) 推荐(0)
摘要: 渐近符号、递归及解法这节课,大概讲了一些符号的用法,毕竟偏数学化,没有涉及算法的知识。我也参考了下别人的笔记,本节课内容不是太多,主要是符号表示和递归的复杂度求解方式,下面分2个部分讲解。 一,渐进符号 (1)O符号,f(n) = O(g(n)),表示f(n)的复杂度最多与g(n)一个数量级,即小于等于。 (2)Ω符号,f(n) = Ω(g(n)),f(n)的复杂度最少与g(n)一个数量级,即大于等于。 (3)o符号,f(n) = o(g(n)),表示f(n)的复杂度要比g(n)的数量级小,即小于。 (4)ω符号,f(n) = ω(g(n)),表示f(n)的复杂度要比g(n)的数量级... 阅读全文
posted @ 2013-05-21 17:00 HackerVirus 阅读(669) 评论(0) 推荐(0)
摘要: 发布订阅模式 之 同步订阅、异步订阅和离线订阅背景事件驱动解除了发布者和订阅者之间的耦合,在UI层面,我明经常采用这种编程理念。服务器端最近也开始流行起来了,我也一直小范围的在采用。今天就跟大家分享一下我写的一个小框架。框架原理一张图片胜过前言万语。代码示例下载地址:http://yunpan.cn/Q5SUcWdiA2mmk。项目结构关键代码TestEvent.cs 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threa 阅读全文
posted @ 2013-05-21 16:59 HackerVirus 阅读(789) 评论(0) 推荐(0)
摘要: IOS网络编程:HTTPHTTP定义了一种在服务器和客户端之间传递数据的途径。URL定义了一种唯一标示资源在网络中位置的途径。REQUESTS 和 RESPONSES:客户端先建立一个TCP连接,然后发送一个请求。服务器受到请求处理后发送一个响应向客户端传递数据。然后客户端可以继续发送请求或者关闭这个TCP连接。HTTPS:在TCP连接建立后,发送请求之前,需要建立一个一个SSL会话。request方法和它们的用途iOS的NSURLRequest和它的子类NSMutableURLRequest提供了建立HTTP请求的方法。NSURLResponse 和它的子类NSHTTPURLResponse 阅读全文
posted @ 2013-05-21 16:56 HackerVirus 阅读(290) 评论(0) 推荐(0)
摘要: 使用队列和线程对现有asp.net动态页处理进行资源控制IIS可以对ASP.NET站点进行一个资源控制,包括使用的CPU,处理进程数等.但如果想对某些动态页面进行一个资源限制,只允许固定线程数量来处理某些动态请求,而不至于在某些情况个别的动态请求把整个站的资源都占光了.对于这么小的粒度控制显然不适合由IIS来做,这个时候就可以通过asp.net提供IHttpAsyncHandler来解决这种事情.处理结构由于Asp.net提供了异步处理Handler,所以可以在Handler的Begin处理方法中把具体对象存放到队列中,然后根据实际业务的需要来配置1-N个线程来处理相关请求.IHttpAsyn 阅读全文
posted @ 2013-05-21 16:55 HackerVirus 阅读(164) 评论(0) 推荐(0)
摘要: 联邦企业架构之FEA及参考模型(中)服务组件参考模型SRM/CRM 服务组件参考模型是一个业务驱动的功能性框架,它依据服务组件如何对业务和性能目标进行支持而对其进行分类归纳。服务组件参考模型的定义与机构的业务功能相互独立,致力于在全联邦政府范围内对应用和服务组件进行重用。需要注意的是,服务组件参考模型的英文缩写比较杂乱,有的文档用SRM来代表,而其他一些文章则使用CRM,为了避免混淆本文下面部分采用SRM来代表,而这也正是OMB的参考模型定义文档中所采用的。服务组件参考模型的具体内容通过如下图所示的树形层次结构来进行组织:SRM内容组织结构服务领域(Service Domain):服务领域为用 阅读全文
posted @ 2013-05-21 16:54 HackerVirus 阅读(406) 评论(0) 推荐(0)