是的,这是可能的,您需要做几件事
- 设置您的环境
- 为您要修改的任何内容打开项目,这通常涉及安装您要修改的扩展的 SOURCE 包。
- 不要改变“核心”,意思是不要改变“DNN”本身,你可以,它是开源的,但是一旦你这样做了,你就被分叉了,如果你是,升级到新版本的 DNN 是非常困难的不小心。
设置您的环境
来自http://www.christoc.com/Tutorials/All-Tutorials/aid/1
设置开发环境可能会根据您的最终目标而有所不同。如果您在自己的 DNN 环境中为自己的使用进行模块开发,您可以忽略以下一些设置。如果您在进行模块开发时的想法是转而赠送或出售模块,那么您可能需要遵循以下指南以支持最广泛的 DNN 安装环境。
我建议每个开发人员都有自己的本地开发环境,本地 IIS 网站运行 DotNetNuke,以及用于网站的 SQL Server 2008/2012(不是 express,但您可以使用它)数据库。与共享环境/数据库相比,拥有一个单独的开发环境使组模块开发更加容易。
选择 DotNetNuke 版本
当您开始开发时,选择 DotNetNuke 的版本很重要,原因有两个。对于您为自己开发的模块,您需要询问您在生产中拥有的最低版本的 DotNetNuke。你在运行 DNN 5.6.1 吗?您正在运行 6.2.6、7.0.0、7.0.6 吗?根据答案,您可以确定应将哪个版本的 DNN 设置为您的开发环境。你不应该在比你在生产中运行的更新版本的 DNN 上进行开发。与所有事情一样,有很多方法可以解决这个问题,但我不会在本教程中详细介绍。
作为一名致力于创建模块并发布这些模块的开发人员,您的生产站点可能运行在最新最好的 DNN 版本上,但您的客户呢?还是您的潜在客户?您必须问自己,您想为真正的旧版本 DotNetNuke 提供支持吗?从开发的角度来看,您可能会说不,但从业务的角度来看,您可能会说是,这就是原因。并非每个人都按应有的方式升级 DotNetNuke 网站,而且您经常会发现有些人从不升级。虽然我不建议采用这种方法来管理 DotNetNuke 网站,但人们并不总是升级,而且有成千上万的人(如果不是数万人)的网站无法运行,这是一个不争的事实最新版本的 DNN。在进行模块开发时,您应该考虑到这一点,例如,如果您针对旧版本的 DNN 编译模块,那么您的模块也应该在新版本的 DNN 上运行。如果您针对 DotNetNuke 6.2.6 编译您的模块,它可能会在此后发布的每个 DNN 版本上运行。尽管在某些扩展情况下这并不总是有效,但 DNN 努力保持向后兼容性,但这并不总是可行的。
您可能还想使用仅从特定版本的 DotNetNuke 开始可用的功能,例如从 DNN 5.1 开始的工作流功能,在这种情况下,您可能会选择不支持旧版本的平台。 .这将最大限度地减少您可以销售模块的市场,但由于 DNN 提供的功能,还可以减少支持并简化开发周期。
选择一个包
现在这里有一个可能会让你有点困惑。我将建议您对下载的任何版本的 DotNetNuke 使用 INSTALL 包。什么?安装包? SOURCE 包呢?好吧,您可以使用源代码,但不需要它。我为您设置的模块开发不需要 DNN 源,使用 INSTALL 包可以使您的开发环境更干净。当我们进行模块开发时,我们不会打开 DotNetNuke 项目,那么为什么这些文件会一无所获呢?此外,如果您曾经尝试过将 SOURCE 包用于任何事情,您就会知道这并不容易。
设置开发环境的步骤将适用于 DotNetNuke 的社区版和专业版。
安装配置
一旦您完成了版本选择,您就可以完成安装过程。虽然我不会在这篇文章中详细介绍安装 DotNetNuke 的每个步骤,但我至少会尝试为每个步骤指明正确的方向。
下载您要在开发环境中使用的 DotNetNuke 版本的安装包。
将安装包中的文件解压缩到您选择的位置,当我们可以配置网站时,该位置是您指向 IIS(Web 服务器)的位置。在我的环境中,我通常使用 c:\websites\dnndev.me\ (注意事项:您可能需要右键单击 ZIP 文件并在解压缩之前选择属性,如果您有 UNBLOCK 选项,请在属性窗口中单击. 某些版本的 Windows 已开始阻止 DotNetNuke ZIP 文件中的文件,这将在以后的实际安装过程中给您带来问题。)
设置 IIS
IIS 是 Windows 计算机附带的 Web 服务器。 DNN 7 需要 IIS 7 或更高版本(7、7.5、8.0),因此您至少需要 Windows Vista、Windows 7、Windows 8 或 Windows Server 2008 R2、Windows Server 2012。
您应该在 IIS 中创建一个新网站(注意:如果您在 IIS 中使用现有网站,请务必添加 DNNDEV.ME 的 HOST 绑定),并指向您提取 INSTALL 包的文件夹。
注意:对于 DotNetNuke 7.0+,需要 .NET Framework 4.0,因此请确保您的应用程序池配置为在 4.0 而非 2.0 下运行。
设置文件权限
为 DNN 安装设置文件权限通常是最麻烦的步骤。您应该右键单击提取 DNN 的文件夹 (c:\websites\dnndev.me) 并选择属性。选择安全选项卡。您需要为运行您网站的应用程序池的帐户添加权限。您需要设置权限以授予帐户对 DNNDEV.ME 文件夹的完全或修改权限。您将使用的帐户将根据您的 IIS 版本而有所不同,这里是一些基于 IIS 版本的默认帐户的简单列表。
IIS版本操作系统账号
IIS 7 Windows Vista、Windows Server 2008 本地机器\网络服务
IIS 7.5 Windows 2008 R2、Windows 7 IIS AppPool\APPPOOLNAME
IIS 8 Windows 2012、Windows 8 IIS AppPool\APPPOOLNAME
注意:如果您使用的是 IIS7.5/8.0,您会在上表中注意到身份中有 APPPOOLNAME,这是因为当您在 IIS 中设置新网站时,会创建一个新的应用程序池。代替您输入创建的应用程序池的名称。如果您愿意,您也可以绕过这一点并将您的应用程序池配置为使用网络服务帐户而不是动态帐户。
数据库配置
在 SQL Server 中,您应该通过并创建一个新数据库。我总是创建一个与网站同名的数据库,所以在本例中为 DNNDEV.ME。创建数据库后,创建一个可以访问该数据库的用户。我总是使用 SQL 身份验证,关闭强制密码要求,并授予用户 DB Owner 和 Public 访问 DNNDEV.ME 数据库的权限。记住您在此处创建的用户名和密码,因为当您浏览 DotNetNuke 的安装屏幕时将需要它们。
DotNetNuke 安装屏幕
使用标准 DNN 信息、主机用户名、密码等填充安装屏幕。对于数据库选项,选择自定义并配置您的数据库连接,提供服务器 IP/名称、数据库名称 (dnndev.me)。对于数据库身份验证,您需要选择允许您为之前创建的数据库用户输入用户名/密码的选项。
现在您可以配置两个附加选项,通常我会告诉您不要修改这些,但从开发环境的角度来看,我建议您更改 objectQualifier 设置。默认情况下它应该是空白的,您应该输入“dnn”(不带引号),这会将“dnn_”添加到由 DNN 创建的所有对象,例如表和存储过程。从生产的角度来看,我不建议这样做,但如果您正在开发待售模块,那么建议您在开发中支持 objectQualifier。如果您的客户在其生产数据库中定义了 objectQualifier,它将为您节省时间。
DotNetNuke 模块开发
要开始您的 DNN 模块开发,请务必阅读我们的教程,了解如何安装我们的模块开发模板。
接下来,设置 Visual Studio 模板(您需要使用 VS 2015)并创建一个项目。
你可以在这里找到模板https://visualstudiogallery.msdn.microsoft.com/bdd506ef-d5c3-4274-bf1d-9e673fb23484
下载该文件,运行 VSIX 包安装程序,或搜索 DotNetNuke 的在线模板。观看此视频https://www.youtube.com/watch?v=kOoQJDeTlJ0&list=PLFpEtny5sIbb9jGxJ7RBM5hIizodOCtoj&index=1