最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

CodeSmith 发布代替和扩展 LINQ to SQL 的工具——PLINQO

  • 2007-09-02
  • 本文字数:1830 字

    阅读完需:约 6 分钟

CodeSmith 最近发布了一套用于 CodeSmith 和 Visual Studio 2008 的模板,叫做 PLINQO 或 Professional LINQ to Objects。这些模板被用于补充微软即将发布的 LINQ to SQL 的设计功能,其包含了如下很多优秀的特性:

  • 从数据库结构生成或更新 LINQ to SQL 的 dbml 文件

  • 包括所有表、存储过程、函数和视图,并能基于正则表达式来排除特定对象

  • 能自动删除对象的前缀和后缀(如:tbl_ 和 usp_)

  • Dbml 文件依然能通过普通的 Visual Studio 2008 设计器来自定义

  • Dbml 文件能被当前数据库结构在保持自定义信息的情况下进行同步更新(参看 Safe Attributes)

  • 生成 LINQ to SQL 的 DataContext 类

  • 生成 LINQ to SQL 的实体类

  • 为每个实体生成一个文件,而不是只生成一个大型的文件

  • 生成分部类,用于书写自定义代码,以避免被自动生成的代码覆盖

  • 生成的实体文件作为和他们相关的自定义实体文件的后置代码文件被添加到项目里

  • 生成实体管理类

  • 添加可定制的业务逻辑引擎来执行实体验证、业务和安全规则

  • 为基于主键、外键和索引的通用查询提供访问

  • 通用查询可暴露为 IQueryable 以便能被扩展

  • 所有模板都能被自定义以满足你的需要

InfoQ 最近有机会采访了 Eric J. Smith(CodeSmith Tools LLC 的创始人)和 PLINQO 有关的事情。Eric 解释了发布 PLINQO 的目的:

很多开发人员,包括我们自己,不喜欢黑盒方式。所以我们创建这些模板的目的就是消除黑盒,并允许我们自己和其他开发人员能够自定义 LINQ to SQL 设计器的输出内容。我们也希望能扩展生成类的功能,包括业务逻辑、授权逻辑和其他特性。

在 PLINQO 的宣布博客随笔中,提到他们意欲替换和扩展包含在 Visual Studio 2008 中的 LINQ to SQL 设计器。因为微软有他们自己的 LINQ to objects 和 LINQ to SQL 技术,InfoQ 问到他们的模板是否真能作为 LINQ to SQL 的替代品或 LINQ to Objects 替代品,并问到为什么取名和微软的重叠?Eric 答复:

PLINQO 是个 LINQ to SQL 替代品,但和 LINQ to Objects 没有关系。我们知道这可能会引起一些混淆,但是我们真的需要一个有趣的名称,并且我们也非常喜欢 PLINQO 这个名字。PLINQO 就像一种“正确价格”(the Price is Right)的游戏,Plinko,恰好就是“正确价格”游戏中最火爆的一个。:-)

在问到为什么开发人员会采用你们的模板,而不是简单使用微软提供的功能:

使用 PLINQO 模板而不用设计器有几个优点。下面是一个主要原由的列表: - 能轻易地从数据库中生成整个.dbml 文件,然后能在数据库结构改变的时候重新生成.dbml 文件,并同时保留任何你做出的自定义信息,如实体、熟悉和关系命名。假设使用设计器的话,如果你改变了数据库结构,你需要删除某个实体并重新添加它以得到新的列或数据类型变化,这样会让你失去任何你做出的自定义信息。另外,使用模板允许你排除不想要的表、存储过程和视图,其通过运用过滤器表达式实现;自动的剥离和清理实体和属性的名称,如数据库结构可能使用的前缀和后缀(比如:tbl_Customer 变为 Customer)

  • 业务逻辑引擎运行你执行诸如属性长度规则、必需字段规则、正则表达式数据验证规则以及其他包括授权规则在内的内置规则等事情。数据上下文对象中的 SubmitChanges 方法将针对你变更集合中任何实体自动运行这些规则。如果不是所有规则都满足,那么一个包含了违反规则列表的 BrokenRulesException 异常将被抛出。
  • 每个实体都生成了一个管理类,其封装了一个实体能完成的所有动作。已知的通用动作,如通过主键、索引和外键检索实体的动作都会被生成。任何自定义的动作也可以被添加,并在重新生成期间将被保留。虽然 LINQ 让你实现贯穿整个应用程序的数据访问逻辑变得很容易,我们仍认为它的设计是比较差的,所以这就是我们包含进管理类的原因。

