Last time I checked the lifetimes of different types of services and want to share with you my findings.
Architektura 1376 dni, 9 godzin, 58 minut temu 75 źrodło rozwiń
A while ago I came across “Quick notes on a rant” authored by Don Syme. This rant criticizes the C# language for the lack of a few important features. The first point is "Implicitly discarding information is so 20th Century" which brings our attention to one of the sources of bugs in C# programs. Lucky me, I got the pleasure to make this kind of bug and find it later in production code, so this blog post is to save you the trouble...
Sztuka programowania 1402 dni, 9 godzin, 16 minut temu 72 źrodło rozwiń
Microsoft Azure contains many various services. One of them is a service that allows speech translation, which is part of Cognitive Services. How does it work? What is it about? How to use it in your application? In this blog post, I will try to answer these questions and show you the example of translating speech to text from microphone input.
More and more has been saying recently about the concept of no code. It is a platform for building applications without coding. You can create software and configure everything using just the mouse, a perfect way for non-technical people. ML.NET Model Builder can be described as a small seed of this solution. In this article, I want to show you how easily can you create a prediction model for your recommendation application with a few clicks.
Czy znasz Model C4? A może nie wiesz, dlaczego warto zapoznać się z tym Terminem? W artykule przedstawiam 10 powodów. Dlaczego jest to temat gody uwagi. Przeczytaj poniższy tekst, a zainteresujesz się tematem.
Architektura 1444 dni, 9 godzin, 11 minut temu 243 źrodło rozwiń
Podstawowe różnice pomiędzy ref i out w C#.
Sztuka programowania 1452 dni, 9 godzin temu 105 źrodło rozwiń
Różnica Pomiędzy ViewData, ViewBag oraz TempData
Sztuka programowania 1475 dni, 9 godzin, 17 minut temu 96 źrodło rozwiń
Z reguły naszą logikę biznesową umieszczamy w klasach serwisowych. Czasem są one większe, a czasem mniejsze. Zastanówmy się, jak mógłby wyglądać nasz kod, gdybyśmy dla każdej metody z serwisu tworzyli osobną klasę. Wykorzystamy do tego bibliotekę MediatR. Jeśli ktoś się zastanawia po co, odpowiedź jest prosta: aby zwiększyć spójność i zmniejszyć sprzężenie. Na razie nie będziemy się zagłębiać w takie pojęcia jak CQRS czy CQS. Naszym celem jest rozbicie klas na mniejsze i zmiana tego, jak je wołamy. Po ty...
Sztuka programowania 1480 dni, 9 godzin, 9 minut temu 138 źrodło rozwiń
W ubiegłym tygodniu przygotowałem ogólne podsumowanie zmian w .NET 5. Natomiast w tym wpisie przyszedł czas na bardziej szczegółowe zmiany w najnowszej wersji języka C# 9.0. Jest ich kilka, a największą jest wprowadzenie rekordów. Dla każdej zmiany przygotowałem interaktywny przykład, który możesz uruchomić bezpośrednio z poziomu bloga. Dzięki czemu szybko sprawdzisz, jak zachowa się kod aplikacji. Gorąco zachęcam do zmian w kodzie i własnych eksperymentów!Top...
Jakiś czas temu pisałem o tym, że gdy tworzymy API, warto dodać narzędzie Swagger. Umożliwia ono w szybki i prosty sposób przetestować nasze API (tutaj). Zdarza się jednak tak, że aby móc korzystać z naszego API, dane żądanie (request) musi być zautoryzowane, czyli np. posiadać odpowiedni token. Swagger umożliwia autoryzację żądań na wiele sposobów. W tym poście opiszę jak to zrobić, gdy potrzebujemy Bearer token.
Today I’d like to share with you a very interesting concept in software testing – Assert Object pattern. It makes the Assert part of a test much simpler and more readable. Let’s dive right into it 😉The Asserts Hell Let’s consider the following unit test: What’s wrong here? Given and When sections are great single-liners. We know straightaway what’s the input and the action executed. However, Then block is too complex. It’s hard to figure out, just passing quickly through this test, what is expected. T...
Sztuka programowania 1502 dni, 9 godzin, 5 minut temu 65 źrodło rozwiń
Artykuł pokazuje jak zmodyfikować rzekomo niemodyfikowalnego stringa w c#.
Z reguły nasze aplikacje posiadają jakąś logikę biznesową (o ile nie piszemy prostego CRUD). Chciałbym jednak zaznaczyć, że nie mam tu na myśli logiki w rozumieniu walidacji czy reguł biznesowych, np. brak możliwości zmiany wartości jakiegoś pola, gdy pewne warunki nie zostaną spełnione. Chodzi mi bardziej o logikę procesu, np. gdy klient złoży zamówienie, musimy mu wysłać wiadomość e-mail. Ta logika nie dotyczy obiektu zamówienia, ale jest z nim związana. Skoro wiemy, że będziemy musieli przechowywać g...
Sztuka programowania 1529 dni, 10 godzin, 31 minut temu 132 źrodło rozwiń
Językiem biznesu nazywamy ogół słownictwa używany przez różnych ekspertów domenowych. Język ten powinien być w pełni transparentny i jednoznaczny. Posługiwanie się takim językiem wiąże się z licznymi korzyściami. Wśród nich można wymienić sprawniejszą komunikację, większe zrozumienie problemów, ułatwienie współpracy pomiędzy zespołami, zacieśnianie więzów w firmie czy ułatwiony proces pisania testów.
Sztuka programowania 1530 dni, 10 godzin, 10 minut temu 76 źrodło rozwiń
Przetwarzanie bezserwerowe powstało w celu rozwiązania konkretnych problemów. Zdecydowanie nie jest lekiem na wszystko, jednak doskonale nadaje się do odpowiednich zagadnień. Powyższy wpis przedstawia podstawowe zagadnienia związane z Azure Functions.
If you are old enough to have experience in .net framework (and I hope you do, otherwise I will feel really old myself!), there is a high probability that you were concatenating directory paths wrong all the time! And that’s all because some time ago, somebody at Microsoft had, let’s say, not a best idea :P. But what’s the problem? Path.Combine can be used with one, two, three or even four arguments. In an ideal world the first argument should be passed as an absolute path and...
Sztuka programowania 1538 dni, 10 godzin, 42 minuty temu 112 źrodło rozwiń
W formie vloga prezentuję bibliotekę do manipulowania plikami Power Point i zmiany jakie do niej wprowadziłem (parsowanie HTML z obsługą podstawowych funkcji). Jeżeli zamierzasz generować/eksportować pliki PPTX z poziomu aplikacji, znajdziesz tu gotowe wskazówki.
Architektura heksagonalna jest znana pod kilkoma nazwami. Na szczęście, niezależnie od nazwy, w każdym opisie cechuje się takimi samymi rzeczami. Po pierwsze – świetnie separuje aspekty biznesowe od technicznych. Po drugie – projektowanie prostych adapterów pozwala na podejmowanie pewnych decyzji na późniejszym etapie projektu. Na koniec, po trzecie – wymienność adapterów ułatwia testowanie, jak i eksperymentowanie.
Architektura 1541 dni, 10 godzin, 14 minut temu 235 źrodło rozwiń
Ostatnio pisałem o tym, co możemy zrobić, gdy nasze metody zwracają rezultat i chcemy go zmapować na odpowiedni kod http (tutaj). W tym poście podam podobne rozwiązanie, gdy nasze metody rzucają wyjątki, zamiast zwracać rezultat.
Tym razem chciałbym się skupić na tym, jak dostarczyć odpowiednie fragmenty kodu klienta API do pozostałych członków zespołu tak, by każdy mógł go używać w odpowiedni sposób.
Sztuka programowania 1552 dni, 10 godzin, 30 minut temu 116 źrodło rozwiń