iT邦幫忙

DAY 9
4

DotNetNuke的學習心得系列 第 5

[鐵人賽Day9]第一個DotNetNuke模組-Hello DotNetNuke

終於要開始寫模組了,不過這只能算是個前菜而已,學習程式的人多少都會碰到Hello world的範例,所以這一篇我們就來個Hello DotNetNuke學習一下怎麼開發DotNetNuke的模組吧!
首先,必須先介紹模組的型態,DotNetNuke的模組分為三種不同的型態,分別是View、Edit、Setting,也就是模組的檢視、編輯和設定,以之前介紹的HTML模組(參考這篇)來說,使用者看到的結果就是View型態的控制項,而管理者在編輯HTML內容的部份就是Edit型態的控制項,而設定HTML模組的Title標題就是使用到Setting型態的控制項。

這一篇的Hello DotNetNuke先從簡單的View控制項開始,建立一個「ASP.NET 空白 Web 應用程式」專案,並且將專案命名為「Hello DotNetNuke」。(沒有安裝Visual Studio的可以從這邊下載Visual Studio Express 2012 for Web免費版)

專案檔案可以自行選擇儲存的位置或者是放在網站目錄中的DesktopModules目錄,並在裡面建立Hello DotNetNuke目錄。

接著在專案中加入DotNetNuke.dll的組件參考(網站的bin目錄中),然後加入新的Web使用者控制項(User Control),並且命名為「View.ascx」。(View只是方便識別,也可以是HelloDotNetNukeView)

這個Hello DotNetNuke的範例非常的單純,所以我們只需要在View.ascx中加入「Hello DotNetNuke」文字,在View.ascx.cs檔案將繼承的父類別修改為「DotNetNuke.Entities.Modules.PortalModuleBase」。

PortalModuleBase是網站模組的基底類別,其中有許多DotNetNuke寫好提供給模組開發人員使用的功能,後續的章節再慢慢介紹。

修改完View.ascx和View.ascx.cs檔案之後,大致上就完成Hello DotNetNuke模組了,只是我們還必須讓它能夠使用DotNetNuke的安裝精靈將模組安裝到DotNetNuke網站中,所以我們還必須在專案中加入一個XML檔(或文字檔),並且將檔案命名為「HelloDotNetNuke.dnn」,這是DotNetNuke定制的安裝組態檔,用來告訴DotNetNuke的安裝程序必要的資訊,格式如下:

<dotnetnuke type="Package" version="5.0">
  <packages>
    <package name="HelloDotNetNuke" type="Module" version="01.00.00">
      <friendlyName>HelloDotNetNuke</friendlyName>
      <description>DotNetNuke模組範例</description>
      <iconFile />
      <owner>
        <name>MicroDream Corporation</name>
        <organization>MicroDream Corporation</organization>
        <url>http://www.microdream.com.tw</url>
        <email>kenny@microdream.com.tw</email>
      </owner>
      <license />
      <releaseNotes />
      <dependencies>
        <dependency type="CoreVersion">06.00.00</dependency>
      </dependencies>
      <components>
        <!-- <component type="Script">
          <scripts>
            <basePath></basePath>
            <script type="Install">
              <name>01.00.00.SqlDataProvider</name>
              <version>01.00.00</version>
            </script>
            <script type="UnInstall">
              <name>Uninstall.SqlDataProvider</name>
              <version>01.00.00</version>
            </script>
          </scripts>
        </component> -->
        <component type="Module">
          <desktopModule>
            <moduleName>HelloDotNetNuke</moduleName>
            <foldername>HelloDotNetNuke</foldername>
            <businessControllerClass />
            <supportedFeatures />
            <moduleDefinitions>
              <moduleDefinition>
                <friendlyName>HelloDotNetNuke</friendlyName>
                <defaultCacheTime>0</defaultCacheTime>
                <moduleControls>
                  <moduleControl>
                    <controlKey />
                    <controlSrc>DesktopModules/HelloDotNetNuke/View.ascx</controlSrc>
                    <supportsPartialRendering>True</supportsPartialRendering>
                    <controlTitle />
                    <controlType>View</controlType>
                    <iconFile />
                    <helpUrl />
                    <supportsPopUps>True</supportsPopUps>
                  </moduleControl>
                </moduleControls>
              </moduleDefinition>
            </moduleDefinitions>
          </desktopModule>
        </component>
        <component type="Assembly">
          <assemblies>
            <basePath>bin</basePath>
            <assembly>
              <name>HelloDotNetNuke.dll</name>
            </assembly>
          </assemblies>
        </component>
        <component type="File">
          <files>
            <basePath>DesktopModules\HelloDotNetNuke</basePath>
            <file>
              <name>View.ascx</name>
            </file>
          </files>
        </component>
      </components>
    </package>
  </packages>
