Products

Solutions

Resources

Partners

Community

Blog

About

QA

Ideas Test

New Community Website

Ordinarily, you'd be at the right spot, but we've recently launched a brand new community website... For the community, by the community.

Yay... Take Me to the Community!

Welcome to the DNN Community Forums, your preferred source of online community support for all things related to DNN.
In order to participate you must be a registered DNNizen

HomeHomeDevelopment and...Development and...Building ExtensionsBuilding ExtensionsModulesModulesOnly one module/extension per folder is stupidOnly one module/extension per folder is stupid
Previous
 
Next
New Post
3/14/2012 4:14 PM
 
I tink you are missing the point here Mike. This thread is about what I believe to be an unnecessary limitation in DNN and one that could probably be fixed quite easily in a future version. So far no one has managed to explain why this limitation exists, it just seems like a bad solution to a potential problem that should be replaced with a good one.

I do however agree with you in that anyone that is not very familiar with databases shouldn't consider disabling indexes etc. On the other hand, as far as I know, the index won't actually solve the problem, it will just prevent installation of anything that could cause problems, without offering any useful solutions (my personal opinion).


As we are developing a large scale enterprise application, we have already developed our own "Module loading module" to overcome these limitations as well as providing some additional advantages, thus my lack of interest in the manifest solution (or rather your perception that I would be uninterested in it which is not true).
 
New Post
3/14/2012 4:25 PM
 
Patrik Johansson wrote:
Robert wrote:
Patrik,

As Mike said, you can have multiple modules in a package and those modules can be under the same folder under DesktopModules. It really is just a matter of creating the .dnn manifest file correctly. take a look at the DNN blog module. Here is a sample from the DNN_BLOG.dnn file that shows multiple modules in one directory.

Hope this helps.

Good luck!



View_Blog
-1


View Blog
DesktopModules/Blog/MainView.ascx
View


View_Entry
View Entry
DesktopModules/Blog/ViewEntry.ascx
View


Sure, but what if you wanted to have a folder called "Modules" and then put in a few other user controls in there that had nothing to do with the blog-module at all, like say a Twitter module. Natrually you wouldn't want them to be the same extension in DNN and then the problems starts. At least I know of no way to do it, but that doesnt mean there is not such solution _)

 I tried to paste the xml from the DNN_Blog.dnn file in my response but it parsed out the tags so what you saw wasn't very helpful. 

trying to create the module install package using the DNN instance won't do what you want.  You really will need to create the .dnn manifest file by hand.  If you take a look at the blog module .dnn manifest you will cleary see how to set it up to create different modules.  For the blog module they just happen to be all related to the blog engine but they are just stand alone modules that you can drop on any page.  So, you can put all of your backoffice modules under one folder and create the manifest file to reflect that.

 I have done this in the past without any issues.  Though I do like to break it up into sub folders under the main module just for my own clarity.

I understand that trying to create the package through DNN isn't going to get you where you need but you can get there with just a little more effort.

 

You could even start by having your modules in different folders (just to start) then use the DNN packager to create the manifest for that module.  then edit the manifest files and correct all the file paths to what you want and also edit the paths in the zip file.   does that make sense?

 

good luck.

 
New Post
3/14/2012 4:31 PM
 

OK... But realize then that you mis-identified the problem in your original post. This is not a problem of allowing a single module per folder. This is also not a problem with the index in the db. You want to do something that's a little bit more advanced than the simple module create interface allows. There is a more advanced version of module creation that would solve all of your problems, but instead of using it you are making unrecommended changes to your db.

Nobody should change that index - and somebody experienced with databases should especially recognize the kind of future problems you would create if your forms application (DNN) thinks a db-level index exists when it doesn't.

The solution here is very, very simple... far simpler than developing a custom module loading module... You just use the advanced module creation process.

But, to each his own I guess... I just don't want a future user to think that your approach would be safe, useful, advisable, or smart under any realistic circumstances.

Mike

 
New Post
3/14/2012 4:33 PM
 
Robert wrote:
Patrik Johansson wrote:
Robert wrote:
Patrik,

As Mike said, you can have multiple modules in a package and those modules can be under the same folder under DesktopModules. It really is just a matter of creating the .dnn manifest file correctly. take a look at the DNN blog module. Here is a sample from the DNN_BLOG.dnn file that shows multiple modules in one directory.