这个模板能工作于 CodeSmith 4.0+ 版本(参看 InfoQ 相关报道),也能工作在安装了CodeSmith4.1 的VS2008 中。未来的版本,CodeSmith 打算添加单元测试、UI 生成和Web Serice 的生成支持。Paul Welter 是这个模板的领头开发人员。Eric 同时提到模板正在逐步完善当中,任何反馈都欢迎。我们将欢迎任何反馈和想法。可以查看 CodePlex 上的项目 Quick Start

PLINQO 是一个优秀的例子,它体现了我们所期望的那样——CodeSmith 和其他第三方能为微软的 LINQ 技术添加额外的价值。往往就是如此,供应商在看到能为一个基础性技术进行加强的领域后,就为开发人员工作更轻松迈出了步伐。PLINQO 就是为将来更多的工作走出的非常好的第一步。

查看英文原文: CodeSmith’s PLINQO: Replace & Extend LINQ to SQL

2007-09-02 23:102855
用户头像

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

关注

评论

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

技术思维和管理思维

老张

技术思维 管理思维

AutoCAD 2023 for Mac(cad2023) v2023.2.1注册激活中文版

mac

2023 cad 苹果mac Windows软件 AutoCAD2023

不就是接根网线的事么?

小齐写代码

网络技术

没有苹果开发者账号能否创建ios证书-最新

Axure RP 9 for Mac(交互式产品原型设计工具) v9.0.0.3682中文激活版

mac

Axure RP 9 苹果mac Windows软件 产品原型设计软件

简化测试流程,提供卓越服务:TestComplete+Salesforce满足不断发展的企业的需求

龙智—DevSecOps解决方案

Python 案例实训教学,支持“教师-学生”双视角切换|ModelWhale 版本更新

ModelWhale

Python 人工智能 数据分析 超算 云课堂

大模型知识助手,成功切入万亿级企业服务赛道

中关村科金

大模型 知识库

没有苹果开发者账号能否创建ios证书-最新

雪奈椰子

2023值得关注的125家AIGC企业闪亮发布!

创业邦

从《孤注一掷》出发,聊聊 SSL 证书的重要性

火山引擎边缘云

https HTTP SSL证书 HTTPS协议

自动驾驶点云标注:挑战与解决方案

来自四九城儿

今年有什么新内容?《解开网络密钥 - 互联网研究指南》

小猪佩奇身上纹

可不能忽视的五个 HTTP 请求要点

Liam

程序员 前端 后端 HTTP API

重新定义生产力与创造力的新力量

百度开发者中心

人工智能 ChatGPT 生成式AI 文心一言

Maxon Explosion-proof Areas Monitoring CCTV Wireless Transfer Solutions

wifi6module

低代码概念——初步认识低代码

互联网工科生

低代码 企业级应用程序开发 JNPF

DevOps理念:开发与运维的融合

这我可不懂

DevOps 自动化 开发运维

DxO PureRAW for Mac(RAW照片处理器)v3.5.0中文激活版

mac

照片处理工具 苹果mac Windows软件 DxO PureRAW

【区块链DAPP】智能合约概述

西安链酷科技

区块链 DAPP系统开发 合约交易所开发

ARTS-WEEK3-23.8.28~23.9.2

EchoZhou

Semi D2C 设计稿转代码的演进之路

SemiDesign

figma Semi Design D2C Design to Code

云原生架构:在云环境中构建弹性应用

树上有只程序猿

微服务 云原生 容器化

软件开发常说的CI/CD是什么

越长大越悲伤

CI/CD

低代码未来会颠覆开发行业吗?

高端章鱼哥

软件开发 低代码 JNPF

Go 切片

小万哥

Go 程序员 后端 开发 Google

元载万物·智启新界,2023创业邦AIGC技术应用大会在深圳举行

创业邦

搜索引擎基础《解开网络密钥 - 互联网研究指南》

小猪佩奇身上纹

从降本增效到价值创造,大模型如何重塑智能语音产品

中关村科金

大模型 智能语音

火热的低代码

这我可不懂

低代码 企业级应用程序开发 模型驱动

驶向高效运营,StarRocks 助力蔚来汽车数据分析再升级

StarRocks

数据库 大数据 数据仓库 数据湖

CodeSmith发布代替和扩展LINQ to SQL的工具——PLINQO_.NET_Robert Bazinet_InfoQ精选文章