dotnetomaniak.pl

dotnetomaniak.pl - Najnowsze artykuły o .NET w dziale Architektura - Strona 16

Oczywiście nie ma jednoznacznej odpowiedzi jaki wzorzec używać. Wszystko zależy od konkretnych wymagań aplikacji oraz dostępnego czasu na ukończenie projektu. Wzorce obiektowe na pewno cechują się większą elastycznością od wzorców proceduralnych. Z drugiej strony jeśli projekt nie jest zbyt skomplikowany to po co poświęcać czas na implementacje ich, jeżeli i tak to w przyszłości nie zwróci się (w postaci zaoszczędzonego czasu)? Generalnie im więcej poświecimy czasu  na początku na implementacje wzorca t...

Tagi:
Dziel się z innymi:
Warstwa biznesowa – porównanie wzorców

Architektura 2708 dni, 3 godziny, 27 minut temu pzielinski 102 rozwiń

Dzisiaj przyszedł czas na pierwszy wzorzec obiektowy – aktywny rekord(AR). Zaczynamy od diagramu klas:   W przeciwieństwie do poprzednich wzorców, każda klasa definiuje fragment logiki biznesowej. Obiekty klas występują w relacji jeden do jednego względem wierszy w tabeli. Klasa Order będzie zawierała zatem logikę dla konkretnego zamówienia a nie dla zbioru zamówień. Klasy tworzymy zwykle dla każdej tabeli z bazy danych a ich instancje jak już wspomniałem dla każdego przetwarzanego wiersza. Warto po...

Tagi:
Dziel się z innymi:
Warstwa biznesowa – aktywny rekord (Active Record pattern)

Architektura 2709 dni, 7 godzin, 46 minut temu pzielinski 150 rozwiń

Przyszedł czas na opisanie najbardziej złożonego wzorca warstwy biznesowej – modelu domeny (DM). Jeśli nie znacie dobrze wzorca opisanego w poprzednich postach (aktywny rekord) nie zaczynajcie nawet próbować zrozumieć DM ponieważ jest on po prostu rozszerzeniem AR. Na początek kilka faktów. DM jest wzorcem w pełni obiektowym, wykorzystującym wszelkie dobrodziejstwa programowania obiektowego (dziedziczenie, polimorfizm itp.). DM w przeciwieństwie do AR nie jest wzorcem zorientowanym na bazę danych. Scen...

Tagi:
Dziel się z innymi:
Warstwa biznesowa – model domeny (domain model pattern)

Architektura 2709 dni, 21 godzin, 57 minut temu pzielinski 169 rozwiń

Moduł tabeli (TM – table module) jest również wzorcem proceduralnym (podobnie jak TS). Rozwiązuje jednak podstawowy problem TS – brak zdefiniowania metody podziału logiki biznesowej na klasy. W przypadku TS sam wzorzec nie określał ile klas należy stworzyć. Wszystko zależało od programisty. Mógł on stworzyć jedną klasę zarządzającą zarówno zamówieniami jak i produktami. Moduł tabeli mówi po prostu, że należy stworzyć osobną klasę dla każdej tabeli w bazie danych. Czyli w przypadku gdy mamy tabele “Orders...

Tagi:
Dziel się z innymi:
Warstwa biznesowa – moduł tabeli (table module pattern)

Architektura 2710 dni, 3 godziny, 38 minut temu pzielinski 86 rozwiń

Najprostszym wzorcem projektowym warstwy biznesowej,  należącym do grupy wzorców proceduralnych jest skrypt transakcji (w skrócie TS – transcaction script). Spójrzmy na diagram UML przedstawiający przykład jego użycia: Innymi słowy, TS jest zapisem przypadków użycia w naszym systemie. W przypadku systemu sprzedaży oczywistymi przypadki użycia są m.in.: dodanie nowego klienta do bazy, złożenie zamówienia czy pobranie listy produktów. Jak już wspomniałem jest to wzorzec proceduralny a nie obiektowy zate...

Tagi:
Dziel się z innymi:
Warstwa biznesowa – skrypt transakcji

Architektura 2714 dni, 42 minuty temu pzielinski 112 rozwiń

