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...DNN Platform (o...DNN Platform (o...Developing Modules in completely external project?Developing Modules in completely external project?
Previous
 
Next
New Post
10/22/2008 4:41 PM
 

I'm building a module for our local developer use... ie it doesn't have to be packaged up and available to the DNN Universe at large.

I'm using SCC for our local portal, and so I put the configured code base into SCC for safekeeping.

Now, I'd like to enable people to develop modules in projects outside the DNN website tree, and then have post-build events copy the stuff into the right places so DNN will get the update.

Most of the tutorials just assume you want to set up and develop module projects right in the DesktopModules folder, but it seems like the wrong place for .csproj files and makes it tough to determine where the basic DNN code base ends and our local extensions begin.

I'd like to develop a project template (similar to some others that were put out for use) but that let you keep your module projects outside the actual website tree and deploy all the right contents to the proper places in the DNN website tree so that the new code will be recognized.

To do this, I would like to know exactly WHAT is truly required for DNN to actually run your module. Does /App_Code HAVE to have a module dir with your .cs code-behind files?

I would really like it if someone could make a sticky-post with what, exactly, is required by DNN to a) recognize and b) run a module properly, OUTSIDE of a particular way of structuring module projects or deploying them (ie assuming that we want to use the .zip form of module deployment to the DNN Universe). It would be cool if there was some command line utility or something to register a module.

I guess there is so much effort given to providing a specific implementation style, that I don't have enough understanding to do it in any other way.

Thanks,

Jesse W.

 
New Post
10/22/2008 5:51 PM
 

The description as to what is required is outlined here:

Introduction to DotNetNuke Module Development

Please note something like a .csproj file has nothing to do with the DotNetNuke module process because you can create a DNN module using notepad. See:

Creating a DotNetNuke® Module using notepad

You may have read many of te tutorials that use teh WSP format. You can also use;

Using Web Application Projects (WAP)



Michael Washington
http://ADefWebserver.com
www.ADefHelpDesk.com
A Free Open Source DotNetNuke Help Desk Module
 
New Post
10/22/2008 5:56 PM
 

Jesse,

Take a look at using the Web Application Project model of development.  This keeps all of your code in one project, compiled into one dll file (in addition to .ascx controls and other content).  The DNN core code is not in the project file, just the files for your module.  When you use this model, you can just reference the DotNetNuke.dll assembly in order to have your controls inherit from PortalModuleBase, and otherwise you don't need to develop anywhere near a DNN website.  This model doesn't support having code in the App_Code folder (since it all gets compiled into an actual assembly).

However, in our experience, placing your module inside of a DNN website offers great benefit when trying to make changes to the module.  Rather than having to copy the module to another site after each change, any change you make is quickly seen on the site.

The basics of the situation are that you need to register one or more controls with DNN (either through installing a package, importing a manifest, manually creating the module on the site, or manually accessing the database).  These controls need to inherit from DotNetNuke.Entities.Modules.PortalModuleBase.  If they use any logic outside of the control itself (code-behind or other classes), these need to be accessible to the site (either compiled into an assembly in the bin folder, or placed in the App_Code folder to be autmatically compiled, or, for code-behind, placed alongside the control).

I hope that answers your questions, let me know if you need clarification or any more information on these topics,


Brian Dukes
Engage Software
St. Louis, MO
866-907-4002
DNN partner specializing in custom, enterprise DNN development.
 
New Post
10/22/2008 5:57 PM
 

All of my development is done outside of the DNN solution, I just dbl click on the *.proj of the module I want to work on and go from there.

I've set up my own custom CodeSmith (super awesome tool) template, based off of my previous modules, to create my blank projects for me.

To do this without codesmith, I think you create a new "ASP.NET Web Application" project. I'm basing that on my project icon and the ASP project icon look the same. :)

Then add an ASCX files to the project. (I tend to call mine View[ProjectName].ascx)

You'll have to manually create the DNN file.

I use ALZip which allows for command line usage to zip things, so I create a post build script to zip up all the required files for me.

The only ASCX you "need" is the one you are going to set as the View. If you are going to have Settings or have an Edit page, you will need to have both of those created - It doesn't like having only one of those two. At all. Very unhappy.

You can add additional ASCX files for additional controls/options/whatever.

Add a reference to the DotNetNuke.dll; Add the needed "using DotNetNuke.*" that you need, and there you go.

 

EDIT - Oh yea "These controls need to inherit from DotNetNuke.Entities.Modules.PortalModuleBase." That part's important too.

 
Previous
 
Next
HomeHomeDevelopment and...Development and...DNN Platform (o...DNN Platform (o...Developing Modules in completely external project?Developing Modules in completely external project?


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