ASP.NET 2.0 and Visual Studio .NET build system
The way ASP.NET works with Visual Studio was completely rebuilt in VS.NET 2005. The reason is that they wanted VS.NET to embrace the ASP.NET runtime build model. In VS.NET 2003, you were 'forced' to work in a way that did not take advantage of the ASP.NET runtime build model.
In VS.NET 2005, you don't even need to build an ASP.NET project. All compilation can be done in runtime. There's no 'code behind assembly'. There's no ASP.NET project file, you just drop files in a folder and that's the ASP.NET application.
Try doing an 'Add Web Reference' from a Web 'project' in VS.NET 2005. You'll get a .WSDL file but the proxy source code won't be generated. The proxy will be generated and compiled in runtime. This is managed by the <buildProviders> entry in machine.config (you can find it the machine.config.comments in the framework 2.0 config folder), with something like:
<buildProviders>
...
<add extension=".wsdl" appliesTo="Code" type="System.Web.Compilation.WsdlBuildProvider" />
...
</buildProviders>
You get intellisense in VS.NET based on the WSDL file itself, not on the proxy.
This architecture is quite similar to WebMatrix. VS.NET 2005 is more similar to WebMatrix than to VS.NET 2003.
If you want to ship a compiled version of your website, you can still do it by running the 'Publish web site' project in VS.NET or running the aspnet_compiler.exe tool. Then you get a set of weird assemblies in a bin folder, with some '.compiled' files and a dummy .aspx page for each page that reads "This is a marker file generated by the precompilation tool, and should not be deleted!".
I'm really not sure if all of this is related to the lack of design-time component support in VS.NET 2005 but anyway I'm not sure if I like it. I guess we'll all get used to it.