Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Migracja starej wtyczki do nowej wersji Visual Studio 2017

Tworząc dodatek do Visual Studio zapewne wiele osób będzie uczyło się poprzez analizę kodu istniejących już dodatków (chociażby ze źródeł na GitHubie od MS). Okazuje się jednak, że projekty pluginów stworzonych pod stare IDE zupełnie nie chcą kompilować się w nowej odsłonie Visual Studio. Jesteśmy zmuszeni do ręcznej migracji takich dodatków. Oto poradnik jak tego dokonać.

Automatyczna aktualizacji (standardowa)

Otwierając projekt, który został stworzony w starym IDE, w nowym Visual Studio 2017 dostaniemy standardowy komunikat o automatycznej aktualizacji.

Nie mamy wyjścia i godzimy się na to. Po chwili projekt jest już gotowy na działanie w nowej wersji IDE. Niestety próba builda zakończy się niepowodzeniem.

W tym momencie musimy sami przejść przez kluczowe elementy projektu, aby zaktualizować ręcznie dodatek.

Nowe paczki z NuGeta

Zaczniemy migrację o pobrania nowych paczek z NuGeta.

Na zakładce aktualizujemy dostępne nowe składniki i restartujemy IDE, jeśli jest to wymagane.

Umieszczamy własną wtyczkę do Visual Studio w Markecie

Nareszcie udało mi się znaleźć chwilę wolnego po tym całym ślubnym zamieszaniu ;) Wtyczka do Visual Studio monitorująca czas i zdrowie dewelopera już coś zaczyna sobą reprezentować. Postanowiłem zatem dodać rozszerzenie do marketu, aby każdy mógł zainstalować ją w swoim IDE i zgłosić wszelakie błędy i uwagi. W tym poradniku przedstawię sposób na umieszczenie wtyczki do Visual Studio w Markecie.

Przygotowanie pliku manifest

Przygodę zaczynamy od otworzenia pliku source.extension.vsixmanifest. To w nim znajdują się szczegóły, które będą wyświetlane na ekranie dodatku w markecie. Na pierwszej zakładce Metadata można uzupełnić opis, domyślną ikonę czy tagi.

Kolejna, Install Targets, opisuje jakie wersję Visual Studio będą wspierane. Podajemy tutaj nie tylko wersję numeryczną, ale również wersję funkcjonalną. W moim przypadku są to wydania Visual Studio Community, Pro i Enterprise w wersjach 2015 i wyższe.

W oknie Dependencies można określić jakie zależności i w jakich wersjach są wymagane do zainstalowania wtyczki.

Szybkie ćwiczenia podczas pracy przy komputerze

Prace nad wtyczką do Visual Studio powoli nabierają tempa. W obecnej chwili zbliżam się do wydania pierwszej wersji dodatku do marketu z pluginami do IDE od Microsoftu. Jednakże w tym wpisie przedstawię kilka prostych ćwiczeń, które znajdą się w mojej wtyczce Healthy with Visual Studio. Pomogą one w zdrowej pracy przy komputerze, zapewnią nie tylko odpoczynek fizyczny i poprawę kondycji, ale także zadbają o zdrowie psychiczne i skupienie przy pracy.

Ćwiczenia przy komputerze - obowiązek, nie przywilej

Oczywiście zawsze warto co najmniej co 45-60 minut zrobić sobie przerwą na 5-10 minut. Nie ma tutaj wymówek. Zostawanie w siedzącej pozycji przez wiele godzin przy komputerze negatywnie wpływa na nasze zdrowie. Cierpi na tym nie tylko organizm w pojęciu fizycznym, ale również nasze samopoczucie i chęć do życia.

Jeśli pracując w pozycji siedzącej odczuwamy bóle kręgosłupa, ramion, szyi czy nawet nadgarstki lub ud, to może być to znak, że nie robimy dostatecznie często przerw. Wcale nie trzeba pracować stricte przy komputerze, aby odczuć te dolegliwości.

Proste i darmowe modelowanie postaci w 3D przy użyciu MakeHuman i bvhacker