Hope this helps.

Good luck!



View_Blog
-1


View Blog
DesktopModules/Blog/MainView.ascx
View


View_Entry
View Entry
DesktopModules/Blog/ViewEntry.ascx
View


Sure, but what if you wanted to have a folder called "Modules" and then put in a few other user controls in there that had nothing to do with the blog-module at all, like say a Twitter module. Natrually you wouldn't want them to be the same extension in DNN and then the problems starts. At least I know of no way to do it, but that doesnt mean there is not such solution _)

 I tried to paste the xml from the DNN_Blog.dnn file in my response but it parsed out the tags so what you saw wasn't very helpful. 

trying to create the module install package using the DNN instance won't do what you want.  You really will need to create the .dnn manifest file by hand.  If you take a look at the blog module .dnn manifest you will cleary see how to set it up to create different modules.  For the blog module they just happen to be all related to the blog engine but they are just stand alone modules that you can drop on any page.  So, you can put all of your backoffice modules under one folder and create the manifest file to reflect that.

 I have done this in the past without any issues.  Though I do like to break it up into sub folders under the main module just for my own clarity.

I understand that trying to create the package through DNN isn't going to get you where you need but you can get there with just a little more effort.

 

You could even start by having your modules in different folders (just to start) then use the DNN packager to create the manifest for that module.  then edit the manifest files and correct all the file paths to what you want and also edit the paths in the zip file.   does that make sense?

 

good luck.

 Overall I think you are correct, and in most cases, the manifest solution would probably be the preferred one. Thank you for sharing this. In our case, as this is a custom made enterprise application, we don't want to put to much effort into "distribution packaging" as we don't really have any distribution, besides moving the controls from development servers to test servers and then to production servers. But this is all in house and DNN is only a part of a much larger solution. 

That said, I still believe the proper solution here would be that future versions of DNN was improved with regards to this. Haven't looked into the problem more in detail, but I guess is that all it would take is to allow the user to specify a package name instead of just taking the name of the folder containing the user controls, and the problem would be solved, right? 

 
New Post
3/14/2012 4:36 PM
 
Patrik Johansson wrote:
I tink you are missing the point here Mike. This thread is about what I believe to be an unnecessary limitation in DNN and one that could probably be fixed quite easily in a future version. So far no one has managed to explain why this limitation exists, it just seems like a bad solution to a potential problem that should be replaced with a good one.

I do however agree with you in that anyone that is not very familiar with databases shouldn't consider disabling indexes etc. On the other hand, as far as I know, the index won't actually solve the problem, it will just prevent installation of anything that could cause problems, without offering any useful solutions (my personal opinion).


As we are developing a large scale enterprise application, we have already developed our own "Module loading module" to overcome these limitations as well as providing some additional advantages, thus my lack of interest in the manifest solution (or rather your perception that I would be uninterested in it which is not true).

 Patrik,

I just read this, your last post. (it showed up after I had started my last post)  The only people who can answer why the module packager works the way it does is the good people at DNN corp.  It sounds like it would be a fairly easy fix for them but probably not a high priority.  They will probably tell you to grab the source, fix it and then submit it to the issue tracker along with the fix.  That way it will make it into the next release or so. (a pretty standard response from them)

 What does your "Module loading module" do? Is it for installing new modules?

Robert

 

 
Previous
 
Next
HomeHomeDevelopment and...Development and...Building ExtensionsBuilding ExtensionsModulesModulesOnly one module/extension per folder is stupidOnly one module/extension per folder is stupid


These Forums are dedicated to discussion of DNN Platform and Evoq Solutions.

For the benefit of the community and to protect the integrity of the ecosystem, please observe the following posting guidelines:

  1. No Advertising. This includes promotion of commercial and non-commercial products or services which are not directly related to DNN.
  2. No vendor trolling / poaching. If someone posts about a vendor issue, allow the vendor or other customers to respond. Any post that looks like trolling / poaching will be removed.
  3. Discussion or promotion of DNN Platform product releases under a different brand name are strictly prohibited.
  4. No Flaming or Trolling.
  5. No Profanity, Racism, or Prejudice.
  6. Site Moderators have the final word on approving / removing a thread or post or comment.
  7. English language posting only, please.
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out