W tej lekcji training kit robi długi wstęp na temat: „dlaczego mamy różne kodowania”, który sobie pominiemy. Dopiero na drugiej stronie pojawia się pierwsza istotna dla nas informacja, która mówi, że przestrzeń System.Text dostarcza nam klasy do kodowania i dekodowania. System.Text wspiera następujące kodowania:Unicode UTF-32: reprezentuje znaki unicode jako ciągi 32-bitowe. Do konwertowania używamy klasy UTF32Encoding. Unicode UTF-16: : reprezentuje znaki unicode jako ciągi 16-bitowe. Do konwertowania u...
Strona głównaUżytkownik
ozgrozo | użytkownik
Patrząc na materiał który dzisiaj mamy do przerobienia artykuł nie powinien być długi a pomówimy sobie o kolekcjach i słownikach. Czyli o bardzo pomocnych typach danych :)Kolekcje Kolekcja jest klasą która pozwala na dodawanie elementów a później iterowanie po nich. .NET Framework udostępnia nam następujące klasy kolekcji: ArrayList – prosta klasa która umożliwia przechowywanie dowolnego typu danych oraz iterowanie po nich. Można ją oczywiście rozszerzyć do własnych celów etc. Queue – nic innego jak kole...
Kolekcje generyczne są bezpieczną (ang. type-safe), szybką i wydajną (ang. performance) wersją ich nie-generycznych odpowiedników. Przykładowo List, Dictionary, Queue, Stack, SortedList i SortedDictionary są odpowiednikami zwykłych kolekcji. Różnica polega na tym, że korzystając z typów generycznych podajemy parameter, który jest zamieniany na nazwę typu podczas kompilacji. W ten sposób można użyć każdego typu, ale tylko wcześniej określonego. W innym wypadku otrzymamy błędy już przy kompilacji. Namiastk...
Witam w kolejnej lekcji z cyklu 70-536. Dzisiaj powiemy sobie troszkę o serializacji.Co to jest serializacja? Serializacja, która mieści się w przestrzeni System.Runtime.Serialization, jest to proces przekształcania obiektu do liniowej sekwencji bajtów, które mogą być przechowywane lub przekazywane.Odwrotnym procesem do serializacji jest deserializacja.Jak serializować obiekt Poniższy kod prezentuje jak serializować obiekty. Aby kod zadziałał musimy dołączyć przestrzenie nazw System.IO oraz System.Runtim...
Pojęcie serializacji oraz jej zastosowanie mam nadzieje, że jest Wam znane chociażby z poprzedniego artykułu Daniela. Dzisiaj postaram się przedstawić serializacje za pomocą formatera XML. .NET Framework zawiera kilka bibliotek do odczytu i zapisu plików XML. My zajmiemy się tą z przestrzeni nazw System.Xml.Serialization. Za pomocą serializacji XML możemy zapisać niemal każdy obiekt do pliku tekstowego a następnie odczytać go w kilku linijkach kodu. Serializacji XML można użyć do przesyłania stanów obie...
Niestandardowa serializacja pozwala na zwiększenie kontroli nad tym procesem. Dzięki niej możemy także osiągnąć kompatybilność między różnymi wersjami przekształcanych wcześniej obiektów. Mamy dwie metody przeprowadzenia takiej operacji: implementacja interfejsu ISerializable, oraz odpowiadanie na występujące zdarzenia.Implementacja ISerializable Wykorzystując interfejs oraz dodając atrybut Serializable możemy nadpisać domyślny mechanizm frameworka. Wymusza to na nas jednak kilka czynności:Implementacja ...
Dzisiaj wyjątkowo krótki wpis. Powiemy sobie o tym jak wyświetlić, stworzyć i zapisać rysunek. Żeby nie przedłużać wstępu od razu lecimy z tematem.The Image and Bitmap Classes System.Drawing.Image jest klasą abstrakcyjną która umożliwia nam tworzenie, ładowanie, modyfikacje oraz zapis obrazka do formatu .bmp, .jpg oraz .tif. Klasy tej można użyć do stworzenia rysunku, wykresu, zmiany rozmiaru obrazka czy też dodania np. znaku wodnego itd. Klasa Image jest abstrakcyjna dlatego do stworzenia jej instancji ...
Autor: Zdaje sobie sprawę, że nie jestem profesjonalistą w prowadzeniu prezentacji ale mam nadzieje, że wynieśliście coś z niej:) W każdym bądź razie uwierzcie mi, że nie łatwo stać po tej drugiej stronie. Poniżej macie króciutką prezentację a pod spodem cały projekt który robiłem na prezentacji.
Często w pracy z grafiką pojawia się potrzeba dodania tekstu. Może to być np. opis, czy nota autorska. Jeżeli chcemy dodać sformatowany tekst do obrazka należy wykonać kilka kroków.Utworzenie obiektu Graphics W tym celu w aplikacji Windows Forms wywołujemy metodę this.CreateGraphics(). Możemy też utworzyć wspomniany obiekt z bitmapy za pomocą metody Graphics.FromImage(bitmap). 1: Graphics g = this.CreateGraphics(); Utworzyć obiekt Font.Klasa Font oferuje 13 różnych konstruktorów wywołania. Najprostszą ...
Wraz z dzisiejszym artykułem, w naszym training kicie rozpoczyna się rozdział nr 6, który skupia się na grafice. Na dobry początek dostajemy 3-stronnicową tabelkę opisującą najczęściej używane klasy, które pomagają nam w .NET’owym rysowaniu. Nie będę ich opisywał, ale przynajmniej wymienię. Klasy, które zawarte są w przestrzeni System.Drawing to m.in: Bitmap. Brush, Brushes, ColorConverter, ColorTranslator, Font, FontConverter, FontFamily, Graphics, Icon, IconConverter, Image, ImageAnimator, Imag...
Chciałbym przedstawić wykorzystanie SQLite w połączeniu z ADO.NET przy wykorzystaniu C#. Wymaga to jednak pewnego uzupełnienia.SQLite SQLite jest biblioteką napisaną w języku C, która implementuje silnik relacyjnej bazy danych. Jak głosi główne hasło projektu jest ona “prosta, szybka, niezawodna”. Cała baza znajduje się w pojedynczym pliku, a w przeciwieństwie do innych systemów baz danych, nie występuje tu żaden demon nią zarządzający. Inne cechy warte wymienienia:Mały rozmiar biblioteki (ok. 0.5MB), ...
Bazy danych i XML 5492 dni, 9 godzin, 37 minut temu 199 źrodło rozwiń
Zaczynamy rozdział nr 7 w naszym Training Kicie, który będzie dotyczył wątków. Od tej pory przejdziemy z tematów łatwiejszych do nieco trudniejszych:) Dziś wpis bardzo krótki, wprowadzający tylko do wątków. Po co nam wątki? Dzięki wątkom możemy np. uruchomić jakiś kod w tle, nie blokując w międzyczasie innych czynności naszego programu. Jednak używanie wielowątkowości jest dosyć skomplikowane i w pewnych określonych sytuacjach zamiast zwiększać wydajność, zmniejsza ją. No ale oczywiście więcej mamy plusó...
Dzisiaj chciałbym opowiedzieć o zarządzaniu wątkami. Zaimplementowanie wielu wątków które działają w tle nie jest rzeczą trudną. Lecz rzeczywista aplikacja musi mięć możliwość pauzowania, przerwania, wznawiania wątku czy też korzystania z wyników po zakończeniu jego przetwarzania. Tutaj możemy natrafić na konflikt zasobów a uniknięcie ich może nieraz okazać się skomplikowaną sztuką. Przejdę lepiej już do konkretów bo w dzisiejszym artykule jest dużo kodu do analizy a i teorii nie mało.Uruchamianie i zatr...
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...
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...
W środę na spotkaniu naszej grupy zaprezentowałem czym jest WPF, do czego może się przydać oraz pokazałem przykłady kodu. Windows Presentation Foundation jest jednym z elementów wprowadzonych w .NET 3.0. Przede wszystkim umożliwia rozdzielenie kodu aplikacji od projektu interfejsu użytkownika. Dzięki narzędziu Microsoft Expression Blend Designer może projektować interfejs aplikacji w sposób dla niego wygodny (graficzne przeciąganie elementów, kolorowanie, ustawianie stanów animacji na timeline, itp). W W...
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...
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
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...
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 ...