我的CMS开发记-4 介绍一下DotNetNuke的系统执行流程

       有朋友说应该写个大致结构出来。想想也有道理,那么我就来介绍一下Dotnetnuke的执行流程。基本上我这个就是照搬他的

基本思路

    一个站点,无论其内容多么丰富,频道,栏目等无论有多少,其最终的表现形式终归是一个一个页面。系统直接对页面进行处理,至于页面上放什么内容,这个没有关系,放什么模块,就呈现什么内容。和传统CMS系统的 "首页",“列表页”,“终端页”的三大类分类完全不同,我们认为,无论是首页也好,列表页也好,它最终无非还是一个"页面"。而只要是页面,那它就一定有如下特点:上面可以有若干区域,每个区域显示若干内容。在此系统中,如果加载了 “文章列表模块”那么就是列表页,如果加载了“文章模块”那么就是终端页。

特点

一、整个站点只有一个页面。非常便于集中管理。

二、所有功能模块之间可以互不相关。便于扩充。

站点主要信息都在数据库中集中存储,各页面信息也是统一管理,甚至所有url的生成也集中在一处管理,非常便于后期urlrewrite等的处理。

系统运行基本流程

系统首先请求唯一的页面/Default.aspx.

根据参数tabid=? 来判断请求的是哪个页面。

权限判断。如果不满足权限则重定向到登录页。

读取页面信息。判断应加载那个页面皮肤并加载之。

页面皮肤根据页面模块信息加载功能模块。

各功能模块执行各自自己的逻辑,最终在/Default.aspx页中显示页面呈现的最终结果。

/Default.aspx执行结束,一次请求结束.

基本上DotNetNuke的思路就是这些,你要说有啥深不可测的技术么也没有,关键是皮肤部分,以及执行步骤部分有不少改进的空间。

DotNetNuke的不爽之处  

         1,皮肤创建问题。它使用 td,div标记作为容器。这样会导致最终页面上会出现许多 id="ctl000_XX"之类的标记。这些标记说不定在啥时候会和美工写的CSS其反应.

             对此我的解决方案是:全部使用placeholder做容器,这样页面上就不会有多余的id了

         2,权限问题。这个东西部署时真是麻烦,因此我特别注意了这个问题.

        我做的山寨dotnetnuke已经可以跑了,欢迎大家参观!

地址: http://www.dnnlite.com

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Web项目聚集地

Javascript中的异步

822
来自专栏编程

重构的些许收获

题图:Pixabay 这个项目开始之初,赶时间上线。很多地方基本没怎么管代码规范,直到一期完毕回过头来看之前写的代码,不忍直视。为了之后接手的人能更加轻松,也为...

20010
来自专栏vue学习

6.vue-router之命名路由和命名视图

① 官方文档的解释:https://router.vuejs.org/zh/guide/essentials/named-routes.html 就是在rou...

1071
来自专栏Django中文社区

评论

创建评论应用 相对来说,评论其实是另外一个比较独立的功能。Django 提倡,如果功能相对比较独立的话,最好是创建一个应用,把相应的功能代码写到这个应用里。我们...

6126
来自专栏前端知识分享

第214天:Angular 基础概念

  + https://github.com/angular/angular.js/releases

1223
来自专栏Golang语言社区

Golang语言--开发游戏服务器需要了解的知识

我们以linux环境为列给大家讲解: 1 熟悉网络编程 网络编程主要是涉及到服务器与客户端间的通信,游戏开发中多数采用长链接的形式;短...

39312
来自专栏老九学堂

Java开发常用工具

Java开发常用工具 小贴士 Java是目前最流行的软件开发语言,其IDE环境也备受开发者关注,IDE可以极大的提高开发速 一 UltraEdit ? Ultr...

3465
来自专栏NetCore

不错的node.js入门

关于 本书致力于教会你如何用Node.js来开发应用,过程中会传授你所有所需的“高级”JavaScript知识。本书绝不是一本“Hello World”的教程。...

4568
来自专栏H2Cloud

C++执行内存memcpy的效率测试

在进行memcpy操作时,虽然是内存操作,但是仍然是耗一点点CPU的,今天测试了一下单线程中执行memcpy的效率,这个结果对于配置TCP epoll中的wor...

4514
来自专栏Java爬坑系列

C语言dll文件的说明以及生成、使用方法

  最近在搞一些小项目,由于要涉及到跟其它语言进行交互,动态链接库变成了不二的选择。为此也查阅了很多资料,将动态链接库的相关知识在此做一个整理。 一、动态链接...

5186

扫码关注云+社区

领取腾讯云代金券