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.0Do WAP (PAs) and non-WAP (PAs) conflict?Do WAP (PAs) and non-WAP (PAs) conflict?
Previous
 
Next
New Post
5/11/2008 8:40 PM
 

Pardon the ignorance.  I'm just now spinning up my development in DNN4 from DNN3 and I'm still trying to figure out the new Private Assembly packaging procedures and apparently there are two different ways of doing it...at least...and I've seen some pages on it.  BUT, if you have a module that was packaged one way and installed to a portal and then you have that same module packaged and installed the OTHER way and then you install it over top the other one in your portal...do bad things happen?

I'm asking because I had one PA that a coder made for me installed on my DNN4 portal.  I'm not sure which type it is but I know it did not create the folder for the module under App_Code.  But then I had a different coder update this module for me and they packaged it into a PA that when I installed to my portal (over the existing module) did a few things I haven't seen before in DNN3.

First, it actually changed my web.config file!  It added a "CodeSubDirectory" to that file.  It also created a module folder under the App_Code folder.  I'm not sure what else it did except that it DID crash my site with an error that looked something like:

Compilation Error
Description: An error occurred during the compilation of a resource required to service this request. Please reviewthe following specific error details and modify your source code appropriately.

Compiler Error Message: BC30560: 'DataProvider' is ambiguous in the namespace 'Ryno.DNN.Modules.MyModule.Data'.

Source Error:

Line 11: #Region "Shared/Static Methods"
Line 12:         ' singleton reference to the instantiated object
Line 13:         Private Shared objProvider As DataProvider = Nothing
Line 14:
Line 15:         ' constructor
 

Source File: C:\Inetpub\vhosts\mysite.com\httpdocs\App_Code\MyModule\DataProvider.vb    Line: 13

It had other stuff in the error too.  So I deleted the App_Code directory AND the module directory under DeskTopModules and the .dlls and took that section out of the web.config.  My site came back up.  So I went into module definitions and uinstalled the module.  It was shown as gone.  Except on the page where the module was residing which now had an error.  So I deleted the module from the page.  I thought I had cleanly gotten rid of it so that I could install the new one and prevent conflict.  I installed the new PA again (which resulted in it updating the web.config and making the App_Code directory again) and it installed but I got this installation error talking about VIOLATION of UniqueKey and "cannot insert duplicate key in object 'dbo.ModuleDefinitions."  But the module was now back in my dropdownlist so I dropped it on a page and it showed this error:

Could not load type 'Ryno.DNN.Modules.MyModule.MyModule'.---> System.Web.HttpParseException: Could not load type Ryno.DNN.Modules.MyModule.MyModule'. --->System.Web.HttpParseException: Could not load type 'Ryno.DNN.Modules.MyModule.MyModule'. --->

So it appears to me that:

1.  You can't upload one type of PA of the same module over another type of PA of the same module on the same portal (can anyone confirm?)

2.  If you try to....the uninstall link in the ModuleDefinitions page will not completely uninstall the module

3.  Because of Step 2....if you re-install you will get a key violation because something in a database has not been deleted like it should have

If anybody can help me out I'd appreciate it.  Thanks much.


I'm too poor for anything other than the community version
 
New Post
5/11/2008 9:11 PM
 

I personally prefer the WAP approach to module making.  Although I debate often with myself (yes, I talk to myself), about if it's the best method.

It does seem to make my life easier, and deploying/testing/debugging modules for clients generally easier.  This might only be because I'm old, and have been doing it this way for so long.

The .DNN installers can support web.config changes.  I don't personally use this feature.  I try very hard not to require web.config changes in the first place, but when needed, making sure myself or the client has access to manually edit the web.config is best.  Having a web.config change happen (and break a site), when no one is available who can access (or knows how to work with) the web.config makes for not-happy-times.

I cannot think of a reason why you would get the "cannot insert duplicate key in object 'dbo.ModuleDefinitions" message, unless perhaps the module installer did some manual changes here?
I would recommend converting both modules to WAP PA's, and, most importantly, testing thier install and use on a site that can be safely deleted if it breaks.  Probably developers who don't use WAP's for thier modules would not 100% agree.

For myself, I would probably try to "fix" the existing site by manually going through the tables related to module-definitions...removing all the entries related to this broken install of the module.

 

 
New Post
5/12/2008 8:01 AM
 

Ryno,

  • WSP modules can be created with VWD and VS 2005/2008, they get compiled on the fly
  • WSP modules contain full source, if classes are used, they are usually added in a subfolder of App_Code
  • WSP modules do not have .dll files
  • WAP modules need .dll files in /bin folder like DNN 3
  • WAP modules are compiled and don't need to contain source code
  • WAP modules require VS 2005SP1 or 2008

When upgrading from DNN 3 to DNN4 WSP, make sure that .dll files get deleted from /bin folder.

HTH


Cheers from Germany,
Sebastian Leupold

dnnWerk - The DotNetNuke Experts   German Spoken DotNetNuke User Group

Speed up your DNN Websites with TurboDNN
 
New Post
5/12/2008 9:04 AM
 

Hi,

The key violation may be avoided by deleting the record manually from "Modules" table.
 You also may need to remove the old .dll for GA module from the bin.

 

Thanks

--Mohsin

 
New Post
5/12/2008 2:43 PM
 

Just to expand a bit on the summary presented above.

You CANNOT easily mix a module that was built with WAP and convert it to WSP.  Or the other way around, it can be done, I actually completed this exercise when working with my guestbook module, however, you must manually handle the file deletions when the module is installed.

The CodeSubDirectory entry was automatically created by DotNetNuke when installing the WSP version as it contained C# code and required the specific code subdirectory to properly compile without issue.

I would contact your module developer, as converting from WAP to WSP is not something that you would typicaly do, deployments are much easier to manage when they are non source deployments.  At least in my opinon they are.

I do NOT use WSP for any development projects under any circumstances.


-Mitchel Sellers
Microsoft MVP, ASPInsider, DNN MVP
CEO/Director of Development - IowaComputerGurus Inc.
LinkedIn Profile

Visit mitchelsellers.com for my mostly DNN Blog and support forum.

Visit IowaComputerGurus.com for free DNN Modules, DNN Performance Tips, DNN Consulting Quotes, and DNN Technical Support Services
 
Previous
 
Next
HomeHomeArchived Discus...Archived Discus...Developing Under Previous Versions of .NETDeveloping Under Previous Versions of .NETASP.Net 2.0ASP.Net 2.0Do WAP (PAs) and non-WAP (PAs) conflict?Do WAP (PAs) and non-WAP (PAs) conflict?


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