dotnetomaniak.pl

Strona głównaUżytkownik

danielplawgo | użytkownik

danielplawgo
danielplawgo
8 163,27
2 dni, 17 godzin, 5 minut temu
15 kwietnia, 2009
dotnetomaniak.pl

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 5 dni, 17 godzin, 32 minuty temu danielplawgo 207 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 12 dni, 18 godzin, 22 minuty temu danielplawgo 183 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 19 dni, 18 godzin, 26 minut temu danielplawgo 109 rozwiń

W dwóch ostatnich wpisach na blogu omawiałem zapis historii zmian danych w aplikacji z wykorzystaniem mechanizmu Audit z Entity Framework Plus. Mechanizm tamten działał w momencie, gdy korzystaliśmy z Entity Framework. Jednak nie zawsze chcemy lub możemy korzystać z tego ORMa. Dlatego w dzisiejszym wpisie chcę Ci pokazać mechanizm, który działa zupełnie inaczej i jest dostępny w samym silniku SQL Server. Mechanizm ten nazywa się Temporal Tables i jest dostępny ...

Źródło: plawgo.pl
Dziel się z innymi:
Temporal Tables – Historia zmian w SQL Server - Blog Daniela Plawgo

Bazy danych i XML 26 dni, 18 godzin, 33 minuty temu danielplawgo 149 rozwiń

W poprzednim wpisie pokazałem, w jaki sposób zapisać historię zmian obiektów w Entity Framework z wykorzystaniem mechanizmu Audit z Entity Framework Plus. W dzisiejszym wpisie pokażę, w jaki sposób skonfigurować ten mechanizm, aby zapisywał te informacje, których potrzebujemy, w odpowiedni sposób.Modyfikacja przykładu W tym wpisie będę bazował na przykładzie z wcześniejszego wpisu, ale go odrobinę zmieniłem. Do klasy Product dodałem dwie nowe właściwości (Des...

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

Bazy danych i XML 33 dni, 18 godzin, 5 minut temu danielplawgo 91 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 41 dni, 16 godzin, 30 minut temu danielplawgo 183 rozwiń

Rozwijanie usługi systemowej stworzonej z domyślnego szablonu w Visual Studio nie jest prostym zajęciem. Szczególnie debugowanie takiej aplikacji sprawia sporo problemów. Nie można z poziomu IDE uruchomić usługi i jej debugować. Trzeba podpinać się pod działający proces. W przypadku gdy chcemy zdebugować start usługi, musimy posiłkować się różnymi dziwnymi konstrukcjami, które zatrzymają start usługi do momentu podpięcia się debugera. W dzisiejszym wpisie będę...

Źródło: plawgo.pl
Dziel się z innymi:
Topshelf – tworzenie usługi systemowej - Blog Daniela Plawgo

Windows 47 dni, 16 godzin, 28 minut temu danielplawgo 151 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 55 dni, 8 godzin, 34 minuty temu danielplawgo 127 rozwiń

Sposób tworzenia aplikacji webowych zmienia się na przestrzeni czasu. W świecie .NET przez lata kodowaliśmy w ASP.NET MVC, w którym widoki były generowane po stronie serwera. Od jakiegoś czasu idziemy w kierunku, w którym backend udostępnia API, z którego korzysta aplikacja po stronie przeglądarki i która generuje widoki po stronie klienta. W związku z tym zmienił się też sposób testowania aplikacji po stronie serwera. Jednym z dostępnych narzędzi, które możemy...

Źródło: plawgo.pl
Dziel się z innymi:
Postman – testowanie API - Blog Daniela Plawgo

Narzędzia 61 dni, 17 godzin, 9 minut temu danielplawgo 173 rozwiń

Praca zdalna coraz częściej i „bardziej” wchodzi do naszego zawodu. Sam przez prawie osiem lat pracowałem zdalnie z domu. Teraz natomiast, pracując w olsztyńskim oddziale SoftwareHut, i tak pracuję zdalnie dla klienta z Anglii. Praca zdalna wiąże się z wyzwaniami. W jaki sposób wspólnie debugować aplikacje, gdy jesteśmy oddaleni od siebie o kilkaset kilometrów? Lub programować w parze, aby rozwiązać jakiś problem? Jakiś czas temu Microsoft udostępnił usługę o n...

Źródło: plawgo.pl
Dziel się z innymi:
VS Live Share – łatwiejsza praca zdalna - Blog Daniela Plawgo

Narzędzia 68 dni, 16 godzin, 59 minut temu danielplawgo 121 rozwiń

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

Bazy danych i XML 76 dni, 16 godzin, 21 minut temu danielplawgo 251 rozwiń

Tworząc aplikację, wcześniej czy później będziemy musieli zaimportować lub wyeksportować jakieś dane. Jednym z formatów, który prawdopodobnie będziemy musieli obsłużyć, będzie plik csv. Można taki import lub eksport zrobić ręcznie, korzystając z takich metod klasy string, jak Join lub Split. Z drugiej strony możemy skorzystać z czegoś gotowego. W swoich projektach, gdy mam pracować z plikami csv, wykorzystuję bibliotekę CsvHelper (https://joshclose.github.io/Cs...

Tagi: csv, csvhelper
Źródło: plawgo.pl
Dziel się z innymi:
CsvHelper – praca z plikami csv - Blog Daniela Plawgo

Bazy danych i XML 96 dni, 16 godzin, 56 minut temu danielplawgo 137 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 103 dni, 17 godzin, 1 minutę temu danielplawgo 361 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 111 dni, 15 godzin, 15 minut temu danielplawgo 72 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

Bazy danych i XML 117 dni, 16 godzin, 41 minut temu danielplawgo 193 rozwiń

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 123 dni, 16 godzin, 51 minut temu danielplawgo 111 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 138 dni, 16 godzin, 48 minut temu danielplawgo 152 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 144 dni, 16 godzin, 22 minuty temu danielplawgo 276 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 152 dni, 17 godzin, 52 minuty temu danielplawgo 176 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 154 dni, 17 godzin, 57 minut temu danielplawgo 130 rozwiń

1 2 3 4 5... 7 8