W tym roku Dam Się Poznać!

Witajcie! Dokładnie wczoraj wystartowała rejestracja do drugiej kolejnej edycji konkursu organizowanego przez właściciela bloga devstyle.pl – Macieja Aniserowicza pt. „Daj Się Poznać”. Myślę, że wszyscy już o nim słyszeli. Jednak jeżeli ty jakimś cudem pierwszy raz o nim słyszysz, to odsyłam Cię do strony orgarnizatora. Jednocześnie zachęcam do udziału w tym konkursie, bo to mega fajna inicjatywa! Pokrótce chodzi o to, że przez trzy miesiące (od 1 marca do 31 maja 2017) rozwijasz swój dowolny projekt i o tym blogujesz (2x w tygodniu). Tylko tyle i aż tyle 😉

Czytaj dalej

Zdarzenia, a komendy we wzorcu MVVM

Jeżeli zaczynasz swoją przygodę ze wzorcem MVVM to tak samo, jak ja prędzej czy później napotkasz na problem z obsługą zdarzeń. Teoretycznie powinny zastąpić nam je tzw. komendy. Jednak nie wszystkie kontrolki je obsługują(np. ComboBox) i nie dla wszystkich zdarzeń można je „ot, tak” wywołać. Jak zatem sobie z tym poradzić? Oczywiście trzeba powiązać dane zdarzenie z komendą 😉

Czytaj dalej

Odczytywanie informacji o zasobach komputera – WMI i C#

Zastanawialiście się kiedyś, jak dostać się do szczegółowych informacji na temat komputera przy użyciu .NET’a? Do tego celu służy WMI  (Windows Management Instrumentation). Czym konkretnie jest WMI? Jak mówi polska Wikipedia, jest to: „zestaw protokołów i rozszerzeń systemu Windows umożliwiających zarządzanie i dostęp do zasobów komputera, takich jak adaptery sieciowe, aktualnie otwarte programy, lista procesów, odczyty z wbudowanych czujników temperatury, odczytów woltomierzy itp.”. Co ciekawe można korzystać z tego mechanizmu także zdalnie. Dostęp do WMI z poziomu .NET’a zapewnia nam przestrzeń nazw System.Management. Niezbędne, więc będzie dodanie do niej referencji w projekcie. Z dobrodziejstw WMI możemy korzystać nie tylko poprzez C#. Możliwe jest korzystanie z tego mechanizmu również z poziomu Visual Basica .NET, VBScript, F#, PowerShell’a, C++ i pewnie także z innych 😉

Czytaj dalej

Dekompilacja aplikacji pisanych w .NET

Myślę, że o czymś takim jak dekompilacja wiele osób już słyszało. Jednak na wstępie przypomnę jeszcze czym właściwie ona jest. Jak wskazuje sama nazwa, jest to proces odwrotny do procesu kompilacji programu. Polega ona, więc na zamianie kodu maszynowego z powrotem na język wyższego poziomu. Należy przy tym zaznaczyć, że dekompiler podczas dekompilacji nie odtwarza oryginalnego kodu, jaki istniał przed kompilacją. Jednak odtwarza kod o takim samym działaniu jak ten źródłowy. W przypadku C# dekompilacja jest wyjątkowo prosta. Głównie z tego powodu, że programy nie są kompilowane bezpośrednio do kodu maszynowego, tylko do tzw. Common Intermediate Language (CLI). Kod ten zamieniany jest na kod maszynowy dopiero po uruchomieniu aplikacji na przeznaczonym do tego komputerze. Zapewnia to lepszą wydajność, oraz przenośność kompilowanych aplikacji. Jakie są tego konsekwencje? Takie, że właściwie każdy może odtworzyć oryginalny kod naszego programu, posiadając jedynie plik wykonywalny *.exe – a czasami możemy tego nie chcieć 😉

Czytaj dalej