dotnetomaniak.pl

dotnetomaniak.pl - Najnowsze artykuły o .NET w dziale Programowanie rozproszone

Walka! Tak wyglądały moje ostatnie 3 tygodnie pracy nad projektem isthereanynews.pl (jest już online). A z czym walczyłem? Z klasycznym, acz partyzanckim – u mnie działa.Social Modne i praktyczne, w zasadzie to drugie, jest logowanie się do różnego rodzaju serwisów przez użycie konta z G+, FB czy Twittera. Ja też tak chciałem – w ten sposób mogłem uciec od problemu trzymania hasła gdzieś u siebie i wszystkich problemów z tym związanych.#1 U siebie w projekcie korzystałem z samodzie...

Dziel się z innymi:
Logowanie przez owin – jak zaoszczędzić trzy tygodnie życia

Programowanie rozproszone 20 godzin, 57 minut temu macabre13 305 rozwiń

Not so long ago, I’ve eventually decided to dive into the world of microservices. I did look for an opportunity to make use of this architectural pattern for quite some time and finally was able to do so. After 3 months of trying out the new things and learning stuff mostly on my own (the hard way) I believe it’s a good time to share some of my experience. I have no doubts that at some point in the future when I look back at this post I might be like – “oh God, what was I thinking back then, it’s so wro...

Dziel się z innymi:
So I’ve been doing microservices | Piotr Gankiewicz

Programowanie rozproszone 20 godzin, 57 minut temu spetz 172 rozwiń

Choosing a service bus that meets our demands is a crucial part when developing a distributed system. There are many services to choose from like MSMQ, Azure Service Bus or RabbitMQ and even more frameworks that you can use in your projects as an additional layer of abstraction that makes your coding much easier when it comes to dealing with the specific service bus implementation. In this article, I’d like to present how to use the RabbitMQ in .NET Core with the help of really nice RawRabbit library.

Dziel się z innymi:
.NET Core + RabbitMQ = RawRabbit | Piotr Gankiewicz

Programowanie rozproszone 29 dni, 21 godzin, 26 minut temu spetz 199 rozwiń

Ostatnio musiałem odczytać współrzędne geograficzne na podstawie nazwy lokalizacji. Pierwszą opcją, którą sprawdziłem był pakiet “GoogleMaps.LocationServices”. Po instalacji NuGet, odczytanie współrzędnych było bardzo proste:

Dziel się z innymi:
Odczytywanie współrzędnych geograficznych

Programowanie rozproszone 161 dni, 23 godziny, 53 minuty temu rroszczyk 85 rozwiń

Simulating microservices using F# and Suave.io Posted on by Michal Franc I have this small hobby project called Overseer. It is a tool used to debug and troubleshoot microservices. I was planning to use it in production, but because that is the only prototype. I decided to use it with simulated services. This way it will be a lot easier to create many different ‘test’ scenarios. The current solution for spawning those ‘tests services’ is implemented in Suave.io and F#. Why these technologies? I just ...

Tagi: F#
Źródło: www.mfranc.com
Dziel się z innymi:
[EN] Simulating microservices using F# and Suave.io | Pragmatic Developer

Programowanie rozproszone 256 dni, 20 godzin, 25 minut temu michalfranc 52 rozwiń

Jak wspomniałem w jednym z wcześniejszych już wpisów, nie ma znaczenia, gdzie aktor jest zlokalizowany. Dzięki AKKA.NET jest to szczegół  konfiguracyjny. Jeśli pewnego dnia, stwierdzimy, że wykonywanie obliczeń na jednym komputerze nie wystarcza, wtedy po prostu  zmieniamy konfigurację, aby hostować danego aktora gdzieś indziej. Framework zadba o komunikację (TCP) między węzłami znajdującymi się w innych sieciach. W ten sposób, bardzo łatwo jest sk...

Dziel się z innymi:
AKKA.NET – zdalni aktorzy

Programowanie rozproszone 294 dni, 12 godzin, 34 minuty temu rroszczyk 70 rozwiń

W poprzednim wpisie pokazałem, w jaki sposób możemy zaprojektować obsługę błędów. Jak widać mamy do dyspozycji sporo opcji. Z punktu widzenia AKKA.NET nie jest to jednak tak skomplikowane. Wystarczy przeładować jedną metodę i zwrócić odpowiedni obiekt. Tak jak w poprzednim wpisie będziemy testować kod na następującym “systemie”: Dla przypomnienia nasz ApplicationUserActor wygląda następująco: public class ApplicationUserActor : UntypedActo...

