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

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.

Pierwszy dodatek do Visual Studio — timer w okienku IDE

Przyszedł czas na mięsko. W tym wpisie przedstawię sposób na stworzenie wtyczki do Visual Studio, która będzie timerem odliczającym 25 minut w dół (technika Pomodoro).

Stworzony dodatek będzie pływającym okienkiem, które będzie można przypiąć w dowolne miejsce w ekranie roboczym Visual Studio.

Zaczynamy!

Tworzymy projekt!

Pierwsze kroki zaczynamy od stworzenia nowego projektu VSIX Project. Jest to podstawowy szablon używany przy budowaniu rozszerzeń do Visual Studio.

Na początku dostaniemy pusty projekt z plikiem source.extension.vsixmanifest.

W tym miejscu ustalamy wszelakie opcje odnośnie tworzonej wtyczki. Wybierzemy zatem wersje Visual Studio, na jakie można będzie zainstalować tworzony plugin, wymagane biblioteki w systemie użytkownika czy opis i ikony dodatku.

Teraz dodajmy nowy plik do projektu: Custom Tool Window.

W ten sposób Visual Studio przygotuje gotowe okno, które można będzie dostosować do własnych potrzeb. Dostaniemy kilka plików, które warto omówić.

Zaczynamy zabawę z rozszerzeniami do Visual Studio

Jeszcze kilka lat temu pisanie rozszerzeń do IDE od Microsoftu było nie lada wyzwaniem. Szczątkowa dokumentacja, skomplikowane API utrudniały tylko pracę deweloperom chcącym stworzyć własne rozszerzenie.

Obecnie sytuacja jest znacznie prostsza, Microsoft udostępnia wiele przykładów i rozwiązań, które pomogą początkującym programistom w temacie wtyczek do Visual Studio. W tym wpisie przedstawię kilka porad jak szybko zacząć tworzyć dodatki i z czego warto korzystać.

Visual Studio SDK

Do rozpoczęcia pracy wymagane jest zainstalowanie Visual Studio SDK. Obecnie w nowej wersji 2017 zrobimy to zaznaczając odpowiednią opcję.

Na co pozwala SDK? Niemalże na wszystko. Poszczególne główne elementy składowe Visual Studio są właśnie takimi wbudowanym rozszerzeniami. Deweloperzy dostają od Microsoftu biblioteki, które używane są przy tworzeniu IDE. Dzięki czemu zbudujemy zatem pojedyncze menu, będziemy mogli kontrolować pasek stanu, rozszerzymy możliwości edytora czy zaprojektujemy dokowane okno, ale również stworzymy wsparcie dla nowego języka programowania. To wszystko bez dodatkowych narzędzi czy oddzielnych IDE.

Technika Pomodoro — efektywne zarządzanie czasem pracy

Ostatni wpis wprowadzający do stworzenia wtyczki Healthy with Visual Studio opisywać będzie ciekawą technikę do zarządzania czasem w pracy. Mowa będzie o Pomodoro, niezmiernie prostym i skutecznym sposobem na planowanie zadań, nie tylko dla programistów.

Zapanować nad czasem i zadaniami

Zapewne nie raz zawaleni byliście wieloma taskiami do zrobienia, a nie było pomysłu jak to ogarnąć. W jaki sposób rozdzielić zadania, aby był czas i na przerwę i na twórczą pracę.

W takim przypadku pomocna może okazać się technika Pomodoro. Jej twórcą jest Włoch Francesco Cirillo, a nazwa pochodzi od czasomierza kuchennego w kształcie pomidora. Jest to ciekawy sposób na zarządzanie naszym czasem w bardzo prosty sposób. Bez wielkiego przygotowania, bez jakiś dodatkowych narzędzi. Wystarczy timer ustawiony na 25 minut. Tylko tyle, ale i aż tyle.

Jak zacząć z Pomodoro?

