C# - Előre definiált parancsok a fejlesztőkörnyezetben

forráskód letöltése
Cikkünkben a Visual Studio.NET keretrendszer előre definiált parancsaival foglalkozunk, melyek egyrészt felhasználhatóak a keretrendszerben, kiváltva néhány menüben elérhető funkciót, valamint megadhatjuk őket a /command parancssori kapcsoló után argumentumként. A parancsok a legváltozatosabb feladatok elvégzését egyszerűsítik le, képesek vagyunk akár macro-kat is futtatni. A mellékelt példában ezek használatára mutatunk példákat.
Parancsok a fejlesztőkörnyezetben
Az IDE előre definiált parancsait a Parancsablak (Command Window) nevű eszközben érhetjük el közvetlenül, ahol ezeket egy „>” karakter után kell begépelnünk, és ezt követően ENTER-t nyomnunk, akár csak egy konzolban. Ezzel a módszerrel direkt kapcsolatba kerülhetünk az IDE funkcióival, a billentyűzetről érve el őket.
A Command Window a keretrendszer View – Other Windows – Command Window menüpontjában érhető el, vagy a CTRL+ALT+A billentyűkombináció lenyomásával.

Az elérhető parancsok listáját a Tools – Options menüpontban történő kattintáskor megjelenő dialógusablak Environment – Keyboard pontjában találjuk meg.
A parancsokhoz lehetőségünk van ún. ALIAS nevet rendelni. Ezekkel a nevekkel hivatkozhatunk egy-egy parancsra anélkül, hogy annak teljes nevét kiírnánk. Rendelkezésre áll egy parancs, mely tetszőleges fájlokat nyit meg, ennek neve File.OpenFile, ahol a megnyitandó állomány nevét argumentumként kell megadni a parancsnév után. Ehhez következőképpen adhatunk meg egy alias-t „open” névvel:

alias open File.OpenFile
A keretrendszer alias neveit a prompt-ban kiadott alias paranccsal listázhatjuk ki.
A parancsok a keretrendszer menürendszerét követik, vagyis az egyes parancscsoportok a menürendszer egy menüjében elérhető funkciók és lehetőségek végrehajtását lehetővé tevő parancsokat tartalmaznak. A parancsok felsorolása meghaladja a cikk terjedelmét, de érzékeltetendő a rendszer lényegét, álljon itt néhány parancs neve, melyek a menüpontok neveivel kezdődnek, és az egyes parancsok egy pont karakterrel elválasztva („.”) követik a gyűjtőelnevezést.
  • File.NewFile: tetszőleges állomány létrehozása egy minta alapján.
  • Tools.Options: a Tools – Options dialógusablak megnyitása.
  • Window.Cascade: a megnyitott állományok elrendezése lépcsőzetesen.
A parancsok kiadásával a keretrendszer szinte teljes funkcionalitása elérhető.
Parancsok megadása parancssori kapcsolóban
A DEVENV.EXE állomány rendelkezik egy sor parancssori kapcsolóval, melyek segítségével bizonyos műveletek végezhetők el a keretrendszer betöltődése nélkül, vagy azt követően.
Ezek közül a /command parancssori kapcsoló az, mely érdekes lehet a parancsok megadása szempontjából. Ezt követően ugyanis megadhatunk egy tetszőleges parancsot, mely a keretrendszer betöltődése után végrehajtódik. A keret betöltése után állományt, vagy akár egy projektet hozhatunk létre.
Ekkor a devenv.exe nevet követően megadhatunk egy SOLUTION nevet (.sln), melyet be kívánunk tölteni a keretrendszerbe, és ezt követheti egy vagy több parancs a /command kulcsszóval azonosítva. Például a betöltött Windows-os alkalmazás projektjében található Form1.cs állományt a következőképpen nyithatjuk meg:
devenv Projekt.sln /command File.OpenFile Form1.cs
A mellékelt alkalmazásban háromféle módszerrel tölthetjük be a projekt mappájában található IDECommandTest projektet. Ekkor a Process osztály Start metódusával háromféle parancssori argumentummal indíthatjuk el a devenv.exe keretrendszert. A parancsokat a ComboBox kontrolban választhatjuk ki.
Az első parancs használatával megnyitjuk a Form1.cs állományt. A megadott argumentum így a következő:
string arg = "\"" + Application.StartupPath + "\\IDECommandTest\\IDECommandTest.sln \" /command ";
arg += "File.OpenFile Form1.cs";
A második paranccsal megnyithatjuk a projekt Text.txt állományát, és a Macros.Samples.VSEditor.InsertTime macro segítségével beszúrhatjuk a mai dátumot az állomány aktuális kurzorpozíciójába. Látható, hogy minden parancsot a /command kulcsszó előz meg.
arg += "File.OpenFile Text.txt /command Macros.Samples.VSEditor.InsertTime";
A harmadik paranccsal megnyithatjuk az új projekt hozzáadását lehetővé tevő varázslót.
arg += "File.AddNewProject";
A harmadik parancs nem kaphat parancssori argumentumot, így nem tudjuk automatikusan létrehozni a kívánt projektet.