写点什么

关于 SubSonic 的问答

  • 2007-07-21
  • 本文字数:1658 字

    阅读完需:约 5 分钟

SubSonic 是一个类似 Rails 的开源.NET 项目。你可以把它看作是一把瑞士军刀,它可以用来构建 Website 和通过 ORM 方式来访问数据。在最新的版本 2.0.3 中,我们对执行引擎作了很大的改进,也修复了大量的 Bug。 Rob Conery Eric Kemp 是推动 SubSonic 的主要开发人员,与项目良好的发展有着密切的关系。

InfoQ 编辑提出了一些关于项目的问题,得到了 Eric 和 Rob 的积极回复:

InfoQ:是什么驱使你们创建 SubSonic?

Rob:大约 95% 的应用程序都通过某种方式来访问数据库。由于某些原因,95% 的 Visual Studio 和.NET 工具做的事情是把数据从数据库中取出来然后把数据放到 UI 上显示。当我第一次看到 SqlDataSource 和 GridView 的实例,我觉得它们真的太牛了,然而它们打破了我所知的所有 DAL 惯例。ObjectDataSource 是可以解决这个问题,但为什么我一定要使用另外一个工具来连接我的程序和数据呢?从一个构架师的角度,我看不到任何理由。

我记得在 Fritz Onion 的站点上读到一篇博文,他使用 BuildProviders 做出了一个对象模型,我就在寻思“有一天我也要这样做!”。当我重构 Commerce Starter Kit 的时候,这天到来了,我尽我所能把一些数据访问代码调整到基类里面去。我以非常规的方式使用泛型,可能已经超越了泛型原来的设计意图,在这个过程中我偶然找到了一个非常酷的设计模式,用它可以生成很少的代码就能完成整个数据访问层的工作。当我让它正常工作起来,我发誓,我简直从我的椅子上跳起来了。

之后我又花了两个星期来不断的测试,以解决其中的错误和性能问题,我记得我曾经想“在这里我已经得到某些东西了”。有段时间,我曾经做过一些 Ruby/Rails 的工作,我有一些想法能把 RoR 的优点带到 ASP 的世界来。虽然 Rails 最匹配的语言是 Ruby——但是有可能 RubyCLR(或者其他.NET 的动态语言)有一天将能完善,到那时,我认为 SubSonic 将能发挥更大作用。

InfoQ:SubSonic 当前的进展如何?

Eric:虽然 SubSonic 都还不满一周岁,在 4 月底它发布了 2.0,相对于 2006 年 12 月的 1.0.6 版提供了一系列新特性来扩展其功能。从那时起,我们又发布了 3 个修正版本,2.0.3 就是昨天才发布出来的。

SubSonic 是一个非常活跃的项目,在 CodePlex 已经持续排名前 10 了,和一些微软支持的项目并列在一起,如 AJAX Control Toolkit、Enterprise Library 和 IronPython。虽然这很难说明它是真的流行,不过下载数量确实是很鼓舞人心的——SubSonic 2.0.2 在不到 3 周的时间里被下载了几乎 2500 次,2.0.3 在第一天里被下载了差不多 400 次。

InfoQ:什么是 SubSonic 的吸引人之处?

Eric:作为一个数据访问平台,SubSonic 在 DataSet 的强大与速度,和 ORM 平台的高级功能之间寻求平衡,其结果是无需开发人员具备多少对象映射的经验,也不需要他们继续使用 SQL。

作为一个开发人员生产力工具,SubSonic 通过从基础上支持软件开发的迭代本质,自动化了数据驱动的应用程序开发中重复性的、无趣的过程。通过这个自动生成的 Web-Based 的数据操纵的“架子”,轻量级和灵活的查询工具,以及一个不断丰富功能的用于通用业务数据验证和转换需要的类库,SubSonic 让开发人员可以快速的构建他们的应用程序,而不是一些支撑的基础系统。

InfoQ:有哪些人在使用 SubSonic

