InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

Mark Pollack谈论Spring和Spring.NET

作者 Jonathan Allen 译者 李剑 发布于 2008年2月12日

领域
架构 & 设计,
语言 & 开发
主题
AOP ,
.NET ,
Web框架
标签
依赖注入 ,
Spring框架 ,
Spring.NET

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

译者 李剑 李剑──ThoughtWorks高级咨询师,在持续集成、重构等领域具有丰富的经验;多次为国内大型企业敏捷组织转型提供咨询和培训服务。

深度内容

大规模视频网站的计费与流量管理

本次分享将会就大规模视频网站的计费与流量管理这个话题,从操作层面细细进行讲解和分析,为系统工程师们揭示平日里我们没有关心的另一些内容。同时也希望本次分享能揭示行业中的一些“潜规则”,让互联网行业的流量与带宽管理更为开放与简洁。
本次演讲视频录制于QCon杭州2011

专访Jeffrey Richter:Windows 8是微软的重中之重

Jeffrey Richter以其多本Windows核心技术的经典著作而闻名,同时,他深入掌握微软的.NET等一系列核心技术,2012年1月,Jeffrey Richter在北京接受了InfoQ中文站的专访,谈到Windows 8和WinRT编程,并就异步编程、Windows编程中的可扩展性、性能和安全性方面给出自己的建议。

应用云平台的可用性——从新浪SAE看云平台设计

云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。

JVM定制改进 @ 淘宝

淘宝高度重视Java平台的健康发展,组建了一个团队专注于Java平台的底层部分的性能、功能与稳定性改进;工作主要基于OpenJDK中的HotSpot VM开展,其中一些通用的功能随后也会逐渐反馈给OpenJDK社区。希望能与使用Java平台开发应用的大家交流经验。
本次演讲视频录制于QCon杭州2011

"伤得起"的云计算应用——对云端应用之架构的思考

2011年4月21日至22日是值得云计算从业者纪念的日子。Amazon的IaaS服务出现故障,导致许多商业网站的服务中断,影响非常严重。作为云计算用户,我们需要思考的是,如何保证即便在云服务不可用的情况,我们的应用架构仍然能够屹立不倒?本文正是站在云计算用户的角度试图探讨这一问题。

让交付的速度跟上思考的速度

12人的技术团队,4组刀片服务器,每月20亿的访问量,每日1次准时部署,99.9%的可用性。这可能吗?当然。想知道如何做的吗?百姓网将与您分享他们在DevOps实践过程中的经验和技巧。
本次演讲视频录制于QCon杭州2011

架构之路——穿行在产品和业务之间

篱笆作为一家起源于社区的电子商务公司,反映到技术层面就是同时要面对产品和业务,以及经营战略的变化调整。如何在产品和业务的夹缝之间完成技术架构的抽象与平衡,寻找更有效的价值定位,这当中有些经验教训和个人感悟愿与众人分享。
本次演讲视频录制于QCon杭州2011

特性注入:成功三部曲

本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。