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

HomeHomeArchived Discus...Archived Discus...Developing Under Previous Versions of .NETDeveloping Under Previous Versions of .NETASP.Net 2.0ASP.Net 2.0Question regarding module dependenciesQuestion regarding module dependencies
Previous
 
Next
New Post
8/22/2008 3:44 PM
 

We have developed a number of DNN modules some of which rely on a common module that we also developed. Is there anyway to apply dependencies on specific versions of modules?

For example, module X 1.1 depends on common features in module Y 1.1, I want to prevent people from installing X 1.1 if they have a lesser version of Y (like 1.0). Does this already exist in DNN? If so, how is it done?

I know that dependencies can be created by specifying the fully-qualified class path in the dependencies section of the .dnn file. However, this doesn't take into account of different versions of the same file. Plus, I'm finding that this method is not working in my case. I can still install modules that are dependent on other modules (e.g. Forums ) that are not present.

 

 

 
New Post
8/22/2008 4:37 PM
 

What I have found to work for me at my day job (as well as my side stuff) is to create a "common" module (or possibly a set of common modules) that do nothing more than contain the common DLLs used by the other modules.  So long as when you refactor code in the common module you don't kill old functionality (new methods could be called from the old method calls, for example), then older modules that were compiled against the older version will continue to work.  The "common" module still needs to have at least a "View" control (by nature of being a module), but it would never have to be placed on a tab after that.

At work I have somewhere around 20 modules I've created that all depend on a certain core set of functionality; beyond that some require one shared DLL or another, but as long as all the ones that are common are packaged into a single module and then the other modules themselves only package their OWN DLL, I have found that versioning is no longer a problem.

Another way around the versioning (if you have control over the web.config) is to do assembly redirecting to ensure modules use the new version without needing recompile (this only applies when you compiled and said "UseSpecificVersion" when referencing the DLL).


-- Jon Seeley
DotNetNuke Modules
Custom DotNetNuke and .NET Development
http://www.seeleyware.com
 
New Post
8/22/2008 4:40 PM
 

I might add that I also include common javascript files, web services, images, and other resources in my Common module.  This allows for a single point for literally ALL common functionality instead of duplicating them across modules.  This is where my comment about possibly putting into a set of common modules might be more appropriate if you have a very large set of potentially common items and don't want to load down another installation with something they don't need.

One neat thing I do with my javascript is I have a generic handler (ASHX) that I can pass a querystring to and it first caches the results for the query string, but additionally behind the scenes is it combines all the javascript files per the querystring into a single request in the order they were requested.  Pretty suave.  It also allows me to update the javascript versions but not need to change the querystring to reference them (like when loading in jQuery, for example).


-- Jon Seeley
DotNetNuke Modules
Custom DotNetNuke and .NET Development
http://www.seeleyware.com
 
Previous
 
Next
HomeHomeArchived Discus...Archived Discus...Developing Under Previous Versions of .NETDeveloping Under Previous Versions of .NETASP.Net 2.0ASP.Net 2.0Question regarding module dependenciesQuestion regarding module dependencies


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