Eric:要评价 SubSonic 的使用是困难的,我们只能从什么人在论坛中或者博客中分享经验来判断。不过,我们知道使用的范围是很广泛的。SubSonic 支撑着几个开源项目,如 dotnetkicks.com,并且目前正被集成到一个顶级的 ASP.NET 的博客平台上。使用 SubSonic 的既有业余开发的个人应用程序,也有一些 500 强企业。

InfoQ:SubSonic 未来会加入那些功能?

Eric:除了计划中的对我们的查询引擎的一些改进,也会在 2.1 发布版中提供 REST 的相关功能,我们目前是按照一个基本指导原则来“逐步进步”。具体说来,这意味着一再强调我们“惯例高于配置”的“老调”,按照有助于提升开发人员的生产力的一些通用模式,来完成一个更完整和更具扩展性的“开箱即用的应用程序”。

谢谢 Rob 和 Eric!

查看英文原文: QnA on SubSonic

2007-07-21 01:333647
用户头像

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

关注

评论

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

网易云信 6 周年|以梦为马,谱写融合通信新篇章

网易云信

云通信 通信云

泛型原理解析(Review)

Puciu

泛型

Android 音视频 - MediaCodec 编解码音视频

RTE开发者社区

android 音视频 编解码

中国央行数字货币DCEP——有增值空间吗?

CECBC

架构实战营毕业总结

maybe

公关CRM软件助你培养长期客户关系

低代码小观

CRM 管理系统 管理工具 管理软件 公关

虚拟人“觉醒”年,见证一场万物的进化

脑极体

WorkPlus数字化办公解决方案,打造企业高效协同生态!

BeeWorks

OCR+NLP信息抽取在金融、物流行业的应用

百度大脑

人工智能 百度

PaddlePaddle:在 Serverless 架构上十几行代码实现 OCR 能力

Serverless Devs

少吃肉也能减碳排?

脑极体

作业:模块一

奔奔

CODING 助力江苏高速信息实现组织敏捷与研发敏捷,领跑智慧交通新基建

CODING DevOps

研发敏捷 组织敏捷 自动化发布流程 团队目标一致性 楼宇智能化

浅谈如何实现自定义的 iterator

hedzr

stl Iterator c++17

微信朋友圈的复杂度分析

胡颖

架构实战营

万圣节也是节,准备好Trick or Treat了么?

气气

话题讨论

Android平台如何使用RSA算法进行加解密?

Changing Lin

10月月更

使用 Spring Boot 和 @DataJpaTest 测试 JPA 查询

码界行者

Java Spring Boot test

Python代码阅读(第47篇):从列表右边开始执行给定函数

Felix

Python 编程 Code Programing 阅读代码

AISWare AntDB亚信科技数据库产品特性解读——平滑弹性扩展(一)

亚信AntDB数据库

亚信科技

Serverless 工程实践 | 零基础上手 Knative 应用

Serverless Devs

【浪潮云说】直播间第十期将于今晚19:30准时开播

云计算

如何成为一个更好的职业人?

石云升

学习笔记 职场经验 10月月更

第六届世界智能大会平行论坛提前揭晓

InfoQ 天津

阿里大牛首次公布Java10W字八股文面经,Github访问量破百万

Java 编程 程序员 架构 面试

打破 Serverless 落地边界,阿里云 SAE 发布 5 大新特性

Serverless Devs

阿里云 Serverless 函数计算

云原生体系下 Serverless 弹性探索与实践

Serverless Devs

云原生 无服务器 弹性计算

OCR+NLP 提取信息并分析,这个开源项目火了!

百度开发者中心

最佳实践 开源技术

北森CEO纪伟国:深耕HR SaaS,聚焦场景一体化

海比研究院

Serverless 工程实践 | 自建 Apache OpenWhisk 平台

Serverless Devs

永不落幕的世界智能盛会:天津市工业和信息化局与工商银行天津分行举行对接交流活动

InfoQ 天津

关于SubSonic的问答_.NET_James Vastbinder_InfoQ精选文章