You can blame .NET 2.0 and Visual Studio 2005 for all these problems and you can point your finger at Visual Web Developer for introducing these breaking project changes with DotNetNuke development.
In VS 2003 we used the WAP (Web Application Project) model. VS 2005 changed to WDP (Web Deployment Project) model which was supposed to enhance .NET 2.0 development and deployment with more flexible options like single assemblies by website, content folder, all UI components or each compiled file, pre & post build actions, and modifying web.config based on Visual Studio build configs, along with other features.
The world complained about the breaking changes between the models and Microsoft released an interim update and add-in to allow VS 2005 to support the previous WAP. In fact. the upcoming VS 2005 SP1 includes both both WAP and WDP models.
Still following? Ok, here is why it gets all mixed up...
- WAP is NOT supported Visual Web Developer Express Edition.
- All 2005 Express Editions are tied to the specific .NET 2.0 framework.
- .NET 2.0 introduced run time and design time breaking changes
This means that DotNetNuke projects had to be converted to WDP in order for professionals and hobbyists alike. There is great debate over which model is better, especially within the DNN community.
Having said all that, this is where most of the confusion lies with the non-professional developers. VWD Express Edition cannot creat class libraries or pre compile dlls or perform the advanced capabilities of Visual Studio. They can however build and evaluate web projects that can be deployed to IIS/ASP.NET (with source). Visual Studio allows you to develop and debug projects and create debug or release dlls, along with mechanisms to publish your sites.
- Note that VS 2005 and WAP have a few issues with debug/release builds and may leave file droppings.
- Launching Visual Studio in release/debug mode sets the mood attaching to ASP.NET.
- When a web hit sparks ASP.NET to life, the current web.config setting may lead to unexpected behavior.
Upon the first request to an IIS/ASP.NET 2.0 website it shadow copies your dlls and aspx and code behinds to a temp folder (to prevent locking/partial update issues) then recompiles your site to serve it to the Internet world. Version 1.x only monitored a few files such as web.config but with the new project model any file change to any folder of your application in your IIS virtual site will cause a recompile for that part of the application. An aspx file may have a code behind file available on the site (source) or it may be pre-compilled into a dll with a namespace. This is how aspx files can be modified 'live' to return results immediately.
Sorry for long winded explanation, but it is the only way to explain the recent rise in confusion from installation to module development within our community. As we speak, the release candidate of .NET 3.0 (WinFX) is available from Microsoft, so it won't be long until we need to support 3 flavours of DotNetNuke for our hungry followers.