2015-05-19 64 views
4

我是.NET开发人员团队的一员,我们尝试使用DNN平台作为创建网站模板的方式,以便我们不必花费数周或数月的时间核心功能,如身份验证,权限,导航等。但是,我对这个平台如何工作以及它的安装方式感到非常困惑。我花了很多时间在网上搜索http://www.dnnsoftware.com/以及其他网站,这只会增加我的困惑。以下是一些尚未解答的具体问题:如何设置DotNetNuke进行开发

  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真的适合开发者吗? (如果没有,什么然后用途?)

回答

4

开始这里 - >

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

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

2)您可以通过使用扩展(模块和外观)

3)单独的csproj的(检查OU添加功能,覆盖样式等, t我的模板http://www.christoc.com/Tutorials/All-Tutorials/aid/2

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

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

+0

我得到你关于离开源单独;问题是他们正在使用旧版本的Telerik。我们有一个更新的付费版本;我们希望换出新的引用。我疯了吗? – as9876

+0

我不会推荐它。您仍然可以在您自己的开发中使用较新的telerik控件 –

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

+0

我从哪里获得DotNetNuke.Entities.Modules.PortalModuleBase? – as9876

+0

在您的项目中引用DotNetNuke.dll。 .dll将位于DNN的bin文件夹中 – lukejkw

+0

典型使用(您不需要它们全部用于基本模块) 使用DotNetNuke.Entities.Modules;使用DotNetNuke.Services.Exceptions的 ;使用DotNetNuke.UI.Skins的 ; 使用DotNetNuke.UI.Skins.Controls;使用DotNetNuke.Common.Utilities的 ;使用DotNetNuke.Framework的 ;使用DotNetNuke.Web.Client的 ; 使用DotNetNuke.Web.Client.ClientResourceManagement; – lukejkw