如何设置DotNetNuke进行开发

时间:2015-05-19 15:29:30

标签: dotnetnuke

我是.NET开发人员团队的一员,我们正在尝试使用DNN平台作为获取网站模板的方式,这样我们就不必花费数周或数月来构建核心功能,例如身份验证,权限,导航等。然而,我很困惑平台如何工作以及它是如何安装的。我花了很多时间在http://www.dnnsoftware.com/以及其他网站进行在线研究,这只会增加我的困惑。以下是一些尚未得到答复的具体问题:

  1. 我们是否安装了源代码? http://www.dnnsoftware.com/wiki/how-to-install-the-source-package-of-dotnetnuke表示不建议安装源代码。另一方面,http://www.dnnsoftware.com/wiki/packages表示如果我们是开发人员(我们是),我们应该使用源代码。
  2. 如果我们不使用源代码,我们如何编写将用于向我们的网站添加功能,样式或业务逻辑的代码?我们究竟在哪里放这个代码?
  3. 我继续看到“模块”一词被抛出。世界上有什么模块?它是一个单独的.csproj文件吗?是.cs文件保存为网站的一部分吗?如果是这样,我们如何在没有源代码的情况下合并它?
  4. 与任何其他应用程序一样,我们需要能够完全控制构建和部署。有了这个,我们可以看到我们做了什么的历史,必要时回滚更改等等。目前,对于我们的其他项目,我们使用TeamCity构建并使用OctopusDeploy进行部署。哪个适合在没有源的情况下使用DNN?我也知道DNN被设置为一个网站项目,而不是一个Web应用程序项目(请参阅此处http://www.dnnsoftware.com/forums/threadid/338902/scope/posts/threadpage/1),网站项目是一种不是由新版本的Visual Studio实际维护的技术,可能更难部署也是如此。假设我不想转换(http://blogs.msdn.com/b/webdev/archive/2009/10/29/converting-a-web-site-project-to-a-web-application-project.aspx),我将如何构建/部署网站项目?
  5. http://blogs.msdn.com/b/webdev/archive/2009/10/29/converting-a-web-site-project-to-a-web-application-project.aspx似乎表明不建议从DNN中删除依赖项并将其替换为其他依赖项。如果这是真的,它会使整个平台看起来非常脆弱,让我想知道我是否完全使用了错误的工具。 DNN真的对开发人员有意义吗? (如果不是, 那么打算使用什么?)

2 个答案:

答案 0 :(得分:5)

从这里开始 - >

http://www.christoc.com/Tutorials/All-Tutorials/aid/1

1)不要触摸DNN源,相信我,这不值得头疼

2)通过使用Extension(模块和皮肤)

添加功能,覆盖样式等

3)单独的CSProj(查看我的模板http://www.christoc.com/Tutorials/All-Tutorials/aid/2

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

5)DNN肯定是给开发人员的,但它是一个框架,建立在框架之上,不要进入并开始顶起框架本身。

答案 1 :(得分:2)

我首先要在您的本地运行DNN网站。对于任何.NET开发人员来说,这都是相当直接的。

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

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

将模块放在DNN页面上并从那里开始。

这当然是过度简化,但它应该让你去。网上有很多教程,我建议你注意学习像Globals.NavigateUrl()这样的基础知识,以便在标签之间导航以及如何组合DNN。此论坛主题可能会帮助您http://www.dnnsoftware.com/answers/dnn-7-module-development-step-by-step-tutorial