Po pierwszym wpisie na temat programowanie funkcyjnego w języku C#, dostałem sporo informacji, że końcowy kod jest dużo mniej czytelny od oryginalnego. Faktycznie dla osób, które nigdy nie pisali w języku funkcyjnym może być on trudniejszy do rozczytania. Spróbuję w niniejszym wpisie, pokazać jaka jest idea takiego zapisu. Używając programowania funkcyjnego, pracujemy na danych i funkcjach, które są wyraźnie od siebie oddzielone. Technika Pipeliningu pokazuję po pierwsze naturalny...
Sztuka programowania 3288 dni, 2 godziny, 20 minut temu 251 źrodło rozwiń
Czasami w widoku wywołujemy funkcję JavaScript z parametrami, które są przekazane za pomocą ViewModel z kontrolera. Załóżmy, że nasza metoda w kontrolerze wygląda następująco...
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.
Programowanie rozproszone 3291 dni, 21 godzin, 52 minuty temu 62 źrodło rozwiń
Ostatnio przy jednym z projektów służbowych, musiałem zrobić layout, który obejmowałby zagnieżdżanie kontrolek ListView. Poziomy scroll przesuwał elementy głównej listy, natomiast w każdym takim obiekcie, znajdował się panel zawierający pewne określone dane + kolejny ListView przesuwany już wertykalnie. Nie byłoby w tym nic nadzwyczajnego, gdyby nie fakt, że wewnętrzne kontrolki ListView, zawierały w sobie listę elementów na których znaleźć można było kontrolki użytkownika. Szybko okazało się, że to był ...
Mobile development 3291 dni, 21 godzin, 52 minuty temu 167 źrodło rozwiń
Life as a developer gives a lot of opportunity to learn. This blog is my own way as samurai in code world BlogTwitterLinkedInSorry, you need Javascript on to email me. • on code, powershell, c#Difficult upgrade From time to time we want (or have) to upgrade our old application to a new version of framework. Usually for core libraries it goes quite fast but finding, which dependency is using previous version of assembly which is used by ... - it isn't trivialPowerShell to the rescue First we need to fi...
← Kurs MVVM #1 – WprowadzenieOpublikowano, autor:Tomasz J Wprowadzenie Jak dowiedzieliśmy się w pierwszym wpisie kursu istotą wzorca MVVM jest bindowanie. Czasem jednak chcielibyśmy wykorzystać już dostępne dane do zmian w naszym widoku czy ustawić widoczność pewnych elementów, ale zmienne w elemencie widoku mają inny typ niż te które posiadamy. Najpopularniejszy przykład to zmienne typu Visibility po stronie widoku i zmiennej typu bool, które chcielibyśmy do nich przypisać. Pisanie akcesorów do widok...
Sztuka programowania 3295 dni, 3 godziny, 6 minut temu 176 źrodło rozwiń
← Książkowe zapiski #2 – Mistrz czystego kodu (co powinien wiedzieć zawodowy programista)Opublikowano, autor:Tomasz J Schemat wzorca MVVM Przedmowa Co to właściwie takiego jest MVVM ? Na czym polega bindowanie i jakie są jego rodzaje ? Jak walidować przy pomocy MVVM ? Co to logika biznesowa ? Na wszystkie te pytania oraz wiele innych, które pojawią się w trakcie trwania tego kursu postaram się odpowiedzieć i pokazać jak się za nie zabrać w formie prostych przykładów. Jak mówił klasyk „czasem człow...
Sztuka programowania 3297 dni, 3 godziny, 15 minut temu 499 źrodło 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...
Programowanie rozproszone 3297 dni, 3 godziny, 15 minut temu 78 źrodło rozwiń
Tym razem zaczyna się od kodu i od razu dowiemy się dlaczego jest on niebezpieczny...
Programowanie rozproszone 3300 dni, 4 godziny, 9 minut temu 243 źrodło rozwiń
Wzorzec projektowy „fluent interface” (polski odpowiednik… płynny interfejs…?) przyjął się w środowisku .NETowym bardzo dobrze. I słusznie! „Płynna syntaktyka” znacznie poprawia czytelność pisanego kodu. Jednym z sztandarowych przykładów jej użycia są asercje w testach.
Zupełnie niedawno miałem okazję napisać dla jednego z moich klientów aplikację, która ze względu na potrzebę wykonania gigantycznej ilości zadań w możliwie jak najkrótszym odcinku czasu musiała korzystać z dostępnych w .NET mechanizmów przetwarzania równoległego. Postanowiłem do tego celu wykorzystać Task Parallel Library (w skrócie TPL), od niedawna oferowany dla programistów tej platformy. Mając w przeszłości spore doświadczenia z wykorzystaniem puli wątków uznałem, że ...
Sztuka programowania 3301 dni, 3 godziny, 50 minut temu 360 źrodło 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
Programowanie rozproszone 3315 dni, 18 godzin, 57 minut temu 289 źrodło rozwiń
Jeżeli chcielibyście w projekcie Universal App tworzyć testy jednostkowe to po pierwsze oprócz MSTest niczego innego nie użyjecie. Jeżeli chcielibyście użyć znanego Wam framework do moqowania obiektów, zapomnijcie. Do takich konkluzji doszedłem podczas mojej kolejnej “zabawy” z projektem, który mam w głowie i powoli przenoszę go do świata żywego (nie ważne) Ale po kolei. Ważną rzeczą, na którą musicie zwrócić uwagę przy dodawaniu projektu unit test do to wybranie Unit Test App (Universal Windows) Tr...
Sztuka programowania 3315 dni, 18 godzin, 57 minut temu 155 źrodło rozwiń
Short explanation of difference between expressions and functions in .NET
Sztuka programowania 3315 dni, 18 godzin, 57 minut temu 386 źrodło rozwiń
Dwa tygodnie temu popełniłem wpis na temat lokalnych notyfikacji, które z powodzeniem bez większych przeszkód można użyć w każdej aplikacji uniwersalnej. Dziś chciałbym pozostać w temacie notyfikacji, aczkolwiek tym razem podejdziemy do sprawy trochę bardziej globalnie - zajmiemy się tzw. notyfikacjami push.
Mobile development 3315 dni, 18 godzin, 57 minut temu 68 źrodło 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.
Programowanie rozproszone 3317 dni, 2 godziny, 32 minuty temu 189 źrodło rozwiń
Wyobraźmy sobie scenariusz…. Aplikacja spięta z bazą danych, na której pracuje wiele osób, (dzień jak co dzień 😀 kto takiego czegoś nie robił? :D) modyfikować dany rekord, wpis może tylko jedna osoba na raz. Przed rozpoczęciem wprowadzania danych leci do bazy zapytanie czy rekord można zablokować. Jeżeli tak to taki rekord w bazie zostaje zablokowany. Jeżeli dzieje się coś innego, jak na przykład, dostajemy informacje, że rekord został zmodyfikowany ale aktualnie klient nie posiada jego zmian to proszo...
Sztuka programowania 3319 dni, 14 godzin temu 140 źrodło rozwiń
Mając chwilę wolnego czasu doszedłem do wniosku, że pobawię się Universal App. Jakby ktoś nie wiedział to jest taki nowy “twór” Microsoftu umożliwiający tworzenie aplikacji na każde urządzenie z Windows 10. Niby zapowiada się fajnie ale jak zwykle nie ma tak prosto jakby się chciało!! Zamiast siedzieć i testować nowe kontrolki, rozwiązania na emulatorach Windows Phone i Windows 10 to spędziłem kilka ładnych godzin nad rozwiązywaniem problemów. Ale wszystko po kolei. Wcześniejsze wersje produkowania...
Sztuka programowania 3319 dni, 14 godzin temu 233 źrodło 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
Programowanie rozproszone 3324 dni, 23 minuty temu 316 źrodło rozwiń
Notyfikacje są obecnie czymś powszechnym w każdym liczącym się mobilnym systemie. Dzięki nim, jesteśmy na bieżąco z mailami, powiadomieniami z Facebooka, czy choćby z wynikiem wyczekiwanego meczu. Windows Phone nie odstaje niczym w tym obszarze od swojej konkurencji, a nawet oferuje kilka dodatkowych, ciekawych opcji. W dzisiejszym tekście przedstawię przykładowe użycie lokalnych notyfikacji typu toast - zarówno w wersji harmonogramowanej (scheduled) jak i normalnej. Notyfikacje innego typu wysyła się w ...
Mobile development 3334 dni, 23 godziny, 39 minut temu 74 źrodło rozwiń