【问题标题】:Templateless Module Development无模板模块开发
【发布时间】:2014-03-10 22:09:33
【问题描述】:

尽管 DotNetNuke 的 Internet 文档非常广泛,但它本身就非常有用。但是存在一个障碍,我似乎无法解决它。 如果没有 Chris Hammond 的模板,您如何进行 DotNetNuke 模块开发?

此模板已被广泛接受和使用,以至于不存在其他文档。

我已经完成了以下工作:

  • 已配置的 SQL Server 数据库
  • 已配置的 Internet 信息系统(绑定)
  • 修改了 System32 主机文件(本地 IP 以反映网站名称)
  • 安装了 MSBuild 社区任务
  • 已安装 DotNetNuke 实例

一切都已安装到位,现在我已将 DotNetNuke 的站点打开到 Visual Studio 并配置我的项目以实际构建模块。

我想如果我为 DotNetNuke 引用 .dll 就足够了,但是 Web 表单项目 会加载所有这些影响开发的额外垃圾。

有人可以概述在没有 Visual Studio 模板的情况下从头开始构建环境的正确方法吗?

【问题讨论】:

  • 您使用的是 .net4 吗?选择项目模板时,在新建项目对话框的顶部,如果您从下拉列表中选择 .NET Framework 4,则会出现一个 ASP.NET 空 Web 应用程序项目。

标签: dotnetnuke dotnetnuke-module


【解决方案1】:
  1. 设置 DNN 开发环境,即使您不使用我的模板,我推荐使用相同的开发环境方法 http://www.christoc.com/Tutorials/All-Tutorials/aid/1
  2. 使用 Visual Studio 在 DNN 开发环境中创建一个新的 Web 应用程序项目,其位置为 /desktopmodules/。 (按照本教程的第 9 步http://www.christoc.com/Tutorials/All-Tutorials/aid/4
  3. 删除 Visual Studio 放入 WAP 项目的所有内容(文件夹、web.config 等)。
  4. 在网站的 BIN 文件夹中添加对 DotNetNuke.dll 的程序集引用
  5. 右键单击项目属性并设置项目属性以使构建位置为网站的 BIN 文件夹 (../../bin)
  6. 更改 web 选项卡具有以下属性集

    IISUrl:http://dnndev.me/desktopmodules/MODULENAME

    覆盖IISAppRootUrl:True

    IIS 应用根 URL:http://dnndev.me

  7. 将 ASCX 文件添加到您的项目中。 (view.ascx)
  8. 将 ASCX 文件的 BASE 类更改为从 PortalModuleBase 继承
  9. 编译你的模块
  10. 向 DNN 注册模块(主机/扩展)
  11. 将模块添加到页面。

TL;DR

  1. 使用模板可以省去步骤 2-8 和 10 的麻烦。

【讨论】:

  • 谢谢,我以后会用这个模板。不过,我想在使用模板之前完全掌握模板的作用。
  • “向 DNN 注册模块(主机/扩展)”是什么意思。
  • 转到主机扩展页面,并创建一个新模块。告诉 DNN 模块在哪里,“ASCX”文件是什么,等等
【解决方案2】:

老实说,如果您愿意,最好的选择是使用 Chris 的模板作为基础,然后对其进行编辑以使其尽可能简单。

我有一个纯模板,其中只有 MSBuild 配置,因为我的任何开发机器上都没有 DNN 的本地副本。

他的模板的关键魔法部分是 MSBuild 的东西,我更进一步,使用 NuGet 来管理 DNN 的包/引用,这样我在本地没有任何其他 DNN 文件。

【讨论】:

    【解决方案3】:

    这是我在开始使用模板之前经常做的事情。与@bdukes 非常相似,但不是在DesktopModules 文件夹中开发,我喜欢将我的模块保存在他们自己的DNN 之外的项目中。

    1. 在 Visual Studio 中,选择文件 -> 新建 -> 项目。
    2. 从版本下拉列表中选择“.NET Framework 4”,从左侧的树窗格中选择 C# -> Web,然后选择“ASP.NET Empty Web Application”。
    3. 删除 web.config 文件。
    4. 添加对 DotNetNuke dll 的引用。
    5. 向项目添加一个新的用户控件,这将是您项目的主视图。
    6. 确保用户控件继承自 DotNetNuke.Entities.Modules.PortalModuleBase 而不是 System.Web.UI.UserControl。
    7. 在 Visual Studio 中构建项目。
    8. 右键单击 Visual Studio 中的项目并选择“在文件资源管理器中打开文件夹”。
    9. 将项目的 DLL 复制到 dotnetnuke 实例的 bin 文件夹中。
    10. 将项目文件夹粘贴到您的 DotNetNuke 实例 DesktopModules 文件夹中。
    11. 删除您从粘贴在 DesktopModules 下的文件夹中创建的用户控件以外的所有文件。
    12. 登录您的 DNN 实例。
    13. 导航到主机 -> 扩展 -> 创建新模块。
    14. 从下拉列表中选择“控制”。
    15. 选择您在 DesktopModules 中粘贴的模块文件夹(不是所有者文件夹)。
    16. 为您的模块命名并勾选“添加测试页”选项。
    17. 点击“创建模块”。

    然后您将被带到一个测试页面,您的新模块运行时只有一个空的用户控件。然后,您可以将控件添加到模块文件夹中,重新构建新的 DLL 并将其复制到 DNN 的 bin 文件夹中,您将看到 DNN 中的更改。

    然后我会回到主机 -> 扩展并单击新创建的模块旁边的编辑(铅笔)。在页面底部有一个“创建包”按钮。按照提示操作,直到您位于预览清单文件中。将此复制为您的模块清单文件并将其添加到您的项目中。

    不要忘记将任何新视图、编辑、设置控件添加到模块定义并重新创建清单。 (主机 -> 扩展并单击模块旁边的编辑(铅笔) -> 模块定义标题)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多