我需要开发一个网站的整个部分(大约10个不同的页面)作为DotNetNuke模块。该网站将使用DNN作为CMS,编辑将管理大部分网站的HTML内容(我将开发的部分除外)。
我已经对DNN模块开发进行了相当广泛的研究(甚至观看了DNN公司的一些录制的网络研讨会)。不幸的是,我在网上找到的大部分内容都是关于开发简单的,类似于widget的模块。此外,大多数使用逐步“如何使用visual studio来实现x”方法,而我试图了解DNN如何工作。所以我似乎必须自己解决这个问题......
此时我已经对DNN有所了解了,我看到了几个不同的解决方案:
所以我决定向你们寻求建议。哪种方式首选?也许以上都没有?我知道上面的所有四个选项都应该给我我想要的结果,但我也不想太过违反“DNN方式”......
答案 0 :(得分:4)
我根本不推荐#1(多个模块)或#3(也是多个模块),虽然#2(确定视图的单个模块w /模块级别设置)绝对是DNN广泛使用的可靠选项模块开发人员,听起来你更喜欢#4(Razor)而非#2,因为你喜欢开发风格。
所以 - 我建议采用Razor方法,虽然看起来你理解这种方法很好,但我想详细说明后代:
这应该很好。
答案 1 :(得分:1)
我假设您正在寻找以“网站项目”风格开发软件。我建议你看看“Web应用程序项目”的做事方式。
如果你在库中有共享功能,可以随意构建一个程序集并将其放在bin文件夹中,从那里它将被DNN选中,它将在http上下文中运行,这太棒了! / p>
在一个项目中构建您的模块,并将不同的模块打包到您的DNN清单中。
希望我不是在谈论你的理解。
添加了另一个答案,这本身就是一个帖子。
答案 2 :(得分:1)
模块 - 这是我们所有人都非常松散地使用的术语。
更清晰的定义
清单允许您将模块(视图/编辑/设置组)用户控件定义为单个安装包。
在DNN 3.0清单中,如果您仍然采用这种格式,您会注意到基本的单个安装包的结构如下(简要)
<dotnetnuke version="3.0" type="Module">
<folders>
<folder>
<name>Side bar Navigation</name>
<modules>
<module>
<friendlyname></friendlyname>
<cachetime>0</cachetime>
<controls>
<control>
<title>View</title>
<src>DesktopModules/Module/View.ascx</src>
<type>View</type>
</control>
<control>
<key>Settings</key>
<title>Settings</title>
<src>DesktopModules/Module/Settings.ascx</src>
<type>Edit</type>
</control>
</controls>
</module>
</modules>
<files>
...
</files>
</folder>
</folders>
</dotnetnuke>
以上定义了安装包中的单个模块。
在博客的上下文中,您将拥有2个模块
您可以做的是将清单中的博客显示模块打包在<folder></folder>
的副本中,然后将侧边栏导航模块打包到<folder></folder>
结构的另一个副本中。
例如,这个项目有7个模块;侧栏导航,自定义搜索模块,等等等等等等。
<dotnetnuke version="3.0" type="Module">
<folders>
<folder>...</folder>
<folder>...</folder>
<folder>...</folder>
<folder>...</folder>
<folder>...</folder>
<folder>...</folder>
<folder>...</folder>
</folders>
</dotnetnuke>
他们有不同的观点,名称,友好名称,但都共享一个共同的<foldername>
KEY在包装中。
答案 3 :(得分:1)
<folder>
<name>BlogDisplay</name>
<friendlyname>Blog Display</friendlyname>
<foldername>WebLog</foldername>
<modulename></modulename>'
'<folder>
<name>BlogSidebar</name>
<friendlyname>Sidebar Navigator</friendlyname>
<foldername>WebLog</foldername>
<modulename></modulename>
它看起来像这样!这就是foldername所在的地方。它定义了将模块安装到DesktopModules的位置。
在DNN 5书籍中,网站项目开发方法仍在使用中,但是当您参与核心模块的开发时,您会发现项目处于Web App Project开发风格,这样更好,因为所有代码隐藏都在一个程序集中,而不是作为Web上的源代码公开。
你肯定是在正确的道路上。