Co gdy każdy programista ma inne lokalne ustawienia aplikacji?

Całkiem normalną sytuacją jest, gdy każdy sam sobie instaluje server bazy danych (powiedzmy SQL Server). Wtedy u każdego ta nazwa może być różna. Ktoś zainstalował wersję SQL Express, ktoś inny ma już kilka wersji SQL (2008, 2012, 2014, 2016, …) różnie nazwanych, u kogoś innego w poprzednim projekcie instancja musiała się konkretnie nazywać.

Podmiana w configu i ignorowanie

Prędzej czy później dochodzimy więc do sytuacji, że aby odpalić taką aplikację lokalnie każdy sobie podmienia connection string i robi tak, żeby System Kontroli Wersji nie widział tego jako zmiany, czyli żeby nie poszło z następnym commitem.

Wspólny Setup

Inne rozwiązanie to jakiś wspólny setup stawiania całego środowiska. Kiedyś było to klonowanie maszyny wirtualnej, teraz będą to kontenery lub skrypty, które to lokalnie ustawią. Jeśli jedynym problem, który próbujemy rozwiącać jest ta nazwa instancji servera, to takie podejście to duuuże przekombinowanie.

Proste rozwiązanie w kodzie

To wersja najprostsza, ale widać całą ideę. Dodajemy nazwę maszyny do nazwy connection stringa:

Niezmienne rzeczy jak providerName zostały usunięte.

W ostatnim projekcie na 4 developerów były 3 różne nazwy.

3 Comments on “Co gdy każdy programista ma inne lokalne ustawienia aplikacji?

  1. Pingback: dotnetomaniak.pl

  2. Alternatywą jest zdefiniowanie aliasu w ustawieniach serwera sql i posługiwanie się nim w connection string. Tak mam w kilku swoich projektach, w plikach .reg mam zdefiniowany alias do serwera sql. Pliki są ignorowane w repo. Łatwo mogę przełączyć się z instancji developer na test lub na serwer produkcyjny.

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj /  Zmień )

Zdjęcie na Google+

Komentujesz korzystając z konta Google+. Wyloguj /  Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj /  Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj /  Zmień )

Connecting to %s