W poprzednim poście przybliżyłem nieco ideę zamieszczania w kodzie .NET transakcji. W tej odsłonie postaram się skupić na zagadnieniach nieco bardziej praktycznych. Z góry zapowiadam, że ze względu na ilość materiału ukaże się co najmniej jeszcze jedna odsłona. Jeśli chodzi o transakcje w ADO.NET, uwagę należy tutaj skupić na klasie SqlTransaction. Transakcję ropoczynamy wywołując na obiekcie SqlConnection metodę BeginTransa...
Bazy danych i XML 4971 dni, 9 godzin, 9 minut temu 132 źrodło rozwiń
Dzisiaj coś z pogranicza horroru (będzie strasznie), sci-fi (będzie niesamowicie) i kina familijnego (będzie happy end). Czyli dlaczego warto używać transakcji NHibernate przy każdym wywołaniu metody Save(). Zaczęło się od prac nad statystykami. Po sporządzeniu planu wykonania 7 rodzajów statystyk przystąpiłem do realizacji pierwszych punktów. Zacząłem od napisania testów oraz repozytoriów do pobierania danych z bazy w celu wyliczenia statystyk. Metodyka pisania testów metod pobierających dane z bazy był...
Bazy danych i XML 5154 dni, 7 godzin, 27 minut temu 161 źrodło rozwiń
Dzisiaj coś zupełnie z innej beczki. SAP Business One (SB1) , czyli "program księgowy". Jakiś czas temu miałem okazję popracować trochę z tym programem i zapoznać się z DI API. DI API to zestaw metod, za pomocą których możemy zautomatyzować proces tworzenia dokumentów księgowych w SB1. Czyli wygenerować dokumenty z poziomu własnego programu, przy użyciu "odpowiednich bibliotek". Bardzo przydatne w sytuacji gdy integrujemy program księgowy z innymi systemami i chcemy zautomatyzować proces powstawania doku...
Ważnym problemem podczas wykonywania testów jednostkowych jest ich wzajemna niezależność. Zmiany wprowadzone w bazie danych przez jeden z testów nie powinny wpływać na wykonywanie się pozostałych testów. Jednym z rozwiązań było by usuwanie w każdym teście zmian które wykonuje on na bazie danych, ale jest to bardzo niewygodne...
Bazy danych i XML 5170 dni, 10 godzin, 10 minut temu 38 źrodło rozwiń
STM (z ang. Software Transactional Memory) to podejście zaczerpnięte od kolegów z baz danych. Idea jest bardzo prosta: albo wszystkie instrukcje w danej transakcji wykonają się poprawnie, albo żadna z nich nie powinna się wykonać. Cecha ta określana jest jako niepodzielność. Głównych cech jest w sumie 4...
Programowanie rozproszone 5202 dni, 2 godziny, 39 minut temu 46 źrodło rozwiń
Transakcje to fajna sprawa. Polubiłem je od pierwszego użycia. Zostałem oczarowany przez ich magiczną właściwość — zwalniają z myślenia o spójności danych. Cool, przecież nie lubię myśleć. Jeszcze bardziej byłem oczarowany, gdy odkryłem transakcje rozproszone. To dopiero jazda. Mogę coś “zapdejtować” na tej bazie, na tej drugiej bazie i jeszcze wrzucić komunikat do kolejki MSMQ i wszystko wykona się transakcyjnie — w całości lub wcale. Od dłuższego czasu zaczynam jednak wątpić w trans...
Bazy danych i XML 5249 dni, 5 godzin, 40 minut temu 92 źrodło rozwiń
Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. No to wiemy już jak włączyć transakcje i co trzeba zrobić, zarówno po stronie serwisu jak i po stronie klienta, aby informacje o transakcji były przekazywane w obie strony. Dzisiaj dowiemy się więcej o obsłudze transakcji od strony kodu.Transakcje otoczenia W .NET Framework 2.0 w przestrzeni nazw System.Transaction zostały wprowadzone tzw. transakcje otoczenia (ang. Ambient Transactions). Polega to na tym, że ...
Programowanie rozproszone 5279 dni, 4 godziny, 2 minuty temu 67 źrodło rozwiń
Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. Podstawową funkcją transakcji jest zagwarantowanie zasad ACID:atomowości (ang. atomicity),spójności (ang. consistency),izolacji (ang. isolation),trwałości (ang. durability). Kiedy operacje związane z bazą odbywają się na wielu maszynach i wielu zbiorach danych, nie jest to takie proste. WCF wspomaga programistę w tym zadaniu. W celu spełnienia zasad ACID najczęstszym podejściem jest wykorzystanie dwuetapowego ...
Programowanie rozproszone 5279 dni, 15 godzin, 8 minut temu 39 źrodło rozwiń
Wysłanie wiadomości e-mail w .NET jest dziecinnie proste:MailMessage message = new MailMessage( "[email protected]", "[email protected]", "Temat", "Treść"); SmtpClient smtp = new SmtpClient(); smtp.Send(message); Powyższy przykład jest bardzo krótki, choć i tak został napisany niezwykle rozwlekle - wersja zminimalizowana zajęłaby 1 linijkę (w obu przypadkach ustawienia serwera pocztowego znajdują się w pliku konfiguracyjnym). Właściwie ten kawałek kodu powinien wystarc...
Dzisiejszy post jest sponsorowany przez hipotetyczną hurtownię, której właściciele chcą zbudować system zarządzania towarami w oparciu o metodykę DDD. Skrócony opis domeny biznesowej przedstawia się następująco. Hurtownia ma na stanie wiele produktów. Każdy produkt ma określoną ilość, która znajduje się w magazynie. Ilość ta jest określona w jednostce miary danego produktu. Produkty mogą być zamawiane (pewna ilość produktu jest tymczasowo przypisywana d...
Architektura 5562 dni, 8 godzin, 51 minut temu 87 źrodło rozwiń
Czas zająć się wreszcie kwestią istotną, ale często traktowanąprzez wielu z nas po macoszemu, mianowicie transakcjami, a w zasadzie to zarządzaniem transakcjami. Każdy zdaję sobie sprawę z tego, że jest to bardzo ważny temat, ale nie do końca poświęcamy mu odpowiednią ilość czasu. W tym artykule chciałbym przybliżyć cały mechanizm zarządzania transakcjami jaki daje nam Spring....
Architektura 5642 dni, 4 godziny, 42 minuty temu 63 źrodło rozwiń