随笔分类 - Tech. Thinking
摘要:本文的目的,是探讨WCF可序列化的ActiveRecord实现是否有意义。
阅读全文
摘要:本文的目的是以最精炼的语言,理解什么是Design Pattern,为什么需要Design Pattern,和关于Design Pattern的争论。
阅读全文
摘要:本文的目的是以最精炼的语言,正解什么是单元测试,为什么要单元测试,和如何进行单元测试。
阅读全文
摘要:本文的目的是以最精炼的语言,正解什么是TDD,为什么要TDD,和TDD的难点。
阅读全文
摘要:In this article, let’s practice applying LRU caching in an enterprise application for different business cases. Background Firstly, let’s assume we have a User table in database and there ...
阅读全文
摘要:Background Caching is an very important topic in enterprise-level multi-tier application, especially for web application. A general rule for applying caching is you should consider do necessary cachin...
阅读全文
摘要:BackgroundLots of people declares they are using WCF in their “enterprise” distributed software development together with other SOA technologies, and ...
阅读全文
摘要:AdoNet vs LinqToSql vs NIntegrateQuery查询性能测试.
先上测试结果:
AdoNetTest: 267ms
AdoNetCachedCommandTest: 182ms
LinqToSqlTest: 3191ms
LinqToSqlCompiledQueryTest: 386ms
NIntegrateQueryTest: 266ms
阅读全文
摘要:本示例程序具体演示如下内容:
1) 基于SQL Server数据库的集中化WCF服务配置管理;
2) 集中化ConnectingString管理;
3) 集中化AppVariable管理;
4) 基于集中化配置管理的WCF ServiceHostFactory和WCF ServiceLocator;
5) 基于集中化配置管理的跨WCF的LINQ Style分页、排序查询及DataSource控件的使用;
6) 整合本地ServiceLocator的WCF服务发布和消费;
阅读全文
摘要:本文介绍如何实现一个基于WCF的ASP.NET数据源控件,从而使得跨WCF通信的数据库CRUD,尤其是复杂的分页排序更简单。
阅读全文
摘要:本文提供一种支持跨WCF通讯的数据库端分页和排序(以及更多超过你预期的功能)方案。
阅读全文
摘要:本文提供一种在WCF服务消费应用程序中通过与服务提供应用程序共享WCF服务契约接口来自动化定位WCF服务实现的方案。
阅读全文
摘要:本文提供一种简化在多服务器和服务器群上自动化部署WCF服务的方案。
阅读全文
摘要:背景框图上图中,Role和被设置Permission的Resource都是可以有任意层级继承关系的。举例举一个网站的例子来说:如果,User表示网站用户;Role表示角色;Resource表示所有可访问的URL;Permission是对每一个URL的某一个权限(如:查看,修改等)。Role可以有任意层级继承关系,如:用户角色可以分为Normal User和Admin User,Admin User...
阅读全文
摘要:本文介绍一组NBearV4中的基于Emit动态生成代码的辅助类,部分概念在本人的blog之前的文章中或多或少都有介绍,这里包含最新的更新及演示、测试。主要是两个类:CodeGenerator和DynamicMethodFactory。前者提供了一种经过封装的,简化Emit方法(包括Emit DynamicMethod,Constructor,Method,get、set Method of Property)的方案;后者基于前者,实现了一种访问指定类(可以是第三方程序集的internal类)的方法或成员变量,实例化第三方程序集中的internal类型,高性能的以非泛型语法访问泛型方法的机制(通过DynamicMethod和Delegate实现)。
阅读全文
摘要:Kevin McFarlane的C#版DesignByContract Framework实现从02年在CodeProject发布至今,几乎成为C#开发中大多数朋友使用的事实标准。本文结合对该框架的使用经验,在Kevin的原始版本的基础上,使用Strategy Pattern对其进行进一步的扩展,对最常用的检查语义进行封装简化。本文改进的源码以Public Domain协议发布,也就是说,完全没有任何限制。
阅读全文
摘要:NBearLite是一个.NET 2.0开源(BSD协议)通用数据访问组件,支持SQL Server、Oracle、MS Access,MySQL,SQLite,PostgreSQL等多种数据库的透明切换(改变数据库类型时无需修改具体的查询代码)。NBearLite实现了一套类似LINQ的强类型数据库查询语法(支持从简单的CRUD查询到GroupBy、InnerJoin,Paging,SubQuery等常用复杂查询)。NBearLite提供的代码生成工具还可以为您自动生成所有的存储过程调用包装代码,可以让您像使用一个.NET类的方法一样访问存储过程(支持SQL Server,Oracle,MySQL,PostgreSQL数据库)。
NBearLite不是一个ORM工具,它不涉及实体类,NBearLite的所有查询返回Scalar/DataSet/IDataReader等ADO.NET原生数据类型。
推荐在使用NBearLite的同时结合使用NBearMapping进行IDataReader/DataRow数据类型和自定义.NET类(如:实体类或业务类
阅读全文
摘要:本测试对ADO.NET, NBearV3, NHibernateV1, NBearLite, NBearLite+NBearMapping进行了常见的读写测试。本测试同时证实,NBearLite及NBearLite+NBearMapping的ORM方案,平均性能有很大改善。
阅读全文
摘要:本教程演示了NBear中典型的的各种查询功能。包括:join,group by,paging等的支持。
下载地址:http://nbear.org/Modules/Articles/Detail.aspx?i=59
阅读全文
摘要:在前面的文章改进的“以非泛型方式调用泛型方法”之基于DynamicMethod的实现中,提到了一种通过DynamicMethod以非泛型方法代理访问泛型方法的较佳方法(无额外代码定义需要,执行时间大约相当于直接调用泛型方法的3-4倍)。本文介绍的组件在前文思路的基础上,进行进一步的扩展,封装成一个较通用的DynamicMethodProxyFactory组件。除了可以较高性能访问任意的静态或非静态、泛型或非泛行方法之外,利用DynamicMethod可将代码插入内存中已载入的Module的能力,提供了在程序集外实例化指定Module中的internal类型,在程序集外调用internal类型的方法和public类型的internal方法的支持。
该组件实现如下功能:
1、以通用的非泛行方法Delegate访问任意方法(泛型或非泛型,静态或非静态);
2、支持在程序集外调用指定Module中的internal类型的任意属性(属性本质上可以通过它的get/set方法以方法的形式访问)和方法和public类型的internal方法;
3、支持创建并返
阅读全文