Wracamy do kursu o TPL. Dziś trochę informacji faktów o .For oraz .ForEach. Te dwie metody dają podstawowy sposób na zrównoleglenie naszego kodu bez większego wysiłku

Tagi: NET 4.0, TPL
Dziel się z innymi:
.NET blog: TPL - Parallel.For/ForEach

Architektura 2714 dni, 22 godziny, 49 minut temu gordon_shumway 103 rozwiń

Zacznijmy od zdefiniowania do czego potrzebna nam jest tzw. warstwa biznesowa w systemie. Sama nazwa może nie wiele mówi i czasami okazuje się  nawet myląca. Ogólnikowo  jest to rdzeń systemu. Stanowi zdecydowanie najważniejszy punkt każdej aplikacji. Warstwa biznesowa ( w skrócie BL – business layer) zawiera właściwą logikę aplikacji. Jeśli brzmi to zbyt abstrakcyjnie, przedstawmy to na przykładzie systemu sprzedaży (na którym będę często bazował). Co stanowi warstwę biznesową ( a więc logikę)  w syste...

Tagi:
Dziel się z innymi:
Wprowadzenie do warstwy biznesowej

Architektura 2716 dni, 6 godzin, 28 minut temu pzielinski 115 rozwiń

Postanowiłem, że zanim przejdę do omawiania kolejnych  warstw systemu, wyjaśnię bardziej szczegółowo po co wprowadzono trójwarstwowy model aplikacji wspomniany w poprzednim poście. Otóż dzięki separacji kodu na warstwy nasza architektura stanie się elastyczniejsza. Model umożliwi nam m.in.:Przenaszalność. Kolejne warstwy będą mogły być rozmieszczane na różnych platformach sprzętowych. W każde chwili będziemy mogli np. przenieść warstwę biznesową na zewnętrzny serwer, bez konieczności modyfikowania kodu, ...

Tagi:
Dziel się z innymi:
Dlaczego warto zainteresować się trójwarstwowym modelem aplikacji?

Architektura 2718 dni, 7 godzin, 3 minuty temu pzielinski 172 rozwiń

Dziś przyszedł czas na poruszenie tematu architektury aplikacji typu enterprise. Planuje napisać cykl postów m.in. o różnych wzorcach projektowych wykorzystywanych do budowy kolejnych warstw systemu. Zacznę od totalnych podstaw, które mają na celu wyjaśnienie z czego tak naprawdę powinna się składać solidna aplikacja. Przedstawię również kilka prostych zasad inżynierii oprogramowania mających na celu usprawnienie pisania elastycznego kodu. Zacznijmy od określenia czym jest aplikacja enterprise. Według n...

Tagi:
Dziel się z innymi:
Czym jest oprogramowanie typu enterprise? Trójwarstwowy model aplikacji

Architektura 2722 dni, 5 godzin, 3 minuty temu pzielinski 237 rozwiń

Zostałem niedawno zapytany, dlaczego w projekcie DDDSample.NET projekt “Application” nazywa się właśnie tak, a nie “Domain Services”. Zwróciło to moją uwagę na całkiem spory problem nazewnictwa związanego z DDD oraz ogólnie z architekturami. Jednym ze źródeł problemu zdaje się być niesamowicie przeładowane znaczeniowo słowo “usługa”. Ale po kolei… Wspomniany projekt “Application” zawiera fasadę Modelu Domeny udostępniającą operacje biznesowe realizowane za pomocą tegoż mo...

Dziel się z innymi:
O usługach « Notki Po Polsku « Simon says… architecture!

Architektura 2723 dni, 9 godzin, 51 minut temu gordon_shumway 66 rozwiń

Często WCF, mimo swoich możliwości w zakresie "interoperability", wcale nie musi być kompatybilny z komponentami zewnętrznymi. Nasz serwer, nasz klient, a WCF między nimi. I... tu zwykle zaczynają się problemy... (jak to pisał nie-ś.p. † Kurt Vonnegut, gówno wpada w szprychy:) ). WCF jest tak rozbudowaną i skomplikowaną technologią, że odpowiednie dobranie zawartych w niej klocków do stworzenia budowli, której potrzebujemy, jest niekiedy żmudnym, trudnym i bardzo czasochłonnym zajęciem. Niby na MSDN jes...

