写点什么

Mark Pollack 谈论 Spring 和 Spring.NET

  • 2008-02-12
  • 本文字数:1373 字

    阅读完需:约 5 分钟

Spring.NET 的创始人 Mark Pollack 谈论了在 Java 与.NET 社区之间共享思想和 Spring.NET 的历史。他还说到了如何使用依赖注入和 AOP 来提供日志以外更多的功能,以及 Spring.NET 与 WCF 所重叠的地方。

JAOO 上的采访之外,我们还针对最近 Spring.NET 1.1 的发布进行了一次简短的问答。

很多.NET 的开发者都对 Spring.NET 有点陌生。你能给我们介绍一下这个项目,解释一下它背后的一些历史吗?

Spring.NET 是一个开源的应用程序框架,它可以简化构建企业级.NET 应用的工作。虽然这是所有应用程序框架所致力追求的目标,但 Spring.NET 是建立在 Spring 框架所使用的模式和编程模型的基础之上的,而后者已经为我们带来了很多实实在在的利益。我在 2003 年使用 Java 开发金融服务行业的一些项目时,对 Spring 的作用有了切身体会。我最开始所感受到的好处之一是,它可以很容易地创建松耦合的应用,于是我的应用无论是单元测试还是集成测试都很方便。第二点直接的收益就是我的代码可以更加关注于业务概念。很多底层架构的问题——例如配置和事务管理——都在 Spring 中得到了漂亮的解决,我无须在业务类中自己写这些代码了。最后,处理底层数据库 API 也会带给人锥心的疼痛,Spring 提供了一个非常出色的帮助类库,编写数据访问代码就容易了很多。

在这个版本中有很多新特性。从可以快速得到收益的角度来讲,你觉得哪一处是对新用户最有吸引力的呢?

我在 2004 年初开始接触.NET 开发,而后很快就确认了我的直觉,也就是 Spring 所提供给 Java 的一切在.NET 中依然有价值。从本质上来讲,Spring 包装了很多最佳实践,然后让它们可以很容易得以应用。通常来讲,最佳实践和相关联的模式是可以在不同技术之间进行移植的。在四人帮那本书里面所提到的单实例模式是用 C++ 开发的,但这并没有影响这种模式在 Java 或者.NET 的世界中放出应有的光芒。然后我就启动了 Spring.NET,希望通过它可以把 Spring 的种种益处带给.NET 社区。从大范围来看,Spring 的好处主要是两点,第一是通过依赖注入来配置应用,第二是使用面向方面编程来帮助解决底层架构中的一些问题,例如声明式事务管理。综合使用这两种技术可以让你收获累累硕果。正因如此,Spring.NET 最早开发的特性就是依赖注入和 AOP 框架,它们在 1.0 版中已经发布了。其他一些着重于解决 Web 层和中间层的一些特定问题的特性放在了 1.1 版中。

这一版本为那些早已开始使用 Spring.NET 的开发者带来了什么?

1.1 版中最受欢迎的特性之一就是为 ASP.NET 开发提供的 Web 框架。这个框架最基本的功能就是让你可以通过依赖注入来配置页面,user controls,providers 等等。它同时还提供了强大的数据双向绑定和验证,胜于 ASP.NET 自带的功能。这些功能满足了常见的需求,而且开发者通常最后都需要自行开发出来作为内部框架的一部分。另一个主要的新特性是在一个 aspect library 中提供的声明式事务管理和其他 aspects。目前在.NET 领域中存在一处欠缺,那就是执行声明式事务管理,尤其是当你只有一个数据库,不想调用 MS-DTC 的时候。这个 aspect library 提供了很多 aspects,可以即取即用。其中,retry aspect 算是特别有用的一个。它可以贯穿所有的 WCF 客户端代理类,或是其他客户端远程代理,所以如果一个远程方法调用时抛出了异常,这个方法可以被重试多次。

查看英文原文 Mark Pollack on Spring and Spring.NET

2008-02-12 03:201151
用户头像

