日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

学习之模块架构 DotNetNuke 6

發(fā)布時(shí)間:2024/4/15 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 学习之模块架构 DotNetNuke 6 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前面的博客介紹了:

如何在本地安裝DNN6

如何創(chuàng)建DNN模塊

?

博客園原文地址 : ?學(xué)習(xí)之模塊架構(gòu) DotNetNuke 6

?

這篇博客主要是講模塊的架構(gòu)和加載,以及模塊與DotNetNuke門戶網(wǎng)站(Portals)系統(tǒng)的關(guān)系。充分了解模塊可以幫助DNN開(kāi)發(fā)者根據(jù)需要更清晰的構(gòu)建模塊。

在DNN中,模塊是一個(gè)可插入的用戶接口組件,用來(lái)處理請(qǐng)求并生成動(dòng)態(tài)的內(nèi)容。它只能出現(xiàn)在ASP.NET頁(yè)面上,而頁(yè)面可以包括任意數(shù)量的模塊"實(shí)例"。

整個(gè)模塊架構(gòu)包括四個(gè)部分 : 門戶網(wǎng)站(Portal),頁(yè)面(Tab),模塊(Module)和模塊容器(Container)。

?

  • 門戶網(wǎng)站(Portal)

Portal可以定義為一個(gè)基于Web的應(yīng)用程序,從不同的源聚集內(nèi)容,并寄宿信息系統(tǒng)的表示層(模塊)。下圖描述了Portal的基本架構(gòu),DNN處理頁(yè)面請(qǐng)求時(shí)需要執(zhí)行許多步驟。下述步驟在頁(yè)面初始化的過(guò)程中執(zhí)行,用來(lái)在運(yùn)行時(shí)動(dòng)態(tài)地加載模塊。動(dòng)態(tài)創(chuàng)建的模塊然后就能夠處理它們自己的生存周期,包括諸如初始化、加載、呈現(xiàn)等各種事件。

?

圖一 : Portal的基本架構(gòu)

?

第一步: 頁(yè)面配置檢索(Page Configuration Retrieval)

第1步就是為被請(qǐng)求的頁(yè)面檢索模塊。檢索步驟由許多重要的信息塊構(gòu)成,例如頁(yè)面上出現(xiàn)的各個(gè)模塊、模塊在頁(yè)面上顯示的區(qū)域(即內(nèi)容窗格Pane),以及與每個(gè)模塊相關(guān)聯(lián)的安全角色。

//Default.aspx.cs
//OnInit
//load skin control and register UI js
UI.Skins.Skin ctlSkin = UI.Skins.Skin.GetSkin(this);
//add skin to page
SkinPlaceHolder.Controls.Add(ctlSkin);

//DotNetNuke.UI.Skins.Skin.cs : OnInit()
bool success;
//Load the Module Control(s)
success = Globals.IsAdminControl() ? ProcessSlaveModule() : ProcessMasterModules();

