摘要:
我们在开发,有时遇到一些Legcy代码,然后需要对它们进行UnitTest。UnitTest的重要性在这里不再说了。但是发现某些Class中有些方法是Static的,按以往的方法我们需要用Extact Interface 方法 从那个需要测试的Class,然后使用 IOC /DI 的方式替换具体的实现,用一个Fake Class或Mock 一个实现来完成 UnitTest。现在我们可以使用Mol... 阅读全文
摘要:
我们在开发Asp.net中,最后部署在IIS上. 然后发送HTTP请求,返回的HTTP头中包含Server, X-Powered-By, 和 X-AspNet-Version信息. 这些信息有时给攻击者找寻你的站点漏洞提供的依据. 如下图我们通过FireBug查看到: 移除X-AspNet-Version很简单,只需要在Web.config中增加这个配置节: <httpRuntime enabl... 阅读全文
摘要:
LinqPad 可以Load一个包含有EF Model的程序集。这样极大的方便调试LINQ.而不需要VisualStudio, 让我们来演示一下。首选创建一个Connection,看下图: 通过点击Browse加载一个程序集,然后你可以看左右的目录树结构: 输入这样的LINQ Expression: 1: from forumGroupMapping in ForumGroupMappings ... 阅读全文
摘要:
SQL Server在用户自定义函数中UDF使用临时表,这是不允许的. 有时是为了某些特殊的场景, 我们可以这样的实现: CREATE TABLE #temp (id INT)GOINSERT INTO #temp VALUES (1),(2),(3)GOCREATE SYNONYM temp_table_synonym FOR #tempGOCREATE FUNCTION fn_select_t... 阅读全文
摘要:
前段时间园子有个人发一道面试题是这样的,找出.net framework 中的所有Attribute。通常这个问题需要指定范围的,下面让我们来实现一下查找当前AppDomain中程序集的所有Attribute,您可以举一反三,接下看下来的代码: 1: [TestMethod] 2: public void TestGetCurrentAppDomainAttribuesNameTree() 3:... 阅读全文
摘要:
前面的文章,我们使用WCF构建一个简单的REST的WCF Service。之前我们使用Fiddler来测试,现在还可以使用WCF Web API来测试。代码看来起更加简洁首先,你可从CODEPLEX下载,也可以从NuGet安装它,执行: Install-Package netfx-WebApi.Testing WCF HTTP高层架构是这样的: 基于上次的DEMO,我们使用来写一些UnitTes... 阅读全文
摘要:
现在我们可以用 WCF 4 轻易构建一个REST Service,如何测试呢?首先让我们来看类图: 代码是这样的: 1: [ServiceContract] 2: public interface IDataService 3: { 4: [OperationContract] 5: [WebGet(UriTemplate = "/Get?id={id}")] 6: Employee Get(i... 阅读全文
摘要:
在.net framework 4中有一个DynamicObject 类型,我们通过重写 TryInvokeMember 方法实现简单的AOP。首先看类图: 看下面的代码: public class DynamicWrapper : DynamicObject { private readonly object source; public DynamicWrapper(object sourc... 阅读全文
摘要:
Unity 2.0 现在已经是Enterprise Library 中一个模块了。我们可以使用Unity 2.0的Interceptor来拦截方法最终实现AOP。它的实现是这样的,看下面的图比较清楚: 让我们看下面的DEMO代码: 1: public interface IDAL 2: { 3: void MethodForLoggingA(); 4: void MethodForLogging... 阅读全文
摘要:
在VisualStudio 2010 下有一个TaskList窗口,利用好它可以为我们开发提供很多便利。 如上图一样打开。 在选项中我们看到它的Tokens 有HACK,TODO,UNDONE….最常用的是TODO,我们也可以点击创建一个新的TASK: 例如我有这样的代码,注意代码中TODO注释: 1: using System; 2: using System.Collections.Gene... 阅读全文