AICon 深圳站聚焦 Agent 技术、应用与生态,大咖分享实战干货 了解详情
写点什么

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

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

关注

评论

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

垃圾代码和优质代码的区别?

xcbeyond

Java 优化代码 3月日更

CloudQuery v1.3.4 版本更新

BinTools图尔兹

oracle 运维 编辑器 sql 数据库管理工具

智慧组工党建系统-数字赋能组织工作

13530558032

uni-app 和 flutter 的区别

anyRTC开发者

flutter uni-app WebRTC 跨平台

如何使用jsDelivr+Github 实现免费CDN加速?

xiezhr

CDN jsDelivr CDN CDN加速 jsDeliver

美团优选大数据开发岗面试真题-附答案详细解析

五分钟学大数据

大数据 面试 28天写作 3月日更

android开发板!Android开发你需要了解的那些事,大牛最佳总结

欢喜学安卓

android 程序员 面试 移动开发

熬夜重构了IDEA插件Toolkit(整合程序员常用的工具箱),更加便捷

Silently9527

Java 程序员 idea插件

一杯茶的功夫,上手Redis持久化机制

老崔说架构

redis 缓存 aof

android开发教程!写给安卓软件工程师的3条建议,一线互联网公司面经总结

欢喜学安卓

android 程序员 面试 移动开发

波场环球系统开发|波场环球软件APP开发

系统开发

DDR4看这一篇就够了

Kevin Z

【LeetCode】基本计算器Java题解

Albert

算法 LeetCode 28天写作 3月日更

大作业(一)

cc

《精通比特币》学习笔记(第六章)

棉花糖

区块链 学习 3月日更

成为你向往的那只独角兽 - 《独角兽项目》出版在即

京东科技开发者

DevOps

手写的第一个 Java 应用程序,执行的时候发生了什么?

白色蜗牛

Java

区块链赋能农产品溯源,农产品质量安全追溯

13530558032

超震撼数据可视化工具

不脱发的程序猿

大数据 数据分析 数据可视化 28天写作 3月日更

一文读懂Apache Flume概念、使用和原理

大数据技术指南

大数据 28天写作 3月日更

翻云覆雨——前景理论之隔离效应

Justin

心理学 28天写作 游戏设计

二十张图让你一分钟全面学习数仓建设之路

初学大数据

大数据 数据仓库

Markdown中的图标为什么不是图片却可以以图片方式显示

happlyfox

28天写作 3月日更

密码学系列之:内容嗅探

程序那些事

加密解密 密码学 程序那些事 内容嗅探

一个PHPer的Golang之路

万俊峰Kevin

php 微服务 Go 语言

寻找被遗忘的勇气(十)

Changing Lin

3月日更

带你轻松理解数据结构之Map

蛙人

JavaScript 大前端

Webpack 基石 tapable 揭秘

vivo互联网技术

大前端 webpack 流程管理 tapable

电子产品如何使用IAP方式升级程序

不脱发的程序猿

嵌入式 iap 28天写作 3月日更 产品升级

所见即搜,3分钟教你搭建一个服装搜索系统!

华为云开发者联盟

框架 深度学习框架 mindspore Jina 服装搜索系统

在CentOS上安装MySQL,并使用DataGrip远程管理

pyfn2030

centos SSH MySQ datagrip

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