如何为发展建立DotNetNuke

如何为发展建立DotNetNuke,dotnetnuke,Dotnetnuke,我是.NET开发团队的一员,我们正在尝试使用DNN平台作为一种拥有网站模板的方式,这样我们就不必花费数周或数月的时间来构建核心功能,如身份验证、权限、导航等。然而,我对平台的工作原理以及安装方式感到非常困惑。我花了很多时间在网上以及其他网站上搜索,这只会增加我的困惑。以下是一些尚未回答的具体问题: 我们是否安装源代码?表示不建议安装源代码。另一方面,他说如果我们是开发人员(我们是开发人员),我们应该使用源代码 如果我们不使用源代码,我们如何编写用于向站点添加功能、样式或业务逻辑的代码?我们到底把

我是.NET开发团队的一员,我们正在尝试使用DNN平台作为一种拥有网站模板的方式,这样我们就不必花费数周或数月的时间来构建核心功能,如身份验证、权限、导航等。然而,我对平台的工作原理以及安装方式感到非常困惑。我花了很多时间在网上以及其他网站上搜索,这只会增加我的困惑。以下是一些尚未回答的具体问题:

  • 我们是否安装源代码?表示不建议安装源代码。另一方面,他说如果我们是开发人员(我们是开发人员),我们应该使用源代码
  • 如果我们不使用源代码,我们如何编写用于向站点添加功能、样式或业务逻辑的代码?我们到底把代码放在哪里
  • 我不断地看到“模块”这个词被抛来抛去。模块究竟是什么??它是一个单独的.csproj文件吗?它是保存为网站一部分的.cs文件吗?如果是这样的话,如果没有源代码,我们将如何合并它
  • 与任何其他应用程序一样,我们需要能够保持对构建和部署的完全控制。有了这些,我们可以看到我们所做工作的历史,必要时回滚更改,等等。目前,对于我们的其他项目,我们使用TeamCity进行构建,并使用OctopusDeploy进行部署。在没有来源的情况下,使用DNN时,这一点在哪里合适?我还知道,DNN被设置为一个网站项目而不是一个web应用程序项目(请参见此处),而网站项目是一种新版本的Visual Studio并没有真正维护的技术,并且可能更难部署。假设我不想转换(),我将如何构建/部署web站点项目
  • 似乎声明不建议从DNN中删除依赖项并用其他依赖项替换它们。如果这真的是真的,它会让整个平台看起来非常脆弱,让我怀疑我是否使用了完全错误的工具。DNN真的是为开发者准备的吗?(如果没有,那么预期用途是什么?)
  • 从这里开始->

    1) 不要碰DNN来源,相信我,这不值得头痛

    2) 通过使用扩展(模块和皮肤)添加功能、覆盖样式等

    3) 单独的CSProj(查看我的模板

    4) 您将通过从每个扩展获取ZIP文件并通过主机/扩展页上载,或者获取ZIP文件并将其放入部署目标根目录中的/install/module/进行部署,然后进行进程调用/install/install.aspx?mode=installresources


    5) DNN当然是为开发人员准备的,但它是一个框架,构建在框架之上,不要进入框架本身

    我将首先在您的本地计算机上运行一个DNN站点。这对于任何.NET开发人员来说都是相当直接的

    模块是DNN框架的扩展,您基本上(一旦正确安装)可以将其放在DNN页面(称为选项卡)上。您所有的业务逻辑都将放在您自己的模块中,这些模块的代码将是您唯一需要进行源代码控制的内容。不要对DNN进行核心更改,因为如果您升级,它们将被吹走


    如果您的模块只需要部署一次,则不需要使用Christoc的模块模板。我发现它带来了许多不必要的组件和引用,而您可能不需要这些组件和引用。使用从DotNetNuke.Entities.Modules.PortalModuleBase继承的WebUserControl创建模块。将.ascx文件放在DNN的DesktopModules文件夹下自己的文件夹中,并将所有必需的.dll放在DNN的bin文件夹中。在DNN中,转到主机>扩展并创建新的扩展。向扩展添加模块控件,并将ascx文件添加为控件(将默认视图的键留空)。其他视图应该有唯一的键,您可以使用EditUrl(“键名”)在DNN中导航到它们

    将模块放到DNN页面上,然后从那里开始


    这当然是过于简化了,但它应该会让你继续。在线上有很多教程,我建议您通过观看来学习Globals.NavigateUrl()等基础知识,以便在选项卡之间导航以及DNN的组合方式。这个论坛主题可能会帮助你

    我了解到你不必理会消息来源;问题是他们使用的是旧版本的Telerik。我们有一个新的付费版本;我们想把旧的参考资料换成新的。我疯了吗?我不推荐。您仍然可以在自己的开发中使用较新的telerik控件我从何处获得DotNetNuke.Entities.Modules.PortalModuleBase?请在项目中参考DotNetNuke.dll。.dll将使用DotNetNuke.Entities.Modules在DNN的bin文件夹中典型使用(基本模块不需要全部使用);使用DotNetNuke.Services.Exceptions;使用DotNetNuke.UI.Skins;使用DotNetNuke.UI.Skins.Controls;使用DotNetNuke.Common.Utilities;使用DotNetNuke.Framework;使用DotNetNuke.Web.Client;使用DotNetNuke.Web.Client.ClientResourceManagement;“使用webUserControls创建模块…”因此我正在为此创建一个空白类库?创建一个空白的asp.net webforms网站项目(您将不需要web.config)。添加对DotNetNuke.dll、DotNetNuke.Web和DotNetNuke.Web.Client的引用。然后添加从DotNetNuke.Entities.Modules.PortalModuleBase继承的webusercontrol,而不是System.web.webusercontrol(或我忘记的任何基类)。试着从那里得到一个你好的世界。如果你还在战斗的话,我会试着在博客上发一篇关于它的文章,但是网上有很多信息可以让你上路。