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 4983 dni, 22 godziny, 6 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 5166 dni, 20 godzin, 23 minuty 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 5182 dni, 23 godziny, 7 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 5214 dni, 15 godzin, 36 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 5261 dni, 18 godzin, 37 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 5291 dni, 16 godzin, 59 minut 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 5292 dni, 4 godziny, 5 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 5574 dni, 21 godzin, 48 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 5654 dni, 17 godzin, 39 minut temu 63 źrodło rozwiń