Modelowanie w 3D wydaje się nietrywialnym zagadnieniem. Na przeszkodzie staje nie tylko brak umiejętności i doświadczenia, ale także elementy bardziej materialne. Często ograniczeniem bywa sprzęt, który nie uciągnie aplikacji do grafiki 3D, ale również oprogramowanie, które potrafi słono kosztować.

W tym wpisie pragnę przedstawić szybki sposób na modelowanie postaci 3D. Nie będzie wymagana znajomość zagadnień grafik 3D, a oprogramowanie użyte do tego wpisu jest całkowicie darmowe, również do celów komercyjnych. Dodatkowo przedstawione aplikacje nie wymagają kosmicznego sprzętu, aby móc wygodnie pracować, jednocześnie osiągając zadowalające wyniki.

Modelowanie postaci w 3D - prosty przepis dla każdego

Zacznę od tego, że nigdy nie wiemy, kiedy może przydać się nam wymodelowanie postaci w 3D. Do tej pory temat grafiki 3D omijałem szerokim łukiem, gdyż jako programista aplikacji nie widziałem zastosowania tej dziedziny w swojej branży. Okazało się, że szybko zmienię zdanie.

Zapewne nie tylko osoby tworzące animacje czy wizualizacje mogą potrzebować szybkiej i bezproblemowej edycji modelu postaci w 3D.

Własna konfiguracja do wtyczki w oknie opcji Visual Studio

Jakiś czas temu przedstawiłem sposób na umieszczenie Timera Pomodoro na pasku statusu w Visual Studio. W kolejnym kroku dodamy opcje konfiguracyjne do wtyczki w standardowym oknie opcji IDE.

Do tej pory, aby pokazać timera na pasu statusu trzeba było ręcznie wywołać z menu opcję dodająca element do Visual Studio. Spróbujmy zatem skonfigurować tą poprzez oko opcji w IDE.

Autostart wtyczek w Visual Studio

Nasza wtyczka składa się z paczek (Packaga). W celu automatycznego uruchomienia dodatku przy starcie IDE musimy dodać atrybut do naszej klasy dziedziczącej po Package.

public sealed class CommandShowTomatoStatusBarPackage : Package

Atrybut ProvideAutoLoad oznacza uruchomienie paczkę przy starce, zaś parametr określa kiedy ma to zrobić. Mamy kilka opcji:

ShellInitialized_stringNoSolution_stringEmptySolution_stringSolutionBuilding_string...

W moim przypadku będzie to ShellInitialized_string

Konferencja 4Developers, ścieżka .NET — relacja

W dniu 3 kwietnia uczestniczyłem w imprezie 4Developers w Warszawie. Organizatorzy określają event jako interdyscyplinarny festiwal technologiczny dla programistów, czyli konferencja dla programistów z wieloma ścieżkami do wyboru. W tym roku było na prawdę zacnie. Oto moja krótka relacja z tego eventu.

Co, gdzie, jak i kiedy?

4Developers odbyło się w warszawskim hotelu Hotelu Sangate Airport, obok portu lotniczego im. Fryderyka Chopina. Miejscówka idealnie położona jeśli ktoś przyjeżdżał na konferencję autem (łatwy dojazd obwodówką). Z dworca PKP dojazd również nie był męczący (przejazd autobusem bez przesiadek), chociaż trzeba było przejechać przez ścisłe centrum, więc cudów nie oczekiwałem :)

Wydarzenie nie było skierowane tylko do wybranego grona deweloperów. Mieliśmy do wyboru aż 14 ścieżek:

  • App Arch I By Allegro
  • App Arch II By Decerto
  • Java
  • JavaScript By Pracuj.Pl
  • .Net I By Lingaro
  • .Net II By Sii
  • Python
  • WORKSHOPS
  • PHP

Własny dodatek Timer Pomodoro na pasku statusu Visual Studio

W poprzednim wpisie pokazywałem jak rozszerzyć Visual Studio o elementy, do których dostęp nie jest możliwy poprzez SDK. Przyszedł czas zatem na wykorzystanie wiedzy w praktyce. Napiszemy podstawy wtyczki HealthyWithVS, w których będzie możliwe pokazanie na pasku zadań timera z pomidorkiem, zgodnie z techniką Pomodoro.

