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.0Module packaging questionsModule packaging questions
Previous
 
Next
New Post
4/12/2007 12:25 PM
 

A couple of questions on module packaging:

1 - Is it possible to create a module with no user interface?  Basically we have a project that consists of multiple sub-modules that could be installed independantly of each other.  Since they use the same core database structure, we would like to have one module that consists of nothing but the SQL tables and stored procedures.  The idea is that this module would be installed first to create the necessary database structure, then the other modules could be installed without needing to create the structure.  I've looked through the 'Module Developers Guide', but unless I'm missing something (highly probable), it looks like the .dnn file requires user controls.  I want a module that only has the SqlDataProvider install/uninstall scripts.  Possible?

2 - Along with that, does the DNN module installation process support the idea of dependancies?  If that core module hasn't been installed yet, I would like the other module installations to fail (preferably with a message explaining what dependancies are missing).

Thanks for any suggestions.

 

 
New Post
4/12/2007 8:33 PM
 

dwighttovey wrote

A couple of questions on module packaging:

1 - Is it possible to create a module with no user interface?  Basically we have a project that consists of multiple sub-modules that could be installed independantly of each other.  Since they use the same core database structure, we would like to have one module that consists of nothing but the SQL tables and stored procedures.  The idea is that this module would be installed first to create the necessary database structure, then the other modules could be installed without needing to create the structure.  I've looked through the 'Module Developers Guide', but unless I'm missing something (highly probable), it looks like the .dnn file requires user controls.  I want a module that only has the SqlDataProvider install/uninstall scripts.  Possible?

2 - Along with that, does the DNN module installation process support the idea of dependancies?  If that core module hasn't been installed yet, I would like the other module installations to fail (preferably with a message explaining what dependancies are missing).

Thanks for any suggestions.

 

I'de recommend including the SQL with every module and not worrying about it.  Key thing here is not use the "standard" DROP TABLE statements, but rather something like I use in my modules (helps a bit to avoid those "mishaps"):

IF NOT EXISTS (SELECT * FROM {databaseOwner}SYSOBJECTS WHERE id = object_id(N'{databaseOwner}[{objectQualifier}MedRecBlogsRead]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
BEGIN
CREATE TABLE {databaseOwner}[{objectQualifier}MedRecBlogsRead] (
 [ID] int IDENTITY ( 1,1 ) NOT NULL,
 [UserID] int NULL,
 [SourceBlogUserID] int NULL,
 [LastVisited] datetime NULL
)

ALTER TABLE {databaseOwner}[{objectQualifier}MedRecBlogsRead] WITH NOCHECK ADD
 CONSTRAINT [{objectQualifier}PK_MedRecBlogsRead] PRIMARY KEY CLUSTERED
 (
  [ID]
 )  ON [PRIMARY]

ALTER TABLE {databaseOwner}[{objectQualifier}MedRecBlogsRead] ADD
 CONSTRAINT [{objectQualifier}FK_MedRecBlogsRead_{objectQualifier}Users] FOREIGN KEY
 (
  [SourceBlogUserID]
 ) REFERENCES {databaseOwner}[{objectQualifier}Users](
  [UserID]
 )  ON DELETE CASCADE
END
GO

Second, on the dependancy issue:  I'm not aware of anything in the core to allow this.  If the installer finds all the files, and there are no SQL errors:  you get the module available to be installed on pages.  No custom code in your module is run (although this would be a very useful feature for module developors).

If it was me, and if it's a product as it sounds like it is, perhaps consider making a small control-panel "installer" module designed specifically to install different components of your system.  My wording probably makes it sound more complex then it really is.

 
New Post
4/13/2007 9:42 AM
 

Actually,

Dependancies on module install appear  to be here for us to play with now:
http://www.adefwebserver.com/DotNetNukeHELP/Misc/Dotnetnuke_AJAX_modulei.htm

 

Kinda nifty, I think 

 
New Post
4/13/2007 5:40 PM
 

sjstokes wrote

I'de recommend including the SQL with every module and not worrying about it.  Key thing here is not use the "standard" DROP TABLE statements, but rather something like I use in my modules (helps a bit to avoid those "mishaps"):

Thanks.  We thought about doing that, but the problem there is that is we change the SQL in the future, it could become a maintenance headache.  In addition to avoiding the DROP TABLE statements, we then have to watch for changes to table structures, views, stored procedures, etc.  Thats basically why we wanted the SQL to be an independant installable/upgradeable module.

 

 
New Post
4/13/2007 5:44 PM
 

sjstokes wrote

Actually,

Dependancies on module install appear  to be here for us to play with now:
http://www.adefwebserver.com/DotNetNukeHELP/Misc/Dotnetnuke_AJAX_modulei.htm

Oh naturally.  We started developing on 4.4.0, and haven't upgraded to 4.5.0 yet, so of course the functionality we need is in 4.5.0.  Not saying that we won't upgrade, just haven't done it yet.  Guess I'll have to install a test site and see what happens.

Thanks for the pointer.

 
Previous
 
Next
HomeHomeArchived Discus...Archived Discus...Developing Under Previous Versions of .NETDeveloping Under Previous Versions of .NETASP.Net 2.0ASP.Net 2.0Module packaging questionsModule packaging questions


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