Strona głównaUżytkownik

AdamZielinski | użytkownik

AdamZielinski
AdamZielinski
62,18
1800 dni, 8 godzin, 52 minuty temu
10 sierpnia, 2018
dotnetomaniak.pl

Jako programista .NET bardzo cieszę się z tego, że Microsoft obok rozwoju całej platformy .NET dodaje również nowe rzeczy do samego języka C#. Wszystko po to, aby nam, programistom, pracowało się jeszcze łatwiej i efektywniej – choć nie zawsze wprowadzone mechanizmy wydają się fajne i się je wykorzystuje. Przykładowo pattern matching dodany do switch w C# 7 (jeśli nie wiesz, co to, to w dalszej części wpisu pokażę, czym to jest) jakoś nie przypadł mi do gustu ...

Tagi: C#, C# 8.0, switch
Źródło: plawgo.pl
Dziel się z innymi:
Nowy switch w C# 8.0 - Blog Daniela Plawgo

Sztuka programowania 1800 dni, 13 godzin, 19 minut temu danielplawgo 410 źrodło rozwiń

Zapewne nie raz miałeś(-łaś) tak, że aplikacja na produkcji, u klienta lub serwerze testowym działa inaczej, niż powinna. A to pojawia się jakiś wyjątek, a to wynik operacji jest inny, niż powinien być. Znając życie, w logach nic ciekawego nie było i przez dłuższy czas dodawałeś(-łaś) do nich kolejne linijki w pogoni za błędem. Myślę, że każdy z nas miał wcześniej czy później podobny problem. Nie raz przemknęło Ci przez myśl, by zainstalować Visual Studio, aby...

Źródło: plawgo.pl
Dziel się z innymi:
dnSpy – debugowanie aplikacji bez kodu - Blog Daniela Plawgo

Narzędzia 1807 dni, 13 godzin, 10 minut temu danielplawgo 218 źrodło rozwiń

Od kilku lat następuje coraz większa specjalizacja w tworzeniu aplikacji webowych. Jeszcze jakiś czas temu, tworząc projekt w ASP.NET MVC, większość rzeczy robiliśmy po stronie serwera, dodając pojedyncze dynamiczne elementy w jQuery po stronie przeglądarki. Teraz po stronie serwera tworzymy głównie API, które następnie jest wykorzystywane przez aplikację działającą w przeglądarce, tworzącą interfejs użytkownika. Takie podejście powoduje, że świat frontendu zn...

Źródło: plawgo.pl
Dziel się z innymi:
Blazor – frontend w C# - Blog Daniela Plawgo

Web 1863 dni, 11 godzin, 50 minut temu danielplawgo 287 źrodło rozwiń

W poprzednim wpisie pokazałem Ci, w jaki sposób można dodać wsparcie dla Temporal Table w Entity Framework. Zaproponowane rozwiązanie nie jest idealne i ma swoje problemy. W dzisiejszym wpisie będę chciał Ci pokazać, jak rozwiązać część problemów z wykorzystaniem interceptorów. Umożliwią one modyfikowanie zapytań, które są wykonywane w serwerze bazy danych. Dzięki temu możemy obchodzić niektóre problemy w pracy z Entity Framework.Rozbudowanie przykładu W tym w...

Źródło: plawgo.pl
Dziel się z innymi:
Interceptory w Entity Framework - Blog Daniela Plawgo

Bazy danych i XML 1870 dni, 12 godzin, 41 minut temu danielplawgo 201 źrodło rozwiń

W poprzednim wpisie pokazałem Ci, jak działa w SQL Server mechanizm Temporal Tables. Dzięki niemu możemy w prosty sposób bezpośrednio w samej bazie danych zapisywać historię zmian rekordów. O ile z użyciem tego w czystym SQL (np. za pomocą ADO.NET, Dapper lub innego Micro ORM) nie ma większych problemów, to już w przypadku Entity Framework są. W teorii standardowy Entity Framework nie wspiera Temporal Table. Co do wersji core – widziałem, że coś tam już jest, a...

Źródło: plawgo.pl
Dziel się z innymi:
Temporal Table i Entity Framework - Blog Daniela Plawgo

