10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

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:201498
用户头像

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

关注

评论

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

新兴游戏引擎Godot vs. 主流游戏引擎Unity和虚幻引擎,以及版本控制工具Perforce Helix Core如何与其高效集成

龙智—DevSecOps解决方案

Unity 虚幻引擎 游戏开发引擎 Godot

芯片设计工程师必看:借助Perforce Helix Core和Helix IPLM提高IP重用率,简化设计流程并确保产品质量

龙智—DevSecOps解决方案

Perforce Helix Core 版本控制工具 IP管理

京东JD商品详情API返回值解析:商品数据快速提取

技术冰糖葫芦

API boy API 接口 pinduoduo API

物联网智能手表架构实践

智慧源点

可解决传统保险丝缺陷的电子保险丝efuse

芯动大师

集成电路 电子保险丝 efuse

为“风”转“液”加速,一台宁畅服务器的“全液冷”突围

脑极体

AI

支付系统概述(十二):支付成功率

agnostic

支付系统设计与实现

【“AI”协同 创未来】线下研讨会预告:Jira、Confluence及Jira Service Management等Atlassian产品及其AI功能深度解读

龙智—DevSecOps解决方案

Animoca Brands 投资了Penpad, Scroll 生态再迎壮大

BlockChain先知

Linux设备驱动系列(六)——文件操作

Linux内核拾遗

Linux内核 设备驱动

一文学会使用valgrind工具进行程序内存检查

Linux内核拾遗

c c++ 内存泄露 Valgrind

事业-最佳实践-个人-公开场合演讲

南山

最佳实践 演讲 公开场合演讲

Penpad 再获 Animoca Brands 投资,全新生态历程

加密眼界

嵌入式软件的自动化测试工具TESSY:产品概述、使用场景及功能价值介绍

龙智—DevSecOps解决方案

集成测试 测试 单元测试 嵌入式软件测试 Tessy

适用于芯片行业的开发及管理工具:版本控制、持续集成、代码分析及项目管理工具介绍

龙智—DevSecOps解决方案

项目管理 Jira Atlassian Helix Core 版本控制工具 芯片研发

使用ReadyAPI自动化测试工具,模拟高负载场景,准确测试API性能,确保你的App不宕机

龙智—DevSecOps解决方案

UI自动化测试

01 RCLI

独钓寒江

​Rust

【开源鸿蒙】下载OpenHarmony 4.1 Release源代码

码匠许师傅

git Linux 开源 鸿蒙 OpenHarmony

2024-04-27:用go语言,在一个下标从 1 开始的 8 x 8 棋盘上,有三个棋子,分别是白色车、白色象和黑色皇后。 给定这三个棋子的位置,请计算出要捕获黑色皇后所需的最少移动次数。 需要注意

福大大架构师每日一题

福大大架构师每日一题

可替代IBM DOORS的现代化需求管理解决方案Jama Connect,支持数据迁移及重构、实时可追溯性、简化合规流程

龙智—DevSecOps解决方案

需求管理工具 jama IBM DOORS

京东JD商品sku信息API返回值详解:轻松获取商品规格

技术冰糖葫芦

API boy api 货币化 API 接口 pinduoduo API

Penpad 再获 Animoca Brands 投资,全新生态历程

石头财经

Animoca Brands 投资了Penpad, Scroll 生态再迎壮大

股市老人

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