写点什么

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

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

关注

评论

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

EAM与ERP有什么区别?

低代码小观

资产管理 企业管理系统 ERP CRM系统 ERP系统

Apipost 多人多角色实时协作 爆赞!!!

Xd

数据库 后端 接口测试 API

【LeetCode】房屋偷盗Java题解

Albert

LeetCode 5月月更

深度学习利器之GPU

AIWeker

人工智能 深度学习 gpu 5月月更

消灭非稳态噪音的利器 - AI 降噪

ZEGO即构

RTC AI降噪 网络降噪

leetcode 34. Find First and Last Position of Element in Sorted Array 在排序数组中查找元素的第一个和最后一个位置(中等)

okokabcd

LeetCode 查找

浅谈SAP顾问未来十年在中国的发展前景

SAP虾客

SAP顾问 技术专家 行业专家

行业分析| 智能安防的发展

anyRTC开发者

人工智能 AI 音视频 安防 快对讲

大数据培训 | Doris数据导入与导出

@零度

Doris 大数据开发

在RPA立项阶段,银行需要做哪三件事?

易观分析

银行

网络空间测绘国内外发展及现状

郑州埃文科技

网络安全 IP地址 网络空间测绘技术

Yii2文件/图片上传实例

Owen Zhang

php

5G 时代,我们需要更便捷的RTC技术服务

曲多多(嗨翻屋)版权音乐

RTC 音乐

【云管理】企业多元化私有云设施管理用什么软件好?

行云管家

云计算 私有云 IT运维 云管理

Apipost 6.0.4版本 支持离线使用

Xd

后端 接口测试 API

【直播回顾】Hello HarmonyOS进阶课程第四课——ArkUI动画开发

HarmonyOS开发者

HarmonyOS

原生即时通讯APP四合一成品聊天软件源码搭建个性化需求定制开发

BeeWorks

JavaScript this全解析

源字节1号

软件开发 前端开发 后端开发 小程序开发

未来3年,远程办公或成普遍现象,如何提高远程办公效率?

BeeWorks

做SAP freelancer 的几个注意事项

SAP虾客

SAP freelancer 黑名单 业界名声

王者荣耀商城异地多活架构设计

哈喽

「架构实战营」

TiDBv6.0与TiDBv5.1.2 TiKV 节点重启后 leader 平衡加速,提升业务恢复速度对比测试

TiDB 社区干货传送门

在线二进制转文本字符工具

入门小站

工具

50万条数据 深挖四川数字经济“发展密码”:四川数字经济发展分析

易观分析

数字经济

喜讯|旺链科技成为TBI数字藏品项目组首批成员

旺链科技

区块链 产业区块链 数字藏品

linux之xargs使用技巧

入门小站

Linux

他做了跟世界首富同样的选择|ONES 人物

万事ONES

如何挑选文档管理软件?

小炮

文档管理

数仓血缘关系数据的存储与读写

NebulaGraph

图数据库 知识图谱 Nebula Graph

java培训 | Mybatis 中的 PreparedStatement 预编译

@零度

mybatis JAVA开发

等保测评师是做什么的?工资怎么样?

行云管家

网络安全 IT运维 等保测评 等保测评师

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