写点什么

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

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

关注

评论

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

React之Context源码分析与实践

费马

源码分析 React useContext Context React-Router

从零到部署:用 Vue 和 Express 实现迷你全栈电商应用(六)

图雀社区

node.js Vue

为什么你成不了「超级个体」?

非著名程序员

程序员 互联网 提升认知 认知提升

JUC整理笔记五之梳理Varhandle(下)

JFound

Java

GitHub上10个不可错过的另类有趣项目

码农神说

GitHub 开源 程序员

自定义 SpringBootStarter

子路无倦

路径依赖 - 偶然决策导致的依赖。

石云升

思维模型 路径依赖 网络效应 沉没成本 价值网依赖

做一个纸上谈兵的项目经理

escray

csapp-chapter2

卓丁

深入理解计算机系统 csapp

科学提升认知方法之贝叶斯公式

奈学教育

贝叶斯公式

从零到部署:用 Vue 和 Express 实现迷你全栈电商应用(五)

图雀社区

Vue Node

我的个人知识管理方法

lidaobing

个人成长 知识管理 PKM

Sula - 可能是西湖区最好用的antd配置框架

开远

大前端 antd sula 配置化开发

架构师必备的ToB产品交付之双轮驱动思维模型

常平

产品 极客大学架构师训练营

SpringCloud-OpenFeign源码

云淡风轻

Spring Cloud

愚蠢写作术(2):怎么让你的文章变得冷冰冰

史方远

学习 个人成长 写作

中台上线半年,我总结出了“七宗罪”

punkboy

中台 企业中台 后台开发 业务中台 后台

重磅推出:第14份年度敏捷状态报告(最新2020)

Bob Jiang

敏捷 调查报告 state of agile

从零到部署:用 Vue 和 Express 实现迷你全栈电商应用(四)

图雀社区

Vue Node

csapp-chapter1

卓丁

深入理解计算机系统 csapp

如何让解决无法访问 GitHub 的问题?

JackTian

GitHub

JDK 15 都发布了,可 Java 8 依然是最爱

古时的风筝

Java Java 25 周年 Java版本

大话设计模式 | 0 面向对象基础

Puran

C# 设计模式

N皇后问题之位运算解法

孙苏勇

算法 DFS 位运算

除了公关,我还能为公司做点什么?(系列1)

邓瑞恒Ryan

学习 个人成长 自我管理 成长 职业成长

分布式事务 - 三种常见的解决方案

Java收录阁

分布式事务

源码分析 | 像盗墓一样分析Spring是怎么初始化xml并注册bean的

小傅哥

源码分析 小傅哥 spring源码 bean注入过程

从零到部署:用 Vue 和 Express 实现迷你全栈电商应用(三)

图雀社区

vue.js Vue Node

ArrayList浅析

章小传

Java collection 原理 ArrayList

【译文】为什么说Rust是机器人技术的未来

袁承兴

rust 机器人 嵌入式

多来点胜利,对冲颓丧

zhoo299

成长 备忘

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