Content management system DotNetNuke与定制开发

Content management system DotNetNuke与定制开发,content-management-system,dotnetnuke,Content Management System,Dotnetnuke,我们正在考虑在很短的时间内购买DotNetNuke(或Sitefinity),有一个问题我很难找到一个快速的答案。() 我们目前没有使用任何CMS的,我们有一些自定义的发展,将不会消失,只是因为我们有一个CMS的一些或大部分我们的网站 我们的定制开发是带有站点母版和嵌套站点母版页的c#ASPX。这些自定义应用程序在我们的网站中并不拥有自己的顶级应用程序,而是分支的一部分,通常是一级或两级(例如http:www.contoso.com/branch/app/default.aspx) DotNe

我们正在考虑在很短的时间内购买DotNetNuke(或Sitefinity),有一个问题我很难找到一个快速的答案。()

我们目前没有使用任何CMS的,我们有一些自定义的发展,将不会消失,只是因为我们有一个CMS的一些或大部分我们的网站

我们的定制开发是带有站点母版和嵌套站点母版页的c#ASPX。这些自定义应用程序在我们的网站中并不拥有自己的顶级应用程序,而是分支的一部分,通常是一级或两级(例如http:www.contoso.com/branch/app/default.aspx)

  • DotNetNuke通常是如何在CMS/自定义“混合模式”中配置的?例如,DotNetNuke是安装在网站的“顶部”,还是安装在网站的“需要的地方”
  • 当混合使用CMS和定制web应用程序时,这两者之间有什么关系
  • CMS界面是否允许添加这些自定义应用程序,还是只需转到web服务器并将它们添加到结构中
  • 从阅读其他文章中可以看出,我们可以创建自己的定制c#模块,并让CMS编辑器“插入”页面上的模块。有人能帮我确认一下吗

如果我没有提供足够的详细信息,请随时询问更多信息。

DNN通常安装在网站的根目录下,但这不是必需的。它有时作为虚拟目录中的应用程序运行,虚拟目录是大型站点的一部分

可以在DNN中的正确位置添加.aspx页面。UrlRewrite处理程序将首先查看所有此类请求,并假设现有页面和友好的url处理程序不认为它们“拥有”该.aspx页面,DNN将停止处理该请求并将其交给您的页面。没有特定的方法使用DNN“注册”这些页面。我一般不推荐这种方法,但它确实有效,并且在特定情况下是有意义的

或者,您可以编写自己的DNN模块。通过将代码转换为继承自PortalModuleBase的.ascx用户控件,通常可以很容易地修改现有代码。想要利用核心DNN功能(如成员资格或权限)的代码当然需要修改以使用DNN API


DNN模块方法通常是最佳选择。但是你的情况的细节可能使其他方法中的一种更适合你。基本上,只要您的站点布局清楚,哪些请求是针对DNN的,哪些不是,您就可以根据需要与其他asp.net代码混合匹配。

DNN通常安装在网站的根目录下,但这不是必需的。它有时作为虚拟目录中的应用程序运行,虚拟目录是大型站点的一部分

可以在DNN中的正确位置添加.aspx页面。UrlRewrite处理程序将首先查看所有此类请求,并假设现有页面和友好的url处理程序不认为它们“拥有”该.aspx页面,DNN将停止处理该请求并将其交给您的页面。没有特定的方法使用DNN“注册”这些页面。我一般不推荐这种方法,但它确实有效,并且在特定情况下是有意义的

或者,您可以编写自己的DNN模块。通过将代码转换为继承自PortalModuleBase的.ascx用户控件,通常可以很容易地修改现有代码。想要利用核心DNN功能(如成员资格或权限)的代码当然需要修改以使用DNN API


DNN模块方法通常是最佳选择。但是你的情况的细节可能使其他方法中的一种更适合你。基本上,只要您的站点进行了布局,以便清楚哪些请求是针对DNN的,哪些不是,您就可以根据需要与其他asp.net代码进行混合和匹配。

在混合配置中导致问题的一件事是。 如果DNN是根应用程序,则必须删除应用程序的web.config中有问题的http模块和处理程序,或者使用DNN的(根)web.config中的位置设置禁用继承:

<location path="." inheritInChildApplications="false">
    <system.web>
    ...
    </system.web>
</location>

...
维护应用程序的web.config和DNN web.config之间的继承是脆弱的。 DNN web.config中的更改可能会导致虚拟目录中的应用程序失败。除了删除每个http模块和处理程序外,您还需要至少将DNN的App_代码目录添加到应用程序配置中

另一方面,位置设置并不总是适用于DNN模块,尤其是当它们除了从PortalModuleBase继承的控件之外还有aspx页面时。就我个人而言,我从来没有让DNN的位置设置工作得足够好

另见


在混合配置中引起问题的一件事是。 如果DNN是根应用程序,则必须删除应用程序的web.config中有问题的http模块和处理程序,或者使用DNN的(根)web.config中的位置设置禁用继承:

<location path="." inheritInChildApplications="false">
    <system.web>
    ...
    </system.web>
</location>

...
维护应用程序的web.config和DNN web.config之间的继承是脆弱的。 DNN web.config中的更改可能会导致虚拟目录中的应用程序失败。除了删除每个http模块和处理程序外,您还需要至少将DNN的App_代码目录添加到应用程序配置中

另一方面,位置设置并不总是适用于DNN模块,尤其是当它们除了从PortalModuleBase继承的控件之外还有aspx页面时。就我个人而言,我从来没有让DNN的位置设置工作得足够好

另见