随笔分类 - Web Dev.
摘要:今天将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相关文章。
阅读全文
摘要: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向您提供零配置需要的数据访问(持久化)接口和可充用组件。
阅读全文
摘要:本文以一组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实现写得那个烂得简
阅读全文
摘要:本示例演示基于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的使用。
阅读全文
摘要:Ilungaosft Framework是Teddy近期发布的开源Web快速开发框架,包括持久层及一系列方便Web开发的组件。本文将在一个新的Sample的基础上,说明基于Ilungasoft Framework开发是如何处理有关联关系的实体。我要再次说明的是,Ilungasoft Framework的设计出发点不是要完全透明的进行ORM,因此,不会自动映射实体关系,以此换来的好处是其完全不需要配置,拥有极大的灵活性和易用性。但是这并不表示,基于Ilungasoft Framework处理实体关系就不方便。本示例就演示了一个非常常见的用户和组、消息的关联关系,涵盖了一对多、多对多的关联情形。
阅读全文
摘要:共享一个基于Callback的无刷新上传进度条控件的源码。本控件使用的HttpMoudule基于宝玉的一个上传进度条的sample,这里封装为一个控件,方便使用。无需任何代码,只需设置web.config,添加HttpModule的引用,再将控件拖到页面就行。页面中的文件保存操作和传统的asp.net文件上传完全一样。可以设置属性上传过程中出错或上传成功时跳转到其它页面。兼容IE,Firefox,Opera。其它环境没测试,不过因为是基于Asp.Net2.0的callback,其他浏览器只要支持xmlhttp或iframe就应该支持。
阅读全文
摘要:2006/3/20
v1.0.2
1)支持多个数据库源协同工作,只需指定web.config中的ConnectionString Name。
Sample中,新增创建第二个数据源的代码示例...
阅读全文
摘要:Ilungasoft Framework是Teddy正在开发中的Web快速开发框架,该框架基于.Net 2.0,设计的出发点就是易用性,快速开发,兼顾性能。同时,Ilungasoft Framework也充分利用了许多.Net 2.0中的新特性以简化框架的易用性。本文将以一个Sample Web应用的分析为基础,介绍Ilungasoft Framework的使用。在本文中,您将看到,Ilungasoft Framework对Web开发的极大简化。
阅读全文
摘要:这是一个Teddy最近封装的AutoCompleteTextBox。我们知道,ASP.NET本身的TextBox也是支持一定的AutoComplete功能的,但是那是依赖浏览器实现的,并不能指定自定义的AutoComplete候选项。本文列举的AutoCompleteTextBox则弥补了这个缺憾。只需设置AutoCompleteTextBox.AutoCompleteData属性,传递一个string[],就能使TextBox支持自定义候选项了。
阅读全文
摘要:什么是IHierarchicalDataSource接口呢?该接口是Asp.Net2.0中心定义的一个专用于描述一类有继承体系关系的数据的数据源,它可以作为TreeView,SiteMap等这些能够描述继承体系结构的控件的数据源。因为很多情况下,我们需要在TreeView这样的控件中显示我们的自定义数据,不适用数据邦定的情况下,我们当然也能手工来编码,坦率地说,代码也不太难写,几个递归函数而已,但是如果很多页面都用treeview的话是不是该抽象一下呢?如果使用IHierarchicalDataSource数据源,不写一条代码,就能将数据邦定到控件。本文给出的就是一个IHierarchicalDataSource接口的通用简单实现。
阅读全文
摘要:简介:ReqMgr是一个根据QPG2006的需求看板思想改写的简易需求管理和错误跟踪工具。支持多用户。因为主要开发已用于我自己的项目,功能比较简单,但是基本够用。运行环境:Asp.Net 2.0安装说明:确认正确安装.Net Framework 2.0并将Asp.Net 2.0注册到IIS;解压缩ReqMgr_compiled0207.zip到需要的目录;建立虚拟目录,并设为允许匿名访问,设置As...
阅读全文
摘要:我们都知道Asp.Net2.0中aspx文件结构相比以前有了很大的改变。当然,其中大多数是改善,比如,在page的source code界面的内嵌代码支持智能提示了,不过这个智能提示也有小小小的不爽,就是除非是System.Web等几个默认的命名空间中的类,访问其他命名空间的类如果不添加Namespace引用的话就必须用完全路径访问(我的类前面的命名空间前缀会很长啊,很难看的);有一些改善也带来一些限制,比如,除非在页面/用户控件中显式import其他页面/用户控件,否则是不能访问到外部类型的,感觉就好像这个页面/控件自己一个人带一个程序集。为了合理避免一些限制造成的语法的不爽和合理利用新的智能功能,Teddy在本文中向您展示一组MasterPage/Page/UserControl通用基类封装,他们将为您提供许多非常方便的功能和语法体验。当然,唯一的代价是,你的Page/MasterPage/UserControl必须从我的基类继承,当然,从我的基类继承的对象和从默认系统基类继承的对象是可以自由混合使用的,付出这一点点代价,您在下文中将会看到,绝对是值得的。
br
阅读全文
摘要:在前一篇文章《没有ORM或代码生成数据就不能持久化了? - 用范型技术代替代码生成!》中,Teddy尝试运用泛型极大简化了一个轻量级持久化框架对代码生成的依赖,并且为了保证性能,整个持久化组件没有使用反射。在本文中,Teddy将在保证性能的基础上,加一点反射和加一点Emit,从而进一步简化Entity的定义和使用,当然也就进一步降低了组件对传统代码生成的依赖。读者可以对比前文阅读本文,看看改进的效果。内容绝对精彩,不容错过哟!
阅读全文
摘要:本文向大家share一个基于AjaxHelper和Asp的企业门户构架。文中的示例本来是为朋友做的一个企业门户的基本构架,但是,人家比较传统,对Ajax可能不一定能接受,所以,最后还是改成传统的有刷新的方式了。既然之前的Ajax方案没有被采用,那就share给大家好了。本方案并没有原封不动的使用AjaxHelper,而是在AjaxHelper Flat Version 0.6的基础上作了很小的修改...
阅读全文
摘要:
看到不少朋友最近在写使用callback的文章,也有点手痒,也来涂鸦一下,挖掘挖掘callback的潜力。callback的一般使用方法还算简单,直接参照msdn的帮助和范例就足够了。但是想要真正用好、用精,或者想开发一些基于callback机制的WEB组件,那么,就要先深入了解callback的实现机制了。在本文中,Teddy将和您一起解析callback的整个调用、反馈机制,相信对于帮助您更好的使用callback,将能有一定的益处。
阅读全文