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 1539 dni, 22 godziny, 13 minut temu 274 ź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 1559 dni, 22 godziny, 49 minut temu 143 ź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 1576 dni, 20 godzin, 40 minut temu 209 ź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 1580 dni, 22 godziny, 34 minuty temu 194 źrodło rozwiń
Using .NET Database Project and DbUp library for database management.
Bazy danych i XML 1582 dni, 22 godziny, 38 minut temu 67 źrodło rozwiń
Description of most common database change management approaches.
Bazy danych i XML 1589 dni, 22 godziny, 41 minut temu 81 ź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 1595 dni, 23 godziny temu 185 ź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 1596 dni, 21 godzin, 32 minuty temu 33 ź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 1609 dni, 23 godziny 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 1622 dni, 22 godziny, 19 minut 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 1629 dni, 23 godziny, 59 minut temu 106 ź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 1636 dni, 23 godziny, 48 minut temu 171 ź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 1638 dni, 23 godziny, 55 minut temu 182 ź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 1639 dni, 23 godziny, 33 minuty temu 79 ź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 1650 dni, 23 godziny, 59 minut temu 245 ź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 1666 dni, 23 godziny, 55 minut temu 110 ź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 1675 dni temu 151 ź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 1695 dni, 23 godziny, 59 minut temu 147 źrodło rozwiń
Dzisiejszy wpis jest zainspirowanym jednym z ostatnich code review jaki robiłem. Zauważyłem, że gdy pracujemy z Entity Framework często niektóre rzeczy zaczynamy robić nieefektywnie w stosunku do tego, jakbyśmy zrobili to w chociażby w przypadku ADO.NET. Taką właśnie czynnością jest aktualizowanie oraz usuwanie obiektów z bazy.Aktualizacja obiektu z jego pobraniem Standardowo, gdy zaczynamy uczyć się pracować z Entity Framework, do aktualizacji obiektu możemy ...
Bazy danych i XML 1727 dni, 23 godziny, 48 minut temu 193 źrodło rozwiń
Many web applications use databases for persistent data storage, and using Object Relational Mapping (ORM) frameworks is a common way to develop such database-backed web applications. Unfortunately, developing efficient ORM applications is challenging, as the ORM framework hides the underlying database query generation and execution. This problem is becoming more severe as these applications need to process an increasingly large amount of persistent data. Recent research has targeted specific aspects of ...
Bazy danych i XML 1727 dni, 23 godziny, 48 minut temu 39 źrodło rozwiń