The DotNetNuke custom module I needed to create from scratch was a simple "Signup here for upcoming announcements" module for non-registered users to simply check the desired mailing lists (I'll call them "alerts"), enter a first name, last name, email address, and that's it.
I've been working on a home-spun custom DNN module for several days and I want to just be done with the thing. Its cool, definitely cool. I need to get on with something else and come back to building DNN modules with a fresh perspective. There's a whole mindset to get into for writing custom DNN modules and a lot of take in to get up and running. I get most of it, but I want to go back when I'm not trying to get something out the door and understand the process and details more thoroughly.
I'll probably list the Signup app as a free module here at DBVT.COM when I've crossed all the t's and such, but this, my first PA package installed without a hitch and after a couple of tries, everything works.
A few PA package install notes:
- Don't add the debug DLLs to the install .ZIP. Wacky things happen as a result. Page objects like panels were visible when they should not have been, checkboxes not checked by default, that sort of thing. The fix could have been #2.
- Don't include spaces in the module NAME element in the .DNN file, as it becomes the subdirectory under DesktopModules and you don't see any other subdirectory names with spaces.
- I generated the 02.00.00.SqlDataProvider using VS.NET and Textpad, not CodeSmith. I right-clicked on the selected tables and procedures in the VS.NET Server Explorer and generated SQL Script to a file. Then I did a search replace in TextPad on “CREATE PROCEDURE ” to “CREATE PROCEDURE {databaseOwner}{objectQualifier}“ and on “[dbo].“ to “{databaseOwner}{objectQualifier}“ Everything created correctly and it took very little time.
I won't provide a sweet tutorial on creating a DNN module or a PA Install Package like Vicenç at dnnjungle or Bo at dotnetnuke.dk, but I'll be blogging about it for temporary closure when I'm done.