Ima*_*ehi 1 asp.net-mvc plugin-architecture orchardcms modular-design clean-architecture
我正在和果园一起工作.写这样一个项目是我的梦想!所以我开始研究一个回合.关于果园感兴趣的是,果园是mvc项目,但为什么它的网络层解决方案中没有任何模型,视图和控制器?它使用 CleanArchitecture或某些特定的架构像这样?
我试图在果园文件中了解这个案例,但我没有找到任何关于它的描述.
实际上,Orchard是一个基于MVC的项目,它本质上确实有模型,视图和控制器.但它提供的远不止于此.
在我看来,要理解的关键是,在核心,请求由给定的控制器处理,该控制器构建模型,并返回使用此模型的视图.Orchard增加的是它如何构建特定模型,以及如何选择视图来显示该模型.
考虑通过导航到具有别名"/ about"的内容项来请求内容项.
会发生什么是ASP.NET路由将启动,已配置为匹配所有内容项的别名.将找到"/ about"的路由,它由Contents模块的ItemController处理(Orchard中的模块在概念上与MVC区域相同).该ItemController将建立所请求的内容项目,这被称为动态模型形状.形状是Shape类的一个实例,它包含有关形状的元数据,例如形状的名称.基于此信息,Orchard利用视图引擎选择适当的Razor 视图来渲染形状对象.
所以你看,所有基本的MVC都会发挥作用.Orchard只是在其上添加了一个强大的基础架构,以提供先进而灵活的渲染系统,例如将内容项转换为形状,然后通过视图引擎将其转换为HTML.但最终,它主要是关于创建视图使用的模型的控制器.
| 归档时间: |
|
| 查看次数: |
125 次 |
| 最近记录: |