发布了 197 篇内容, 共 54.2 次阅读, 收获喜欢 20 次。

关注

评论

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

DNA序列分析软件 SnapGene 5破解版含SnapGene5激活工具 mac/win

Rose

万字干货:从消息流平台Serverless之路,看Serverless标准演进

快乐非自愿限量之名

数据库 Serverless 服务器

打印报表--分片重复报表

小智数据

小智报表打印 小智开源报表 小智报表常见示例 纯前端js报表控件 类excel样式报表

最佳实践:基于腾讯云 ES 的机器学习功能,实现一站式 NLP 语义聚合

腾讯云大数据

ES

淘宝商品详情API深度解读:商品标签与分类的洞察

代码忍者

API API 文档 API 测试

腾讯云联合中科软发布 “保险行业一体化大数据解决方案” 共筑保司数据基座

腾讯云大数据

腾讯云 wedata

淘宝天猫商品详情API:商品参数对比与选择

技术冰糖葫芦

API api 货币化 API 文档 API 测试

该如何选择小游戏开发引擎?

Geek_2305a8

2025第十三届中国电子信息博览会(CITE深圳电子展)

AIOTE智博会

电子展 深圳电子展 电子信息展

蔚来汽车 x TiDB丨单表超 20 亿条数据,从 MySQL 到 TiDB 的迁移思考与实践

PingCAP

MySQL TiDB 蔚来

沧州杨埕水库:创建巡检“二维码”,为安全管理赋能

草料二维码

安全管理 设备管理 草料二维码 设备巡检二维码 设备巡检系统

跨平台数据同步:京东商品详情API的多平台支持

技术冰糖葫芦

api 货币化 API 文档 API 测试 pinduoduo API

一文弄懂Go语言的Context包,值得收藏!

左诗右码

Go

Web3 游戏周报(7.28 - 8.03)

Footprint Analytics

链游

【Java】Jsoup 解析HTML报告

不在线第一只蜗牛

Java html

打印报表--自由打印报表

小智数据

小智报表打印 小智开源报表 小智报表常见示例 纯前端js报表控件

打印报表--客户订单打印报表

小智数据

小智开源报表 小智报表常见示例 纯前端js报表控件 类excel样式报表 客户订单打印报表

【YashanDB知识库】自关联外键插入数据时报错:YAS-02033 foreign key constraint violated parent key not found

YashanDB

yashandb 崖山数据库 崖山DB

TiKV Raft 快照全流程丨TiKV 源码解读(二十二)

PingCAP

数据库 TiKV 源码解读 TiKV

【JavaScript】前端算法题 40道题+解析

EquatorCoco

JavaScript 前端 前端算法

TCL 实业 x TiDB丨从分销转向零售,如何考虑中台建设和数据库选型?

PingCAP

TCL 营销中台 实业

3个办公网站,助你又快又好地搞定工作总结ppt!

彭宏豪95

效率工具 职场 PPT 效率办公 AI生成PPT

一键登录,打造华为账号便捷新体验

HarmonyOS SDK

HarmonyOS

会声会影发光字体制作 会声会影字体怎么淡化退出 视频剪辑制作教程

禁止废话

字幕 会声会影2023 视频剪辑软件下载 视频剪辑软件

OpenTiny HUICharts 正式开源发布,一个简单、易上手的图表组件库

OpenTiny社区

Vue js eCharts OpenTiny

如何判断IP地址属于住宅IP还是机房IP

IPIDEA全球HTTP

代理IP

软件测试学习笔记丨BlueOcean 安装与使用

测试人

软件测试

推荐3款免费且实用的数据库管理工具

EquatorCoco

数据库

小程序容器技术对比,我们的App也能运行小程序了

Geek_2305a8

ETL数据集成丨将GreenPlum数据同步至Doris数仓

RestCloud

Doris greenplum 数据同步 ETL 数据集成工具

Mark Pollack谈论Spring和Spring.NET_.NET_Jonathan Allen_InfoQ精选文章