AI 年度盘点与2025发展趋势展望,50+案例解析亮相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:00891
用户头像

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

关注

评论

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

PyTorch指定GPU进行训练

Geek_7ubdnf

Python

醉爱江南,2023走进双山香山

科技大数据

Design a limited-time offers e-commerce system

David

架构实战营

拆分电商系统为微服务

闲人Eric

#架构实战营

MASA Stack 1.0 发布会 倒计时一天

MASA技术团队

.net MASA

架构作业4-千万级学生管理系统的考试试卷存储方案

梁山伯

ROS教程(Xavier)

Geek_7ubdnf

ROS

架构训练营-模块三作业

Sam

架构实战营

谈一谈有关 MySQL 数据库数据安全问题

风铃架构日知录

Java MySQL 程序员 后端 IT

#46 A003-B端产品经理小A故事-你是在画猫吗?

非典型产品经理笔记

个人成长 产品经理 b端产品经理

AIGC神器CLIP:技术详解及应用示例

Baihai IDP

人工智能 AI AIGC CLIP

PyCharm创建Jupyter Notebook

IT蜗壳-Tango

Python

Date & Time组件(上)

梦笔生花

Android Studio DATE类型 time

模块九-设计电商秒杀系统

李某人

架构训练营

2022年终总结:今年学完的付费课程

石云升

学习 知识付费 年终总结 1月月更

【Dubbo3终极特性】「云原生三中心架构」带你探索Dubbo3体系下的配置中心和元数据中心、注册中心的原理及开发实战(上)

洛神灬殇

云原生 注册中心 配置中心 Dubbo3 元数据中心

GEAR框架: Tractian的敏捷工程文化

俞凡

敏捷 大厂实践

架构训练营第10期模块四作业

Geek_4db2d5

ROS常用指令

Geek_7ubdnf

ROS

ETL 引擎 engine 适配 elasticsearch

weigeonlyyou

oracle Prometheus ETL Elastic Search InfluxDB Cluster

MySql 应用程序常见问题

Andy

2023-01-14:给定一个二维数组map,代表一个餐厅,其中只有0、1两种值 map[i][j] == 0 表示(i,j)位置是空座 map[i][j] == 1 表示(i,j)位置坐了人 根据防

福大大架构师每日一题

算法 rust Solidity 福大大

PowerShell 中运行 maven 参数无法识别

HoneyMoose

Java中时间戳的使用

Geek_7ubdnf

Java

剖析容器网络Flannel VXLAN模式工作原理

Chank

flannel #Kubernetes# #k8s

Tapdata Cloud 场景通关系列:数据入湖仓之 MySQL → Doris,极简架构,更实时、更简便

tapdata

#45 A002-B端产品经理小A故事-走进客户2

非典型产品经理笔记

个人成长 产品经理 b端产品经理

SpringBoot配置文件application

Geek_7ubdnf

Java

基于幂等表思想的幂等实践

小小怪下士

Java 程序员

读懂深度学习,走进“深度学习+”阶段

脑极体

深度学习 百度 #飞桨#

如何进行秒杀场景下的异步下单实现

风铃架构日知录

Java 数据库 程序员 后端 IT

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