</dotnetnuke>

(這篇先不針對dnn檔案說明,後續的文章會有較多的介紹。)

最後針對專案執行「建置」(Build Project),因為我們需要專案產生出來的dll檔案。有了這些檔案之後,我們就可以把它們”打包”成DotNetNuke的模組安裝檔-Zip檔。

為了不錯亂掉,所以我們找個地方建立一個新的資料夾,命名為HelloDotNetNuke,資料夾內再新增一個Bin資料夾,將專案建置出來的dll檔案放在Bin資料夾內,其它的檔案(如下)則放在HelloDotNetNuke資料夾內。

需要的檔案有:

1.HelloDotNetNuke.dll (放Bin資料夾內)
2.View.ascx
3.HelloDotNetNuke.dnn
注意:專案檔和web.config檔這些不在上列的檔案都不需要。

把這些檔案壓縮成Zip檔。

在網站中登入管理者權限,在Admin選單中選擇「擴充套件」項目:

在擴充套件的頁面選擇「擴充套件安裝精靈」,接著就和安裝語系檔一樣,挑選剛才壓縮的Zip檔,持續按「下一頁」,精靈會自動根據dnn檔案內的資訊將模組安裝好。




安裝完成後,在擴充套件頁面的模組列表中就會看到我們剛才安裝的Hello DotNetNuke模組。

我們試著在TestPage中新增HelloDotNetNuke模組(註),將它放在leftPane的區域,最後完成的訪客瀏覽畫面如下:

註:忘了TestPage和新增模組的方式嗎?參考這篇吧!

(本文同步發表於泰克哪裡去部落格)

[鐵人賽Day1]DotNetNuke簡介
[鐵人賽Day2]DotNetNuke安裝前置作業
[鐵人賽Day3]DotNetNuke安裝-傳統方式安裝在IIS
[鐵人賽Day4]DotNetNuke安裝-透過Web PI安裝
[鐵人賽Day5]DotNetNuke安裝-使用Windows Azure Website
[鐵人賽Day6]DotNetNuke網站結構說明
[鐵人賽Day7]安裝DotNetNuke語系
[鐵人賽Day8]DotNetNuke-新增頁面與模組
[鐵人賽Day10]DotNetNuke模組的多國語系
[鐵人賽Day11]安裝DotNetNuke專案範本
[鐵人賽Day12]DotNetNuke模組設計範本–SimpleModule(1)
[鐵人賽Day13]DotNetNuke模組設計範本–SimpleModule(2)
[鐵人賽Day14]DotNetNuke模組設計範本–SimpleModule(3)
[鐵人賽Day15]DotNetNuke模組設計範本–SimpleModule(4)
[鐵人賽Day16]DotNetNuke使用篇–會員帳號設定(User Account Settings)
[鐵人賽Day17]DotNetNuke使用篇–第三方帳號驗證
[鐵人賽Day18]DotNetNuke使用篇–管理使用者帳號、角色
[鐵人賽Day19]DotNetNuke使用篇–建立子網站
[鐵人賽Day20]DotNetNuke使用篇–內容多語系化
[鐵人賽Day21]DotNetNuke使用篇–Host設定介紹
[鐵人賽Day22]DotNetNuke使用篇–網站設定(Site Settings)介紹
[鐵人賽Day23]翻譯DotNetNuke–使用語言編輯器
[鐵人賽Day24]DotNetNuke的網頁選單(Menu)翻譯
[鐵人賽Day25]設定DotNetNuke的Email範本
[鐵人賽Day26]DotNetNuke寄送郵件功能介紹
[鐵人賽Day27]查看DotNetNuke的執行記錄–事件檢視器(Log Viewer)介紹
[鐵人賽Day28]維護DotNetNuke的清單列表(List)–在Profile中可以下拉選擇台灣的縣市
[鐵人賽Day29]DotNetNuke樣式設計–Skin和Container簡介
[鐵人賽Day30]尋找更多的DotNetNuke擴充套件(Module、Skin)


上一篇
[鐵人賽Day4]DotNetNuke安裝-透過Web PI安裝
下一篇
[鐵人賽Day10]DotNetNuke模組的多國語系
系列文
DotNetNuke的學習心得27
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

0
鳴人
iT邦新手 2 級 ‧ 2013-10-03 01:21:48

ㄟ害....
過了一天突然發現有一個小錯誤…驚
忘了已經編譯成dll檔案就不需要.cs檔案了…暈

我要留言

立即登入留言