Witajcie, dziś krótki wpis o tym jak pozbyć się (przynajmniej w pewnej części) Visual Studio z pracy nad projektem. Wpis ten nie działa zawsze i generalnie odradzałbym kombinowanie nad nim przy konfigurowaniu WCF-ów, tworzeniu kodu tylko w C#, intensywnej pracy nad kodem, który jest następnie generowany przez VS (wszystkie Custom Tool buildery i T4). W moim przypadku idealna sytuacja to np. praca nad layoutem w plikach .cshtml (w przypadku Razora), .spark (w przypadku Spark View Engine) oraz ewentualnie .aspx i .ascx i jakieś pojedyncze zmiany w plikach *.cs z kodem.

Sublime Text 2

Sytuacja, w której byłem przez ostatnie kilka dni była trochę frustrująca: najpierw tworzę sobie coś w Sublime Text, zapisuję i widzę, że dorzuciłem 2 zmienne w modelu, więc muszę się przełączyć do VS, które najpierw płacze, że pliki mu się pozmieniały, potem musi je przeładować, później prewencyjnie zwiesić się na kilka sekund i dopiero wtedy można sobie przebudować projekt. Strasznie irytujące i do tego – na co mi włączony program zżerający 1GB RAMu, którego nie potrzebuję?

Z pomocą przychodzi tu Build system w moim ulubionym edytorze, do którego można podpiąć MSBuilda. Oczywiście nie trzeba kombinować w tym kierunku i używać po prostu linii komend w tym celu, ale powiedzmy, że jesteśmy leniwi i nie przepadamy za linią komend (przynajmniej na Windowsie ten drugi argument może być poparty racjonalnymi dowodami).

W przypadku omawianego edytora jest kilka przygotowanych już build systemów; nie ma tam jednak nic dla świata .NET, ale to akurat możemy całkiem szybko naprawić ;]

Najpierw dodamy sobie nowy Build System z Tools –> Build System –> New Build system i w treści pliku, który nam się otworzył wpisujemy coś takiego:

{
    "cmd": ["C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\MSBuild.exe", "$project_base_name.sln"],
    "working_dir": "${folder}"
}

I zapisujemy pod nazwą msbuild.sublime-build w miejscu zaproponowanym przez edytor. Moje rozwiązanie zakłada kilka rzeczy:

  • Obecność czegoś takiego jak Sublime Text Project (możemy otworzyć w Sublime cały folder i wybrać z menu Project opcję Save Project As…) i włączony odpowiedni projekt, który chcemy zbudować
  • Nazwa projektu jest identyczna jak nazwa pliku z solucją
  • Plik z solucją jest bezpośrednio w katalogu głównym projektu

I voila! Teraz naciskając Ctrl + B budujemy solucję. Postęp budowania, potencjalne błędy i warningi pojawią się w konsoli.

Oczywiście moje rozwiązanie nie robi wszystkiego; VS w dalszym ciągu się przydaje jeśli chcemy np. przebudować plik designera dla formatek ASCX, ASPX, WinForms, a poza tym zasobów i innych. Tego nie udało mi się jeszcze obejść :)

Referencje

Sublime Text 2 Build System – Docs