Web Dev.

摘要: 最佳实践一:应用MVC模式;最佳实践二:应用依赖注入和IoC容器;最佳实践三:应用模板引擎呈现主体内容;最佳实践四:应用Script#;...阅读全文
posted @ 2010-07-11 22:23 Teddy's Knowledge Base 阅读(2566) | 评论 (24) 编辑
摘要: “Google Tracer” is a HTML & JavaScript application, tracing the blog you are reading with Google Web Search. You should be able to see it running in the left navigation panel in my blog. It is visible only when you are reading any of my blog posts. Technically, it is just googling the title of a post as the search keyword through the Google AJAX Search API.阅读全文
posted @ 2010-07-01 23:54 Teddy's Knowledge Base 阅读(1685) | 评论 (7) 编辑
摘要: “j” means it is about JavaScript; “q” means it is about jQuery & jQuery plugins; “MVC” means it is about MVC pattern; “#” means it is about C#; “j”+”#”means it is about Script#;阅读全文
posted @ 2010-06-20 01:08 Teddy's Knowledge Base 阅读(1505) | 评论 (1) 编辑
摘要: This article introduce how to make AJAX enabled WCF service support cross-domain request.阅读全文
posted @ 2010-03-06 23:29 Teddy's Knowledge Base 阅读(1680) | 评论 (3) 编辑
摘要: 这是一个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 阅读(3077) | 评论 (15) 编辑
摘要: 该示例使用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 阅读(9201) | 评论 (34) 编辑
摘要: 本程序是Teddy为更方便的收集整理各种育儿知识,准备架一个育儿论坛+Wiki网站5JBB.COM,而对YetAnotherForum.Net最新的version 1.9.1 RC1 (NET v2.0) - 2007-5-16版本和ScrewTurn Wiki最新的version 2.0.11 - 2007-7-3版本做的汉化,整合,Bug修复和功能增强。这里将完整的程序源码共享给大家,这是真正免费(GPL协议),功能强大、稳定的ASP.NET 2.0中文论坛+Wiki程序哟! 谨以此程序献给我的宝贝女儿笑笑和所有初为新爹新妈的程序员朋友~~阅读全文
posted @ 2007-07-12 15:14 Teddy's Knowledge Base 阅读(9040) | 评论 (117) 编辑
摘要: 本文向读者介绍NBear中实现的DropDownListField字段绑定控件和EnumDescriptionAttribute特性。结合使用这两个组件,就可以最简单、易用和可扩展地完美解决绑定Enum到ASP.NET数据绑定控件的问题。[05/26修订]——增加支持第三方枚举描述,支持二进制与过的枚举值。阅读全文
posted @ 2007-05-26 07:44 Teddy's Knowledge Base 阅读(6885) | 评论 (19) 编辑
摘要: 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 阅读(11455) | 评论 (41) 编辑
摘要: 本教程演示了NBear中典型的的各种查询功能。包括:join,group by,paging等的支持。
下载地址:http://nbear.org/Modules/Articles/Detail.aspx?i=59阅读全文
posted @ 2007-04-24 17:11 Teddy's Knowledge Base 阅读(8761) | 评论 (43) 编辑
摘要: 一个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 阅读(10584) | 评论 (44) 编辑
摘要: 本教程在《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 阅读(6568) | 评论 (22) 编辑
摘要: 发布基于NBear的简易AJAX留言板案例源码。

在线演示:
http://www.onlinegf.com/users/teddyma/

功能:
1、支持公开/私人留言及管理员回复;
2、基于XHTML/CSS的页面布局;
3、基于NBear.Web的强类型UI控件数据绑定;
4、基于NBear.Web使用ASP.NET验证控件的客户端脚本验证
5、基于NBear.Web内置的AjaxHelper实现支持浏览器刷新的AJAX页面呈现;
6、基于NBear.Tools.EntityGen.exe的实体代码生成;
7、基于NBear.Tools.Configurator.exe的数据库脚本生成和强类型查询代码生成;
8、基于NBear.Data.Gateway的强类型CRUD和分页查询;
9、基于NBear.IoC及SOA的三层构架(支持零代码修改的分布式部署);
10、支持SQL Server Express 2005或MsAccess数据库(可在Web.conf阅读全文
posted @ 2006-10-08 21:51 Teddy's Knowledge Base 阅读(14096) | 评论 (38) 编辑
摘要: 本文将通过实例比较ASP.NET下的三种典型URL重写方案——ISAPI重写(使用开源组件IIRF),ASP.NET2.0内置的urlMappings和基于自定义HTTPModule的URL重写(使用NBear.Web中的UrlRewriteModule实现),并探讨URL重写中可能遇到的陷阱及处理办法。阅读全文
posted @ 2006-09-11 13:31 Teddy's Knowledge Base 阅读(16522) | 评论 (31) 编辑
摘要: 本文介绍NBear的接口式实体定义方式下的自定义实体属性和实体多根继承。阅读全文
posted @ 2006-08-09 16:38 Teddy's Knowledge Base 阅读(3433) | 评论 (24) 编辑
摘要: 将NBear升级到V2.1.0,主要更新如下:
1)新增Oracle和MySql Db Provider,使得NBear目前已经支持Oracle和My Sql数据库;
2)修复Lukiya之前遇到的以不同的参数列表调用相同的存储过程时(虽然这样的情形不太常见)的command缓存问题;
3)修复command参数名称包含数字或下划线时的参数值自动填充问题;