Tagi: Security, WCF
Dziel się z innymi:
Maciej Aniserowicz | WCF Auth Starter - zalążek aplikacji klient-serwer z uwierzytelnianiem username/password

Architektura 2723 dni, 9 godzin, 51 minut temu gordon_shumway 128 rozwiń

Dużo piszę ostatnio o CQRS (Command Query Responsibility Segregation), ale nie pokazałem ani razu jak to podejście wygląda w praktyce. Postaram się dziś naprawić to niedopatrzenie. Posłużę się w tym celu projektem DDDSample w najnowszej wersji CQRS. Kod podzielony jest na cztery główne obszary: Domain — tutaj znajduje się logika biznesowa aplikacji, której zadaniem jest przetwarzanie transak...

Tagi: CQRS, DDDSample
Dziel się z innymi:
CQRS w praktyce «  Simon says… architecture!

Architektura 2733 dni, 2 godziny, 16 minut temu gordon_shumway 273 rozwiń

Programowanie w JavaScript niesie za sobą dużą dozę swobody jeżeli chodzi o posługiwanie się funkcjami. Funkcje są wszędzie, deklarować je można na wiele sposobów, a rozsądne ich wykorzystanie jest źródłem nowych przyzwyczajeń, które chciałoby się niejednokrotnie przenieść do "rodzimego" języka programowania. W moim przypadku oczywiście C#. I dzięki wyrażeniom lambda takie szafowanie funkcjami na lewo i prawo staje się nie tylko możliwe (bo możliwe było już wcześniej od .NET 2.0 dzięki anonimowym delegat...

Tagi: C#, funkcje
Dziel się z innymi:
Maciej Aniserowicz | "Lokalne" funkcje w C#

Architektura 2735 dni, 1 godzinę, 5 minut temu ada_man 137 rozwiń

Chciałbym nawiązać tą notką do mojej pierwszej notki z tego bloga. Była to analiza dostępnych technik odwracania zależności w kontekście aplikacji o tzw. architekturze cebulowej. Od tego czasu moje poglądy na ten temat nieco się zmieniły, stąd nagląca potrzeba aktualizacji. Dlaczego w ogóle zajmuję się tym tematem? Wujek Bob, w jednej ze swoich ostatnich notek, poruszył problem uzależnienia od technicznych aspektów ...

Wzorce odwracania zależności w aplikacji z modelem domeny «  Simon says… architecture!

Architektura 2745 dni, 6 godzin, 2 minuty temu gordon_shumway 145 rozwiń

Uzupełniam ostatnio braki w wiedzy, dotyczące synchronizacji wątków. Gdzieś w podrozdziale dotyczącym tego tematu przykuł moją uwagę Mutex. Mutex to, obok monitorów i semaforów, jedna z “prymitywnych” metod synchronizacji. Ma jednak bardzo ciekawą właściwość, odróżniającą ją od kolegów po fachu…

Tagi: .Net, C#, wątki
Źródło: andrzej.net.pl
Dziel się z innymi:
Mutex i sprawdzanie czy aplikacja jest jedyną uruchomioną : andrzej.net.pl

Architektura 2778 dni, 7 godzin, 59 minut temu gordon_shumway 101 rozwiń

Pierwszy wpis w nowym roku 2010 będzie dotyczył zagadnienia uruchamiania aplikacji .Net'owych na maszynach 64 bitowy. W większości przypadków nie ma z tym żadnego problemu. W końcu IL jest przenośny. Problemy zaczynają się kiedy chcemy wykorzystać w swojej aplikacji biblioteki 32 bitowe. Niestety ale nie jest możliwe aby proces 64 bitowy używał bibliotek 32 bitowych i na odwrót. Przeważnie nie mamy również możliwości przekompilowania biblioteki, z której korzystamy. Ja spotkałem się z tym problem urucham...

