Jakiś czasem temu pisałem o tym, że nasze metody mogą zwracać rezultat lub zgłaszać wyjątek (tutaj). Zastanówmy się, jak mogłoby wyglądać nasze API, aby status rezultatu był mapowany na odpowiedni kod Http. Mamy dwie możliwości: wspólna metoda w klasie bazowej lub filtr.
In this video, we're going look at struct devirtualization and how this feature works in the runtime today. We're going to look at some ways we can (ab)use this feature and what are the problems with the current implementation.
Sztuka programowania 1528 dni, 3 godziny, 3 minuty temu 28 źrodło rozwiń
Jakiś czas temu pisałem o testach w kontekście API (tutaj). W tym poście postaram się opisać jak napisać podobne testy, ale gdy nasza aplikacja komunikuje się poprzez kolejkę. Pokaże to z wykorzystaniem biblioteki MassTransit.
This video is the start of a brand-new video series about JIT compilation in C# called: "What the JIT". This time we're going to look at simple integer arithmetic like division and multiplication and how JIT is able to optimize that.
Sztuka programowania 1542 dni, 2 godziny, 29 minut temu 27 źrodło rozwiń
This video talks about the "Skip" method, and differences in implementation between dotnet frameworks. Also, we will try to implement a less flexible but faster version of the "Skip" method. Enjoy. 🙂
Sztuka programowania 1550 dni, 2 godziny, 37 minut temu 33 źrodło rozwiń
Sztuka programowania 1554 dni, 2 godziny, 24 minuty temu 54 źrodło rozwiń
We are already in the second half of 2020 and a lot of books related to .NET technology have been published. I decided to collect these positions in one place for you. I will mention here some of them that get the best reviews and seem worth reading in my opinion.
This video corrects a couple of mistakes that were made in my previous video called "C# LINQ Performance Tips #1". We're talking about structs vs classes in LINQ and why losing concrete type information is bad, there's also a bit of VSD but it's very vague and generic so the more specific video is needed, I just wanted to tell you that it exists :) and it's important. Enjoy.
Sztuka programowania 1557 dni, 32 minuty temu 37 źrodło rozwiń
This video will show you some of the performance and allocation problems that you might encounter when writing LINQ expressions we will also see that an expression you see is not necessarily, what you get. LINQ is not all bad and we will show you an example where LINQ absolutely rocks! This video mentions examples found in my previous video: https://youtu.be/ahnaIdQMoYw Enjoy.
Sztuka programowania 1561 dni, 3 godziny, 7 minut temu 98 źrodło rozwiń
C# 9.0 jest już wspierany przez LINQPad. Aplikacja pozwala podejrzeć IL code oraz przetestować nowe funkcjonalności.
Sztuka programowania 1563 dni, 3 godziny, 4 minuty temu 101 źrodło rozwiń
This video will show you some of the performance and allocation problems that you might encounter when writing LINQ expressions and offer a couple of solutions on how to solve them. LINQ Links: ♦ https://github.com/NetFabric/LinqBenchmarks ♦ https://github.com/NetFabric/NetFabric.Hyperlinq
Sztuka programowania 1564 dni, 2 godziny, 6 minut temu 57 źrodło rozwiń
A couple of tricks which simplify database access code while using Dapper library.
Bazy danych i XML 1570 dni, 23 godziny, 51 minut temu 135 źrodło rozwiń
Creating music app using azure functions
There’s a certain set of special method signatures in C# which have particular support on the language level. Methods with those signatures allow for using a special syntax which has several benefits. For example, we can use them to simplify our code or create DSL to express a solution to our domain-specific problem in a much cleaner way. I came across those methods in different places, so I decided to create a blog post to summarize all my discoveries on this subject.
Sztuka programowania 1604 dni, 1 godzinę, 38 minut temu 206 źrodło rozwiń
Często w naszych aplikacjach mamy do czynienia z datami. Najczęściej używamy ich przy polach takich jak data utworzenia (np. CreatedAt) lub data modyfikacji (np. ModifiedAt), ale są też inne miejsca. Wtedy z reguły stosujemy DateTime.UtcNow. Niestety w testach ciężko jest potem coś z taką datą zrobić. Nie mamy żadnej możliwości ustawienia tej daty na jakąś inną, aby przetestować czy nasza aplikacja działa poprawnie. Sprawa się jeszcze bardziej komplikuje, gdy mamy logikę biznesową uzależnioną od takiej ...
This video is an introduction to bit hacks; we're going to visualize bit hack expressions and learn how to construct and apply them. This video is a direct response to a previous video about bit hacks (https://youtu.be/OPFJUpdCq0I) that was too complicated to an introduction, so this video is here to fill this need. I also have an article about the same topic that goes into more detail about the examples presented here, plus it contains a more bit hacks. https://leveluppp.ghost.io/bit-hacks-in-c/ Enj...
Sztuka programowania 1606 dni, 2 godziny, 37 minut temu 24 źrodło rozwiń
Today, I will introduce some changes in version 5.0 and present how to update the version in the project from version 3.1 to 5.0.
How to keep two different types in synchronization using roslyn analyzers.
CQRS is a simple pattern that strictly segregates the responsibility of handling command input into an autonomous system from the responsibility of handling side-effect-free query/read access on the same system. If you are familiar with Domain-Driven Design, you’ve most likely heard about, Command-Query Responsibility Segregation (CQRS). Though the CQRS pattern is well-known, there are still a lot of misconceptions around this pattern, especially when it comes to applying it in real-world software proje...
Sztuka programowania 1658 dni, 2 godziny, 29 minut temu 100 źrodło rozwiń
W języku c# nie tylko możemy pisać obiektowo ale również funkcyjnie. W tym artykule poznamy podstawowe zagadnienia funkcyjne w c#, dowiemy się jak możemy łączyć ze sobą funkcje (i po co to robić) oraz jak pracować efektywnie z kolekcjami. Czas poznać inne sposoby rozwiązywania problemów.
Sztuka programowania 1679 dni, 2 godziny, 14 minut temu 117 źrodło rozwiń