`
ron
  • 浏览: 30616 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

.NET商业应用架构所要解决的若干问题

阅读更多

.NET的WEB商业应用架构所要解决的若干问题(原创)

微软风风火火地发起了.NET革命,至今已经有4年的时间了,就从其本质的CLR和C#语法上来说,确实比J2EE要进步不少,连Martin Flower在举例说明OO方法时,都不自觉地使用C#来表达。然而若从商业应用的角度上来讲,微软却落后J2EE太多,这主要是从商业应用架构上来说。J2EE由于老主宗SUN公司相对弱势,导致不能很好地控制局面,因此J2EE阵营在发展初期经历了镇痛,但终于依靠开源来达到了空前的盛况,J2EE阵营注重标准、开放、良好架构的原则,并且现在也开始从微软最擅长的易用性向.NET发起攻击,J2EE对于.NET的优势恐怕要持续地保持下去了。反观.NET阵营,商业气息浓烈,由于微软的强势,导致任何的民间组织都倍受压力,微软的发展或者说插入点是从易用性出发,从一些hello world或者petstore的小项目来说,确实有不少优势,仿佛任何的项目都可以在弹指间完成,然后对于大项目事实上是这样的吗?微软的这些易用性通常靠鼠标点击来生成hard-code的代码,从重用性、维护、扩展角度上都要要付出巨大的代价。微软阵营习惯了去使用微软提供的API来完成项目,.NET阵营的特点是封闭、寡头执政、易用。从微软现在的情况看充其量只能在CLR和C#(JRE,和JAVA语法)或者说基础架构上对J2EE有较大优势,但是说到上层的OR-Mapping、表现层框架、AOP架构等,微软几乎无招架之力,而这些就是构建商业应用所最需要的架构,在很多.NET项目中很多的这些商业架构都是靠项目组自己来完成,其痛苦不堪而言。.NET和J2EE之争,仿佛就是6万人组成的严密组织纪律的高素质专业军团和几百万人组成的民间机构体制的竞争,是从"易用性->架构"和"架构->易用性"的2条路线方针的竞争,孰胜孰败,只有靠历史来评判了。

突然发现我扯远了,呵呵!也无所谓了,突来兴致多说点废话了,全当在.NET这个阵营里面生活太久的一些牢骚了。下面我言归正传,来谈谈.NET商业应用架构。首先,我想表达一下,为什么要有提出这个商业架构的问题,我想解决的是什么问题,总得来说商业架构所要解决的是:提高软件质量、加快开发效率、降低维护成本。下面就从商业应用的各个方面来说明:

  1. OR-MAPPING:我认为这是首要解决的问题,是整个商业应用中最需要提高的部分。有了OR-MAPPING,可以将以数据为中心的开发方式转移到以Model为中心的开发方式。不解决这个问题,永远也实现不了在《企业应用架构模式》一书中所说的三种基本模型种的最高层次Domain Model模式。不解决这个问题,3层企业应用中关键层次商业逻辑层的OO就不得执行。
    问题:要求实现商业逻辑和持久化的解耦,项目要求可以跨数据库。
    可能的解决方案:NHIBERNATE(现出于beta版本)、IBatis(1.0版本)
  2. 复杂查询:OR-Mapping不能解决复杂查询的问题,用NHIBERNATE中的HQL也不能很好解决这个问题(若查询牵扯到子对象,必须发送额外的查询语句,以及OR-Mapping中的entity不能完全容纳查询所需的字段)。
    问题:各种商业所需的复杂查询实现需要动态构建很多查询语句,不能很好的统一,也不能很好的维护。
    可能的解决方案:IBatis(1.0版本)
  3. 数据字典:或者说meta-data,即描述数据结构的结构
    问题:很多商业项目要求可自定义字段,自定义报表,自定义查询列表等功能。另外,商业项目中很多查询条件、列表的代码过多重复。
    可能的解决方案:暂无,不过可以参考MSCRM中的meta-DATA的实现。
  4. MVC:
    问题:不用说了。
    可能的解决方案:MAVERICK.NET、UIPB
  5. 事务:
    问题:
        1、数据库的事务不能实现business transaction的功能,要实现required、nonsupported、supported、等形式的事务功能。
        2、开启事务、提交事务,回滚事务的代码过于重复,靠人为约束来实现难免会引入bug。
    可能的解决方案:Enterprise Services  (COM+)(但是将引入难以部署的问题)
  6. 统一页面中的数据验证、读取、和加载
    问题:很多页面的数据验证、读取、加载都类似,但重复地写过于繁琐。要求如日期、金额等格式在整个项目中统一,开发人员在每个页面中做同样的繁琐操作不利用维护。
    可能的解决方案:无
  7. 日志:
    问题:在每个商业应用中,都要写很多类似的日志代码,过于繁琐。
    可能的解决方案:Spring.NET、Aspect#、EDRA
  8. 权限验证:
    问题:在每个商业应用中,都要写很多类似的权限验证代码,过于繁琐。
    可能的解决方案:Spring.NET、Aspect#、EDRA
  9. 解决并发冲突:
    问题:在WEB开发中的并发问题尤其严重,每个页面都可能并多个用户同时打开,架构要处理这种并发问题。
    可能的解决方案:《企业应用架构模式》中的第6章描述。


浅水滩 2005-01-30 22:16 发表评论
分享到:
评论

相关推荐

    VB.NET商品销售管理信息系统

    - **C/S架构**: C/S(Client/Server,客户端/服务器)架构是一种典型的两层架构,其客户端包含一个或多个应用程序,而服务器端通过网络提供服务。在本系统中,客户端负责与用户交互,并将数据发送到服务器端进行处理...

    ASP.NET信息管理系统开发实例导航

    ***是一种广泛使用的服务器端Web应用程序框架,它允许开发者使用.NET框架快速构建和部署动态网站、应用程序和Web服务。***信息管理系统开发实例导航一书,以实例为引导,详细介绍了***在信息管理系统开发中的应用,...

    电子商务网站(毕业论文)

    本文主要探讨了一种基于ASP.NET和ADO.NET技术的电子商务网站设计与实现,使用C#编程语言,配合SQL Server 2000作为后台数据库,构建了一个B/S(Browser/Server,浏览器/服务器)架构的商务平台。这个系统旨在提供一...

    计算机软件-商业源码-拾色器PB9.0源码.zip

    PowerBuilder 9.0是Sybase公司在2006年发布的一个版本,提供了许多新特性,如增强的数据窗口性能、改进的.NET集成以及对Web应用程序的支持。因此,这个源码可能不仅限于桌面应用,也可能包含了与Web相关的功能。 ...

    网上购物的中英文翻译

    接着,我们深入研究了组件化开发在电子商务领域中的若干研究问题和未来发展方向。这包括如何实现组件之间的无缝协作,确保跨平台兼容性,以及建立标准化的组件库以促进大规模重用。 分布式对象标准,如CORBA...

    苦菊OA协同OA办公系统V2019(价值10万元的OA源码)

    其功能包含有个人办公、工作流、公文、人力资源、行政办公、档案、项目管理、知识库、在线交流、CRM系统等,含盖60多个功能点,适合于企业领域内若干规范和要求,构成高性能、高可用、高质量、底成本的信息化管理...

    系统集成项目管理工程师

    - **J2EE架构、.NET架构**:J2EE(Java 2 Platform, Enterprise Edition)和.NET是两种广泛使用的软件开发框架,分别基于Java和C#语言,适用于企业级应用的开发。 - **工作流技术**:工作流是指一系列按照预定义规则...

    数据库课程设计——图书管理系统的开发任务书.docx

    - **简介**:WinForm 是 .NET Framework 中的一部分,用于开发 Windows 桌面应用程序。它提供了一系列丰富的控件和工具,可以帮助开发者快速创建用户界面。 - **特点**:界面友好、操作简便、易于上手。通过继承和...

    如何在 C#中实现 OPC 数据访问

    这个API提供了若干个类库,如OPC DA(Data Access)和OPC UA(Unified Architecture),分别对应OPC的旧版和最新版标准。OPC DA主要用于传统PLC通信,而OPC UA则扩展了安全性和互操作性,支持更现代的网络架构。 1....

    苦菊OA软件_大型PHP开源OA系统.zip

    其功能包含有个人办公、工作流、公文、人力资源、行政办公、档案、项目管理、知识库、在线交流、CRM系统等,含盖60多个功能点,适合于企业领域内若干规范和要求,构成高性能、高可用、高质量、底成本的信息化管理...

    新版Android开发教程.rar

    � 采用了对有限内存、电池和 CPU 优化过的虚拟机 Dalvik , Android 的运行速度比想象的要快很多。 � 运营商(中国移动等)的大力支持,产业链条的热捧。 � 良好的盈利模式( 3/7 开),产业链条的各方:运营商、...

Global site tag (gtag.js) - Google Analytics