Wiele osób uważa, że dokumentacja w małych projektach to “strata czasu” – nic bardziej mylnego. Podejrzewam, że takie przemyślenia biorą się z tego, że niektórzy nie wiedzą jak pisać dokumentację, jakich diagramów użyć itp. W tym wpisie daję wskazówki, które na codzień stosuje realizując projekty w fresh-apps.com. Wykonanie analizy przedwykonawczej pozwoli ci zaoszczędzić czas spę...
W poprzednim wpisie pokazałem, jak użyć Fluent Validation w aplikacji WPF. Wspomniałem, że tamta implementacja niestety nie nadaje się, gdy potrzebujemy walidować dane w sposób asynchroniczny – np. sprawdzić w usłudze, czy dane są unikalne. W tamtym wpisie pokazałem użycie IDataErrorInfo ponieważ jest on najczęściej wykorzystywany do realizacji walidacji. Natomiast dzisiaj opiszę nową wersję tego interfejsu, dodaną w .NET 4.5 – INotifyDataErrorInfo. Co fajne nowy interfejs...
Czysty kod, wzorce projektowe, dobre praktyki – wszyscy to znamy. Blogi programistyczne prześcigają się w przedstawianiu kolejnych wzorców które mają nam ułatwić życie, cytują fragmenty “Clean code’u”, a w komentarzach użytkownicy dyskutują o nazewnictwie zmiennych. Czy w 2018r., na progu m.in. rewolucji związanej ze sztuczną inteligencją, nie warto byłoby nabrać nieco dystansu do całego tego konkursu piękności i skupić się na umiejętnościach które nam, programistom, pr...
Sztuka programowania 2476 dni, 37 minut temu 324 źrodło rozwiń
Na konferencji BoilingFrogs byłam na rewelacyjnej prezentacji Łukasza Szydło „Modularity – the final frontier” dotyczącej architektury modularnej. Zainspirowała mnie ona do napisania tego krótkiego wpisu.
Architektura 2476 dni, 37 minut temu 193 źrodło rozwiń
Czyli moje rozważania na temat naszej męskiej pozycji w świecie IT.
I finished work on my presentation about “Domain Driven Design – Facts / Myths / Microservices”. Check my slides and recommended articles / videos.
Sztuka programowania 2476 dni, 37 minut temu 116 źrodło rozwiń
Nie wydaje Ci się czasem że za dużo czasu "tracisz" na coś co wydaje się rozwijające?
We have many solutions for versioning data through time. One of the cleanest, most transparent and pretty effortless in my opinion are Temporal Tables which are available in MS SQL 2016+. What’s really great about that approach is that unless you need to retrieve state from the certain point in time or browse through changes in a specified time range, you can query against a versioned table in an exactly same way that you would do with any other one.
Bazy danych i XML 2476 dni, 37 minut temu 77 źrodło rozwiń
Napisanie skryptów budujących to jedno. Konfiguracja serwera CI to drugie. Natomiast połącznie tych dwóch elementów daje więcej niż ich suma. Przedstawiam dzisiaj, na przykładzie, jak uruchomić skrypty CakeBuild na Appveyor z użyciem appveyor.yml
Krótko o unchecked, unsigned i problemach z Entity Frameworkiem...
Sztuka programowania 2476 dni, 37 minut temu 44 źrodło rozwiń
Sometimes you need to acquire client originating IP address in your web application. This post shows how this can be done in ASP.NET Core, taking into consideration running behind proxies (including Akamai and CloudFlare).
Niech ten konkurs wpędzi Was w "ostrą jazdę bez trzymanki". Kto będzie pierwszy? Na kogo spadnie szacunek .Net'owej społeczności? Do zwycięzcy wyślę ładnie zapakowane 0.7 Jack’a Daniels’a i dziesięć setek Wiśniówki Lubelskiej. Tematem konkursu jest zoptymalizowanie procesu zamiany ciągu bajtów na obiekty. Wersja uznana jest za najszybszą jeśli od poprzedniej najszybszej wersji będzie szybsza o 5% w każdym z 10 powtórzeń testu. Nagroda zwycięscy zostaje przyznana wówczas gdy po pull request z najsz...
Sztuka programowania 2479 dni, 2 godziny, 39 minut temu 145 źrodło rozwiń
Recently I’ve had occasion to work much more than usually with NHibernate. This is a really great ORM and a very mature project, but when you make a mistake it informs you about that in a very generic way (in most cases). The problem that hunted me for a few days was the issue with field length constrains (which was caused by insufficient and inconsistent REST API validation). When there was a discrepancy between declared field length in NHibernate mapping and validation logic (or the vali...
Bazy danych i XML 2479 dni, 2 godziny, 39 minut temu 52 źrodło rozwiń
Not so long ago, I got a quite interesting problem with my docker-compose file which surprisingly turned out to be quite common. In a nutshell, I had several ASP.NET Core applications (yup…microservices) which tried to connect to RabbitMQ queue during startup. Since I wanted to run both infrastructure (RabbitMQ, MongoDB) and microservices using only one command, I created mentioned docker-compose file. After all, I typed on my terminal: docker-...
W poprzednich wpisie pokazałem w jaki sposób można zintegrować Fluent Validation z aplikacją ASP.NET MVC, dzisiaj przyszedł czas na WPF. W WPF jest kilka sposobów na realizację walidacji. Najczęściej wykorzystuje się do tego interfejs IDataErrorInfo, który definiuje dwa elementy: właściwość Error zawierającą informacje o błędach oraz indekser, który zwraca błąd dla właściwości o nazwie przekazanej jako indeks. Interfejs ten można wykorzystać do integracji Fluent Validatio...
„Development pipeline”, czyli tworzenie środowiska do budowania, testowania i wydawania aplikacji. Dzięki upowszechnieniu się chmury możemy coraz częściej korzystać z gotowych rozwiązań. Dzięki nim nie musimy już „w pocie czoła” konfigurować naszych serwerów. Możemy stworzyć takie środowisko używając prostych kreatorów. Dzisiaj chciałbym wam przedstawić jak to zrobić używając Visual Studio App Center. O samy...
Mobile development 2479 dni, 2 godziny, 39 minut temu 22 źrodło rozwiń
Coraz więcej aplikacji jest tworzonych w architekturze rozproszonej, opartej o systemy wymiany informacj jak RabbitMQ czy ZeroMQ. Wykorzystując .NET Core nie zawsze potrzebujemy stawiać nowych maszyn odpowiedzialnych za rozsyłanie informacji po systemie. W dzisiejszym artykule chciałbym pokazać jak za pomocą biblioteki MediatR stworzyć szynę komunikacyjną w pamięci aplikacji. Zapraszam!Czym jest szyna komunikacyjna? Jest to kawałek softu odpowiadający za przekazanie informacji z jednej części systemu do...
Początkujący programiści często zadają pytanie jaki powinien być lub jaki wybrać pierwszy język programowania? W gąszczu dostępnych form komunikacji ze światem binarnym ciężko na początku się odnaleźć. Nie wiadomo jaki punkt zaczepienia chwycić, czym się sugerować. Bywa i tak, że ten pierwszy język programowania jest wynikiem wielu losowych czynników – studia, post na forum, znajomy programista. W piątym odcinku Dev:Cast rozmawiamy o wyborze pierwszego języka – jak się zabrać za wybór, czym się kierować.
REST i RESTful API to dość popularne buzzwordy w aktualnych czasach. W ramach przypomnienia, implementacje API zgodnie z założeniami architektury REST nazywamy RESTful API. Załóżmy, że wykonaliśmy implementacje API, skąd mamy mieć pewność, że jest w stylu REST. Kolega/koleżanka za monitora powie Ci, skoro masz HTTP i JSON to usługa internetowa musi być RESTful API. Czy to jest na pewno zgodne z prawdą?
Sztuka programowania 2485 dni, 19 godzin, 57 minut temu 176 źrodło rozwiń
Po co wprowadzamy ograniczenia w naszych aplikacjach, serwisach? Dlaczego nie tworzyć architektur gotowych na wszystko? Zapraszam do przeczytania artykułu o Bounded Design
Architektura 2485 dni, 19 godzin, 57 minut temu 123 źrodło rozwiń