Bazy danych i XML 1877 dni, 12 godzin, 45 minut temu danielplawgo 130 źrodło rozwiń

Historia zmian danych w aplikacji wcześniej czy później pojawi się w każdym projekcie. Do tego problemu można podejść na różne sposoby – możemy samemu coś wymyślić lub skorzystać z czegoś gotowego. W przypadku gdy korzystamy z Entity Framework, możemy użyć mechanizm audytu z darmowego rozszerzenia Entity Framework Plus. W dzisiejszym wpisie pokażę podstawy korzystania z tego mechanizmu, natomiast za tydzień rozbudujemy jego możliwości.Problem W tworzonych prze...

Źródło: plawgo.pl
Dziel się z innymi:
Audit z Entity Framework Plus - Blog Daniela Plawgo

Bazy danych i XML 1899 dni, 10 godzin, 49 minut temu danielplawgo 196 źrodło rozwiń

Logowanie działania aplikacji jest bardzo przydatne podczas późniejszej analizy tego, co się stało. Na ogół prawie każda aplikacja loguje jakieś informacje. Niestety zauważyłem, że równie często nie do końca dobrze logujemy wiadomości. Jest to szczególnie widoczne w aplikacjach webowych (na przykład w ASP.NET MVC). Przy dużej liczbie użytkowników wiadomości z poszczególnych żądań są wymieszane między sobą, przez co ich późniejsza analiza jest bardzo utrudniona ...

Źródło: plawgo.pl
Dziel się z innymi:
Grupowanie wiadomości w NLogu w ramach żądania HTTP - Blog Daniela Plawgo

Inne 1913 dni, 2 godziny, 53 minuty temu danielplawgo 177 źrodło rozwiń

Dzisiejszy wpis jest zainspirowany kilkoma ostatnimi przypadkami, w których widziałem bardzo rozbudowane switche w aplikacji.  Utrzymanie tego kodu zaczynało sprawiać programistom spore problemy. Zapewne wielokrotnie widziałeś lub widziałaś metody, w których znajdował się jeden wielki switch, gdzie każdy case zawierał następnie zupełnie inny kod niż pozostałe przypadki. Utrzymanie tego, a w szczególności dodanie nowych przypadków zaczyna być wyzwaniem i często ...

Źródło: plawgo.pl
Dziel się z innymi:
Jak zastąpić rozbudowany switch w aplikacji - Blog Daniela Plawgo

Sztuka programowania 1961 dni, 11 godzin, 20 minut temu danielplawgo 373 źrodło rozwiń

