
微型ORM——用VB和C#编写的动态类型ORM,只有160行
使用VB 10和C# 4中的DLR新特性,你可以创建一个无需配置的ORM,它可以与旧系统遗留下来的的存储过程很好地协作。尽管它是使用一般的对象加点属性的语法来访问的,但所有的数据对象都是在运行时,基于数据库返回的信息来创建的。为了完成这些,我们不需要定义接口,不需要实现类,也不需要编写数据映射定义。

使用VB 10和C# 4中的DLR新特性,你可以创建一个无需配置的ORM,它可以与旧系统遗留下来的的存储过程很好地协作。尽管它是使用一般的对象加点属性的语法来访问的,但所有的数据对象都是在运行时,基于数据库返回的信息来创建的。为了完成这些,我们不需要定义接口,不需要实现类,也不需要编写数据映射定义。
7月11号.NET 4发布了新版本。这个版本包含了众多补丁和特性,包括HTML5和对移植库的支持,有些内容之前也曾单独发布过。为了方便阅读,我们按照技术进行了归类。读者可以从KB2468871获得完整的列表和文件版本信息。
Visual Basic一直徘徊在静态类型与动态类型之间。一开始,VB支持晚绑定(late binding),也就是现在大家所熟知的”鸭子类型(duck typing)“。经过多年的发展,VB开始支持更严格的类型,但最近它又开始全面拥抱动态语言运行时了。
伴随.NET 4.0和Visual Studio 10的发布,Visual Basic 10添加了集合与数组初始值设定项的支持。这些功能与C#的非常类似,它仅是对扩展方法和类型引用作出了少许改进。
在.NET中针对已有的存储过程创建封装函数是相当困难的一件事。存储过程有特定的调用约定,这些约定在.NET Framework中并不常用,当中的很多也根本得不到支持。例如,C#不支持可选参数,.NET语言不支持可为空类型的可选参数。
In .NET 4 types will no longer be restricted to a single assembly. A single type, or part of a type, can be extracted from one assembly and placed into another. Why would you do this? Well first off all, to reduce the cost of including the Office Primary Interopt Assemblies from several megabytes to about 2KB by only including what you actually need.