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...
Bazy danych i XML 2121 dni, 9 godzin, 58 minut temu 199 źrodło rozwiń
Większość projektów, w których brałem udział posiadało funkcjonalność wyszukiwania tekstowego. We wszystkich z nich było to zrealizowane klauzulą LIKE w SQL. Często ten element aplikacji stawał się wąskim gardłem i redukował responsywność aplikacji. Kiedy serwery dalej płoną, opiszę tutaj po pokrótce kilka alternatyw dla tego rozwiązania.
Bazy danych i XML 2143 dni, 10 godzin, 29 minut temu 198 źrodło 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...
Bazy danych i XML 2156 dni, 9 godzin, 48 minut temu 276 źrodło 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...
Bazy danych i XML 2176 dni, 10 godzin, 24 minuty temu 144 źrodło rozwiń
Cześć. Dziś postaram się opisać, jak zmigrowałem dosyć sporą ilość danych (110 mln wierszy) z SQL Servera do Elasticsearcha.
Bazy danych i XML 2193 dni, 8 godzin, 15 minut temu 213 ź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...
Bazy danych i XML 2197 dni, 10 godzin, 9 minut temu 196 źrodło rozwiń
Using .NET Database Project and DbUp library for database management.
Bazy danych i XML 2199 dni, 10 godzin, 13 minut temu 69 źrodło rozwiń
Description of most common database change management approaches.
Bazy danych i XML 2206 dni, 10 godzin, 16 minut temu 83 ź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 ...
Bazy danych i XML 2212 dni, 10 godzin, 36 minut temu 189 źrodło rozwiń
Cześć. dzisiaj chciałbym skupić się na trochę innym temacie niż ostatnio. Pomówimy o bazach danych. A dokładniej o rozwiązaniu które dostarcza Azure, zwanym read scale-out replicas. Zanim jednak przejdę do meritum, chciałbym wam przestawić powód dla którego się tym zainteresowałem. Wszystko zaczęło się od naszego firmowego projektu. Jako że projekt już jakiś czas istnieje, pojawiła się naturalna potr...
Bazy danych i XML 2213 dni, 9 godzin, 7 minut temu 36 źrodło rozwiń
Konkretne przypadki które warto znać w temacie konwersji konceptualnego modelu danych (ERD) do modelu fizycznego. Wersja polska i angielska.
Bazy danych i XML 2226 dni, 10 godzin, 35 minut temu 47 ź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...
Bazy danych i XML 2239 dni, 9 godzin, 54 minuty temu 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ą ...
Bazy danych i XML 2246 dni, 11 godzin, 34 minuty temu 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...
Bazy danych i XML 2253 dni, 11 godzin, 23 minuty temu 172 źrodło rozwiń
Założę, że programujesz obiektowo. W takim razie niemalże na pewno zdarzyło Ci się stanąć przed wyborem bibliotek w momencie tworzenia rozwiązania lub przeglądać stos technologiczny istniejącego projektu. Myślę, że się nie pomylę, jeżeli napiszę, że w większości, jeśli nie we wszystkich przypadkach przed Twoimi oczami mignął jakiś ORM. Czasem okazuje się też, że SQL jest wymagany tylko i wyłącznie dlatego, że ten konkretny maper stoi nad tą, a nie inną technologią bazodanową.
Bazy danych i XML 2255 dni, 11 godzin, 30 minut temu 186 źrodło rozwiń
Kim jest data scientist? Co to za twór? Jakie języki programowania warto znać, aby pracować w świeżej gałęzi IT - czyli data science?
Bazy danych i XML 2256 dni, 11 godzin, 8 minut temu 80 ź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...
Bazy danych i XML 2267 dni, 11 godzin, 34 minuty temu 247 źrodło rozwiń
Z MongoDB pierwszy raz zetknąłem się kilka miesięcy temu, kiedy to zacząłem projekt właśnie osadzony w klimacie tej bazy danych. Jako .NET-owiec pracowałem wcześniej tylko z relacyjnymi bazami danych SQL, był to głównie MSSQL wraz ze środowiskiem SMS, czyli Server Management Studio. MongoDB zrobiło na mnie pozytywne wrażenie, a o tym
Bazy danych i XML 2283 dni, 11 godzin, 30 minut temu 113 źrodło rozwiń
Od czasu do czasu musimy wstawić do bazy wiele rekordów na raz, najczęściej w przypadku importu danych. Jest wiele sposobów na wykonanie tej czynności, ale najprościej stworzyć DbContext, dodać elementy do kolekcji, a następnie zapisać za pomocą SaveChanges. Gdy korzystamy z Entity Framework 6, istnieje kilka zasad, których powinniśmy przestrzegać, aby wydajnośc rozwiązania była odpowiednia ...
Bazy danych i XML 2291 dni, 11 godzin, 35 minut temu 154 źrodło rozwiń
Wyobraźmy sobie następujący scenariusz. Mamy jakąś bazę danych i chcemy do niej wstawić gotowe testowe rekordy lub zaktualizować już istniejące. Jak możemy to zrobić?
Bazy danych i XML 2312 dni, 11 godzin, 34 minuty temu 150 źrodło rozwiń