随笔分类 -  NBear

摘要:这是一个ASP.NET 3.5的Web Application程序,实现了类似NUnit的简单但实用的UnitTest功能。写这个小工具的目的是在NBear5的开发中需要方便的在完全真实的模拟环境中测试所有组件功能的在ASP.NET下,尤其是Partial Trust模式下的运行效果,现有的UnitTest工具中似乎对这方面的支持都比较有限,所以,自己花两天时间写了一个。相比NUnit,本工具提供的 UnitTest功能比较基础,但是,对一般的UnitTest来说应该完全够用了。如果您正在开发和测试一些ASP.NET下的Web组件,推荐一试。程序本身就是一个Web Application,所以,自然是包含了全部源代码的。源码对除.Net Framework 3.5之外的DLL没有任何依赖,也可以做成VS的Project Template方便重复使用。 阅读全文
posted @ 2008-11-10 15:57 Teddy's Knowledge Base 阅读(4333) 评论(15) 推荐(0) 编辑
摘要:该示例使用NBearLite v1.0.1.2,基于.Net PetShop 4.0的源码修改。使用NBearLite重写了等价功能的BLL、Profile、Membership模块的数据访问部分,去除了DALFacrory、IDAL等工程(因为基于NBearLite可以透明的在多种数据库源间进行无缝切换,无需修改代码),去除了Order的基于MSMQ的异步处理部分。本示例演示了使用NBearLite作为数据访问组件进行开发的常用方法。Web工程的Web.config中默认关闭了CaceDependency,并设置了Sqlite为默认数据库。 阅读全文
posted @ 2008-01-09 14:44 Teddy's Knowledge Base 阅读(11199) 评论(34) 推荐(0) 编辑
摘要:本文介绍一组NBearV4中的基于Emit动态生成代码的辅助类,部分概念在本人的blog之前的文章中或多或少都有介绍,这里包含最新的更新及演示、测试。主要是两个类:CodeGenerator和DynamicMethodFactory。前者提供了一种经过封装的,简化Emit方法(包括Emit DynamicMethod,Constructor,Method,get、set Method of Property)的方案;后者基于前者,实现了一种访问指定类(可以是第三方程序集的internal类)的方法或成员变量,实例化第三方程序集中的internal类型,高性能的以非泛型语法访问泛型方法的机制(通过DynamicMethod和Delegate实现)。 阅读全文
posted @ 2007-10-10 11:56 Teddy's Knowledge Base 阅读(6528) 评论(14) 推荐(0) 编辑
摘要:Kevin McFarlane的C#版DesignByContract Framework实现从02年在CodeProject发布至今,几乎成为C#开发中大多数朋友使用的事实标准。本文结合对该框架的使用经验,在Kevin的原始版本的基础上,使用Strategy Pattern对其进行进一步的扩展,对最常用的检查语义进行封装简化。本文改进的源码以Public Domain协议发布,也就是说,完全没有任何限制。 阅读全文
posted @ 2007-10-05 15:01 Teddy's Knowledge Base 阅读(6033) 评论(7) 推荐(0) 编辑
摘要: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类(如:实体类或业务类 阅读全文
posted @ 2007-07-29 15:12 Teddy's Knowledge Base 阅读(14298) 评论(22) 推荐(1) 编辑
摘要:本测试对ADO.NET, NBearV3, NHibernateV1, NBearLite, NBearLite+NBearMapping进行了常见的读写测试。本测试同时证实,NBearLite及NBearLite+NBearMapping的ORM方案,平均性能有很大改善。 阅读全文
posted @ 2007-07-26 08:15 Teddy's Knowledge Base 阅读(7875) 评论(24) 推荐(1) 编辑
摘要:NBearMapping是NBearV4框架的组件之一,可以独立使用。可用于任意类型对象、DataRow和DataReader对象间的透明映射。建议结合NBearLite使用。 主要功能: 1、任意类型对象、DataRow和DataReader对象间的透明映射; 2、支持.NET的Nullable类型; 3、较高的性能,性能比基于Reflection的等价转换快约50%,手动代码 vs NBearMapping vs Reflection对象转换的执行时间比大约为1:2.5:3.6,可参见源码中MappingTest.TestPerformance() 测试; 阅读全文
posted @ 2007-07-25 15:23 Teddy's Knowledge Base 阅读(6596) 评论(14) 推荐(0) 编辑
摘要:NBearLite 更新至v1.0.0.6 beta 全面支持SqlServer,Oracle,MySql,PostgreSql数据库存储过程调用代码生成(C#/VB.NET),支持输入、输出、返回等各种参数类型。 支持Sub Query。 支持Save DataTable/DataRow。 阅读全文
posted @ 2007-07-23 15:08 Teddy's Knowledge Base 阅读(5954) 评论(15) 推荐(0) 编辑
摘要:未来的NBearV4将由ORM、SOA、WEB等几个可无缝拼接,也可独立使用或搭配第三方组件模块使用的模块组成的全新构架的开发框架。。。。 阅读全文
posted @ 2007-07-22 15:01 Teddy's Knowledge Base 阅读(4909) 评论(17) 推荐(0) 编辑
摘要:NBearLite是一个基于NBear的强类型查询内核的.NET 2.0开源通用数据访问组件。由NBear.org及Teddy维护。NBearLite继承了和进一步简化扩展了NBear中类似LINQ的强类型数据库查询语法(支持CRUD简单查询及GroupBy、InnerJoin,Paging等常用复杂查询),简化了命名空间、代码架构,并进一步简化了用户使用,对已有代码也没有任何侵入。NBearLite不是一个ORM工具,它不涉及实体类,NBearLite的所有查询返回Scalar/DataSet/IDataReader。 阅读全文
posted @ 2007-07-20 13:15 Teddy's Knowledge Base 阅读(13329) 评论(45) 推荐(0) 编辑
摘要:本文向读者介绍NBear中实现的DropDownListField字段绑定控件和EnumDescriptionAttribute特性。结合使用这两个组件,就可以最简单、易用和可扩展地完美解决绑定Enum到ASP.NET数据绑定控件的问题。[05/26修订]——增加支持第三方枚举描述,支持二进制与过的枚举值。 阅读全文
posted @ 2007-05-26 07:44 Teddy's Knowledge Base 阅读(8857) 评论(20) 推荐(0) 编辑
摘要:NBear是一个.Net 2.0下的快速开发框架。它提供了包括可视化实体设计、代码生成、持久化、SOA、MVP等一系列组件。 NBear的设计目标是尽最大可能减少程序员的重复劳动、提高开发效率、提升代码的可维护性和整体质量。 官方网站:http://nbear.org 中文教程目录索引:http://www.cnblogs.com/teddyma/archive/2006/11/07/553562.html 示例程序:从官方网站下载NBearVXXX_tutorials.zip,解压后见tutorials目录。 阅读全文
posted @ 2007-05-18 15:30 Teddy's Knowledge Base 阅读(15354) 评论(41) 推荐(1) 编辑
摘要:本教程演示了NBear中典型的的各种查询功能。包括:join,group by,paging等的支持。 下载地址:http://nbear.org/Modules/Articles/Detail.aspx?i=59 阅读全文
posted @ 2007-04-24 17:11 Teddy's Knowledge Base 阅读(9801) 评论(43) 推荐(0) 编辑
摘要:在前面的文章改进的“以非泛型方式调用泛型方法”之基于DynamicMethod的实现中,提到了一种通过DynamicMethod以非泛型方法代理访问泛型方法的较佳方法(无额外代码定义需要,执行时间大约相当于直接调用泛型方法的3-4倍)。本文介绍的组件在前文思路的基础上,进行进一步的扩展,封装成一个较通用的DynamicMethodProxyFactory组件。除了可以较高性能访问任意的静态或非静态、泛型或非泛行方法之外,利用DynamicMethod可将代码插入内存中已载入的Module的能力,提供了在程序集外实例化指定Module中的internal类型,在程序集外调用internal类型的方法和public类型的internal方法的支持。 该组件实现如下功能: 1、以通用的非泛行方法Delegate访问任意方法(泛型或非泛型,静态或非静态); 2、支持在程序集外调用指定Module中的internal类型的任意属性(属性本质上可以通过它的get/set方法以方法的形式访问)和方法和public类型的internal方法; 3、支持创建并返 阅读全文
posted @ 2007-03-28 11:10 Teddy's Knowledge Base 阅读(8678) 评论(22) 推荐(0) 编辑
摘要:本文针对双鱼座同志的以非泛型方式调用泛型方法一文,提出一种更通用的以非泛型方式调用泛型方法的实现——基于DynamicMethod的实现。 基于DynamicMethod的实现的优点是,执行性能和双鱼座的文中实现的第5种方案——动态生成的非泛型接口包装相当(因为都是基于Emit的),但是,避免了原文实现中必须额外定义接口、Delegate的需要,从而,非常通用,应该是解决相同问题的前提下目前所能想到最佳实现。 阅读全文
posted @ 2007-03-22 17:06 Teddy's Knowledge Base 阅读(10289) 评论(8) 推荐(0) 编辑
摘要:一个NBearDataSource控件,可以直接和其他DataSource一样进行绑定。 本示例演示了使用NBearDataSource控件进行CRUD、使用NBearDataSource控件和NBear的强类型查询语法进行可视化查询、使用PagableRepeater控件进行数据绑定和一个典型的基于NBearDataSource的Master/Detail实体CRUD示例。大家可以看到,使用NBearDataSource的情况下,数据绑定的操作过程大大简化了。 02-08 22:30 修订:新增基于NBearDataSource控件的强类型查询示例 02-09 10:00 修订:增加GridView和Repeater控件如何设置并使用NBearDataSource控件提供的数据库级别分页支持绑定某页数据的说明。 02-10 15:00 修订:新增PagableRepeater控件及示例 02-11 20:30 修订:新增基于NBearDataSource的Master/Detail实体CRUD示例 阅读全文
posted @ 2007-02-10 15:18 Teddy's Knowledge Base 阅读(11436) 评论(44) 推荐(0) 编辑
摘要:下载测试示例程序说明:本测试使用SqlServer2000的Northwind数据库的Categories、Customers和Products三个表,测试比较ADO.NET、NBear和NHibernate的读写性能。公平起见,测试代码并没有使用太多特别框架的独有功能或缓存,在实际测试前分别都进行了预读(保证元数据等都在第一次运行时已载入)。读测试每次循环分别读取Categories、Custo... 阅读全文
posted @ 2006-12-29 18:14 Teddy's Knowledge Base 阅读(7892) 评论(30) 推荐(0) 编辑
摘要:Suggested NBear Framework Based FDD Development Steps1. Collect Requirements. 2. Define Features according to Collected Requirements. 3. Define Entity Designs according to Defined Features. 4. Generat... 阅读全文
posted @ 2006-12-28 21:38 Teddy's Knowledge Base 阅读(3787) 评论(0) 推荐(0) 编辑
摘要:本教程在《NBearV3 Step by Step教程——IoC篇》的基础上,演示如何基于NBearV3的MVP模块实现基于NBear的IoC的MVP模式的过程。您将看到,利用封装了NBear的IoC模块的NBear.MVP模块,不仅能大大加强系统表现层的可测试性,同时能充分利用NBear已有的IoC模块获得依赖注入能力及基于IoC的分布式服务支持。通过本教程,读者应能够全面掌握使用NBearV3的MVP模块实现表现层MVP模式。 阅读全文
posted @ 2006-12-20 20:07 Teddy's Knowledge Base 阅读(7427) 评论(19) 推荐(0) 编辑
摘要:从SF.NET下载最新版本NBearV3.3.7 stableVsPlugin使用教程参见:NBearV3——VsPlugin使用教程 阅读全文
posted @ 2006-12-02 21:26 Teddy's Knowledge Base 阅读(18993) 评论(16) 推荐(0) 编辑