Régi probléma, hogy egy nagyobb projektben ahol többen dolgozunk együtt, nehéz az fájlok egységes fejléc kinézetét és tartalmát megvalósítani. Ki-ki vérmérséklete szerint tesz be kisebb vagy nagyobb fejléceket, s biza van aki meg semmit. Erre régi megoldás volt, hogy a VS által adott template-k kerültek a header résszel kiegészítésre, de sajna ez is csak részmegoldás, hisz nem minden fájltipushoz és ami fontosabb csak egyszer (a létrehozáskor) lehet azokat betenni.
A most futó projektben számos elég komoly dokumentálási feltétel adódott, s úgy döntöttem ezt a problémát most már meg kell oldani, ha másképp nem legvégső esetben írunk valamit ami megoldja a gondjainkat. Számos ötlet és megoldás bukkant fel (ezek közül van amit mi is kitaláltunk már, használtunk), míg végül a keresési hálóba került egy open source projekt…
License Header Manager for Visual Studio
A License Haeder Manager egy Visual Studio kiegészítő, melyet a CodePlex keretei között publikáltak, és felhasználása így ingyenes. Az eredeti változat még a VS 2010-hez készült (nem is értem miért nem bukkantam rá előbb), és a mostani VS 2013-al is tökéletesen működik. A megoldás előnye, hogy tetszőlegesen lehet a fejlécezhető állománytípusokat felvenni, s minden egyes típushoz külön-külön fejléc definíciót vehetünk fel.
Telepítés, beállítás
Telepítése egyszerű, a kiegészítő a VS Tool-k között található, és egy kattintásra tudjuk letölteni, telepíteni. Telepítést követően a kiegészítő alapértelmezett beállításait a Tools – Option menüpontban megjelenő Options dialógus License Header Manager szekciójában találjuk meg.
Első és legfontosabb, hogy itt lehet megadni, módosítani az alapértelmezett default header definíciót, melynek magyarázatát kicsit később írom le. A definícióhoz szervesen kapcsolódik a másik fő beállítási csoport a Languages. Itt találjuk, hogy milyen fájlkiterjesztés esetén miképp kell a komment szekciót kezelni.
Ezen beállítások mellett a General szekcióban megadhatjuk, hogy az új fájlok létrehozásakor automatikusan hozzáadásra kerüljön-e a fejléc, illetve – s ez külön nagyon tetszik – megadhatjuk, hogy a fejléc generálás automatikusan milyen funkciók előtt, vagy után kerüljön lefuttatásra. Például felvehetjük, hogy a fájl mentése előtt a fejléc kerüljön beszúrásra, frissítésre, így automatikusan lehet frissíteni mentés előtt az aktuális adatokkal a fejlécet.
Használat
Az automatikusnak beállított folyamatok mellett lehetőségünk van a fejléc kézi elhelyezésére, sőt törlésére is. Ehhez menjünk a Solution Explorer-ben a fájl listára, és az érintett fájlt válasszuk ki. Jobb egérklaty és ezt követően a menüben keressük meg a License Header menüpontot. Ez alatt már láthatjuk is a két választási lehetőséget, és a választás után a rendszer elvégzi a fájl módosítását.
Fejléc definíció
A rendszer a fejléceket egy az adott projektben elhelyezett .licenseheader állományban megadott definíció alapján készíti el. Amennyiben az állomány még nem létezik, akkor az első fejléc generálás során az alapértelmezett definíció másolásával az állomány automatikusan létrejön.
Az állományban minden egyes kiterjesztés típushoz külön-külön adhatjuk meg, hogy ott milyen beállításokat alkalmazzunk. A megoldás segítségével egy Solutionon belül is lehet az egyes projekteknek eltérő fejléc tartalmat megadni.
A definíciós állományban a következő properitásokat tudjuk alkalmazni:
- %FullFileName% teljes fájlnév (a könyvtár elérési útvonallal),
- %FileName% fájlnév,
- %CreationYear%, %CreationMonth%, %CreationDay%, %CreationTime% az adott fájl létrehozási dátum és idő adatai,
- %CurrentYear%, %CurrentMonth%, %CurrentDay%, %CurrentTime% aktuális dátum és idő adatok
- %UserName% aktuális felhasználó neve
- %Project% projekt neve (v1.4-től)
- %Namespace% az állományban használt első namespace neve (v1.4-től)
extensions: .cs // This is a sample license header. %UserName%, %CurrentYear%-%CurrentMonth%-%CurrentDay%
Generált eredmény
// This is a sample license header. john.doe, 2014-17-18