paczki NuGet – usuwamy powtarzający się kod cz. II

poprzedniej części ustaliliśmy, że powtarzalność kodu jest czymś złym. Przedstawiłem też sposób na to jak tę powtarzalność usunąć z poziomu wielu aplikacji – za pomocą paczek NuGet. Do omówienia został już tylko temat wrzucenia plików na serwer, który omówię w dzisiejszym artykule. Zaczynamy!

Różne możliwości

Jeśli chodzi o serwer to masz duże pole do manewru. Możesz wybierać spośród kilku opcji. Pierwszą i najpopularniejszą jest strona nuget.org. Programiście z całego świata używają jej, aby współdzielić NuGety. Sam wiele razy z niej korzystałeś, tworząc projekty w Visual Studio. Zainteresowała Cię taka możliwość? Chcesz wrzucić swoją paczkę? Jedyne co musisz zrobić to założyć konto i przejść do sekcji Upload, widocznej w menu na górze strony.

wrzucanie paczki na NuGet

Na ekranie zauważysz miejsce do wskazania pliku .nupkg, który po zatwierdzeniu przez Ciebie zostanie wrzucony na serwer.

potwierdzenie wysyłania paczki

Każda znajdująca się tam paczka jest publiczna. Jeśli więc chcesz używać jej tylko dla siebie lub z jakiegokolwiek innego powodu nie zależy Ci na prywatności możesz skorzystać z alternatywnego rozwiązania. Sam stwórz serwer.

Własny serwer

Na GitHubie możesz znaleźć gotowe rozwiązania zawierające programy przeznaczone do zarządzania paczkami, przykładem może być ten projekt.

Musisz tylko nadać hasło dostępu do serwera i opublikować aplikację, abyś mógł się z nią komunikować. Przeprowadzę Cię przez ten proces krok po kroku:

Ze strony na GitHubie wybierz opcję Download ZIP

pobieranie projektu

Po rozpakowaniu uruchom solucję otwierając plik NuGet Server.sln, Twoim oczom ukażą się dwa projekty: Svenkle.NuGetServer.Service i Svenkle.NuGetServer.Website. Upewnij się, że to ten drugi ustawiony jest jako projekt startowy, jak to zrobić opisywałem w tym artykule. Otwórz dokument Web.config. Interesować nas będą trzy ustawienia: requireApiKey – za jego pomocą możesz zdecydować, czy wrzucanie paczek na serwer będzie wymagało podania hasła. Jeśli ustawisz wartość na true, musisz dodać hasło w kluczu o nazwie apiKey. Ostatnim elementem będzie packagesPath, czyli miejsce gdzie zapisywane będą paczki. Tutaj możesz zostawić puste miejsce, wtedy pliki będą umieszczone w domyślnym katalogu. Możesz też wybrać swoje miejsce.

Uruchom program i przetestuj całość. Jeśli Twoim oczom ukaże się podobny obraz:

działający serwer

To wszystko wydaje się działać poprawnie. So far so good!

Publikacja

Teraz aplikacja jest gotowa do publikacji. Od Ciebie zależy gdzie to zrobisz. Jeśli planujesz używać jej na wielu komputerach lub współdzielić z innymi, warto zastanowić się nad zakupem domeny
i hostingu oraz deployem strony na serwer hostingowy właśnie. Nie będziemy poruszać jednak tego tematu w tym artykule, ponieważ każdy usługodawca ma swoje procedury, które dokładnie opisane są w ich dokumentacji.

Chciałbym jednak pokazać Ci, że tę stronę do zarządzania paczkami możesz wrzucić na swój komputer. Będzie on dostępny tylko na tym urządzeniu, jednak dla projektów rozwijanych tyko na jednym pececie, takie rozwiązanie w zupełności wystarczy. Potrzebujesz IISa, o którym pisałem w tym poście, ale zacznijmy od podstaw.

Musisz przygotować pliki, które będą wymagane do działania strony. W tym celu należy opublikować aplikację. Aby to zrobić, wybierz opcję Publish z menu Build lub kliknij prawym klawiszem myszki na projekt Svenkle.NuGetServer.Website i zaznacz Publish.

publikacja

W nowo otwartym oknie wskaż publish target. Zaznacz sekcję Folder i wskaż miejsce, gdzie pliki mają zostać utworzone.

