Sposób tworzenia aplikacji webowych zmienia się na przestrzeni czasu. W świecie .NET przez lata kodowaliśmy w ASP.NET MVC, w którym widoki były generowane po stronie serwera. Od jakiegoś czasu idziemy w kierunku, w którym backend udostępnia API, z którego korzysta aplikacja po stronie przeglądarki i która generuje widoki po stronie klienta. W związku z tym zmienił się też sposób testowania aplikacji po stronie serwera. Jednym z dostępnych narzędzi, które możemy...
Bardzo dawno temu, gdy człowiek chciał wyjechać do chAmeryki. Musiał najpierw zebrać trochę grosza by mieć na podróż. A potem różnymi środkami przedostać się z miejsca początku swojej podróży na statek. Korzystał z różnych sposobów lokomocji, piechota, muły, pociągi. Ostatecznie, gdy znalazł ...
In my fourth post about Azure Functions 2.0 extensibility I'm describing how to extend existing extensions.
Drugi raz uczestniczyłem w konferencji organizowanej przez Ceneo. I nadal jestem zadowolony. Szykuję się za rok. W tym odcinku bardzo chmurowo i kontenerowo. Konferencje odwiedziło Chmurowisko. Zapraszam do przesłuchania: After.conf - Pilot - 6 - Ceneo Geek Speak.
We distinguish several ways of communication between components: parent to child, child to parent and any to any. In this post I will show an example of the implentation of each of the ways.
Jest to nowa konferencja, jaka wcześniej odbyła się w Łodzi. Tym bardziej z zainteresowaniem udaliśmy się na to wydarzenie. Był to początek naszego tournée po Polsce. Ale spokojnie wszystkie odwiedzone konferencje znajdą się w najbliższych podcastach. A teraz zapraszam do przesłuchania: ...
Dzisiaj poopowiadam o konferencji, jaka miała miejsce nad naszym bałtyczkiem. Czyli 4Developers 2018 Gdańsk. Nie byłem tutaj tylko biernym konsumentem, ale otrzymałem swoje miejsce w agendzie i przygotowałem temat: IL - między piekłem a niebem. Udało mi się tez namówić Macieja Gajdzice.
Posted on : By Grzegorz KotfisJa, programista Ciężko rozmawia się o rzeczach o których ma się znikome pojęcie. Ale od tego ma się gości. A w tym odcinku goszczę Tomka Heimowskiego – programistę FSharp. Rozprawiamy się z programowaniem funkcyjnym wokół którego narosło wiele mitów. Choćby taki, że jest trudne. Czy aby na pewno? Koniecznie posłuchajcie odcinka! Serdecznie zachęcam także do zapisania się do newslettera, którego w końcu odpaliłem! Dzięki temu będziemy w kont...
Kuberentes, nginx ingress controller, Azure AD i upstream sent too big header, czyli jak rozwiązać problem z 502 Bad Gateway
Okazuje się, że LSP można naruszyć na wiele sposobów, czasami bardzo trudnych do wyśledzenia, a sztampowe omówienia dostępne powszechnie pomijają najważniejsze aspekty literki L z SOLID’a. Warto wspomnieć, że LSP pomaga nam również lepiej modelować biznesowy kontekst aplikacji, gdyż zmusza nas do odpowiedzi na pytania o relacje pomiędzy obiektami (mam tutaj na myśli głównie dwa ostatnie punkty: inwariant i zasadę historii).
Sztuka programowania 2159 dni, 5 godzin, 16 minut temu 127 źrodło rozwiń
Na początek, jak zwykle, odrobina teorii. Reguła Liskov brzmi: Funkcje które używają wskaźników lub referencji do klas bazowych, muszą być w stanie używać również obiektów klas dziedziczących po klasach bazowych, bez dokładnej znajomości tych obiektów. Jak podaje Wikipedia, zasada ta została sformułowana po raz pierwszy przez Barbarę Liskov i Jannette Wing we wspólnej pracy pt. „A Behavioral Notion of Subtyping„, zaprezentowana przez Panią Liskov w przemówieniu pt. „Data Abstraction and Hierarchy„, a s...
Sztuka programowania 2159 dni, 5 godzin, 16 minut temu 134 źrodło rozwiń
Przez ostatnie dwa i pół roku byłem zaangażowany w rozwój bloga PoznajProgramowanie.pl. Poza dziesiątkami postów tworzyłem projekty open source, odpowiadałem na wasze pytania na naszej skrzynce a także występowałem publicznie dzieląc się moją wiedzą na temat programowania. Wszystkie te aktywności były motywowane tym jak ważne jest dla mnie dzielenie się wiedzą oraz jak wiele długu do spłacenia mam wobec wszystkich tych od których sam czerpałem inspirację kilka lat wcześni...
Większość projektów, w których brałem udział posiadało funkcjonalność wyszukiwania tekstowego. We wszystkich z nich było to zrealizowane klauzulą LIKE w SQL. Często ten element aplikacji stawał się wąskim gardłem i redukował responsywność aplikacji. Kiedy serwery dalej płoną, opiszę tutaj po pokrótce kilka alternatyw dla tego rozwiązania.
Bazy danych i XML 2160 dni, 5 godzin, 8 minut temu 198 źrodło rozwiń
Na Dzień Babci i Dzień Dziadka: o czym naprawdę jest Ruch Rzemiosła Oprogramowania (Software Craftsmanship) i czego możemy się nauczyć od naszych Dziadków i Babć, aby być lepszymi programistami i profesjonalistami w branży IT. Pisze Dziadek Robert Cecil "Wujek Bob" Martin.
In first article in our series about building microservices in .NET core we are going to focus on internal architecture of a typical microservice. There are many options to consider depending on microservice type. Some services in your system will be typical CRUD so there is no use debating on their design...
Sztuka programowania 2160 dni, 5 godzin, 8 minut temu 191 źrodło rozwiń
Pewnie już spotkałeś się z takimi określeniami jak logika biznesowa oraz logika aplikacji. Na podstawie własnego doświadczenia zauważyłem, że programiści bardzo często operują terminami logika biznesowa i logika aplikacji ale nie zawsze rozumieją jakie jest ich znaczenie lub, co gorsza, używają ich zamiennie. W tym wpisie wyjaśniam co kryje się pod tymi pojęciami i podaję kilka przykładów, które powinny Ci pomóc w poprawnej klasyfikacji logiki.
Sztuka programowania 2161 dni, 4 godziny, 30 minut temu 206 źrodło rozwiń
During last week, I'm migrating some projects to the dotnet core. And one of the most irritating parts is lack of full WebService and WCF support in dotnet core. When you google for SOAP security headers you end in GitHub issue WS Security in .NetCore 2.0 #2605. But seriously is it impossible?
Minęła dłuższa chwila od ostatniej publikacji bardziej technicznego wpisu ze świata .NET-a. Trzeba to nadrobić! Mój drogi czytelniku, zastanawiałeś się kiedyś jak szybko działa Twój kod? Nie chodzi mi o szybkość wykonywania request – u, czy też poprawnej optymalizacji komunikacji z bazą danych, tylko o działaniu największego mięcha… ten czysty kod, bez żadnych szczegółów architektonicznych, jak baza danych, operacje I/O czy nawet internet. Jeżeli to właśnie ten aspekt programowania zaprząta Twoją głowę, ...
Mieliście kiedyś potrzebę przetestowania aplikacji na tablecie lub komórce? Najlepiej z funkcją debuggera? Przydaje się do tego opcja Remote debugging w Chrome.
Orphan (sierota) branch jest to specyficzny rodzaj brancha. Znajduje się on w naszym repozytorium, ale może on mieć całkowicie inną historię niż pozostałe branche.