把握行业变革关键节点,12 月 19 日 - 20 日,AICon北京站即将重磅启幕! 了解详情
写点什么

Jasper: 没有代码生成器或配置文件的 ORM

  • 2007-05-08
  • 本文字数:933 字

    阅读完需:约 3 分钟

Jasper 是微软为快速应用程序开发专门设计的新 ORM 项目。不像微软早期的其他类似项目,这个 ORM 不需要代码生成器。它的目标是:“让快速开发和访问数据真正变得既快又简单”。

常规的 ORM(Object-Relational Mapping)一般都具有如下三个特性的一种。第一,纯手工代码,每一个数据类都手动创建,不需要 IDE 的帮助。第二,微软惯用的代码生成器。从早期 的.NET 技术如 Typed DataSet(类型化数据集)到 LINQ,代码生成器都通过映射数据库结构来生成领域对象。

在 Java 和开源世界里,配置文件是最常用的。这些配置文件,通常使用 XML 来定义这些领域对象在运行时应该像什么样子。当有工具来辅助生成这些 XML 配置文件的时候,最终的效果和上面提到的代码生成器也就很类似了。

微软开发代号为“Jasper”的项目是为了满足快速而重复的数据库应用程序开发的需要而提供的一系列组件。在 Jasper 的帮 助下,你只需要连接到数据库,就可以马上开始直观的使用领域特定(domain-specific)的数据对象来编写访问数据的程序了。无需配置文件,无 需代码生成器。Jasper 能够在现有的应用程序框架(包括 ASP.NET,WinForms 和 WPF)和现有的数据库下很好的工作。

从实际情况看来,这意味着数据对象是在运行时基于数据库结构而生成的。理想的话,这将让你从 LINQ 中获得一个丰富的体验,而无需担心生成的代码是否和数据库结构同步。

对于这个最初的CTP 版本,能使用的语言只有 Visual Basic 9 IronPython 1.1 。C#由于不具备后期绑定的特性来和运行时生成的对象进行交互,所以不能在 Jasper 中使用。

由 DLR 提供的动态特性充分为 Jasper 进行了考虑。理论上,Jasper 将可以通过添加额外方法和属性的形式,让商业规则附加到运行时动态生成的数据对象上。

查看英文原文: Jasper: ORM without Code Generators or Configuration Files


译者简介:朱永光,IT 自由人和环境保护者,微软最有价值专家(MVP)和 MCSD。他有 14 年的编程实践经历,5 年软件构架和开发管理经验,擅长微软相关技术和产品,目前主要关注软件构架和开发框架,是成都.NET 俱乐部副主席和核心讲师,个人博客为 http://redmoon.cnblogs.com 。现在他作为共同创始人经营着一家环境保护技术公司。为InfoQ 中文站贡献内容,请邮件至 china-editorial@infoq.com

2007-05-08 00:001365
用户头像

发布了 254 篇内容, 共 70.8 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

【愚公系列】2022年7月 Go教学课程 009-数据类型之浮点型

愚公搬代码

7月月更

图解网络:访问控制列表ACL,功能堪比防火墙!

wljslmz

防火墙 acl 网络技术 7月月更 访问控制列表

你想知道的数组易错知识都在这了-C

芒果酱

7月月更

5G NR RRC连接控制

柒号华仔

5G 7月月更

Go 语言入门很简单:上下文

宇宙之一粟

Go 语言 7月月更

在线文本批量查找多个字符串出现的次数工具

入门小站

工具

适合初学者的 10 个JavaScript 代码整洁技巧

devpoint

JavaScript ES6 7月月更 数据操作

Qt | 串口通信 QSerialPort

YOLO.

通信 qt 串口 串口通信 7月月更

项目git commit时卡主不良代码:husky让Git检查代码规范化工作

zhoulujun

git husky lint-stated

在线SQL转TSV工具

入门小站

工具

QT和MFC的优缺点比较

乌龟哥哥

7月月更

Qt|字符排序以及转化问题

中国好公民st

qt 7月月更

SLSA 框架与软件供应链安全防护

SEAL安全

SLSA 软件供应链安全

使用AssemblyScript 构建 WebAssembly 应用

devpoint

webassembly Wasm 7月月更 assemblyscript

《深入 Linux 设备驱动程序那和机制》读书笔记

贾献华

7月月更

在线直播系统源码——开源源码

开源直播系统源码

软件开发 直播源码 开源源码 在线直播系统源码

Linux 0.12 源码阅读

贾献华

7月月更

Wireshark抓包分析Eureka注册发现协议

程序员欣宸

Java SpringCloud Eureka 7月月更

继承(二)

Jason199

js 继承 7月月更

GaussDB云数据库初步使用记录

DS小龙哥

7月月更

老司机狂飙之路--EventBus原理简要分析

芝麻粒儿

android EventBus 7月月更

Pro 单店版和多店版,你还傻傻分不清楚?

CRMEB

多传感器时间同步

秃头小苏

时间同步 7月月更

深入JS函数中默认参数的使用

猪痞恶霸

前端 js 7月月更

iOS 中的 Category

NewBoy

ios 前端 移动端 iOS 知识体系 7月月更

不习惯的Vue3起步四 の 生命周期&provide/inject

空城机

Vue3 7月月更

【LeetCode】奇数值单元格的数目Java题解

Albert

LeetCode 7月月更

RocketMQ之消费者启动与消费流程

vivo互联网技术

RocketMQ 中间件 ACK

Java面向对象基础

五分钟学大数据

Java 7月月更

纯CSS实现四种方式文本反差色效果

南城FE

CSS 前端 css动画 7月月更 反差色

Jasper:没有代码生成器或配置文件的ORM_.NET_Jonathan Allen_InfoQ精选文章