• 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.有空一定为你解答.

  • 相关阅读:
    XML解析
    用进度条显示从网络上下载文件进度
    android—获取网络数据
    android中sharedPreferences的用法
    实现listview中checkbox的多选与记录
    利用Bundle在activity之间传递对象
    Activity使用Serializable传递对象实例
    工作框架各种使用整理 -- 页面参数传递
    ubuntu中安装VMWare tools
    工作框架各种使用整理 -- 自己处理分页且输入条件中有过滤条件
  • 原文地址:https://www.cnblogs.com/snidget/p/2318013.html
Copyright © 2020-2023  润新知