menu publikacji

Sugerowałbym umiejscowienie ich poza projektem. Następnie wciśnij przycisk Publish. Solucja się przebuduje, a dokumenty potrzebne do działania strony zostaną wykreowane w wybranym przez Ciebie miejscu. Gotowe!

Stworzenie strony

Kolejnym krokiem będzie utworzenie samej strony. Uruchom IISa i dodaj nową witrynę:

nowa witryna

Zobaczysz kolejne okno:

dodawanie witryny

Tutaj musisz wprowadzić:

  1. Nazwę witryny – dowolna,
  2. Ścieżkę fizyczną – miejsce, gdzie umieściłeś pliki podczas publikacji,
  3. Port – inny niż 80 oraz pozostałe zajęte na Twoim komputerze.

Jeśli wszystko poszło zgodnie z planem, to pod adresem: http://localhost:numerPortu powinieneś zobaczyć to samo, co po uruchomieniu aplikacji z Visual Studio.

Upload paczki

Przyszedł wreszcie czas, żeby wrzucić naszą paczkę na serwer. Do tego znowu przyda nam się NuGet Package Explorer. Otwórz w nim wcześniej zapisany plik .nupkg i z menu File wybierz Publish lub wciśnij Ctrl+P.

publikacja paczki

W nowym oknie podaj adres serwera (http://localhost:numerPortu/nuget) oraz apiKey, który podałeś w Web.configu i wciśnij przycisk Publish. Jeśli paczka została wrzucona na serwer powinieneś zobaczyć komunikat: „Package uploaded successfully”.

Możesz to sprawdzić na kilka sposobów:

  • Otwórz katalog, który wskazałeś jako miejsce zapisywania paczek, jeśli zostawiłeś puste miejsce znajduje się on w folderze z plikami strony,
  • Użyj NuGet Package Explorera:
    1. Otwórz program i wybierz opcję Open a package from online feed lub wciśnij Ctrl+G;
    2. W polu package source podaj adres serwera (http://localhost:numerPortu/nuget)
      i wciśnij Enter;
    3. Jeżeli wszystko jest w porządku, zobaczysz na liście swoją paczkę.

Skorzystajmy z paczki na serwerze

Ostatnim krokiem jest dodanie paczki w projektach, które jej potrzebują. Możesz to zrobić z Visual Studio. Z menu Tools wybierz NuGet Package Manager, a następnie Manage Nuget Packages for Solution. Wybierz ikonę koła zębatego, obok pola package source w prawym, górnym rogu.

dodawanie źródła paczek

W nowo otwartym oknie kliknij ikonę plusa.

dodawanie nowego źródła paczek

polu Name wpisz dowolną nazwę źródła paczek,
a w source jeszcze raz podaj adres serwera (http://localhost:numerPortu/nuget) i zatwierdź przyciskiem OK.

rozwijanej liście package source pojawiła się nowo dodana pozycja, wybierz ją i korzystaj ze swoich paczek. Z tego miejsca masz dostęp do ich numeru wersji, autora, czy aktualizacji. Wszystko w jednej karcie i bez konieczności pamiętania o kopiowaniu kodu. Dokładnie to czego nam było trzeba 🙂

Podsumowanie

Uff, dotarliśmy do końca. W serii dwóch artykułów dokładnie omówiliśmy zalety stosowania paczek NuGet, jak je przygotować i dodać do swoich programów w zautomatyzowany sposób. Pracy było sporo, jednak jestem przekonany, że warto. Zawsze to lepsze podejście niż bezmyślne kopiowanie, które, przynajmniej mi, daje dużo satysfakcji. A czy Tobie podoba się ten pomysł na zarządzanie kodem pomiędzy projektami? Spróbujesz go wykorzystać u siebie? A może sam stosujesz jakieś inne rozwiązania? Chętnie o wszystkim przeczytam, więc śmiało pisz 🙂

PS. Jeśli pomogłem Ci tym artykułem, będę niezmiernie wdzięczny, gdy przekażesz go dalej. Byłoby ekstra gdyby okazał się przydatny większej ilości osób, z góry dziękuję 🙂

Please follow and like us:

Dodaj komentarz

This site uses Akismet to reduce spam. Learn how your comment data is processed.