Tagi: .Net, akka, C#, rozproszone
Dziel się z innymi:
AKKA.NET – Przykład obsługi błędów

Programowanie rozproszone 325 dni, 20 godzin, 55 minut temu rroszczyk 97 rozwiń

W poprzednim poście użyliśmy metody ActorSelection w celu uzyskania referencji do aktora: var actor1 = system.ActorSelection("/user/ApplicationUserControllerActor/Piotr") Dzisiaj chciałbym bardziej skupić się na definiowaniu ścieżki do aktora. Pełna ścieżka może zawierać następujące elementy: – protokół – nazwa systemu – adres ip aktora – seria nazw aktorów opisująca hierarchie np. ApplicationUserControllerActor/actor1/actor2 itp.

Dziel się z innymi:
AKKA .NET – definiowanie ścieżki aktora

Programowanie rozproszone 352 dni, 16 godzin, 15 minut temu rroszczyk 51 rozwiń

Dzisiaj zacząłem pisać post o hierarchii aktorów. Jest to bardzo ważny element w celu osiągnięcia skalowalności i dobrej obsługi błędów (np. poprzez izolacje wadliwych aktorów). W połowie jednak stwierdziłem, że najpierw wypada napisać krótki wpis o zdarzeniach (hooks), jakie możemy zdefiniować w AKKA. Pozwoli nam to potem lepiej zrozumieć przepływ informacji w hierarchiach aktorów. Każdy aktor, może znajdować się w następujących etapach...

AKKA.NET – czas życia aktorów, zdarzenia (hooks)

Programowanie rozproszone 357 dni, 21 godzin, 38 minut temu rroszczyk 69 rozwiń

Tym razem zaczyna się od kodu i od razu dowiemy się dlaczego jest on niebezpieczny...

Dziel się z innymi:
Code review: Async void

Programowanie rozproszone 360 dni, 22 godziny, 32 minuty temu rroszczyk 232 rozwiń

Zanim będę kontynuował serię o AKKA.NET, warto zapoznać się z podstawami programowania reaktywnego. Pozwoli to później zrozumieć, w jaki sposób AKKA.NET implementuje założenia programowania reaktywnego. Dzisiaj zatem przedstawię tzw. “The Reactive Manifesto”, którego pełną treść można znaleźć tutaj. Moim zdaniem jednak, manifest może wydawać się trochę skomplikowany i dlatego zdecydowałem się wyjaśnić to po swojemu.

Programowanie reaktywne

Programowanie rozproszone 364 dni, 22 godziny, 29 minut temu rroszczyk 192 rozwiń

W ostatnich dwóch wpisach pokazałem zasady działania modelu aktor. W kolejnych postach będę korzystał już z Akka.net zamiast pseudokodu. Dzisiaj czysty opis podstaw API – bez konkretnego problemu do rozwiązania. Akka.net można zainstalować w formie pakietu Nuget: Install-Package Akka

Dziel się z innymi:
Akka.net – pierwszy przykład

Programowanie rozproszone 376 dni, 13 godzin, 20 minut temu rroszczyk 244 rozwiń

W ostatnim wpisie przedstawiłem zasadę działania modelu aktor. Zachęcam do przeczytania poprzedniego wpisu ponieważ dzisiaj skupię się na przykładzie, a nie podstawach teoretycznych. Jeśli poprzedni wpis nie był do końca zrozumiały, zachęcam do przeanalizowania przykładu z tego wpisu i potem powrócenia do poprzedniego postu – wtedy myślę, że wiele zagadnień będzie prostsze w zrozumieniu.

Wielowątkowość: przykład modelu aktor

Programowanie rozproszone 377 dni, 20 godzin, 55 minut temu rroszczyk 162 rozwiń

Aktor jest modelem budowania aplikacji wielowątkowych. Powstał w celu ułatwienia synchronizacji między różnymi wątkami. Programiści piszący aplikacje wielowątkowe zwykle korzystają z klasycznych blokad (lock) w celu opisania sekcji krytycznej. W wielu sytuacjach jest to najlepszy i najprostszy sposób. Niestety dla dużych i skomplikowanych systemów, utrzymywanie takiego kodu jest bardzo trudne, mozolne i niezwykłe podatne na powstanie deadlock lub livelock.

Wielowątkowość: Wzorzec aktor (actor based programming)

Programowanie rozproszone 381 dni, 21 godzin, 44 minuty temu rroszczyk 243 rozwiń

