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
popularne tematy: windows

Tworzenie wtyczek do Visual Studio: podsumowanie na koniec konkursu

Właśnie stuknął 20. wpis w konkursie Daj Się Poznać 2017, zatem przyszedł czas na podsumowanie prac na koniec trwania trzymiesięcznych zmagań...

Statystycznie

W tym czasie wpisy miały sumarycznie prawie 42 tysiące wyświetleń. Najbardziej obleganym wpisem był ten o hakowaniu Visual Studio, czyli o dobieraniu się bezpośrednio do poszczególnych elementów UI poprzez Snoopa. Niemalże identyczną ilość wyświetleń ma wpis odnośnie aplikacji (i nie tylko) wspomagających zdrową pracę przy komputerze: Zdrowe ciało, zdrowy duch, zdrowy programista — przegląd aplikacji. Oczywiście wszystkie wpisy dostępne są pod linkiem grupującym moje artykuły.

Bad Word Detector — własna wtyczka do detekcji wulgaryzmów w Visual Studio

Tworząc w IDE zapewne nieraz natknęliście się na kod źródłowy, który zawierał wulgaryzmy czy to w postaci komentarza, czy to w postaci nazw zmiennych. Również my sami lubimy wstawić gdzieś w kodzie "kupę" lub inny równie ciekawy zwrot.

Niestety czasem takie "kwiatki" wychodzą na produkcję i nie są może czymś karygodnym lub niebezpiecznym, ale wizerunkowo raczej nikt na tym nie zyskuje. Ostatnio pisał Niebezpiecznik chociażby o "fakach" na stronce OKE

a kilka dni wcześniej podobnie "wpadł" Citibank.

Tworząc na konkurs wtyczkę Healthy With VS wpadłem na pomysł, aby stworzyć dodatek do Visual Studio, który mógłby zaradzić takim problemom. Bad Word Detector, bo tak nazwałem ten nano-projekt, wykrywa wulgaryzmy w kodzie źródłowym edytora i je zaznacza.

Zapisywanie zdarzeń z wtyczki do Visual Studio w Activity Logu

Dzisiejszy wpis odnośnie tworzenia wtyczki do Visual Studio będzie bardzo szybki i konkretny. W każdej aplikacji przychodzi moment na to, aby zalogować do pliku jakieś zdarzenie. Może być to notka o wyłapanym wyjątku, bądź też tylko zapis czysto informacyjny.

Zapis w Activity Log

Dodatki do IDE od Microsoftu mogą zapisywać zdarzenia do Activity Loga. W celu umieszczenia własnego wpisu należy pobrać serwis o typie SVsActivityLog i rzutować go na interfejs IVsActivityLog:

var log = serviceProvider.GetService(typeof(SVsActivityLog)) as IVsActivityLog;

gdzie serviceProvider jest obiektem dziedziczącym po IServiceProvider (w naszym przypadku jest to obiekt klasy Package).

Logowanie odbywa się przy pomocy metody LogEntry:

log.LogEntry((UInt32)__ACTIVITYLOG_ENTRYTYPE.ALE_ERROR, pluginName, message);

Pierwszy parametr określa poziom logowania - jest nim enumerator __ACTIVITYLOG_ENTRYTYPE i posiada od trzy wartości: błąd (ALE_ERROR), ostrzeżenie (ALE_WARNING) i informacja (ALE_INFORMATION). Drugi parametr opisuje źródło logu, zaś trzeci parametr jest tekstowym opisem loga.

Aktywacja i przeglądanie logówLogi składowane są przez IDE domyślnie w pliku

Windows Template Studio — szybki start w programowaniu aplikacji Universal Windows Platform

Osoby programujące z Universal Windows Platform dostały właśnie świetny dodatek do Visual Studio 2017 - Windows Template Studio. Prosty kreator od Microsoftu, który stworzy podstawy projektu UWP z wybranym funkcjonalnościami, zgodnie z dobrymi praktykami programowania.

Windows Template Studio

Dodatek do VS2017 jest prostym kreatorem, bardzo pomocnym przy rozpoczynaniu tworzenia nowej aplikacji UWP. Kreator pozwoli deweloperom na wybranie typu projektu, frameworku MVVM, stowrzeniu podstawowych stron i ficzerów. W ten sposób stworzony zostanie gotowy szablon dla dewelopera, który zawiera wybrane elementy, z zainicjalizowanymi strukturami zgodnie z dobrymi praktykami. Programista na starcie otrzyma zatem bazę do rozwoju własnej aplikacji. Wystarczy już tylko usiąść i zacząć pracę.

Windows Template Studio jest rozwinięciem pomysłu Windows App Studio, które pozwalało na "wyklikanie" aplikacji UWP online. Windows Template Studio jest zaś kreatorem, który tworzy dla dewelopera bazę do późniejszej pracy nad aplikacją.

Kreator

Kreator dostępny jest z menu File-New-Project, znajdziemy go szablonach Windows Universal:

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.

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

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ę.