Od 25 listopada w ramach portalu VirtualStudy.pl rozpoczyna się kurs, który będzie trwał aż 6 miesięcy. Na każdy tydzień miesiąca przypada jedna sesja, która rozpoczynać się będzie o godzinie 20:30. Tematyką kursu będzie programowanie w języku C#. Prelegenci Daniel Dudek, Mirosław Pragłowski, Paweł Łukasik, Tomasz Wiśniewski oraz Wojciech Poniatowski przygotowali aż 24 sesje rozpoczynające się od wprowadzenia do kursu, podstaw programowania aż po wzorce projektowe oraz usługi sieciowe.
Po chwilowej przerwie w blogowaniu postanowiłem wrócić to tego niezwykle przyjemnego zajęcia. Dziś chciałbym przedstawić zagadnienie zdarzeń rozproszonych jakie można zastosować w aplikacjach klient/serwer pisanych w .NET Framework. W swojej karierze spotkałem się z produkcyjnym użyciem dwóch rodzajów zdarzeń, pierwsze polegało na użyciu Notification Services wysyłanych przez Microsoft SQL Server 2005, jednak...
Programowanie rozproszone 5114 dni, 20 godzin, 4 minuty temu 101 źrodło rozwiń
Inicjatywa ta rodziła się już od jakiegoś czasu, ale zawsze coś stawało na przeszkodzie. W końcu jednak udało zebrać się ludzi, czas i tematy Dlatego serdecznie zapraszamy na kurs C# na portalu VirtualStudy! Kurs będzie trwał minimum pół roku. Zaplanowany jest na 6 miesięcy, ale wiadomo, różnie bywa, zawsze może coś wypaść etc.. Na kursie będziemy przedstawiać programowanie w języku C# od podstaw. Dlaczego tak? Ktoś może zapytać, czy nie lepiej byłoby od ra...
Aby pomoc ludziom programować asynchronicznie wymyślono słowa kluczowe async i await. Async będzie służyć do oznaczania metod w których pojawią się wywołania asynchroniczne, zaś same wywołania będziemy oznaczać przez await i te słowo kluczowe może pojawić się tylko w metodach oznaczonych właśnie przez async. Dzięki temu jak tłumaczy Mads Torgersen nie będzie już dla użytkownika problemem tworzenie wielu funkcji Callback, gdyż b...
Programowanie rozproszone 5128 dni, 7 godzin, 44 minuty temu 131 źrodło rozwiń
Dzisiejszego dnia potrzebowałem użyć serializacji XML dla klasy Dictionary. Bardzo się zdziwiłem gdy okazało się, że klasa ta nie wspiera tego rodzaju serializacji. Wydawałoby się, że zapis danych w formacie XML jest dzisiaj już standardem, ale okazuje się, że jednak nie wszędzie. Stosując podstawową zasadę programisty po co pisać coś co ktoś inny już napisał uruchomiłem Google i zacząłem szukać rozwiązania. Udało mi się znaleźć kilka przykładów rozwiązania tego problemu, al...
Każda kolejna wersja platformy .NET wprowadza coraz "fajniejsze" ułatwienia dla programisty. I chyba trudno się z tym stwierdzeniem nie zgodzić. Zaczęło się od anonimowych delegatów. Później bardziej funkcyjne podejście i LINQ. W .NET 4.0 wprowadzono słowo kluczowe dynamic. Teraz przyszedł czas na lepsze wsparcie dla operacji asynchronicznych. Od wczoraj dostępny jest do pobrania Visual Studio Async CTP, który do C# i VB wprowadza dwa nowe słowa kluczowe await oraz async.
Autor: Tydzień temu zaproponowałem mały konkurs, polegający na zmuszenia .NET’a do zrobienia rzeczy, której teoretycznie nie powinno dać się zrobić. Niestety trochę “przedobrzyłem” i jednym z dostępnych rozwiązań rozwiązań było użycie Reflection o co mnie w pytaniu nie chodziło. Świat się jednak nie wali, a jest nawet lepiej. Wiem, że są osoby, które o Reflection nie słyszały i dziwią się, że takie rzeczy w .NET można robić.Tak więc zobaczmy jakie rozwiązania są dostępne: Rozwiązania Podstawowe czyli z u...
Architektura 5132 dni, 19 godzin, 46 minut temu 165 źrodło rozwiń
Może nie takie prawdziwe, ale takie malutkie i niewinne :-) (a może nie takie niewinne?). Do napisania tego postu zainspirował mnie niedawno przeczytany inny post, pokazujący, jak można zmusić .NET do zrobienia czegoś co nie powinniśmy mieć możliwości zrobić. Jako, że mój post będzie związany z małą zagadką/konkursem na razie linka do inspiracji nie podam. Sposób jest w pełni legalny w .NET bo i program się kompiluje bez żadnych sztuczek. F5 i działa….Zadanie Zadanie będzie z typu akademickich, nie będzi...
Od początku pracy nad DesktopInfo wiadome było, że będzie potrzebny mechanizm do ładowania pluginów, dodatkowych modułów, które rozszerzą możliwości aplikacji bez potrzeby jej rekompilacji. Pierwszy pomysł jaki przechodzi do głowy to refleksja. Jednak jakiś czas temu postała biblioteka MEF, która została włączona do .NET Framework 4.0 Ponieważ aplikacja DesktopInfo wykorzystuje właśnie tą wersję .NET, to dlaczego nie wykorzystać nowej funkcjonalności. Zatem zobaczmy krok po kroku co jest potrzebne aby ...
Architektura 5147 dni, 26 minut temu 160 źrodło rozwiń
Postawione w tytule posta pytanie jest jak najbardziej na miejscu. Już teraz mogę zdradzić tajemnicę, że nigdy tablicy nie udostępniamy w postaci właściwości. Na początek chciałbym krótko zarysować problem. W czasie tworzenia kodu okazało się, że bardzo ułatwi mi zachowanie go czytelnym utworzenie klasy przechowującej tablice stworzonych przeze mnie obiektów. Wygląda to następująco: public part...
Czy otrzymałeś kiedyś taki oto błąd? The calling thread cannot access this object because a different thread owns it. Dzieje się tak, najczęściej wtedy, gdy próbujemy aktualizować kontrolki użytkownika z innego wątku. Taka czynność nigdy nie była dobrym pomysłem i trzeba było o tym pamiętać, jednak od wersji bodajże 2 .net Framework-a dostajemy taki wyjątek jak powyżej. Dzięki temu, nawet jeśli coś zostanie przeoczone i będziemy jednak chcieli wykonać aktualizację kontrolki użytkownika z innego wątku n...
Programowanie rozproszone 5160 dni, 18 godzin, 53 minuty temu 81 źrodło rozwiń
Podobnie jak w przypadku większości standardowych operacji, gdy mowa o wysyłaniu poczty, biblioteka Microsoft .NET zawiera intuicyjnie zaprojektowane klasy pozwalające na szybką implementacje tej akcji we własnym kodzie. Pomimo niskiego stopnia trudności, pomysł zebrania wszystkich potrzebnych informacji w postaci krótkiego artykułu nie uważam za chybiony. Zapewne zaoszczędzi to czas programistom którzy szukają w pełni działającego przykładu, czy szybkiego przeglądu tego obszaru biblioteki .NET.
Silników fizycznych mamy całą masę: Box2D, Bullet, Havok, PhysX, Newton Game Dynamics. Część jest OpenSource, część darmowa tylko do zastosowań niekomercyjnych, niektóre tylko komercyjne. Część 2D, cześć 3D. Część stosunkowo mało rozbudowana(np. pierwsze dwa z mojej listy), część to ogromne biblioteki(te komercyjne). Niestet...
W aplikacjach biznesowych bardzo często występuje funkcjonalność importu / eksportu danych z / do Excela. Jednym ze sposobów pobierania danych z Excela jest zastosowanie OLE DB jako dostawcy danych. Nie jest to może rozwiązanie najbardziej optymalne, ale czasami nie ma możliwości wpływu na jego wybór. W celu skorzystanie z tego sposobu należy zdefiniować łańcuch połączenia. I tu pojawia się problem ponieważ aby ten sposób zadziałał musi być zainstalowany Excel. Dodatkowo ...
To jest kolejny wpis na przyszły tydzień ;-), albo jeśli ktoś woli niech tydzień blogowania zaczyna się od niedzieli ;-). Teraz napiszę o InteliGUI, nowym pomyśle na zastosowanie sieci Hopfielda. W całym przedsięwzięciu chodzi o to, żeby uzyskać inteligentne GUI tzn. takie które będzie się uczyć sekwencji jakich używamy i samo będzie proponować co chcemy zrobić na podstawie kilku kroków. Oczywiście to rozwiązani jakie opiszę...
W ostatniej wersji C# pojawiła się możliwość zrównoleglenia obliczeń w bardzo prosty sposób. Pętlę:for(int n =0; n <8; n++){ Console.WriteLine("Normal - iteracja {0} wątek {1}", n, Thread.CurrentThread.ManagedThreadId);} można zastąpić następującą konstrukcją:Parallel.For(0, 8, i =>{ Console.WriteLine("Parallel - iteracja {0} wątek {1}", i, Thread.CurrentThread.ManagedThreadId);}); Zapis ten powinien spowodować, że obl...
Programowanie rozproszone 5191 dni, 8 godzin, 8 minut temu 174 źrodło rozwiń
Konwersja Enum do List. Zawsze zapominam jak to się robi a to tak prosta sprawa. IList listDayOfWeek = new List(); var dic = Enum.GetValues(typeof(DayOfWeek)) //pobiera wszystkie wartości z danego typu as IEnumerable; //!! najważniejszy punkt programu // a teraz dodajmy warunek że nasza lista ma być.. np bez niedzieli listDayOfWeek = dic.Where(d=>d!= DayOfWeek.Sunday).ToList();
Architektura 5191 dni, 8 godzin, 8 minut temu 122 źrodło rozwiń
W .NET mamy do dyspozycji wygodny mechanizm do zapisywania ustawień aplikacji. W tym wpisie skupię się na stworzeniu własnego dostawcy ustawień. Domyślnym i jedynym standardowo dostępnym dostawcą, który zajmuje się zapisem ustawień jest LocalFileSettingsProvider. Dostawca ten zapisuje pliki do lokalnego katalogu ustawień danego komputera.
Dzisiaj opiszę sposób, jaki zastosowałem by przechwycić pierwszy wyjątek. Czasem w aplikacji czegoś nie przewidzimy i wyleci nam na wyjątku, dobrze wtedy zalogować ten fakt w jakimś pliku tekstowym lub e dzienniku systemu Windows. Należy też przekazać informację użytkownikowi, aby mógł w razie problemu skopiować komunikat z wyjątku i stos wywołań abyśmy wiedzieli gdzie aplikacja wyleciała. Nowy instalator z tą funkcjonalnoś...
Autor: Dotychczas myślałem, że LINQ dopuszcza stosowanie zapytań tylko i wyłącznie w formie SQL-podobnej, tzn: view sourceprint?1 var zmienna = from x in y select x; Doczytałem dzisiaj jednak, że jest to jedna z dwóch metod umożliwiających konstruowanie zapytań do bazy danych. Ta znana mi metoda to tzw. składnia zapytań. Druga, którą kojarzyłem, ale nie wiedziałem, że jest alternatywą, to tzw. składnia lambda. Żeby nie zanudzać teorią przedstawiam poniżej przykład tego samego zapytania napisanego na d...
Bazy danych i XML 5201 dni, 11 godzin, 7 minut temu 252 źrodło rozwiń