Coraz więcej API dostarcza asynchroniczne wersje metod. Niektóre z nich, idą o krok dalej i w ogóle nie posiadają synchronicznej wersji. Załóżmy, że zewnętrzna biblioteka ma następującą metodę: async Task

Metody asynchroniczne z async oraz oczekiwanie na rezultat

Programowanie rozproszone 384 dni, 18 godzin, 46 minut temu rroszczyk 305 rozwiń

W .NET 4.5 pojawiła się metoda Task.Run. Z przyzwyczajenia jednak przez długi czas używałem tylko Task.Factory.StartNew. Obie metody służą do stworzenia nowego wątku i natychmiastowego jego uruchomienia. Sposób wywołania wygląda bardzo podobnie...

Dziel się z innymi:
Różnica między Task.Run, a Task.Factory.StartNew

Programowanie rozproszone 398 dni, 9 godzin temu rroszczyk 255 rozwiń

Tworząc nowe zadania (wątki) za pomocą TPL, możemy przekazać parametry AttachedToParent lub DenyChildAttach. Określają one, czy wątek powinien być podłączony do rodzica czy nie. W dzisiejszym wpisie postaram wyjaśnić się, czym one różnią się. Parametry definiują relację wątku z nadrzędnym wątkiem. Jeśli wątek A, tworzy kolejny wątek B, wtedy za pomocą powyższych wartości możemy określić relacje wątku B z A. Spróbujmy zatem wyjaśnić jak ta relacja wpływa na...

Dziel się z innymi:
Tworzenie wątków: TaskCreationOptions.DenyChildAttach, TaskCreationOptions.AttachedToParent

BlockingCollection jest specjalną kolekcją danych, przygotowaną do implementacji wzorca producent-konsument. Nakład pracy do implementacji tego wzorca jest minimalny z BlockingCollection. Nie musimy martwić się o synchronizację, sekcję krytyczną czy deadlock. Zacznijmy od razu od przykładu. Producent będzie wyglądać następująco...

Producent-konsument w C# – BlockingCollection

Programowanie rozproszone 406 dni, 22 godziny, 16 minut temu rroszczyk 284 rozwiń

O usługach REST, które dzisiaj są wszechobecne pisałem już wiele razy np. tutaj.  Dzisiaj chciałbym napisać krótkie podsumowanie w formie porad i antywzorców. Zaczynamy: 1. Nigdy nie używaj czasowników w URI. Przykład błędnych linków: GET: localhost\persons\1\UpdateEmail?email=’…’ Jedynym dozwolonym czasownikiem w adresie to HTTP verb. Całość linku to nic innego jak hierarchia zasobów. Poprawna aktualizacja adresu email może wyglądać zatem następująco: PUT: localhost\persons\1\email Metoda PUT ozn...

Tagi: .Net, C#, REST, RPC
Dziel się z innymi:
Kilka porad na temat usług REST

Programowanie rozproszone 420 dni, 20 godzin, 48 minut temu rroszczyk 391 rozwiń

I’ve recently seen a few articles about video streaming with raspberry pi using node.js streaming server and ffmpeg utility. It’s funny how easily you can create your own live video streaming with opensource tools and cheap mini-computer. But there are some problems with this approach. The highest resolution I was able to capture, encode and live stream was 160×120. It is too low to recognize people or plate numbers seen on the picture. There are also some network issues that make things...

Cheap web-cam monitoring in the Cloud with raspberry pi, ASP.NET MVC and Marionette.js | WellDesignedSoftwareException
1 2 3 4 5... 9 10
Accenture
Szkolenia SecurITum

grudzień

Zobacz wszystkie

.NET Developer Days 2015

W tym roku ponownie jak w poprzednim jesteśmy jednym z patronów medialnych konferencji .NET Developer Days. W tym roku jednym z prelegentów będzie Scott Hanselman.  czytaj więcej
2015-07-22

Najaktywniejsi

1

macko (32 816,53)

2

http://pawlos.blo... (31 383,4)

3

pzielinski (27 178,29)

4

gordon_shumway (21 178,87)

5

paduda (20 336,33)

6

psz750 (13 018,14)

7

rroszczyk (10 381,46)

8

Damian (9 011,08)

9

danielplawgo (7 235,99)

10

arek (6 642,75)

11

burczu (6 214,22)

12

PaSkol (5 393,84)

13

lukaszgasior (4 097,38)

14

jj09 (3 388,06)

15

http://jakub-flor... (3 224,66)

16

CaMeL (2 954,87)

17

jedmac (2 639,34)

18

mnikolajuk (2 596,93)

19

lkurzyniec (2 466,02)

20

FutureProcessing (2 450,11)