I am using Web Application Project(WAP) for development of DotNetNuke modules.
The general approach is discussed in DNN forum thread here.
My VS solution consists of main WAP Project and one or more User Control Libraries similar to described in Tutorial 6: Creating and Using User Control Libraries.
The main WAP Project basically includes one DNNDebug.aspx file (as well as web.config and global.asax), that allows me to load and test my user controls.
The User Control Libraries(DNN modules) are physically located in DesktopModules subfolder of the main project, so I don’t need to copy ascx files from control library to main project subfolders as it is recommended in the Tutorial.
Main WAP project has references to module projects, which ensures that module DLLs are copied to main project bin folder by VS.
The using simple main WAP project has an advantage compare to Vladan’s BlankModule approach http://vladan.strigo.net/Default.aspx?tabid=78 – The solution can use Development Web Server and “Edit and Continue” will work!
When I am satisfied with testing and debugging of a new module with DNNDebug.aspx, the next step is to copy the module to normal DNN Web Site Project. It is required to copy module DLL to bin directory and ASCX files to WSP DesktopModules subfolder. I also need to remove CodeBehind attribute From Ascx files, because I do not want copy source code ascx.vb files to the WSP project. The procedure how to set the project to do it automatically described in the thread “How to use WAP User Control Libraries from Web Site Project” and my blog article “Utility to Remove CodeBehind attribute From Ascx files” .