Nasze aplikacje często potrzebują informacji na temat np. uruchomionych procesów lub ilość podłączonych urządzeń magazynujących itp. Ponad to często może okazać się przydatne zareagowanie na uruchomienie jakiegoś procesu. Do realizacji tego typu zadań możemy wykorzystać w .NET Framework klasy Process czy też Windows Management Instrumentation (WMI). Analiza procesów Do wyświetlenia wszystkich aktualnie uruchomionych procesów możemy użyć statycznej metody Process.GetProcesses. Poniższy kod przedstawia wyk...
Okazjonalnie zachodzi potrzeba, aby do jakiegoś celu wygenerować niepowtarzalny ciąg znaków. Jednym z zastosowań może być tutaj nadanie plikowi nazwy gwarantującej brak kolizji z jakąkolwiek inną nazwą pliku w systemie albo chociaż w aktualnym katalogu. W przypadku gdy ów plik ma istnieć tylko przez chwilę - a więc być plikiem tymczasowym (tempfile), sprawa jest prosta i sprowadza się do wywołani...
W tej lekcji zostanie opisane używanie standardowych oraz własnych liczników wydajności (performance counters).Monitorowanie liczników Windows zawiera bardzo dużo performance counterów, które umożliwiają monitorowanie systemu operacyjnego w czasie rzeczywistym. Możemy obejrzeć countery za pomocą wbudowanych mechanizmów Windowsa. W tym celu należy: 1. Klikamy start->Prawym przyciskiem myszy na Komputer-> Zarządzaj 2. W narzędziach systemowych rozwijamy zakładkę wydajność 3. Rozwijamy narzędzia m...
“Bo kultura tu naprawdę jest, świadczy o tym nasz wspaniały Dom Kultury” śpiewał w 1988 roku w Jarocinie zespół “Zielone Żabki”. Ktoś pamięta? Dziś też będzie o kulturze, ale przez literę c czyli o Culture. Tekst zaś dotyczył będzie tak prozaicznej kwestii jak polskie znaki narodowe. Zacznijmy od początku. Utwórzmy, np. w Notatniku, plik w formacie CSV zawierający nazwy ptaków z polskimi znakami narodowymi: id,nazwa 1,Gżegżółka 2,Żuraw 3,Łabędź I spróbujmy go wczytać korzystając ze standar...
Większość programistów po zdobyciu pewnego doświadczenia odczuwa potrzebę oficjalnego poświadczenia swoich umiejętności. Taką możliwość dają certyfikaty – są honorowane na całym świecie i obiektywnie potwierdzają zdobytą wiedzę i praktyczne umiejętności. Ponieważ na co dzień zajmuję się technologiami „okołodotnetowymi” – głównie pisaniem aplikacji webowych przy użyciu frameworka 2.0, postanowiłem podejść do egzaminu Microsoftu o łatwo zapamiętywalnym tytule 70-536 – TS: Microsoft .NET Framework – Applica...
Systemowy podgląd zdarzeń (np. event log)jest repozytorium informacji o systemie operacyjnym, czynnościach aplikacji i błędach. Przykładowo znajdują się tam informacje o starcie systemu, czy jego zamknięciu. Aplikacje informują np. o zmianie ważnych ustawień. Korzystanie z systemowego podglądu zdarzeń jest alternatywą dla tworzenia własnych plików, dodatkowo wspierane jest przez .NET Framework, dzięki czemu nie musimy pisać dużo własnego kodu, aby z niego korzystać. Dziennik systemu WindowsRejestrowanie ...
W tej lekcji opiszemy sposoby korzystania z plików konfiguracyjnych oraz narzędzi do konfigurowania .NET FrameworkaKonfiguracja ustawień .NET Framework’a Możemy skonfigurować ustawienia .NET używając do tego pliku konfiguracyjnego .config. Przykładowo, .NET domyślnie uruchamia aplikację używając tej wersji .NET, w której została zbudowana. Aby umożliwić aplikacji uruchomienie się w innej wersji Frameworka wystarczy, że dodamy jedną sekcję do pliku konfiguracyjnego: 1: Do określania gdzie runtime ...
Podążając za poprzednim wpisem, zamieszczam dwie przydatne metody do zamiany tablicy byte'ów (byte[]) na zapis szesnastkowy w stringu oraz metodę odwrotną. Metody są całkiem szybkie, na pewno wiele wydajniejsze od używania ToString("x2") czy Convert.ToByte(...). Moja metoda BytesToHex() jest wzorowana na metodzie BitConverter.ToString(), która to niestety przymusowo wstawia nam kreski między każdym bajtem w zapisie szesnastkowym. Natomiast...
Zazwyczaj aby stworzyć instalator dodajemy projekt instalacji do projektu. No ale . NET Framework pozwala zaimplementować swój własny niestandardowy instalator. W ćwiczeniu pierwszym pod tym rozdziałem w training kit jest przedstawione stworzenie standardowego instalatora w drugim natomiast niestandardowego. Jako, że certyfikat 70-536 nie obejmuje tematyki tworzenia standardowych instalatorów omówmy sobie ten drugi typ.Tworzenie niestandardowego instalatora Jeżeli potrzebujemy większej kontroli nad proce...
Dziś krótka notka. Przedstawię tylko szybką metodę do porównywania dwóch tablic byte'ów. Wykorzystuje ona wskaźniki (czyli wymaga użycia trybu unsafe), gdzie po odpowiednich rzutowaniach, porównujemy 64bitowe longi. Daje nam to około 5-10 krotne przyśpieszenie, w porównaniu do zwykłego porównywania byte'ów w pętli for.
Czy poniższy kod nie jest doskonałym odwzorowaniem odpowiedzi na pytanie "dlaczego programiści nie pracują w Święta?"? :)
Przechowywanie ustawień aplikacji, czy ustawień połączenia z bazą danych (ang. connection string), to częsty wymóg. Zapisywanie ich “na sztywno” w kodzie aplikacji jest złą praktyką. Na szczęście .NET Framework udostępnia nam zestaw klas, które ułatwiają przechowywanie tych ustawień w specjalnych plikach XML. Mamy dwa główne typy takich plików:Globalny plik Machine.config, który jest wspólny dla wszystkich aplikacji korzystających z .NET Framework, Plik
Czy komentarze to przeżytek? A' propos tematu komentarzy postu Szymona i uwag do tego postu, chciałam dodać swoje trzy grosze... Nie tak dawno temu byłam świadkiem kształtowania się idei i powstawania zbioru reużywalnych bibliotek. Przy okazji tej inicjatywy podjętych zostało kilka decyzji. Czy chodziło o to by w końcu było porządnie? - nie wiem. Na pewno rozpoznawano i zaproponowano wiele technologii, nowych i starych podejść do tworzenia oprogramowania oraz metodyk, ktore nie istniały w sze...
Greg Wilson przesłał mi ostatnio e-mailem następujące pytanie: Od stycznia wykładam inżynierię oprogramowania dla studentów 3-ciego roku na Uniwersytecie Toronto i chciałbym choć jedną godzinę poświęcić na wdrożenia -- [wdrożenia] nigdy nie pojawiły się na moich wykładach i są dość często pomijane w podręcznikach do inżynierii oprogramowania, a z doświadczenia wiem, że bywają one wyzwaniem niemniej trudnym jak samo napisan...
Krótko, jeżeli potrzebujecie listę krajów dla combobox wystarczy wam taki o to fragment kodu...
Na ten problem natknąłem się całkiem przypadkiem. W xamlu napisałem coś takiego: W wyniku czegoś takiego można by się spodziewać, że pojawi się tekst “8 grudnia 2009”. Nic bardziej mylnego pojawiło się “8 December 2009”. Wynik całkiem zaskakujący ponieważ zarówno CurrentCulture jak i CurrentUICulture zawierały poprawne ustawienia dla pl-PL. Okazuje się, że tak zachowuje się DataBinding w WPF-ie. Jedynym obejściem jest albo napisanie własnyc...
Dzisiaj króciutki rozdział o usługach windows. Windows Service jest procesem uruchomionym w tle bez interfejsu i we własnej sesji użytkownika. Usługa może być uruchomiona automatycznie, podczas startu komputera, nawet bez zalogowania użytkownika. Sam windows ma kilkadziesiąt usług np. Workstation, World Wide Web Publishing. Usługi windows funkcjonują inaczej niż inne typu projektów.Skompilowany plik wykonywalny usług musi być zainstalowany przed instalacją projektu aby mógł on funkcjonować w sensowny sp...
Oryginalny post: Sharpening the SawAutor: Jeff Atwood Jak ostrzysz swoją piłę jako programista? Ostrzenie piły odnosi się do wszystkiego co robisz, co nie jest programowaniem, a ma na celu (teoretycznie) zrobienie z Ciebie lepszego programisty. Pojęcie to pochodzi z książki Coveya -- 7 Nawyków Skutecznego Działania. Pewien facet natknął się w górach na drwala. Mężczyzna zatrzymał się, aby poobserwować drwala, gdy ten gorączkowo ścinał bardzo duże drzewo. Zauważył, że drwal pracował w pocie c...
Jak używać domeny aplikacji do uruchomienia Assemblies z ograniczonymi uprawnieniami Ograniczenie uprawnień domeny aplikacji może znacznie ograniczyć ryzyko, że assemblies, której używamy nie wykona żadnych złośliwych działań. Training kit przytacza taki przykład: Kupujemy assembly od kogoś i używamy jej do komunikacji z bazą danych. Jakiś gość znajduję lukę w kupionej assembly i używa do skonfigurowania “spyware’owej” aplikacji, która uruchamia się automatycznie przy starcie. W momencie gdy uży...
Application domain jest mechanizmem podobnym do procesu w systemie operacyjnym. Wykorzystywana jest do rozdzielenia uruchomionych aplikacji jedna od drugiej, tak, aby nie wpływały na siebie wzajemnie. Zastosowanie tej techniki pozwala wywoływać zewnętrzne obiekty assemblies zapewniając wydajność i warstwę bezpieczeństwa. W każdej chwili można zamknąć domenę aplikacji i zwolnić zajmowane zasoby. Dodatkowo można ograniczyć przywileje tak uruchomionej aplikacji, minimalizując ryzyko tego, że wykrycie podatn...