Dwa tygodnie temu opublikowałem wpis o bibliotece Fluent Assertions, która bardzo ułatwia pisanie assertów w testach (zachęcam pierw do przeczytania tamtego wpisu). Pokazałem jak korzystać z biblioteki oraz jak łatwo można rozszerzać możliwości biblioteki o własne metody. Dzisiaj natomiast pokaże Ci, jak testować kontrolery w ASP.NET MVC za pomocą rozszerzenia o nazwie FluentAssertions.MVC (https://github.com/fluentassertions/fluentassertions.mvc). Poćwiczymy r...

FluentAssertions.Mvc - assercie dla ASP.NET MVC - Blog Daniela Plawgo

Inne 1969 dni, 9 godzin, 34 minuty temu danielplawgo 75 źrodło rozwiń

W ostatnim wpisie poruszyłem temat testowania i w dzisiejszym wpisie zostaniemy przy tym temacie. O ile z testowaniem warstwy logiki biznesowej na ogół nie mamy problemów, to już dużo gorzej wygląda to z warstwą dostępu do danych. Entity Framework z pudełka nie umożliwia prostego pisania testów jednostkowych. Są różne rozwiązania tego problemu. Część osób idzie tak naprawdę w testy integracyjne i wykonuje zapytania na realnej bazie. Część osób korzysta z baz da...

Źródło: plawgo.pl
Dziel się z innymi:
Effort - testy Entity Framework - Blog Daniela Plawgo

Testy jednostkowe oraz testy integracyjne potrafią bardzo ułatwić wyłapywanie błędów podczas tworzenie aplikacji (w szczególności błędów regresji). Dlatego na ogół bardzo chcemy je dodać do aplikacji, ale niestety często spotykamy się z oporem „góry”, bo pisanie testów zajmuje dużo czasu. Z doświadczenie zauważyłem, że jednym z powodów wydłużania czasu pisania testów są rozbudowane asserty. Dlatego w dzisiejszym wpisie chce Ci  pokazać bibliotekę Fluent Asserti...

Źródło: plawgo.pl
Dziel się z innymi:
Fluent Assertions - przyjemne asserty w testach - Blog Daniela Plawgo

Inne 1981 dni, 11 godzin, 10 minut temu danielplawgo 115 źrodło rozwiń

Bardzo lubię wykorzystywać Entity Framework w swoich projektach. W szczególności za łatwość i szybkość tworzenia kodu (na przykład za opisywany ostatnio mechanizm migracji). Ale, żeby nie było tak różowo, Entity Framework ma również swoje problemy. Głównie są one związane z wydajnością. Szczególnie, że niektóre operacje, który wykonalibyśmy w czystym SQLu jednym prostym zapytaniem, w Entity Framework wymagają wielu operacji na bazie danych. Taką operacji jest ...

Tagi: .Net, C#, EF
Źródło: plawgo.pl
Dziel się z innymi:
EF Plus - aktualizacja wielu obiektów jednym zapytaniem

Bazy danych i XML 1990 dni, 11 godzin, 27 minut temu rroszczyk 185 źrodło rozwiń

Dzisiejszy post będzie trochę inny niż większość. Temat, który poruszę nie jest może jakoś mocno praktyczny i nie wykorzystasz go każdego dnia. Ale z drugiej strony może posłużyć jako ciekawy pomysł na pytanie rekrutacyjne, dlatego warto się nim zainteresować 🙂 Na początku zastanówmy się, czy klasa faktycznie może być prywatna. Chwila zastanowienia i prawdopodobnie myślisz sobie, że chyba nie. Po co w ogóle coś takiego byłoby potrzebne? Odpalasz Visual Stu...

Źródło: plawgo.pl
Dziel się z innymi:
Prywatna klasa? - Blog Daniela Plawgo

Inne 2002 dni, 10 godzin, 40 minut temu danielplawgo 279 źrodło rozwiń

Posted on przez Daniel PlawgoW ostatnim czasie trochę odświeżyłem mój darmowy kurs Visual Studio. Przede wszystkich przygotowałem landing page dla kursu (https://visualstudio.plawgo.pl) oraz poprawiłem kilka drobnych rzeczy.Pracuje również nad nowymi lekcjami i związku z tym postanowiłem przygotować konkurs z ciekawymi nagrodami. Do wygrania są:Roczna licencja na ReSharper Ultimate + Rider Pack (lub inny produkt od JetBrains)2 pakiety 5 godzin konsultacji z moją osobą (https://plawgo.pl/mentoring/), któ...

Źródło: plawgo.pl
Dziel się z innymi:
Kurs Visual Studio oraz konkurs - Blog Daniela Plawgo

Narzędzia 2012 dni, 12 godzin, 16 minut temu danielplawgo 131 źrodło rozwiń

Dwa ostatnie wpisy na blogu dotyczyły sposób migracji schematu bazy danych. Migracje w Entity Framework oraz Fluent Migrator charakteryzują się tym, że cały proces migracji jest zapisany w klasach za pomocą api, które udostępnia dana biblioteka. Ilość sqla, którą piszemy w tych migracjach jest minimalizowana i sprowadza się głównie do wykonywania jakiś specyficznych rzeczy – np. skopiowania danych z jednego miejsca w drugie. Natomiast dzisiejsza biblioteka (DbU...

Tagi: DbUp, migracja
Źródło: plawgo.pl
Dziel się z innymi:
Migracja schematu bazy danych z DbUp - Blog Daniela Plawgo

Bazy danych i XML 2017 dni, 10 godzin, 45 minut temu danielplawgo 108 źrodło rozwiń

W ubiegłym tygodniu pokazałem Ci w jaki sposób migrować schemat bazy w Entity Framework (zachęcam pierw do przeczytania tamtego wpisu). W tym wpisie pokaże Ci inną bibliotekę, którą możesz użyć do migracji schematu bazy, w momencie, gdy z jakiegoś powodu nie możesz użyć Entity Framework. Biblioteka nazywa się Fluent Migrator (https://fluentmigrator.github.io/) i w swoim działaniu jest bardzo podobna do mechanizmu migracji z Entity Framework. Największą różnicą ...

Źródło: plawgo.pl
Dziel się z innymi:
Migracja schematu bazy danych z Fluent Migrator - Blog Daniela Plawgo

Bazy danych i XML 2024 dni, 12 godzin, 25 minut temu danielplawgo 107 źrodło rozwiń

W obecnych czasach bardzo rzadko tworzy się aplikacje, które nie korzystają z bazy danych. Gdzieś trzeba zapisać dane. Od jakiegoś czasu coraz bardziej popularne stają są bazy nierelacyjne, ale dalej najczęściej używamy baz relacyjnych, takich jak na przykład SQL Server. Jednym z problemów z jaki musimy się zmierzyć jest zmiana schematu bazy danych na przestrzeni czasu. A to musimy dodać miejsce na nowe dane. Usunąć już istniejące. Czy też zmienić strukturę, ab...

Źródło: plawgo.pl
Dziel się z innymi:
Migracja schematu bazy danych w Entity Framework - Blog Daniela Plawgo

Bazy danych i XML 2031 dni, 12 godzin, 14 minut temu danielplawgo 171 źrodło rozwiń

Zapewne zastanawiasz się, czy w ogóle powinieneś lub powinnaś interesować się tworzeniem aplikacji konsolowych. Czy to jeszcze ma sens. Czy ktoś jeszcze tego używa. Od jakieś czasu widzę w swoim środowisku tendencje, w której aplikacje konsolowe przeżywają swoisty renesans. Powstaje ich coraz więcej i więcej. Jednym z powodów takiego stanu rzeczy jest to, że nasze systemy stają się coraz bardziej rozbudowane (np. mamy wiele mikroserwisów) i coraz bardziej stara...

Parsowanie parametrów w aplikacji konsolowej za pomocą CommandLineParser - Blog Daniela Plawgo

Inne 2038 dni, 12 godzin, 54 minuty temu danielplawgo 113 źrodło rozwiń

Entity Framework jest bardzo fajnym narzędziem bardzo ułatwiającym pracę z bazami danych. Budowanie zapytań SQL na podstawie Linq, tworzenie struktury bazy danych na podstawie obiektów w C#, czy mechanizm migracji, powodują, że wielu programistów .NET wybiera Entity Framework. Niestety Entity Framework ma również swoje ciemne strony. Wystarczy chociażby wrócić do wpisu, w którym poruszałem problem aktualizowanie oraz usuwania danych. Pracując z Entity Framewor...

Źródło: plawgo.pl
Dziel się z innymi:
Jak profilować zapytania w Entity Framework? - Blog Daniela Plawgo

Bazy danych i XML 2045 dni, 12 godzin, 25 minut temu danielplawgo 245 źrodło rozwiń

Wraz z rozwojem aplikacji oraz zwiększaniem się liczby użytkowników, stajemy przed coraz większymi problem związanymi z wydajnością. Szczególnie istotne jest to w momencie, gdy na przykład ruch na stronie jest na tyle duży, że serwer, z którego korzystamy jest wykorzystywany w 100%. Jednym z sposobów, który w miarę szybko daje spore efekty, jest dodanie mechanizmu cachowania często używanych danych. W tym wpisie pokaże Ci bibliotekę CacheManager (https://github...

Źródło: plawgo.pl
Dziel się z innymi:
Jak cachować dane w .NET? Kilka słów o CacheManager oraz Redis - Blog Daniela Plawgo

Narzędzia 2066 dni, 11 godzin, 35 minut temu danielplawgo 227 źrodło rozwiń

1 2

Najaktywniejsi w tym miesiącu