旧版本用户手册链接已更新至对应于V2.1.0的新版本V1.1。阅读全文
posted @ 2006-08-07 16:54 Teddy's Knowledge Base 阅读(2121) | 评论 (3) 编辑
摘要: NBear中文用户手册

本手册按实体类定义、数据持久化支持、Web&AJAX支持、SOA和分布式支持、Step by Step教程、附录这六个方面,分别介绍NBear提供的核心类库的使用方法和相关资源。

第1-5章分别以代码实例,介绍每一部分主要的类库的使用方法;第6章给出一个Step by Step教程,手把手引导您熟悉核心类库的使用;第7章给出和NBear相关的其它网上文章资源。

目录清单

1. 实体类定义
2. 数据持久化
3. Web&AJAX
4. SOA和分布式开发
5. 加密解密组件
6. Step by Step教程
7. 附录:相关资源 阅读全文
posted @ 2006-08-04 16:27 Teddy's Knowledge Base 阅读(11319) | 评论 (106) 编辑
摘要: 本文给出一个通过组合使用JST,JSON和AJAX技术,使用客户端js模版代替服务端数据绑定的范例。很显然的,使用客户端数据绑定代替服务端数据绑定能够大大减少服务端的内存和CPU消耗,在硬件不变的情况下,大大提升服务器负载能力。阅读全文
posted @ 2006-07-28 17:11 Teddy's Knowledge Base 阅读(5390) | 评论 (8) 编辑
摘要: Abstract:

This article discusses three common web application architectures: Simple 2 Layer, Standard 3 Layer and Distributed 3 Layer. For each architecture, it gives an ASP.NET 2.0 sample implementaion with NBear framework.

Table of Contents:

1. Simple 2 Layer
2. Standard 3 Layer
3. Distributed 3 Layer
4. More about NBear
5. Get Source Code of NBear and All Samples
6. Summary阅读全文
posted @ 2006-07-19 14:54 Teddy's Knowledge Base 阅读(5167) | 评论 (43) 编辑
摘要: 今天将NBear升级到v1.5.5,主要的升级一是新增了三个类EntitySerializer, OneToManyEntitySerializer, OneToOneEntitySerializer用于简化用户对序列化子件的使用,您不必再对着SerializerHelper提供给您的大堆序列化方法无所适从了。另一个重要的更新是集成了AjaxHelper - Teddy以前的Ajax实现到NBear。AjaxHelper原来的实现基于Prototype1.3.1,从Atlas beta出来起,Teddy已经很久没有更新了,因为我一直在思考AjaxHelper存在的必要性,如果存在,该突出什么。这次不是简单的Copy到NBear的目录,而是完整的集成,Ajax的实现核心也改用ASP.NET2.0内置的Callback代替prototype,主要的使用方式不变,请运行并参见下载后的源码的NBear.WebTest project的TestAjaxHelper.aspx,该页面包含了使用范例和简单说明。因为大致的使用方式没变,关于AjaxHelper的更多以前的AjaxHelper相关文章。阅读全文
posted @ 2006-04-27 22:30 Teddy's Knowledge Base 阅读(3639) | 评论 (10) 编辑
摘要: NBear原名Ilungasoft Framework,是主要有Teddy开发的一个基于.Net 2.0 (C# 2.0, ASP.NET 2.0)的快速开发框架,她将使您基于.Net 2.0的web/winform开发变得异常高效、性能卓越。

名称NBear的由来:

N代表.Net,也代表No;Bear既可以翻译成熊,也有忍受之意。

Bear虽然是那种看起来憨憨的可爱动物,但是攻击时身手“敏捷”,因此.Net Bear代表了NBear是一个基于.Net2.0、为敏捷开发而生的快速开发框架。

我们大多数项目的开发需要Bear(忍受)太多的不必要的重复和繁琐的配置。如数据持久化、对象池、Web开发中的URL重定向、输入验证、客户端脚本等等,为了简化许多常用组件充用,NBear为您提供了许多灵活的工具和组件;为了简化繁琐的配置(尤其是如NHibernate这类ORM组件的繁琐的配置文件格式、高高的学习曲线和噩梦般的需求变更时的维护更新),NBear向您提供零配置需要的数据访问(持久化)接口和可充用组件。阅读全文
posted @ 2006-04-25 17:35 Teddy's Knowledge Base 阅读(3083) | 评论 (27) 编辑
摘要: 本文以一组Entity vs Dataset的性能测试数据为基础,比较以Entity作为DTO和Dataset作为DTO的性能差异。测试可能不一定严密,但是一定程度上能够比较出优劣。希望能为您选择 .Net下不同的数据承载方式、序列化方式、DTO的选择,多一点参考。在本测试中,每个执行过程,对于Entity,我们将先用DataReader读出数据,使用索引将数据填充到Entity,序列化,再反序列化;对于Dataset,将先读取所有数据到Dataset,序列化,再反序列化,最后通过索引填充Dataset中的数据到Entity。也就是说,无论对Entity还是Dataset,我们都尽可能的取其最佳性能的执行方式,从而将性能瓶颈留在了序列化和反序列化方式上。您可以注意到,Dataset的序列化和反序列化性能是非常突出的,但是,我们基于Entity的自定义序列化方式的综合性能,超越了Dataset。

04/18补充:新增.NET JSON序列化对照。关于JSON的更多介绍请参见:http://www.json.org/。不过值得一提的是,官方提供的.Net实现写得那个烂得简阅读全文
posted @ 2006-04-18 16:23 Teddy's Knowledge Base 阅读(8191) | 评论 (15) 编辑
摘要: 本示例演示基于Ilungasoft Framework实现继承关系和Tree结构的实体。前面的文章已经介绍过,基于Ilungasoft Framework的开发模型使用可调试的视图(Views)代替传统ORM中不可调试的Configuration(例如:XML等各式的配置文件)。前面的Sample2已经介绍了如何使用视图处理一般的OneToMany、ManyToMany关系,本文演示的Sample4,将演示更为复杂的继承和tree结构,具体演示内容包括:

1、继承映射(采用一实体一表,不冗余父表字段方式映射);
2、两种Tree结构映射方式(方式一:单表行冗余,采用用户事务维护tree关系;方式二:单表无冗余,Inner Join + Union);
3、演示Ilungasoft Framework中的一个新的用于简化处理关联实体的类OneToMany的使用。 阅读全文
posted @ 2006-04-10 11:16 Teddy's Knowledge Base 阅读(2676) | 评论 (0) 编辑
摘要: Ilungaosft Framework是Teddy近期发布的开源Web快速开发框架,包括持久层及一系列方便Web开发的组件。本文将在一个新的Sample的基础上,说明基于Ilungasoft Framework开发是如何处理有关联关系的实体。我要再次说明的是,Ilungasoft Framework的设计出发点不是要完全透明的进行ORM,因此,不会自动映射实体关系,以此换来的好处是其完全不需要配置,拥有极大的灵活性和易用性。但是这并不表示,基于Ilungasoft Framework处理实体关系就不方便。本示例就演示了一个非常常见的用户和组、消息的关联关系,涵盖了一对多、多对多的关联情形。
阅读全文
posted @ 2006-04-04 10:51 Teddy's Knowledge Base 阅读(3282) | 评论 (9) 编辑
摘要: 共享一个基于Callback的无刷新上传进度条控件的源码。本控件使用的HttpMoudule基于宝玉的一个上传进度条的sample,这里封装为一个控件,方便使用。无需任何代码,只需设置web.config,添加HttpModule的引用,再将控件拖到页面就行。页面中的文件保存操作和传统的asp.net文件上传完全一样。可以设置属性上传过程中出错或上传成功时跳转到其它页面。兼容IE,Firefox,Opera。其它环境没测试,不过因为是基于Asp.Net2.0的callback,其他浏览器只要支持xmlhttp或iframe就应该支持。阅读全文
posted @ 2006-04-01 12:43 Teddy's Knowledge Base 阅读(7964) | 评论 (37) 编辑
摘要: 2006/3/20
v1.0.2

1)支持多个数据库源协同工作,只需指定web.config中的ConnectionString Name。