//DotNetNuke.UI.Skins.Skin.cs : ProcessMasterModules()
bool success = true;
if (TabPermissionController.CanViewPage())
{
  //check portal expiry date
  if (!CheckExpired())
  {
    if ((PortalSettings.ActiveTab.StartDate < DateAndTime.Now && PortalSettings.ActiveTab.EndDate > DateAndTime.Now) || TabPermissionController.CanAdminPage() || Globals.IsLayoutMode())
    {
      //dynamically populate the panes with modules
      if (PortalSettings.ActiveTab.Modules.Count > 0)
      {
        foreach (ModuleInfo objModule in PortalSettings.ActiveTab.Modules)
        {
          success = ProcessModule(objModule);
        }
      }

?

第二步: 安全審計(jì)(Security Audit)

第2步就是判斷在上一步中檢索出來(lái)的安全信息。通過(guò)檢查當(dāng)前用戶的角色(是注冊(cè)用戶還是匿名用戶)以及與每個(gè)模塊相關(guān)聯(lián)的查看角色,就可以為當(dāng)前頁(yè)面形成一列經(jīng)過(guò)“授權(quán)”的模塊。

private Boolean ProcessModule(ModuleInfo module)
{
  bool success = true;
  if (ModulePermissionController.CanViewModule(module) && module.IsDeleted == false &&
((module.StartDate < DateTime.Now && module.EndDate > DateTime.Now) || Globals.IsLayoutMode() || Globals.IsEditMode()))
  {
  //...
  }
  //...
}

?

第三步:內(nèi)容注入(Content Injection)

第3步(也是最后一步)就是將“授權(quán)”模塊動(dòng)態(tài)地插入到頁(yè)面上相應(yīng)的內(nèi)容窗格中。在所有的模塊加載之后,每個(gè)模塊就能夠執(zhí)行各自的事件并呈現(xiàn)內(nèi)容。

Pane pane = GetPane(module);
if (pane != null)
{
  success = InjectModule(pane, module);
}

?

  • 頁(yè)面(Tab)

圖二描述了基本的Portal的Tab組件。頁(yè)面本身表示一個(gè)完整的標(biāo)記文檔,由大量的內(nèi)容窗格(Pane)組成,并且在每個(gè)內(nèi)容窗格中還包含大量的模塊。

?

圖二:頁(yè)面組件

?

每個(gè)模塊都包含一個(gè)標(biāo)題、若干裝飾(Container)以及由模塊生成的內(nèi)容。裝飾可以包括若干按鈕、鏈接以及一個(gè)改變模塊狀態(tài)或者執(zhí)行與模塊相關(guān)功能的懸浮菜單。

?

  • 模塊(Module)

正如前面所述,Portal是基于Web的應(yīng)用程序,處理各種請(qǐng)求并生成動(dòng)態(tài)內(nèi)容。每個(gè)模塊都生成自己的標(biāo)記塊(稱為段),再和皮膚的標(biāo)記一起展示完整的文檔。

因?yàn)槊總€(gè)模塊都生成自己的標(biāo)記,所以可以將模塊視為較大應(yīng)用程序中的微型應(yīng)用程序。通常,用戶通過(guò)單擊鏈接或者提交表單(所提交的表單由門戶網(wǎng)站系統(tǒng)及傳遞給相應(yīng)模塊的命令處理)與每個(gè)模塊生成的內(nèi)容交互。

?

  • 模塊容器(Container)

模塊周圍的裝飾稱為模塊容器。通過(guò)容器,用戶能夠與模塊交互,執(zhí)行諸如最小化、最大化以及其他高級(jí)特性(如果用戶擁有該頁(yè)面的編輯特權(quán))的動(dòng)作。

圖三示范了一個(gè)HTML模塊在用戶以編輯特權(quán)登錄時(shí)的模塊容器。這個(gè)模塊容器包含許多項(xiàng),例如擁有一列管理選項(xiàng)的懸浮菜單、模塊的標(biāo)題。

?

圖三:模塊容器

DotNetNuke est?le plus gros?projet open-source?en technologie .Net.

?

轉(zhuǎn)載于:https://www.cnblogs.com/yhuang/archive/2012/03/28/modular_architecture_dnn6.html

總結(jié)

以上是生活随笔為你收集整理的学习之模块架构 DotNetNuke 6的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 99精品免费在线观看 | 国产一区二区激情视频 | 欧美亚洲少妇 | 91网页在线观看 | av成人在线看 | 国产乱码一区 | cao国产| 在线不卡| 91激情| 67194在线免费观看 | 国产最爽的乱淫视频国语对白 | 999zyz玖玖资源站永久 | 500福利视频导航 | 亚洲情趣 | 婷婷久久久久 | 欧美成人aaaa | 亚洲成人黄色网址 | 午夜精品久久久久久久久久久久久蜜桃 | 国产福利在线免费观看 | 国产精品一亚洲av日韩av欧 | 亚洲国产网 | 亚洲第一网站 | 伊人av一区| 亚洲精品国产一区二区 | 国产一区二区精彩视频 | 夫妻自拍偷拍 | 国产精品国产三级国产aⅴ 欧美bbbbbbbbbbbb18av | 日本精品一区二区三区四区的功能 | 亚洲AV无码成人精品国产一区 | 国产一区二区三区久久 | 性做久久久久久 | 色在线看 | 激情小说亚洲图片 | 色涩网站 | 深夜网站在线观看 | 波多野结衣中文一区 | 国产精品视频合集 | 劲爆欧美第一页 | 人妻精品一区二区三区 | 麻豆性视频 | 人人妻人人玩人人澡人人爽 | 韩国久久久久久 | 黄色一级一片免费播放 | 国产女人在线 | а√天堂资源在线 | 老司机午夜免费视频 | 欧美大黄视频 | 91免费网站入口 | 怡红院国产| 日韩中文字幕在线观看视频 | 欧美少妇一区 | 亚洲视频一区二区 | 怡红院毛片| 亚洲精品在线中文字幕 | 69av在线 | 97视频在线观看免费高清完整版在线观看 | 少妇与公做了夜伦理 | 欧美久久久 | 亚洲精品欧美 | 欧美日韩精品一区二区在线观看 | 日韩精品一区在线播放 | 视频在线观看一区二区三区 | 欧美午夜精品久久久久免费视 | 成人精品在线视频 | 瑟瑟视频免费看 | b站大片免费直播 | 中文字幕日韩三级片 | 欧美一区二区不卡视频 | 狠狠撸狠狠干 | 内射国产内射夫妻免费频道 | 日日操夜夜| 熟女高潮一区二区三区 | 成人a级大片 | 国产人伦精品一区二区三区 | 欧美亚洲另类小说 | 毛片大全在线观看 | 吃奶av | 激情伊人 | 欧美日韩成人一区二区在线观看 | 好吊一区二区三区 | 黄色免费视频网站 | 男人资源站| 中文字幕理伦片免费看 | 亚洲香蕉久久 | 色七七网站 | 亚洲天堂高清 | 播播网色播播 | 91视频大全 | 亚洲作爱 | 影音先锋成人资源 | 99产精品成人啪免费网站 | 香蕉精品视频在线观看 | 永久免费在线视频 | 香蕉国产在线 | 国产在线视频一区二区三区 | 欧美黄色高清视频 | 三年中文免费观看大全动漫 | 乱淫的女高中暑假调教h | 97操碰|