写点什么

关于 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:333661
用户头像

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

关注

评论

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

技术,让春节团圆再无距离 | 全息投影

气气

架构实战营 - 模块 5 课后作业

tony

架构训练营 - 模块五作业

伊静西蒙

来自开发者的点赞!网易云信揽获三大技术奖项

网易云信

资讯

第五周作业

cqyanbo

有道技术团队入选 2021思否中国技术先锋年度评选两项榜单

有道技术团队

获奖

一个后端开发到鸿蒙开发的简单尝试

宇宙之一粟

鸿蒙开发 1月月更

【架构实战营】模块五:命题作业

wgl

「架构实战营」

初探鸿蒙,你学废了吗 【鸿蒙开发 04】

坚果

鸿蒙开发 1月月更

阿拉丁2021年度小程序白皮书发布,凡泰极客 FinClip 技术再度入选

FinClip

小程序 白皮书 finclip

一个cpp协程库的前世今生(二十二)协程偷取

SkyFire

c++ cocpp

鸿蒙-webview的使用和JS交互(附源码)【鸿蒙开发 03】

坚果

鸿蒙开发 1月月更

Java UI框架初探和路由跳转实现【鸿蒙开发05】

坚果

鸿蒙开发 1月月更

架构实战营4期-模块5作业

木几丶

「架构实战营」

模块5作业

novoer

#架构实战营

20 Prometheus之Grafana简述

穿过生命散发芬芳

Grafana Prometheus 1月月更

架构实战营 - 模块 5 - 作业

Pyel

「架构实战营」

微信架构设计和学生管理系统

刘洋

#架构实战营

架构实战营第4期第5课作业:微博评论计算架构分析

owl

架构实战营

markdown-it 插件如何写(一)

冴羽

前端 markdown 博客 vuepress markdown-it

架构实战营模块五作业

zhongwy

架构实战营

有了小程序还要不要做app?

石云升

小程序 1月月更

微信业务架构图&学生管理系统毕设架构

blazar

「架构实战营」

Three.js入门: 构建一个立方体

devpoint

WebGL three.js 1月月更

征文投稿丨使用轻量应用服务器搭建扫码测试项目

阿里云弹性计算

阿里云 轻量应用 征文投稿

微博评论高性能高可用计算架构

糖糖学编程

架构实战营

微博评论高性能高可用方案设计

AUV

「架构实战营」

浅析安全反序列化漏洞

网络安全学海

黑客 网络安全 信息安全 渗透测试 安全漏洞

Hoo虎符研究院|投资前沿——过去一周顶级投资动向(第二期)

区块链前沿News

Hoo 虎符交易所 虎符研究院 区块链投资

🏆【Alibaba中间件技术系列】「Nacos技术专题」配置中心加载原理和配置实时更新原理分析(上)

码界西柚

nacos 配置中心 Alibaba SpringCloud Alibaba 1月日更

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