zoukankan      html  css  js  c++  java
  • 我的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
  • 相关阅读:
    下拉选择框:数字从n到m
    event.target返回事件的目标节点(触发该事件的节点)
    nextSibling使用注意(html的注释)
    mysql导出 csv文件
    ie打印去掉页眉页脚
    jsp标签循环标签体
    String.format字符串格式化方法
    [**奇文共赏**补充问题] 据说看五遍能懂的人智商 > 200
    [转] ARP的处理办法!
    [转] 一张废手机卡的作用大全 (没试过)
  • 原文地址:https://www.cnblogs.com/ashei/p/1374195.html
Copyright © 2011-2022 走看看