10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

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:001246
用户头像

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

关注

评论

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

缓存函数的简单使用

编程三昧

JavaScript 8月日更

【Vue2.x 源码学习】第四十二篇 - 组件部分 - 组件挂载流程简述

Brave

源码 vue2 8月日更

iOS开发:开发过程中单例模式的使用

三掌柜

8月日更 8月

vue入门:router路由简介与使用

小鲍侃java

8月日更

elasticsearch7.13.4 ik中文分词器安装

Rubble

8月日更

仿TP钱包开发,去中心化钱包源码开发

硬盘空间免费扩容了2TB!!!

Jackpop

帮小姐姐打分系统的模型创建,滚雪球学 Python 第三轮第 11 篇

梦想橡皮擦

8月日更

【Flutter 专题】61 图解基本 Button 按钮小结 (一)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 8月日更

Go字符串拼接最佳实践

Rayjun

Go 语言

博客升级之在线代码编辑器

devpoint

vscode 编辑器 8月日更

先「干」,就对了

非著名程序员

个人成长 职场 认知提升 8月日更

架构训练营第 1 期 模块五作业

高远

低品质的勤奋者

箭上有毒

8月日更

手撸二叉树之根据二叉树创建字符串

HelloWorld杰少

数据结构与算法 8月日更

腾讯良心了?!!!

Jackpop

白手起家之注册中心zookeeper

卢卡多多

ZooKeeper原理 8月日更

☕【Java技术指南】「并发原理专题」AQS的技术体系之CLH、MCS锁的原理及实现

码界西柚

AQS 8月日更 MCS锁 CLH锁

Linux 虚拟文件系统(VFS)分析

赖猫

Linux 文件系统

为什么要选择filecoin矿机挖矿?为什么不直接购买filecoin?

分布式存储 IPFS Filecoin fil挖矿 fil矿机

管道(Channel)的读取与写入「让我们一起Golang」

Regan Yue

协程 Go 语言 8月日更 管道

MySQL 系列教程之(十)索引原理:B+ 树与索引

若尘

MySQL 数据库 8月日更

从0开始的TypeScriptの十二:装饰器

空城机

JavaScript typescript 大前端 8月日更

ndk-build 脚本

Changing Lin

8月日更

在线HTML5,CSS3,VueJS,jQuery运行测试练习工具

入门小站

工具

程序员必备!5款小众高效的开发神器

Jackpop

你可能不知道的css动画性能

云小梦

CSS layout requestAnimationFrame 重排和重绘 will-change

Go,一文搞懂 string 实现原理

微客鸟窝

Go 语言 8月日更

人工智能下的音频还能这样玩!!!!

Python研究者

8月日更

服务发现机制SPI居然是破坏者!

4ye

Java 源码 后端 sping 8月日更

万企明道成立八周年,邀你书写留言!

明道云

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