NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

开源 MVC 框架 PixelDragonsMVC.NET 发布

  • 2007-07-02
  • 本文字数:1359 字

    阅读完需:约 4 分钟

近日, 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,可将很多任务在后台直接处理掉。
  • 为了便于开发人员使用,框架外延部分的数据访问和日志操作方面采用了 NHibernate Log4Net 两个框架。

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

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

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


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

2007-07-02 00:541216
用户头像

发布了 61 篇内容, 共 96310 次阅读, 收获喜欢 0 次。

关注

评论

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

《重学Java高并发》手写生产者消费者模型

中间件兴趣圈

高并发 java; 11月日更

架构训练营毕业总结

老实人Honey

架构实战训练营 - 毕业结语

NewBranSTONE

「架构实战营」

linux之我常用的20条命令(之二)

入门小站

Linux

MatrixDB 4.3 发布:持续聚集等6大特性解读!

YMatrix 超融合数据库

数据库 时序数据库 分布式时序数据库

2021全屋智能为何依然进展缓慢?

脑极体

第三期3天AI进阶实战营-Day1任务卡

IT蜗壳-Tango

11月日更

让华为举步维艰,Android曾距离成为国产系统仅一步之遥!

Jackpop

软件工程师的专业素养解读

卢卡多多

11月日更

架构实战营 - 模块七作业

en

#架构实战营

【设计模式】第九篇 - 适配器模式 - 你多大鞋,我多大脚

Brave

设计模式 适配器模式 11月日更

毕业总结

脉动

双十一来袭,阿里技术官终于把高并发系统设计整理成册了(全彩版开源)

Sakura

Java 架构 面试 后端 高并发

在线文本纵向排版工具

入门小站

工具

尝鲜Windows 11一个月,被这3项巨变圈粉了....

Jackpop

系统架构面临的三大挑战,看 Kubernetes 监控如何解决?

阿里巴巴云原生

阿里云 Kubernetes 云原生 系统架构

老板再也不用担心我不会K8s了,哪里不会点哪里,15个开放学习K8s的网址

奔着腾讯去

运维 云原生 Docker Desktop k8s资源 Go 语言

10种黑客类型,你知道几种?

喀拉峻

黑客思维 黑客 网络安全 信息安全

重新认识 nginx 反向代理

liuzhen007

11月日更

如何免费下载学术文献?

Jackpop

用得上的 JavaScript 代码片段和技巧

devpoint

JavaScript LocalStorage reduce 11月日更

财经大课:运用现代经济学分析中国经济的关键常识

石云升

学习笔记 财经思维 11月日更

数字化转型浪潮滚滚 区块链造就可信“数字经济底座”

CECBC

Android端信号处理总结

轻口味

android 音视频 11月日更

架构实战营毕业总结

xyu

架构实战营

算法的本质是什么?程序员如何学好算法?

Sakura

Java 架构 面试 算法

防抖&节流

达摩

js 防抖 节流

算法入门-插入排序

ES_her0

11月日更

架构实战营毕业总结

技术是伙伴

[ 工程师书单推荐] - 年轻人,你渴望力量吗?

baiyutang

11月日更

制度密码经济学:了解区块链的经济影响

CECBC

开源MVC框架PixelDragonsMVC.NET发布_.NET_王翔_InfoQ精选文章