Tagi: .Net, Narzędzia
Dziel się z innymi:
.NET C# GIS programowanie - Blog Michała Komorowskiego: Uruchamianie aplikacji na 64 bitach

Architektura 2778 dni, 12 godzin, 53 minuty temu gordon_shumway 75 rozwiń

Autor: Czasem tak się dzieje, że czytając swój własny kod pierwszy raz od kilku miesięcy mamy problem z jego zrozumieniem, zwłaszcza jeżeli nie komentujemy go w odpowiedni sposób. Ale nie jest to jedyna przyczyna problemu. Ostatnio analizując stare projekty doszedłem do wniosku, że istnieje w nich mnóstwo kodu zaciemniającego rzeczywistą logikę działania. Mam tu na myśli dziesiątki wyrażeń postaci if (something != null) i podobnych, które bardzo skutecznie odciągają uwagę od tego co naprawdę nas interesu...

Dziel się z innymi:
NULL vs. Exception, a może alternatywa? «  DM's blog

Architektura 2780 dni, 9 godzin, 46 minut temu macko 146 rozwiń

Powtarzanie kodu w kilku miejscach zwykle jest sygnałem zaniedbania i nie powinno mieć miejsca. Nawet (a może: w szczególności!) gdy kod ten jest prosty, głupi, niewymagający myślenia i będący efektem tzw. clipboard inheritance (ctrl+c, ctrl+v). Tyczy się to również konstruktorów klas. Tą część kodu łatwo jest przegapić, bo wszelakie ułatwiacze umożliwiają automatyczne ich wygenerowanie. A co jeśli mamy ich kilka? Poniższy przykład obrazuje stan, do którego NIE CHCEMY doprowadzić...

Tagi: C#
Dziel się z innymi:
Maciej Aniserowicz | Constructor chaining

Architektura 2793 dni, 2 godziny, 8 minut temu gordon_shumway 87 rozwiń

"Bezpieczeństwo w WCF" - pojęcie takie wydaje się oklepane i opisane na wszelkie możliwe sposoby. Tyle materiałów, tyle blogów, artykułów, książek...

Dziel się z innymi:
Maciej Aniserowicz | Własne mechanizmy uwierzytelniania w WCF

Architektura 2805 dni, 3 godziny, 29 minut temu gordon_shumway 115 rozwiń

Projektanci WCF zostawili w swoim produkcie bardzo dużo półprzymkniętych furtek czekających tylko na odkrycie i wykorzystanie ich potencjału. Jednym z takich czarodziejskich otworów do przyjemnego, różowego, miękkiego wnętrza WCF jest infrastruktura Behaviors (więcej o, między innymi, nich, na przykład w artykule "Extending WCF with Custom Behaviors"). Z ich pomocą można osiągnąć baaardzo wiele, między innymi: w niesamowicie elegancki sposób zebrać w jednym miejscu wszystkie błędy wygenerowane przez nasz...

Tagi: WCF, wyjątki
Dziel się z innymi:
Maciej Aniserowicz | Obsługa wyjątków w usługach WCF

Architektura 2807 dni, 4 godziny, 33 minuty temu gordon_shumway 92 rozwiń

1 2... 14 15 16 17 18 19 20
Szkolenia SecurITum

wrzesień

08.
BBQ4IT
Bielsko-Biała
14.
devConf
Kraków
20.
Dodaj nowe Zobacz wszystkie

Najaktywniejsi

1

macko (32 816,53)

2

http://pawlos.blo... (31 802,5)

3

pzielinski (27 178,29)

4

gordon_shumway (21 178,87)

5

paduda (20 336,33)

6

psz750 (13 018,14)

7

rroszczyk (10 386,37)

8

Damian (9 141,11)

9

danielplawgo (7 235,99)

10

arek (6 807,95)

11

burczu (6 214,22)

12

PaSkol (5 393,84)

13

lukaszgasior (4 097,38)

14

jj09 (3 643,06)

15

jedmac (3 318,39)

16

spetz (3 253,3)

17

http://jakub-flor... (3 224,66)

18

CaMeL (2 954,87)

19

lkurzyniec (2 672,97)

20

dpawlukiewicz (2 645)