InfoQ

InfoQ

新闻

我的书签

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

该内容已经被标记书签!

标记书签错误,请重试!

开源MVC框架PixelDragonsMVC.NET发布

作者 王翔 发布于 2007年7月2日

领域
架构 & 设计,
运维 & 基础架构,
语言 & 开发
主题
Web框架 ,
开放源代码 ,
.NET
标签
MVC ,
ASP.NET

近日,Pixel Dragons发布了基于ASP.NET 2.0的MVC开源框架——PixelDragonsMVC.NET(之前叫SimpleMVC.NET),并从很多关键企业应用特性方面,尝试对ASP.Net现有框架进行增强。作为被普遍使用的架构模式,MVC有效的隔离了数据与UI之间的关系,ASP.NET本身就是一个典型的MVC实现,但为了获得很多高级特性的支持,需要应用自己完成很多代码才可以获得。PixelDragonsMVC.NET在很多方面提供了不错的支持:

  • 它有自己独立的配置文件,该文件按照M-V的方式组织,并且为每个M和V提供逻辑命名,就象应用中经常使用的逻辑数据库连接一样,有效隔离ASP.NET逻辑与实际M和V关系,以控制反转的方式将实际M和V的执行交由框架完成。
  • 借鉴了Java社区中MVC的实现,该框架也支持每个Controller可以支持多Action特性。虽然不是必须,但随着应用规模的扩大,1:1的Controller:Action将会使应用关联更加复杂,与其将某个业务实体或者应用的某个功能领域与多个Controller产生M:N的交互,不妨将Controller作为“挡箭牌”,由他同时管理多个Action。
  • 随着AJAX的普及,View的概念也逐渐出现Server Side和Client Side交叉的情况,该框架提供了一个轻量的共享(Shared)UI特性,目的很简单——无论Server还是Client都可以尽量共享同一段UI代码。
  • 照顾到中小型项目的使用要求,该框架对事务提供了简化的支持手段,从配置系统中获取的事务控制信息被“嵌”在HttpContext中,进而在Server端指导NHibernate应该对具体Action启用何种事物机制。
  • 在对ASP.NET Request的处理上,该框架作为一个HttpHandler被配置到web.config中,对于所有的.ashx文件进行拦截(可配置为其他扩展名),根据需要调用相应的Controller和View,可将很多任务在后台直接处理掉。
  • 为了便于开发人员使用,框架外延部分的数据访问和日志操作方面采用了NHibernateLog4Net两个框架。

但从企业应用需要看,这个框架还有很多不足的地方。

  • 它仅仅支持ASP.NET,而不能用于Windows Form,所有操作的隔离环境限于具体HttpContext,而没有对线程提供支持。
  • 框架自身有些封闭,数据访问部分和事务控制部分几乎本地采用了Nhibernate,向上无法通过定制,切入Enterprise Library,向下无法让项目人员使用简洁如SqlHelper的访问机制。
  • 其定位有些尴尬,如果确实服务于中小型应用,在Visual Studio.NET环境下,C、V混合虽然是被普遍反对的方法,但实际开发中出于进度和人员技能的限制,或多或少会出现,学习使用一个新的MVC框架似乎有些繁琐;在大规模企业应用中,这个框架扩展性又显得不够。

尽管如此,如果项目已经选择NHibernate进行ASP.NET项目开发的话,该框架可以作为一个不错调度机制集成。经过它的“梳理”,在项目页面的不断修改和充实情况下,依然可以在代码外围——配置文件中管理他们,尤其是Controller可以根据需要同时激活多个Action。另外,相对“庞大”的UIP而言,PixelDragonsMVC.NET专注而且简洁很多,学习门槛也非常低。


作者简介:王翔,全国海关信息中心高级架构师,从事海关主要广域分布式系统的设计和实施,多次参与各业务系统的优化。此外,作为信息安全工作组副组长,他还一直致力于应用密码技术和公钥基础设施保障海关业务的安全运行。此外,他还是《程序员》杂志的专栏作者。

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

深度内容

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

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

特性注入:成功三部曲

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