Zaczniemy oczywiście od stworzenia projektu typu VSIX Project, który jest bazą dla wtyczek do Visual Studio. Pierwszym elementem jaki dodamy będzie górne menu, z którego aktywujemy pasek z naszym timerem z pomidorkiem.

Do projektu zatem dorzucamy nowy Item typu Custom Command (dostępny w Extenibility). Tak to wygląda (TomatoStatusBar.xaml jest kontrolką WPF z timerem, o czym później):

Wygenerowany kod będzie jedynie udostępniał podmenu do menu Tools. Zróbmy jednak...

Własne menu w Visual Studio

Dodanie menu wymaga edycji pliku vsct

Hakujemy Visual Studio — dobieramy się do niedostępnych elementów IDE

API udostępnione przez SDK do Visual Studio pozwala na olbrzymie zmiany w IDE. Niestety nie zawsze to co chcemy zrobić jest możliwe w oficjalny sposób. W tym wpisie przedstawię sposób na modyfikowanie elementów interfejsu Visual Studio, które nie są możliwe poprzez API. Będziemy hakowali Visuala :)

API do Visual Studio - mnogość możliwość, ale jednak z ograniczeniami

Ilość elementów, jakie można rozszerzać może spowodować zagubienie na samym początku. Programiści mogą przy pomocy SDK modyfikować niemalże wszystko od dodania menu, poprzez własny edytor, na customowym, dostosowanym do konkretnych potrzeb nowym IDE kończąc.

Jednakże udostępnione API nie pozwala na duże ingerencje w każdym aspekcie. Chociażby pasek statusu na dole ma niemalże zerowe możliwości rozbudowy. Nie jest to jednak przeszkodą dla programistów .NET...

Jakie elementy Visual Studio mogą być rozszerzane przez deweloperów?

IDE od Microsoftu pozwala na rozszerzenie możliwości środowiska programistycznego za pomocą wtyczek. Do jakich elementów Visual Studio można tworzyć wtyczki? W skrócie można napisać, że niemalże każda część składowa IDE jest podatna na rozbudowanie. Przyjrzyjmy się jednak szczegółom.

Menu i pasek narzędzi

IDE oferuje dodanie własnego menu i paska narzędzi. Zatem nie tylko otrzymujemy możliwość dodania opcji uruchomienia naszej wtyczki, ale także w ten sposób dodamy skrót do nowej funkcjonalności. Visual Studio oferuje gotowy szablon, dzięki któremu w kilka kliknięć wygenerujemy własne menu.

Okienka narzędziowe

Nic nie stoi na przeszkodzie, aby dodać własne okienko narzędziowe, albo rozszerzyć już te istniejące. Przyda się wiedza związana z XAML lub WinFroms.

Projekty

Narzędzia do Visual Studio umożliwiają stworzenie własnego szablonu projektu. Sami zaprojektujemy sposób organizacji plików w projekcie i zbudujemy startową solucję.

Managed Extensibility Framework — system pluginów do aplikacji .NET od Microsoftu

W poprzednim wpisie pokazałem jak szybko stworzyć własne okienko w Visual Studio (timer w okienku IDE). Dziś opiszę MEF, czyli framework do tworzenia lekkich aplikacji i pisania rozszerzeń do nich. To właśnie na nim opiera się IDE od Microsoftu.

MEF w teorii

Obecnie MEF (Managed Extensibility Framework) jest komponentem .NET 4.0. Biblioteka powstała jako odpowiedź na zapotrzebowania programistów w tworzeniu aplikacji, które mogłyby być rozszerzalne poprzez zewnętrzne pluginy (reużywalne). Jest on zbiorem wcześniejszych doświadczeń, który pozwala w prosty sposób na zaimplementowanie systemu rozszerzeń w każdej aplikacji .NET, bez tworzenia kolejnego frameworku od zera.

MEF można uznać za bibliotekę pozwalająca na Dependency Injection opartą na atrybutach. Pozwala ona na tworzenie aplikacji na zasadzie odkrywania (wyszukiwania) rozszerzeń i ładowania ich dynamicznie do programu. Takie dodatki mogą być reużywalne przez różne aplikacje.