InfoQ

InfoQ

新闻

我的书签

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

该内容已经被标记书签!

标记书签错误,请重试!

Spring.NET在.NET新时代的尴尬

作者 王翔 发布于 2008年2月19日

领域
语言 & 开发,
企业架构
主题
.NET ,
Enterprise Application Blocks
标签
Spring.NET

业界普遍接受的观点是:开发思想是重要的,相对而言用什么平台实现是次要的。从这个意义上看Spring.NET(或者说Spring)在构思框架的核心价值的时,着重面向的领域是“依赖注入”和AOP两个方面,但“分布式调用”以及“基于整个调用栈后动态对象生成”这两个概念对于Spring而言只是方面(Aspect)而已,但对于开发人员而言他俩确实是天天都要面对的问题。

Spring.NET继承Java版Spring的衣钵,在一些.NET项目中已经被采用,并且已经被部分企业用作其开发框架的标准组成部分,但对于更大规模或者更小规模的.NET项目而言他处处给人以高不成、低不就的尴尬感觉:

  • 向上,他不像WCF可以获得微软服务器产品家族的支持,更远远逊色于类似COM+的待遇,但规模比较大的.NET项目又往往需要集成BizTalk、ISA、SMS、Exchange、SQL Server等一系列产品。如果使用Spring.NET(或者加上NHibernate)也就意味着虽然运行着较高版本的服务器产品只能屈就于有限功能集的使用。另外,在Spring.NET的设计中似乎对于运维能力以及性能指标的采集总是基于日志系统的,但如果什么内容都写到日志,这本身就是很大的性能损失;尤其在以WMI为标准的.NET企业环境中,Spring.NET在运维能力设计上存在不小的缺陷;
  • 向下,Spring.NET 1.1在试图弥合其与ASP.NET的差异,不过似乎又慢了一步,因为ASP.NET自己的框架也在随着.NET 3.5的发布发生变化。与此同时,ADO.NET的异步处理能力、LINQ的动态对象映射能力处处都直指Spring.NET的最佳排档——NHibernate,如果准备启用新.NET 3.5开发的团队那么就需要做一个选择,继续跟着3rd开源的衣钵还是跟着.NET自己的技术走。

EntLib 4发布前夕,P&P团队已经在codeplex上公布了相关Unity的计划及其CTP版本,其他的Application Block也陆续迁移到Unity之上。虽然EntLib只是整个.NET开源的沧海一粟,但其风向标意义明显,其企业级特性支持可以直接用于.NET Native的WCF,而对对象的管理则全部交给Unity完成,这个组合不仅可以向上贯通微软一系列服务器产品,也可以与Office System、WMI集成在一起。并且随着微软相关技术平台的升级,WCF和Unity也会逐步更新,而且会与微软的服务器产品、Office System产品、开发工具以及监控产品结合在一起。对于.NET团队,尤其是实施较大规模.NET项目(包括产品集成)的团队而言,这是一个新的选择。

王翔 是一名软件开发工程师、技术作者。27年开发经历、从事产品级软件开发21年。

思想挺好 发表人 Chen Randy 发表于
我来说两句 发表人 张 艺聍 发表于
Re: 我来说两句 发表人 麦 书 发表于
Re: 我来说两句 发表人 张 艺聍 发表于
Re: 我来说两句 发表人 麦 书 发表于
根据项目的情况吧。 发表人 刘 远 发表于
  1. 返回顶部

    思想挺好

    发表人 Chen Randy

    spring.net更多能带来的只是参考和学习其思想

  2. 返回顶部

    我来说两句

    发表人 张 艺聍

    看你是领域对象驱动还是数据库驱动了。LINQ,目前只支持SqlServer,地位有点尴尬。

  3. 返回顶部

    Re: 我来说两句

    发表人 麦 书

    LINQ不仅仅是SQL Server, 已经有10多个组织提供了14个主要数据库产品的驱动了。

    事情明摆着:微软自己做SqlServer版就行了,其他的厂商你要不怕丢掉Windows用户市场,你就等着好了。
    兴许两年后给你提供一个类似当年odbc的驱动,至于支持的力度,是不是拿着Oracle 13g要当8i用,这个就没关系了。

  4. 返回顶部

    Re: 我来说两句

    发表人 张 艺聍

    两年,公司可等不起啊。

  5. 返回顶部

    Re: 我来说两句

    发表人 麦 书

    是啊。其实更等不起的是我们自己。 :)
    技术托拉斯的时代。

  6. 返回顶部

    根据项目的情况吧。

    发表人 刘 远

    这个问题,我觉得也要根据项目的情况吧。
    项目自身也存在生命周期,量体裁衣吧。
    个人真的不看好第三方的东西,包括castle这个级别的框架,优秀的思想,微软都会吸收进来并且融合在自身强大的背景支持当中,在这点上,第三方框架显得弱不经风啊。

深度内容

应用云平台的可用性——从新浪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

特性注入:成功三部曲

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

解析JDK 7的动态类型语言支持

随着JDK 7的发布,字节码指令集终于迎来了第一位新成员——invokedynamic指令。这条新增加的指令是JDK 7实现“动态类型语言(Dynamically Typed Language)”支持而进行的改进之一,也是为JDK 8可以顺利实现Lambda表达式做技术准备。在这篇文章中,我们将去了解JDK 7这项新特性的出现前因后果和它的意义。

Java Remoting远程服务(下)

随着互联网应用的发展,Java分布式远程服务技术受到越来越多的关注,本文将对各种相关实现以示例的形式逐一介绍,并总结其中的优缺点,使读者能够在技术选型时有所准备。这是文章的下篇。