W celu rozpoczęcia przygody z Pomodoro potrzebna jest lista zadań do wykonania i czasomierz (kuchenny, w telefonie czy komputerze). Poszczególne kroki są następujące:

Zdrowe ciało, zdrowy duch, zdrowy programista — przegląd aplikacji

Dziś w temacie rozszerzenia do Visual Studio, ale bardziej od strony tego co już jest na rynku i z czego można już korzystać od święta.

Tak jak już pisałem, Healthy with Visual Studio będzie wtyczką do Visual Studio, która zadba o przerwę i czas pracy. Może uda się również dorobić jakieś proste ćwiczenia, do rozluźnienia spiętych mięśni.

Zrób sobie przerwę i poćwicz

Obecnie na rynku jest bardzo duża liczba aplikacji, które pomogą w pracy przy komputerze. 6 lat temu przedstawiłem kilka programów , które do dziś dzień są liderami w swojej niszy.

Postaram się w tym wpisie przedstawić je tutaj ponownie z omówieniem kilku nowych, które wydają się niezmiernie ciekawe.

Healthy with Visual Studio — wtyczka, która zadba o zdrowie i czas dewelopera

Kolejny wpis związany z konkursem Daj Się Poznać 2017. Dzisiejszym tematem będzie ogólny zarys projektu, z jakim będę startował w tej edycji.

W tym roku postanowiłem skupić się na zapoznaniu się z odnogą technologii .NET, która nie jest bardzo eksploatowana we wpisach blogowych. Mowa jest o tworzeniu wtyczek, rozszerzeń do Visual Studio.

Napiszmy rozszerzenie do Visual Studio

Stworzenie rozszerzenia do jednego z najlepszych IDE od Microsoftu jest również pewnym wyzwaniem. Przyznaję, że zupełnie nie miałem do czynienia z tematem projektowania rozszerzeń do Visual Studio. Będę zatem przedstawiał nie tylko sposób tworzenia własnej wtyczki, ale również opisywał ogólne założenia i podstawy podstaw w tym temacie.

Zdrowa praca przy komputerze

Nasza praca przy komputerze jest dla wielu z nas przyjemna i satysfakcjonująca. Zapewne nie tylko ja mam tak, że jestem w stanie wkręcić się w temat jaki koduję/analizuję bardzo mocno. Jednocześnie zapominając o przerwie, o chwili odpoczynku od monitora i odejściu od komputera.

Daj Się Poznać 2017 — kolejna edycja konkursu rozpoczęta

Przyszedł marzec, a wraz z nim kolejna edycja programistycznego konkursu Daj Się Poznać 2017. Każdy kto koduje i chce podjąć wyzwanie, powinien jak najszybciej zgłosić się do omawianego współzawodnictwa wśród deweloperskiej braci :)

Daj Się Poznać 2017

Czym jest ów konkurs? To nie lada wyzwania dla każdego programisty. W przeciągu trzech miesięcy, od początku marca do końca maja, tworzysz projekt i opisujesz zmagania z nim na swoim blogu (lub na YouTube). Źródła udostępniasz na GitHubie, aby każdy chętny mógł zajrzeć do kodu, który tworzysz.

Najlepsze prace są następnie ocenianie i nagradzane. Na dzień dzisiejszy zgłosiło się już 1000 osób! Na szczęście rejestracja została przedłużona do 12 marca, zatem jeśli jeszcze nie słyszałeś o tym konkursie lub się wahasz, to masz jeszcze szansę na wzięcie udziału w tym rewelacyjnym evencie.

Projekt do Daj Się Poznać nie musi być projektem wysyłającym rakiety w kosmos (aczkolwiek, jak ktoś chce...). Konkurs jest po to, aby powstawiać sobie cele i je osiągać, zdobyć wiedzę, znajomości i pokazać się w szerszym gronie.

Nie ma ograniczenia na technologię, ani na to co chcesz zrobić.

Dorzucam jeszcze kilka słów od ojca prowadzącego: