• 在mojoportal中建立自定义模块


    在mojoportal中建立自定义模块

    原文:http://techblog.strongeye.com/archive/2009/12/16/creating-a-mojoportal-module.aspx

    Mojoportal是一个开源的内容管理系统,正是我们在StrongEye站点中使用的这个系统。它对asp.net 网络应用程序进行了广泛的封装,并且对开发者非常友好。

    更新:对许多常用的网站开发任务,你可能不需要编写额外的代码。这篇指南针对的读者是想要了解如何在mojoportal建立新的功能模块的读者。

    开发者需要在mojoportal中建立一个新的模块,这个模块是一个100%的自定义应用程序,可以无缝的嵌入到mojoportal系统中。

    首先你需要下载mojoportal的源代码,然后建立自己的vs解决方案。

    如何建立一个mojoportal模块

     

    Category 类型

    Steps 步骤

    Notes  注意

    Create UI project 

     

    建立UI 工程

     

     

    建立一个新的工程 [你的工程名].UI

     删除或重命名工程自动生成的Default.aspx文件,以确保不会错误的拷贝到网站中

    建立子文件夹

    /[你的工程名]

    /[你的工程名]/Controls

    建立子文件夹

    /Setup/

    .

     注意:建立的是web应用程序而不是web站点。

    建立setup 文件夹中的内容超出本文的讨论范围,具体见See the developer documentation here for details

     

    建立Bussiness工程

    建立一个类库工程

    [你的工程名].Business

     

     

    建立Data层工程

    建立一个类库工程

     [你的工程名].Data

     

     

    重命名你的数据层工程为

    [你的工程名].Data.MSSQL(或者你使用的其他数据库)

     

     

     

    为你得web UI工程添加引用

    ·         Log4net

    ·         mojoPortal.Business

    ·         mojoPortal.Business.WebHelpers

    ·         mojoPortal.Features.UI

    ·         mojoPortal.Net

    ·         mojoPortal.Web

    ·         mojoPortal.Web.Controls

    ·         mojoPortal.Web.Editor

    ·         mojoPortal.Web.Framework

    ·         [yourProject].Business

     

    [你的工程名].Business 工程添加引用

    ·         [yourProject].Data.MSSQL

     

     

    添加 .resx 文件用于本地化

    建立一个标准的asp.net文件夹App_GlobalResources.

    在这个文件夹中,添加一个新的.resc文件通过选择添加-新项-Resources文件。

    这个文件以程序名命名,这样可以确保名字的唯一性。.

     

     

    Step 2:

    让你得工程模仿mojoportal.web,这样才可以编译通过

     

    Category 类别

    Steps 步骤

    Notes  注意

    更新

    Web.Config

     

    打开mojoportal.web中的web.config文件,

    拷贝整个<pages>部分到你的工程.UI的web.config文件中

    <pages>部分在<system.web>中,你的工程中可能有自动生成的<pages>,替换之即可。

    .

    拷贝 Master Pages

     

     

     

    在[你的工程名].UI工程中,建立App_MasterPages文件夹,拷贝WebStore.UI中的layout.master文件过来。(这个更适合,因为他是整个master 页面的子集,也是我们需要来开发的)

     

    注意不是mojoportal.web中的。

     

     

    这个给你的aspx页面正确的内容占位符,当你开发你的特色模块时

     

    Step 3:建立你自己的模块

    这个模块是一个.ascx控件,这个控件继承自SiteModuleControl 并且建立特别实例的入口点到你的自定义代码中。从这个入口点,你可能有许多其他的页面,比如自定义的aspx页面,使用了master页面。

     

    这些步骤可以用CodeSmith来生成。

     

    分类

    步骤

    注意

    建立模块 ascx

    建立文件夹,如下: [你的工程名].UI

    /[工程名]/

    右键点击并且建立一个新的用户控件(.ascx),如下:

     [工程名]Module.ascx

     

     

    使用CodeSmith模板,生成ascx文件

     

     

    打开codeSmith管理器,在模板Explorer中,打开Codesmith4x文件夹,这个文件夹在mojoportal\codeSmith Templates中

     

    找到模板:

    Mp_UI-starter_ModuleControlGenerator.cst

    右键单击,选择“开始生成”

    在弹出的窗口中输入:

    作者:[你的名字]

    BusinessLayerNameSpace: [yourProject].Business

    ControlName: [yourModuleControlName]

    FeatureName: [yourProject]

    UINameSpace: [yourProject].UI

    单击“生成”

     

    生成的结果包含了html和cs代码,你需要分离他们,然后再进行相关操作

    粘贴到你的模块中

    选择以

    // Author:   [yourname]开始的代码,直到最后

    . 这段代码粘贴到 [yourModule]Module.ascx.cs

     

     拷贝剩余的代码到module.ascx文件中

     

     

     

     

    Step 3:添加编译时的逻辑代码到你的Web 工程中

     

     这个步骤将使得你得代码同mojoportal进行整合,当正确编译的时候。

     

     

    分类

    步骤

    说明

     

    打开你得.UI工程的属性

     

    打开你得.UI工程的属性,打开Build Events选项卡

     

     

    添加编译时的命令行

     

    拷贝以下代码到你的Post-build事件命令行中,以你的工程名路径名替换XXX,

    以你的工程名替换YYY 

     

    xcopy /s /y "$(ProjectDir)bin\YYY.UI.dll" "$(SolutionDir)Web\bin\"

    xcopy /s /y "$(ProjectDir)bin\YYY.Business.dll" "$(SolutionDir)Web\bin\"

    xcopy /s /y "$(ProjectDir)bin\YYY.Data.dll" "$(SolutionDir)Web\bin\"

    xcopy /s /y "$(ProjectDir)XXX\*.ashx" "$(SolutionDir)Web\XXX\"

    xcopy /s /y "$(ProjectDir)XXX\*.ascx" "$(SolutionDir)Web\XXX\"

    xcopy /s /y "$(ProjectDir)XXX\*.aspx" "$(SolutionDir)Web\XXX\"

    xcopy /s /y "$(ProjectDir)XXX\Controls\*.ascx" "$(SolutionDir)Web\XXX\Controls\"

    xcopy /s /y "$(ProjectDir)App_GlobalResources\*.resx" "$(SolutionDir)Web\App_GlobalResources\"

    xcopy /s /y "$(ProjectDir)Setup\*" "$(SolutionDir)Web\Setup"

     

    保存,点击“Edit post-build”

     

    I

     

    安装模块

    在后台管理中添加特色模块。

     

     如下图:

     

     

     

  • 相关阅读:
    将迁移学习用于文本分类 《 Universal Language Model Fine-tuning for Text Classification》
    深度 | 提升深度学习模型的表现,你需要这20个技巧(附论文)
    [线性代数] 矩阵白化
    基于搜索的贝叶斯网络结构学习算法-K2
    Deep learning:四十三(用Hessian Free方法训练Deep Network)
    2020年AI、CV、NLP顶会最全时间表
    浅谈人脸识别中的loss 损失函数
    控制uniFrame显示的一个管理类
    php+sqlserver之如何操作sqlserver数据库
    php支持连接sqlserver数据库
  • 原文地址:https://www.cnblogs.com/wenjie/p/1690160.html
Copyright © 2020-2023  润新知