*这更多是架构级问题。
我是DNN开发的新手,我们正在努力建立一个电子商务网站,展示所有与我们当前订单数据库相关的产品。
假设我通过DNN进行的任何自定义开发都是MODULE形式,我是错误的吗?我创建了几个自定义模块(即产品列表),它将与后面的代码中的数据库绑定并显示来自SQL的数据。如果我必须为每个功能制作模块,这似乎是非常重的方法。
这里有更好的方法吗?我(建议)可以直接更改DNN页面以适应此类功能吗?
是否可以在没有模块的情况下进行开发?即在html文本编辑器中提供代码或其他东西。如果我从DNN模板创建新模块,那么它会添加许多文件....这就是为什么它感觉很重
答案 0 :(得分:2)
强烈建议您不直接更改DNN。这将使得将升级应用于DNN变得非常困难,并且对于在您之后维护该站点的任何人造成麻烦。
DotNetNuke中的主要扩展点是模块。该模块只是一些可以放在任何页面上的可执行控件。它不应该比你采取的任何其他方法重得多。无论你想在DNN中做什么,你都应该能够在模块中完成,只需将模块放在页面上。
如果更容易或更有意义,您还可能在皮肤中使用某些功能,而不是模块。通常,皮肤具有在站点中的大多数页面上共享的功能,并且模块用于在特定页面上放置特定内容。
如果您正在寻找更简单的东西,您可以尝试使用核心报告模块,这将允许您从数据库设置查询结果的样式(如果您不需要模块提供的交互性)
答案 1 :(得分:2)
您的好选择如下
为您的电子商务构建单独的Web应用程序,但提供与DNN站点的重要链接。使用此方法,DNN将用于内容。
购买像SmithCart这样的第三方电子商务模块,并尝试配置它以满足您的商业模式
构建自定义DNN模块
我们目前的项目使用选项#3。我们拥有25,000种产品和约3,000种产品清单,具有大量的客户定制功能。
虽然它可能看起来很重,例如,每个电子商务部门都有一个独特的模块项目,但它并不一定太复杂。
示例模块:
您可以使用URLRewrites将所有产品映射到同一DNN页面/模块。
因此,我们确实很少有非内容的DNN页面。
总之,它可能会感觉有点沉重,但通过适当的设计,与单独的Web应用程序相比,它可以相当顺利。
答案 2 :(得分:0)
有一些方法可以在没有模块开发的情况下使用现有的DNN功能。您可以通过在文件夹中添加子应用程序来完成此操作。
例如,您可以查看http://www.firstphera.com/GiftRegistry/Index.aspx,FirstPhera.com是一个主要的dnn应用程序,文件夹GiftRegistry是一个纯粹的asp.net子应用程序,它使用dnn的提供程序来处理数据库。注册和登录的自定义实施是唯一的挑战,其他一切正常。
但如果要构建电子商务应用程序,从长远来看,您将从模块开发方式中受益。
您不必严格按照屏幕截图所示创建单独的计算模块。如果你看一下博客模块,它有最新的博客,搜索博客,档案等功能都在单个模块中实现。
还可以使用名为ModuleDefinitions的技术在dotnetnuke中创建具有相关功能的单个模块。看http://lakhlaniprashant.blogspot.com/2010/04/dotnetnuke-what-is-module-definition.html。
如果您想详细了解与电子商务相关的模块开发,我强烈建议您访问NBStore源代码。
如果您有任何其他问题,请告知。