Strona głównaUżytkownik

Enx93 | użytkownik

Enx93
Enx93
82,17
1680 dni, 23 godziny, 6 minut temu
12 września, 2018
dotnetomaniak.pl

Od wielu lat używam viewmodeli do przekazywania danych do widoku – niezależnie od tego, czy to aplikacja desktopowa w WPF, czy webowa w ASP.NET MVC. Do tego jeszcze Automapper do mapowania danych na viewmodele. Niestety mapowanie z wykorzystaniem metody Map obiektów z Entity Frameworka bardzo często ma swoje negatywne konsekwencje (na ogół pobieramy zbyt dużo danych do aplikacji). Jednym z rozwiązań tego problemu jest skorzystanie z metody ProjectTo z Automappe...

Źródło: plawgo.pl
Dziel się z innymi:
Entity Framework, Automapper oraz projekcja - Blog Daniela Plawgo

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, 1 godzinę, 15 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 1968 dni, 23 godziny, 29 minut 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, 1 godzinę, 5 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, 1 godzinę, 21 minut temu rroszczyk 185 źrodło rozwiń

W ASP.NET MVC rozbudowane formularze możemy utworzyć na różne sposoby. Na ogół staramy się wyrzucać do oddzielnych plików powtarzające się elementy, aby wykorzystywać je ponownie. Zauważyłem, że większość osób do tego celu wykorzystuje widoki Partial, które niestety często zamiast pomóc powodują dodatkowe problemy. W tym wpisie postaram Ci się pokazać, dlaczego w przypadku formularzy lepiej użyć Editor Templates niż widoków Partial.Przykład Zacznę od przykładu...

Źródło: plawgo.pl
Dziel się z innymi:
Dlaczego Editor Template jest lepszy niż Partial View do tworzenia formularzy? - Blog Daniela Plawgo

Web 1996 dni, 1 godzinę, 2 minuty temu danielplawgo 159 ź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, 35 minut temu danielplawgo 279 źrodło rozwiń

Od wielu lat usługi REST wypierają stare dobre usługi SOAP (a można już chyba nawet powiedzieć, że wyparły). Kiedy zaczynałem tworzyć usługi REST oraz z nich korzystać, miałem w pewnym sensie wrażenia, że robimy krok w tył. W SOAP mieliśmy WSDLa, który opisywał usługę. Dzięki niemu Visual Studio mogło wygenerować wszystkie klasy, które następnie używałem do komunikacji z usługą. W przypadku usług RESTowych nie mamy czegoś takiego z pudełka. Więc bardzo często ...

Źródło: plawgo.pl
Dziel się z innymi:
Swagger - dokumentowanie REST API - Blog Daniela Plawgo

Web 2010 dni, 2 godziny, 6 minut temu danielplawgo 183 ź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, 2 godziny, 11 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

Wzorzec DAO (Data Access Object) jest jednym z częściej używanych wzorców do organizacji warstwy dostępu do danych . Dla każdego obiektu/tabeli z bazy (np User, Product) tworzymy dedykowany interfejs/klasy. Klasy te często nazywamy repozytoriami* (np. UserRepository, ProductRepository) i na ogół zawierają takie same metody. Jestem wielkim fanem szablonów T4. Lubie je wykorzystywać do automatyzacji tworzenia powtarzalnych i schematycznych elementów kodu. Właśni...

Źródło: plawgo.pl
Dziel się z innymi:
Generowanie kodu na przykładzie klas repozytorium, szablonów T4 oraz T4 Toolbox - Blog Daniela Plawgo

Narzędzia 2087 dni, 21 godzin, 6 minut temu danielplawgo 124 ź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, 2 godziny, 20 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, 2 godziny, 9 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, 2 godziny, 49 minut 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, 2 godziny, 20 minut temu danielplawgo 245 źrodło rozwiń

W aplikacji czasami mamy fragmenty kodu, które dodajemy w różnych miejscach. Tak jak ostatnio opisywałem, możemy chcieć dodać cachowanie danych na poziomie logiki biznesowej, aby zmniejszyć ilość zapytań do bazy. W przykładzie dotyczącym CacheManagera wywołanie usługi CacheService dodałem bezpośrednio w kodzie logiki. Z jednej strony tego kodu nie ma zbyt dużo, ale z drugiej strony fajnie byłoby mieć ten kod automatycznie w każdej logice biznesowej. Szczególnie...

Źródło: plawgo.pl
Dziel się z innymi:
Jak automatycznie ponawiać operacja oraz cachować dane z interceptorami w Autofac? - Blog Daniela Plawgo

Narzędzia 2053 dni, 1 godzinę, 46 minut temu danielplawgo 103 źrodło rozwiń

1 2

Najaktywniejsi w tym miesiącu