没有模块开发的dot net nuke?
*这更多的是一个架构级别的问题。
我是 DNN 开发的新手,我们正在尝试建立一个电子商务网站,该网站将展示与我们当前订单数据库相关的所有产品。
我假设我通过 DNN 进行的任何自定义开发都是 MODULE 形式,这是否错误?我创建了一些自定义模块(即产品列表),它们将在代码隐藏中与数据库绑定并显示来自 SQL 的数据。如果我必须为每个功能制作模块,这似乎是非常繁重的方法。
这里有更好的方法吗?我可以(是否建议)直接更改 DNN 页面以适应此类功能?
更新
是否可以在没有模块的情况下进行开发?即在 html 文本编辑器或其他东西中直接提供代码。如果我从 DNN 模板创建新模块,那么它会添加许多文件......这就是为什么感觉很重
*This is more of an architecture level question.
I am new to DNN development , we are trying to build an e-commerce site which will showcase all the products which will be tied to our current order database.
Am I wrong in assuming that any custom development that I do via DNN would be in MODULE form ? I created few custom module (i.e. list of products) which would tie to database in code behind and display data from SQL. This seems to be very heavy approach if I have to make modules for every functionality.
Is there a better way here ? Can I (is it recommended) to directly change the DNN pages to accommodate this type of functionality ?
UPDATED
Is it possible to do development without moduels ? i.e. provide code right in the html text editor or something. If i create new module from DNN template then it adds many files ....that is why it feels heavy
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
强烈建议您不要直接更改DNN。这将使 DNN 的升级变得非常困难,并给您之后维护该站点的人带来麻烦。
DotNetNuke 中的主要扩展点是模块。该模块只是一些可以放置在任何页面上的可执行控件。它不应该比您采取的任何其他方法重得多。无论您想在 DNN 本身中做什么,您都应该能够在模块中完成,只需将模块放在页面上即可。
您还可以将一些功能放在皮肤中,而不是模块中,如果这样更容易或更有意义的话。一般来说,皮肤具有站点中大多数页面共享的功能,模块用于将特定内容放置在特定页面上。
如果您正在寻找更简单的东西,您可以尝试使用核心报告模块,该模块将允许您设置数据库查询结果的样式(如果您不需要模块提供的交互性)。
It is strongly recommended that you not directly change DNN. This will make it very difficult to apply upgrades to DNN and cause headaches for whoever maintains the site after you.
The main extensibility point in DotNetNuke is the module. The module is just some executable controls that you can place on any page. It shouldn't be significantly heavier than any other approach you would take. Whatever you want to do in DNN itself, you should be able to do in a module, and just place the module on a page.
You could also potentially have some of your functionality in the skin, rather than the module, if that is easier or makes more sense. Generally, the skin has functionality that is shared across most pages in the site, and module are used to place specific content on specific pages.
If you're looking for something simpler, you might try using the core reports module, which will allow you to style the results of a query from the database (if you don't need the interactivity that a module would provide).
您的最佳选择如下
为您的电子商务构建一个单独的 Web 应用程序,但提供与 DNN 站点的大量互连。通过这种方法,DNN 将用于内容。
购买第三方电子商务模块集(如 SmithCart)并尝试对其进行配置以满足您的业务模式
构建自定义 DNN 模块
我们当前的项目使用选项 #3。我们拥有 25,000 种产品和约 3,000 个具有大量客户定制功能的产品列表。
虽然它可能看起来很重,就像电子商务的每个部分都有一个不同的模块项目一样,但它不必太复杂。
示例模块:
您可以使用 URLRewrites 将所有产品映射到同一 DNN 页面/模块。
因此,我们实际上只有很少的非内容 DNN 页面。
总而言之,它可能感觉有点沉重,但通过正确的设计,与单独的网络应用程序相比,它可以运行得相当顺利。
Your good options are as follows
Build a separate Web Application for your e-commerce, but provide heavy inter-linking with the DNN site. With this method, DNN would be used for content.
Purchase a third party e-commerce module-set like SmithCart and try to configure it to meet your business model
Build custom DNN modules
Our current project utilizes option #3. We have 25,000 products and about 3,000 product listings with heavy customer-customization functionality.
While it might seem heavy, as in, a distinct module project per section of e-commerce, it doesn't have to be too complex.
Example Modules:
You can use URLRewrites to map all your products to the same DNN Page/Module.
As a result, we really have very few non-content DNN pages.
In summary, it might feel a bit heavy, but with the proper design it can go rather smoothly in comparison to a separate web app.
有多种方法可以使用现有的 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源代码。
如果您有任何其他问题,请告知。
There are ways to use existing DNN features without module development. You can do it by adding a sub application in your folder.
For example, you can look at http://www.firstphera.com/GiftRegistry/Index.aspx, FirstPhera.com is a main dnn application and folder GiftRegistry is a pure asp.net sub application that uses dnn's providers to deal with database. Custom implementation of registration and login was the only thing that was challenge, everything else working fine.
But If are building an e-commerce application, at long term you will get benefit from module development way.
It is not strictly necessary that you create separate complected module like you shown in screen shot. If you look at blog module, it has feature like latest blogs, search blog, archives etc are all implemented in single module.
It is also possible to create a single module with related features in dotnetnuke using the technique called ModuleDefinitions. Look http://lakhlaniprashant.blogspot.com/2010/04/dotnetnuke-what-is-module-definition.html.
I would strongly recommend to visit NBStore source code if you want to understand the e-commerce related module development in detail.
Please let know if you have any other question.