Iteam
GitHub

ASP.NET: 8 Tips när du konverterar en Web Site till Web Application

Det råder lite begreppsförvirring kring det koncept som heter Web Site och det som heter Web Application så först och främst:

  • Web Application är en webbplats utvecklad med hjälp av Visual Studio som har en .csproj fil i rotbiblioteket. Web Application försvann ett tag i och med Visual Studio 2005 för att helt ersättas med:
  • Web Site är en webbplats utvecklad med valfritt verktyg och saknar .csproj fil och all källkod inkl .cs filer går att redigera i runtime och om-kompileras on the fly utan omkompilering vilket innebär att man kan fortsätta utveckla applikationen under tiden som man debuggar den.

Spontant känns Web Site helt klart bättre och man förstår varför Microsoft ville bli av med Web Application som känns lite som ett hack för det krävs så mycket extrafiler som beskriver projektet osv. Alla aspx-filer måste dessutom kompletteras med en designer.cs-fil vilket också gör projektet lite mer klottrigt. MEN, när man vant sig med detta och framför allt har flera projekt sedan tidigare i den gamla formen Web Application så är det inte alltid så kul att behöva byta ut byggscript osv så ofta behöver du konvertera en Web Site till Web Application. Då ska du tänka på följande:

  1. Skapa en ny Web Application project i Visual Studio
  2. Kopiera dina filer från din Web Site till denna mapp
  3. Högerklicka på Convert To Web Application på huvudnivån eller på enskilda filer
  4. Gå igenom alla filer och se till att där det står <@Control Src=””> byter du ut detta till <@Control Codebehind=””>
  5. Om det står CodeFile=”” byter du också det till CodeBehind
  6. Upprepa steg 3 ovan för de filer du har uppdaterat med punkt 4 och 5.
  7. Flytta de filer som ligger i App_Code till lämpliga ställen (t ex rootnivån för global.asax.cs, separat mapp för dina klasser)
  8. Ta bort .webinfo filen och se till att bara behålla en AssemblyInfo.cs

Nu bör det fungera att kompilera!


Christian Landgren
2009-02-13