dnn6 入門系列:二 怎么搭建dnn6解決方案?


導言:

醞釀了幾天,終於想好怎么開始下一節了.實在是不容易.接下來我將介紹怎么搭建dnn6解決方案.

續接:

找齊這些工具之后,迫不及待的想開始進行開發了,這個時候,一個很基本的問題出現在我們的眼前,怎么組織dnn6的項目結構.現在比較流行三層架構,那么必須的,首先有一個解決方案,很明顯,dnn6安裝的網站就是View,至於其它的,可以很自由,熟悉什么框架技術或者持久層技術就加上好了.最后就是加頁面的問題,是整個項目的加,還是一頁一頁的加進去.所以,個人覺得創建dnn6項目分成兩種方法.

先看基本的dnn6項目結構.然后將一步步介紹怎么加頁面.


1 基本dnn6項目結構

1.         一頁一頁的加.

dnn網站的desktopmodules下增加web用戶控件.


2 增加頁面目錄

下面舉個例子,試試這種效果.以下是步驟.

1)      在該目錄下新建一個Test文件夾,然后增加一個WebUserControl.名稱為Example.

2)      修改代碼文件的基類為DotNetNuke.Entities.Modules.PortalModuleBase.保存.

3)      往頁面上拖兩個控件.一個lable,一個button.編寫簡單的button事件.

protected void Button1_Click(object sender, EventArgs e)

    {

        this.Label1.Text = "my first dnn pages!";

    }

4)      Build 解決方案,你會發現如下錯誤.


3 常見錯誤

解決方案是:點擊這個錯誤,把這個頁面排除在項目之外就可以解決,實際上系統對基本沒有使用.

5)      如果出現沒有定義控件的錯誤,在哪個webUserControl下增加一個designer文件.因為增加的時候比正常的少了.可能發現不了.

6)      host身份登錄到網站中.進入Extentions功能塊中.


4 進入host下的Extentions塊中.

Edit模式下,選擇創建新擴展.(create new extention)


5 增加新擴展

 

7)      填寫對應的信息,選擇Module.

 


6 填寫模塊信息

8)      之后在ExtentionModule下找到Example,點那支筆,增加模塊定義和控件.控件就是剛剛增加的那個頁面.然后保存.


7 增加模塊定義和控件.

9)      增加頁面,並在頁面上增加模塊.


8 增加頁面


9 增加模塊

最后,就能看到效果了.如下圖.


10 最后效果

 

2.         使用工具,整個項目都加進去.

個人覺得,做頁面的時候最好不要把網站加進去,因為這個網站只要一編譯或者一調試就容易出錯,直接往上面加就好了.廢話少說,先看目錄結構吧!


11 目錄結構

下面看步驟吧!

1)        往解決方案中增加新項目.注意項目所在位置為網站的desktopMoudules文件夾.


12 增加頁面項目

2)        重新設置項目的屬性.


13 設置項目屬性

這里要查看下該項目下是否有web.Config文件,有的話就刪掉,以免跟網站的配置文件矛盾.

3)        增加頁面.

增加頁面ViewStudent.ascx,操作跟前面類似.下面貼出代碼.

<%@ Control Language= " C# " AutoEventWireup= " true " CodeBehind= " ViewStudent.ascx.cs " Inherits= " FirstModule.ViewStudent " %>
<div>
<p>
交談中請勿輕信匯款、中獎信息、陌生電話,勿使用外掛軟件。

飄動的心( 251414041)   9: 56: 01
WE7 CMS如何?
    淺 陌( 254083034)   9: 56: 10
一直用
貓小喵( 381574171)   9: 56: 12
爛 
(來自手機QQ: http: // mobile.qq.com/v/ )  
飄動的心( 251414041)   9: 56: 30
爛????
    淺 陌( 254083034)   9: 57: 04
和DNN比當然爛了- -
    淺 陌( 254083034)   9: 57: 12
和國內那些比還算好吧
飄動的心( 251414041)   9: 57: 16

飄動的心( 251414041)   9: 57: 23
DNN什么都要開自己開發
飄動的心( 251414041)   9: 58: 00
人家還好KOOBOO比DNN還要好呢
郭龍( 51829747)   10: 03: 36
網站 這個東西,看得見的東西一般都得自己開發,DNN還不錯,有那么多可以花點錢就能買的 東西,省多少開發時間啊
飄動的心( 251414041)   10: 08: 32
WE7 性能如何?
    淺 陌( 254083034)   10: 09: 58
沒什么感覺,就是做個企業站,沒測試過
飄動的心( 251414041)   10: 10: 31
作個企業站要動這么大個東西?
    淺 陌( 254083034)   10: 15: 29
沒什么大的啊,方便不是
飄動的心( 251414041)   10: 15: 36
WE7有很全的文檔啊
飄動的心( 251414041)   10: 16: 17
DNN
KOOBOO  都是英文的
    淺 陌( 254083034)   10: 16: 30
網站上的文檔很多都沒內容
    淺 陌( 254083034)   10: 16: 46
官方社區問個問題基本你別指望有人回答你
飄動的心( 251414041)   10: 16: 48

不死鳥( 88568628)   11: 20: 29
正則驗證 長度6-18位  怎么寫 有誤高手
不死鳥( 88568628)   11: 20: 33
有無高手

</p>
<hr />
sdfsdfsdfsdfds
<asp:GridView ID= " GV_Students " runat= " server ">
</asp:GridView>
</div>

using System;
using System.Collections.Generic;
using System.Linq;

using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace FirstModule
{
    public partial class ViewStudent : DotNetNuke.Entities.Modules.PortalModuleBase
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                GV_Students.DataSource = (new BussinessLogic.StudentBussiness()).QueryAll();
                GV_Students.DataBind();
            }
        }
    }
}

    public IList<student> QueryAll()
        {
             try
            {
                 var result =  from stu  in DBContext.ssd.students
                              where  1 ==  1
                              orderby stu.cometime ascending
                              select stu  ;
              
                 return result.ToList();
            }
             catch (Exception)
            {
                 return  null;
                 throw;
            }

        }       

4)加到網站中. 步驟跟前面類似.

 

 

圖14 最后頁面效果 

 

 

3.         小結

作為項目實施最基礎的一步,對初學者來說往往很難邁出去,即使本人調試這個東西也花了一個上午,這都是個人實踐總結,希望對初學者能有幫助.強烈推薦搭建項目的時候采用第二種方法,這會給你帶了很多便利.多謝大家的支持.希望共同學習,共同進步.有什么不明白的,可以加本人qq:583391571.有空一定為你解答.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM