写点什么

开源 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:541769
用户头像

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

关注

评论

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

神奇,声网Web SDK还能这么实现直播中美颜功能

RTE开发者社区

前端 Web RTC 美颜

安卓机上 4G 内存跑 alpaca,欢迎试用轻量级 LLM 模型推理框架 InferLLM

MegEngineBot

开源 大模型 MegEngine LLM

重塑财务计划,拥抱全面预算管理的未来

智达方通

业财融合 全面预算管理 财务计划

iOS MachineLearning 系列(13)—— 语音与音频相关的AI能力

珲少

今日分享丨inBuilder低代码平台有关前端的“道、法、术、器”

inBuilder低代码平台

前端 低代码平台

华为云大数据治理轻量级解决方案为中长尾企业赋能

轶天下事

一文带你直观感受,BPM管理系统如何在低代码平台实现搭建

加入高科技仿生人

低代码 数字化 系统开发 BPM

企业办公转型的出路在哪里?华为云桌面开创办公新形式

轶天下事

业务出海,华为云全球加速服务GA助一臂之力

轶天下事

联合索引该如何选择合适的列?

江南一点雨

MySQL

Alibaba开发十年,写出这本“MQ技术手册”,看完我愣住了

程序知音

Java RocketMQ 消息中间件 Java进阶 后端技术

mac软件卸载不干净怎么办?

真大的脸盆

Mac Mac 软件 软件卸载工具 卸载软件

10年IT老兵亲述SpringCloud开发从入门到实战文档

程序知音

Java 微服务 java架构 Java进阶 spring-cloud

AI与全民开发:挑战和机会并存

草料二维码

AI 无代码 全民开发

去哪儿网异常统计分析实践——Heimdall

Qunar技术沙龙

去哪儿网 Heimdall

看火山引擎DataLeap如何做好电商治理(一):挑战与痛点

字节跳动数据平台

监控 模型 电商 数据平台 DataLeap

开启数字化,传统工厂该如何布局?

优秀

数字化 数字工厂

Alibaba技术官熬夜肝出的,Kafka“限量笔记”牛掰!

程序知音

Java kafka java架构 Java进阶 后端技术

Wallys AP controllers devices/IPQ4019 and IPQ4029 chipsets provide centralized management.

Cindy-wallys

IPQ4019 ipq4029

数据库运维实操优质文章分享(含Oracle、MySQL等) | 2023年4月刊

墨天轮

MySQL 数据库 oracle postgresql 国产数据库

全网更简单的方法,教你一键接入微信公众号,包教包会。包你成功。三包

派大星

ChatGPT

酷家乐x极盾科技:“智能安全决策平台”助力日均十亿级日志分析

极盾科技

数据安全

案例实践|云智慧ITSM产品在利星行汽车的运维实践

云智慧AIOps社区

运维 ITSM ITSM软件 ITSM解决方案 IT 运维

开源工具系列7:Kube-bench

HummerCloud

Kubernetes 云原生安全

【web 开发】生活中大家都喜欢搞模板来规范化操作,抽象类却玩不明白-PHP的抽象类(63)

迷彩

模板 抽象类 三周年连更 抽象方法

流行的DJ音乐混音软件:X Djing - Music Mix Maker for Mac

真大的脸盆

Mac Mac 软件 音乐混音软件

JAVA快速开发框架 一键生成表单模板代码

力软低代码开发平台

阿里云 EMAS & 魔笔:4月产品动态

移动研发平台EMAS

阿里云 DevOps 消息推送 低代码平台 兼容性测试

05.01~05.07 NFT 生态热点汇总

NFT Research

NFT NFT\ #Web3

ChatGPT会如何影响我们,会让我们失业吗?兼与吴军博士商榷 | 社区征文

李韧

人工智能 ChatGPT 三周年征文

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