ASP.NET 4: fogyókúrán a web.config

Aki hosszabb ideje foglalkozik már az ASP.NET-tel, annak biztosan feltűnt, hogy minden verzióval jelentősen hízott a web.config. Elég csak létrehozni egy új webhelyet Visual Studioban és kapunk egy több képernyős konfig fájlt, ami ráadásul szinte minden webalkalmazásnál ugyanaz. A beállítások többségéhez többnyire hozzá sem nyúlunk (tegye fel a kezét, aki kiszedte a .vb fájlok fordítására vonatkozó beállításokat egy C# projektből), viszont nap mint nap kerülgetjük. A helyzet az IIS 7-tel csak “rosszabbodott”, hiszen Windows Server 2008-on már a webkiszolgáló beállításai is a web.configba kerülnek.

Erre a problémára úgy látszik Redmondban is felfigyeltek, mert a .NET Framework 4-től kezdve a beállítások nagy része átkerül a machine.config fájlba és az ott szereplő értékeket az egyes webalkalmazások öröklik. Ez a gyors fogyókúra alapesetben ennyire fogja redukálni a web.configot (béta 2 példa - változhat):

  <?xml version="1.0"?>
  <configuration>
    <system.web>
      <compilation targetFramework="4.0" />
    </system.web>
  </configuration>

Sőt, ha a webalkalmazásunk .NET Framework 4 application poolban fut, akkor a fenti “4.0” az alapértelmezett targetFramework érték, tehát akár üres is lehet a web.configunk.

Ami már most is működik

Van éppen egy projektünk, amiben az IIS 7 UrlRewrite modulját használjuk. Nagyon jó eszköz, azonban alapértelmezés szerint ez is a web.configba pakolja a létrehozott szabályokat, ami a mi esetünkben jelen pillanatban közel 200 sor és ez a szám gyors ütemben növekszik. Ezért azt a megoldást választottuk, hogy a szabályokat kitettük külön .config fájlba a configSource attribútum használatával. A web.configban a modul által használt rewrite szekcióból ez maradt:

  <rewrite>
    <rules configSource="web_rewrite_rules.config" />
  </rewrite>

A web_rewrite_rules.config fájl pedig így kezdődik:

  <?xml version="1.0" encoding="UTF-8"?>
  <rules>
    <rule ...>
      ...
    </rule>
...
</rules>

Ez a módszer tökéletesen működik .NET Framework 3.5 és IIS 7.5 (Windows 7) alatt, az IIS Management Console felismeri a configSource attribútumot és a grafikus felületen végzett módosításokat a külső fájlba írja. Eddig egy mellékhatást tapasztaltunk: a hivatkozott külső fájl módosítása esetén nem indul újra automatikusan a webalkalmazás és mivel a beállítások gyorsítótárban tárolódnak, a rendszer észre sem veszi, hogy változtattunk valamin. Az már a konkrét helyzettől függ, hogy ez éppen előny vagy hátrány.



Balássy György (MS RD, ASP.NET MVP, MCTS)

Balássy György (MS RD, ASP.NET MVP, MCTS) Villamosmérnök, a BME Automatizálási és Alkalmazott Informatikai Tanszékén webportálok fejlesztését oktatja. 2000 óta foglalkozik a Microsoft .NET platformjával, melynek meghonosításában jelentős szerepet vállalt előadóként, konzulensként és A .NET Framework és programozása című könyv társszerzőjeként. Az MSDN Kompetencia Központon belül a Portál Technológiák Csoport vezetője, szakterülete web alapú rendszerek fejlesztése és üzemeltetése. 2004-ben Magyarországon elsőként kapta meg a Most Valuable Professional címet, majd 2005 óta a Microsoft magyarországi regionális igazgatója. Publikációi a Technet Magazinban, az MSDN Kompetencia Központ honlapján és szakmai blogjában olvashatóak.

2009.08.24. 7:44:27 | Permalink | Hozzászólások: 0 | Tárgyszavak: ,


  • MOSS blobcache

    Balássy György (MS RD, ASP.NET MVP, MCTS) Aki ismeri az ASP.NET cache szolgáltatásait és tudja, hogy a SharePoint az ASP.NET-re épül, annak számára nem újdonság, hogy a SharePoint is támogatja az output cachinget és az object cachinget. Amit viszont nem tud az ASP.NET, de a SharePoint igen, az a blob cache. Tovább »
  • VaryByParam gond

    Dávid Zoltán Ez ismét csak egy rövid megjegyzés, azért, hogy legközelebb ne szívjak vele. Ha oldal OutputCache esetén külön szeretnénk gyorsítótárazni POST/QueryString paraméterek alapján, akkor ezt a VaryByParam attribútumban jelezhetjük. Az MSDN alapján ezeket a paramétereket vesszővel kell elválasztani. Nekem nem működött így. Viszont pontosvesszővel igen. Tovább »


Írja meg Ön is véleményét!


Hozzászólásokat csak regisztrált, bejelentkezett felhasználóktól tudunk elfogadni!

Hozzászólások