Często spotykanym wyzwaniem przy budowie systemów rozproszonych jest przesyłanie plików o znacznych rozmiarach. Tego typu rozwiązanie w łatwy sposób można zaimplementować w technologii WCF, która pozwala na tworzenie wszechstronnych i wydajnych usług sieciowych. Na przykładowym serwisie WCF pokażę w jaki sposób radzić sobie z wysyłaniem i odbieraniem dużych plików pomiędzy klientem a usługą.
Programowanie rozproszone 3 dni, 9 godzin, 34 minuty temu 259 rozwiń
.NET 4.5 przynosi wiele zmian. Szczególnie ciekawym jest nowe podejście do programowania asynchronicznego, znacząco ułatwiające prace programisty z callback’ami itp. W zasadzie nie ma już callback’ow – kod asynchroniczny niewiele różni się od synchronicznego. Zachęcam do przeczytania mojego nowego artykułu: http://msdn.microsoft.com/pl-pl/library/programowanie-asynchroniczne-w-net-4-5.aspxExplore posts in the same categories:C#, Wielowątkowość This entry was posted ...
Programowanie rozproszone 37 dni, 17 godzin, 14 minut temu 287 rozwiń
Niniejszy post jest kontynuacją cyklu o Reactive Extensions dla .NET ([RX 1], [RX 2], [RX 3], [RX 4], [RX 5], [RX 6], [RX 7], [RX 8], [RX9], [RX10]) i pojawią się w nim przykłady wykorzystania Reactive Extensions. W ramach przykładu pokazane zostanie okno aplikacji, która w pasku statusu będzie wyświetlać, położenie kursora myszki w oknie aplikacji oraz informacja, czy kursor znajduje się w lewej, czy prawej części okna. Niniejszy przykład zostanie wykonany z wykorzystaniem WPF, należy więc pamiętać, że...
Programowanie rozproszone 100 dni, 9 godzin, 40 minut temu 91 rozwiń
Niniejszy post jest kontynuacją cyklu o Reactive Extensions dla .NET ([RX 1], [RX 2], [RX 3], [RX 4], [RX 5], [RX 6], [RX 7], [RX 8], [RX9]), dotyczyć on będzie możliwości metod rozszerzających służących wykonywaniu połączenia dwóch lub więcej strumieni. Jedną z interesujących cech Reactive Extensions jest kompozycja obserwowalnych kolekcji, czyli strumieni danych. Istnieje wiele metod rozszerzających służących wykonywaniu połączenia dwóch lub więcej strumieni; Amb, Concat, SelectMany, Merge, Zip, Combin...
Programowanie rozproszone 111 dni, 18 godzin, 32 minuty temu 81 rozwiń
autor: Ostatnio przeglądając kod udało mi się znaleźć następujący fragment:lock(this){// Do something} Do zsynchronizowania dostępu do współdzielonego zasobu używany jest obiekt, w którym występuje ten fragment kodu. Teoretycznie fragment ten jest poprawny. Co więcej w programie nie wystąpił żaden problem z zakleszczeniem. Przeglądając literaturę możemy natrafić na następujące przykłady: 1. W O’Reilly Programming C# można spotkać następujący przykład użycia słowa kluczowego ...
Programowanie rozproszone 120 dni, 5 godzin, 16 minut temu 370 rozwiń
Niniejszy post jest kontynuacją cyklu o Reactive Extensions dla .NET ([RX 1], [RX 2], [RX 3], [RX 4], [RX 5], [RX 6], [RX 7], [RX 8]), dotyczyć on będzie możliwości wykorzystania LINQ na obserwowalnych kolekcjach i w RX. W uproszczeniu Language INtegrated Query (LINQ) to część technologii .NET i umożliwia zadawanie pytań na obiektach, a składnia LINQ przypomina trochę SQL (patrz Wikipedia). Cechą charakterystyczną LINQ jest to, że operuje ona na dowolnych kolekcjach oferujących iterator (czyli operuje n...
Programowanie rozproszone 127 dni, 5 godzin, 26 minut temu 79 rozwiń
W ramach kontynuacji cyklu o Reactive Extensions dla .NET ([RX 1], [RX 2], [RX 3], [RX 4], [RX 5], [RX 6], [RX 7]) chciałbym przejść teraz do zdarzeń, dla których Rx dostarcza szczególnego wsparcia. Programowanie reaktywne, to również wykorzystanie zdarzeń (z j. ang. event), do których podłączamy się, przekazując delegat do funkcji, która ma obsłużyć zdarzenie (z j. ang. event handler), następnie czekamy na nachodzące zdarzenia. Dla przykładu rozważmy obsługę zdarzeń związanych z ruchem myszy. Wyobraźmy ...
Programowanie rozproszone 129 dni, 22 godziny, 42 minuty temu 205 rozwiń
Dziś krótko. W ramach kontynuacji artykułu o Reactive Extensions dla .NET ([RX 1], [RX 2], [RX 3], [RX 4], [RX 5], [RX 6]) chciałbym wrócić znów do obserwowalnych kolekcji i źródeł, na podstawie których one powstają. Przecież nie zawsze powstaną one ze "zwykłej" kolekcji i zwykle nie jest wiadome, jakie dane one zawierają. Reactive Extension (RX) wyróżnia dwa typy źródeł danych, na podstawie których może powstać obserwowalna kolekcja. Są to źródła zimne i ciepłe (z j. ang. cold i hot). Źródła "zimne" s...
Programowanie rozproszone 130 dni, 22 godziny, 51 minut temu 93 rozwiń
autor: W poprzednich częściach ([RX 1], [RX 2], [RX 3], [RX 4], [RX 5]) artykułu o Reactive Extensions dla .NET pojawiło się już dość sporo teorii, ale raczej mało przykładów, w tym wpisie chciałbym się skupić właśnie na przykładach bazujących na zdobytej uprzednio wiedzy. Zacznijmy od zastanowienia się nad prostymi subskrypcjami. W przykładzie z wpisu pt.: "[RX 3] Reactive Extensions pierwszy kontakt z kodem", zasubskrybowaliśmy obiekt typu IObservable (funkcją Subscribe) i jako parametr przekazane zost...
Programowanie rozproszone 134 dni, 18 godzin, 2 minuty temu 80 rozwiń
W ramach serii postów dotyczących Reactive Extensions przyjrzeliśmy się już problemom związanych z asynchronicznością oraz przyjrzeliśmy się bliżej kolekcjom i wzorcu obserwatora (IObserver, IObservable). W tym wpisie zobaczymy pierwszy przykład kodu wykorzystującego RX. Jak wspominałem wcześniej, w .NET 4.0 jest wbudowane pewne wsparcie dla IObserver i IObservable. Jednak są to tylko definicje wspomnianych interfejsów, aby wykorzystać pełne możliwości RX, trzeba je zainstalować i dołączyć do projektu, w...
Programowanie rozproszone 169 dni, 23 godziny, 51 minut temu 69 rozwiń
Aby móc korzystać z rozszerzeń RX należy najpierw je pobrać i zainstalować. Przed przeczytaniem tego posta, koniecznie należy zapoznać się z interfejsami IObservable oraz IObserver – prezentowałem je w ostatnim wpisie. Po instalacji dodajemy referencję do System.Reactive: RX dodaje metodę ToObservable konwertującą kolekcję do IObservable, interfejsu który wspiera wzorzec obserwator. Napiszmy przykładowy obserwator:class SampleObserver : IObserver
Programowanie rozproszone 170 dni, 7 godzin, 45 minut temu 108 rozwiń
Jako że nie dawno przedstawiłem na spotkaniu Łódzkiej grupy profesjonalistów IT & .NET prezentację poświęconą „Wprowadzenie do Reactive Extensions (RX) dla .NET” (patrz informacja: Zapraszam na prezentację: "Wstęp do Reactive Extensions dla .NET (RX)" oraz Prezentacja i kod ze spotkania pt.: "Wprowadzenie do Reactive Extensions (RX) dla .NET" [PL]). Postanowiłem czytelnikom bloga „Programowanie i Technologie” również przybliżyć temat Reactive Extensions, więc jeżeli zdarzyło Ci się tworzyć aplikacje...
Programowanie rozproszone 171 dni, 2 godziny, 15 minut temu 131 rozwiń
W ramach kontynuacji tematyki związanej z Reactive Extensions (RX)przyjrzyjmy się elementom, które stoją u podstaw ich działania, czyli kolekcjom i wzorcowi Obserwator. W poprzedniej części artykułu poznaliśmy cel przyświecającym twórcom Reactive Extensions (RX) jak i skąd można pobrać wspomniane rozszerzenia. Skoro już mamy zainstalowane Reactive Extensions (Rx), zacznijmy przyglądać się jego możliwością.Jak wcześniej zostało wspomniane, Rx upraszcza programowanie asynchroniczne, pozwala na łatwe filtr...
Programowanie rozproszone 171 dni, 2 godziny, 15 minut temu 113 rozwiń
Słowo lock służy do synchronizacji kodu między wątkami. Często jednak przeglądając kod widzę niepoprawne użycie. Rozważmy następujący przykład:publicclass OrderManager { publicvoid Submit() { lock(this) { //... } } } Przedstawiona konstrukcja może spowodować wiele trudnych do wykrycia problemów. Co jeśli użytkownik naszej biblioteki również wykorzysta źle lock i napisze:OrderManager orderManager=new OrderManager(); //...lock(orderManager) { orderManage...
Programowanie rozproszone 174 dni, 1 godzinę, 22 minuty temu 208 rozwiń
Autor: Nie tak dawno przedstawiłem na spotkaniu Łódzkiej grupy profesjonalistów IT & .NET prezentację poświęconą „Wprowadzenie do Reactive Extensions (RX) dla .NET” (patrz informacja: Zapraszam na prezentację: "Wstęp do Reactive Extensions dla .NET (RX)"). Tych, którzy chcieliby się zapoznać z prezentacją lub kodem źródłowym, który powstał podczas prezentacji, zapraszam do obejrzenia mojej prezentacji umieszczonej na portalu SlideShare....
Programowanie rozproszone 187 dni, 17 godzin, 50 minut temu 216 rozwiń
Zwykłe (blokowe) bloby w Windows Azure są trudne do wdrożenia dla już istniejących aplikacji. Załóżmy, że napisaliśmy prostą galerie zdjęć w ASP.NET i wykorzystaliśmy do tego celu przestrzeń System.IO, np. do robienia kopii zapasowych czy zarządzania plikami na dysku. Jeśli jednak chcielibyśmy przechowywać zdjęcia w Azure Blobs, musielibyśmy zmodyfikować kod. Azure Drive pozwala na stworzenie wirtual...
Programowanie rozproszone 212 dni, 18 godzin, 19 minut temu 129 rozwiń
autor: Ostatnio pisałem o kursie Umbraco, a teraz przyszedł czas na kolejny kurs. Tym razem jest to kurs traktujący o Windows Azure, czyli popularnym ostatnio “cloud computing”. Jeśli chcesz się dowiedzieć co to jest, po co jest i jak z tego skorzystać zapraszam do oglądania kursu. Nowe odcinki będą pojawiały się w każdą środę. Zapraszam do oglądania i nauki, a w międzyczasie do obejrzenia zapowiedzi kursu...
Programowanie rozproszone 246 dni, 22 godziny, 34 minuty temu 118 rozwiń
Coś na ząb ;) Skonsumujmy prosty serwis Web Api Poprzednio: REST - small introduction2. WCF Web Api - linkownia3. WCF Web Api - szybki start4. WCF Web Api - simple GET Rest = zasób + reprezentacja. Ostatnio stworzyłam zasób, ale nie było mowy o reprezentacji. Kiedy próbowałam napisać coś restful w WCFie irytowało mnie że w pewnym momencie trzeba było podać JSON czy XML. Być może wtedy nie wnikałam wystarczająco głęboko ;) W Web Api nic żeśmy nie określali a przeglądarka od razu potrafiła...
Programowanie rozproszone 269 dni, 3 godziny, 6 minut temu 74 rozwiń
Bardzo prosty przykład pobrania danych. Prosty przykład na prostych danych czyli standardowo mamy stringa i inta. Sama nienawidzę takich przykładów bo jeśli cokolwiek dołożymy przestają działać. Bez obaw - dokładać będziemy później.
Programowanie rozproszone 283 dni, 3 godziny, 29 minut temu 97 rozwiń
Poprzednio było trochę teorii i linków do rozpoczęcia: 1. REST - small introduction2. WCF Web Api - linkownia Tym razem jak zacząć. Najprościej zacząć tworząc nowy projekt Asp MVC 3 Warto jeszcze ustawić stały port jeśli korzystamy z Visual Studio Development Server. Potrzeba nam jeszcze referencji, którą można dodać ręcznie, albo korzystając z menagera NuGet poszukujemy WebApi Mamy do dyspozycji - na chwilę obecną, ponieważ sytuacja jest dynamiczna - Core, All oraz CrudHttpSample. All zawiera: ...
Programowanie rozproszone 285 dni, 23 godziny, 25 minut temu 141 rozwiń
Polecamy
Ostatnio na blogu
Podsumowanie #5 - tydzień 2...
Najaktywniejsi



