写点什么

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

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

关注

评论

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

干货满满丨万字超全 ElasticSearch 监控指南

腾讯云可观测平台

Elastic Search

软件测试学习笔记丨Pytest常用的异常处理方法

测试人

软件测试

低代码:软件开发的性价比之王

EquatorCoco

软件开发 低代码 项目开发

成为Flask专家:利用蓝图实现功能模块化管理的关键路径

测吧(北京)科技有限公司

测试

C++中虚表是什么

快乐非自愿限量之名

c++ 算法 开发语言

探索全球加密市场:市场规模、趋势和参与者解析

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

首次代币发行(ICO)的成功:概念化、理论和系统分析

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

守护你的在线业务!如何选择合适的服务器高防公司?

一只扑棱蛾子

高防服务器 高防服务器公司

Chrome不支持正则搜索?那我们自己写一个

JYeontu

前端 chrome扩展 浏览器插件 Chrome插件 Chrome Extension

Solana链MEME币上传图标、网站的方法:PandaTool工具一键更新

加密先生

国际化物联网卡解决方案立项一周年

IoTOS

物联网 IoT eSIM安全 java 技术提升

自定义Key类型的字典无法序列化的N种解决方案

EquatorCoco

Java 开发语言 key

Sol代币发行:探究Solana生态系统中Sol代币的发行

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

打造安全壁垒:JWT鉴权提升应用的访问安全性

测吧(北京)科技有限公司

测试

1688商品详情API在电商平台中的应用与实践

Noah

纯血鸿蒙来了!鸿蒙App开发需如何提速

Geek_2305a8

GaussDB(分布式)实例故障处理

华为云开发者联盟

数据库 后端 华为云 华为云GaussDB 华为云开发者联盟

如何快速提升你的技术能力

老张

自我提升 技术 优化体系

零售饮料企业凭借精准铺货策略与动态调整,通过指标平台精准把脉,赢得线下渠道的主动权

Kyligence

深度解析:DApp钱包燃烧质押合约挖矿系统的开发

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

什么是设计模式?

不在线第一只蜗牛

数据库 设计模式

连接数据,畅通协作!企业数字化管理再升级

聚道云软件连接器

案例分享

Docker Kill/Pause/Unpause命令详细使用指南

霍格沃兹测试开发学社

鸿蒙5.0发布时间已定!移动开发加速器何处寻?

Geek_2305a8

潮流风潮:Meme预售疯狂背后的原因和趋势分析

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

最全参赛指南!2024 年(第 17 届)中国大学生计算机设计大赛大数据主题赛现已开赛

ModelWhale

大数据 数据分析 交叉学科 中国大学生计算机设计大赛 乡村发展

深入分析Java中的PriorityQueue底层实现与源码

华为云开发者联盟

Java 数据结构 开发 华为云 华为云开发者联盟

Solana模因币空投方法:使用PandaTool批量转账工具快速完成

加密先生

Solana PandaTool

人大金仓助力国家电网调度中心培养国产数据库专家人才

科技热闻

鸿蒙Next升级有便捷的方法?

Geek_2305a8

探索ORM技术:如何轻松管理数据库并提高操作效率?

测吧(北京)科技有限公司

测试

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