写点什么

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

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

关注

评论

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

Refit — 让Http请求变得更简单

青柚1943

微服务 REST API NET6 Refit

Spring Boot 集成 Liquibase,数据库也能做版本控制!

Java你猿哥

Java spring Spring Boot java 编程

Seata-go 1.1.0 发布,补齐 AT 模式支持

SOFAStack

开源 互联网 开发者 开发 Seata框架

研发效能度量从 0 到 1 的『六脉神剑』

思码逸研发效能

研发效能 效能度量 研发效能度量

低代码平台的流程引擎设计指南

Baidu AICLOUD

低代码 爱速搭

DBA必备的Mysql知识点:数据类型和运算符

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 3 月 PK 榜

办公要有新享法,「MIAOYUN生活梦想家」焕新升级!

MIAOYUN

搬迁公告 乔迁 办公升级

家电类投诉高居榜首,拿什么拯救“投诉了个寂寞”的消费者?

Openlab_cosmoplat

工业互联网 开源社区 家电

DSC:数仓SQL脚本迁移的神奇工具

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 3 月 PK 榜

AREX-携程无代码侵入的自动化回归测试平台

AREX 中文社区

开源 自动化测试 回归测试

2023年3月中国数据库排行榜:开源OTO揽获前三,传统达梦、GBase触机便发

墨天轮

数据库 opengauss TiDB oceanbase 国产数据库

2023 MacBook Pro 与2021 Macbook Pro有哪些差别

互联网搬砖工作者

MacBook M1芯片 MacBook Pro M2芯片

Tapdata Cloud 基础课:新功能详解之「授权系统自动分析」,一键定位任务报错原因,快速获取修复建议

tapdata

大数据

倒计时2天:百度“文心一言”即将上线!

引迈信息

人工智能 低代码 AIGC ChatGPT 文心一言

功能强大的数据库管理工具:DBeaverEE 激活版

真大的脸盆

Mac 数据库管理工具 数据库管理 Mac 软件 数据库分析

实践Pytorch中的模型剪枝方法

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 3 月 PK 榜

Sugar BI 增强分析能力全场景解析

Baidu AICLOUD

BI

3d建筑软件:Vectorworks 2023激活版

真大的脸盆

Mac Mac 软件 3D建筑动画

请求响应--MQTT 5.0新特性

EMQ映云科技

物联网 IoT mqtt 订阅 企业号 3 月 PK 榜

量化交易(机器人)开发系统现货合约策略

薇電13242772558

量化策略

从企业数据产品的演进,看指标平台发展趋势

Kyligence

数据分析 指标平台

【云原生】k8s 环境快速部署(一小时以内部署完)

Java你猿哥

Java 学习 k8s Spring Boot ssm

我在京东做研发第五期:京东云自研服务器,如何将开发成本降低 60% 的同时还更低碳环保?

京东科技开发者

cpu 服务器 环保 节能 企业号 3 月 PK 榜

报名开启!KunlunBase今年首场线下MeetUP,期待与您的见面!

KunlunBase昆仑数据库

Meetup kunlunbase 内核技术

2023主流系统 固资管理助力转型升级一步到位

加入高科技仿生人

低代码 企业数字化转型 资产管理

为什么CMS和G1都改用三色标记法,是可达性分析不香吗?

Java全栈架构师

Java 程序员 后端 JVM 架构师

关于 SysOM 2.0 网络/存储相关诊断功能介绍及案例展示 | 第 72-73 期

OpenAnolis小助手

开源 直播 系统运维 技术分享 龙蜥大讲堂

MySQL创建用户与授权

源字节1号

软件开发 前端开发 后端开发 小程序开发

关于服务器数据迁移,介绍在服务器数据迁移计划中的7个步骤

镭速

Rust的安全性和稳健型

非凸科技

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