Sample中,新增创建第二个数据源的代码示例...阅读全文
posted @ 2006-03-20 14:28 Teddy's Knowledge Base 阅读(1331) | 评论 (2) 编辑
摘要: Ilungasoft Framework是Teddy正在开发中的Web快速开发框架,该框架基于.Net 2.0,设计的出发点就是易用性,快速开发,兼顾性能。同时,Ilungasoft Framework也充分利用了许多.Net 2.0中的新特性以简化框架的易用性。本文将以一个Sample Web应用的分析为基础,介绍Ilungasoft Framework的使用。在本文中,您将看到,Ilungasoft Framework对Web开发的极大简化。阅读全文
posted @ 2006-03-17 15:28 Teddy's Knowledge Base 阅读(4849) | 评论 (8) 编辑
摘要: 这是一个Teddy最近封装的AutoCompleteTextBox。我们知道,ASP.NET本身的TextBox也是支持一定的AutoComplete功能的,但是那是依赖浏览器实现的,并不能指定自定义的AutoComplete候选项。本文列举的AutoCompleteTextBox则弥补了这个缺憾。只需设置AutoCompleteTextBox.AutoCompleteData属性,传递一个string[],就能使TextBox支持自定义候选项了。阅读全文
posted @ 2006-02-27 16:26 Teddy's Knowledge Base 阅读(3651) | 评论 (14) 编辑
摘要: 什么是IHierarchicalDataSource接口呢?该接口是Asp.Net2.0中心定义的一个专用于描述一类有继承体系关系的数据的数据源,它可以作为TreeView,SiteMap等这些能够描述继承体系结构的控件的数据源。因为很多情况下,我们需要在TreeView这样的控件中显示我们的自定义数据,不适用数据邦定的情况下,我们当然也能手工来编码,坦率地说,代码也不太难写,几个递归函数而已,但是如果很多页面都用treeview的话是不是该抽象一下呢?如果使用IHierarchicalDataSource数据源,不写一条代码,就能将数据邦定到控件。本文给出的就是一个IHierarchicalDataSource接口的通用简单实现。阅读全文
posted @ 2006-02-23 15:15 Teddy's Knowledge Base 阅读(4106) | 评论 (9) 编辑
摘要: 我们都知道Asp.Net2.0中aspx文件结构相比以前有了很大的改变。当然,其中大多数是改善,比如,在page的source code界面的内嵌<% ... %>代码支持智能提示了,不过这个智能提示也有小小小的不爽,就是除非是System.Web等几个默认的命名空间中的类,访问其他命名空间的类如果不添加Namespace引用的话就必须用完全路径访问(我的类前面的命名空间前缀会很长啊,很难看的);有一些改善也带来一些限制,比如,除非在页面/用户控件中显式import其他页面/用户控件,否则是不能访问到外部类型的,感觉就好像这个页面/控件自己一个人带一个程序集。为了合理避免一些限制造成的语法的不爽和合理利用新的智能功能,Teddy在本文中向您展示一组MasterPage/Page/UserControl通用基类封装,他们将为您提供许多非常方便的功能和语法体验。当然,唯一的代价是,你的Page/MasterPage/UserControl必须从我的基类继承,当然,从我的基类继承的对象和从默认系统基类继承的对象是可以自由混合使用的,付出这一点点代价,您在下文中将会看到,绝对是值得的。 阅读全文
posted @ 2006-01-24 13:02 Teddy's Knowledge Base 阅读(4639) | 评论 (8) 编辑
摘要: 在前一篇文章《没有ORM或代码生成数据就不能持久化了? - 用范型技术代替代码生成!》中,Teddy尝试运用泛型极大简化了一个轻量级持久化框架对代码生成的依赖,并且为了保证性能,整个持久化组件没有使用反射。在本文中,Teddy将在保证性能的基础上,加一点反射和加一点Emit,从而进一步简化Entity的定义和使用,当然也就进一步降低了组件对传统代码生成的依赖。读者可以对比前文阅读本文,看看改进的效果。内容绝对精彩,不容错过哟!阅读全文
posted @ 2006-01-04 21:14 Teddy's Knowledge Base 阅读(6882) | 评论 (33) 编辑
摘要:

看到不少朋友最近在写使用callback的文章,也有点手痒,也来涂鸦一下,挖掘挖掘callback的潜力。callback的一般使用方法还算简单,直接参照msdn的帮助和范例就足够了。但是想要真正用好、用精,或者想开发一些基于callback机制的WEB组件,那么,就要先深入了解callback的实现机制了。在本文中,Teddy将和您一起解析callback的整个调用、反馈机制,相信对于帮助您更好的使用callback,将能有一定的益处。 阅读全文
posted @ 2005-11-28 16:17 Teddy's Knowledge Base 阅读(13862) | 评论 (36) 编辑