dotnetomaniak.pl

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

Autor: No to postaram się opisać coś co się przydaje (jak się umie stosować – to przy wzorcach zawsze trzeba powtarzać). Korzystając z okazji od razu sobie to utrwalę, zgodnie z zasadą ‘ucz się ucząc’, czy jakoś tak Na początek zacznę od wzorca strategii, jest to zdecydowanie jeden z prostszych i upiększających kod wzorców, z jakiś powodów też został wybrany jako pierwszy przez autorów “Head First Design Patterns”. Dodatkowymi atutami przemawiającymi, żeby omówić akurat ten wzorzec, jest fakt, że w bard...

Źródło: www.mieczynski.tk
Dziel się z innymi:
Strategy Pattern

Architektura 2630 dni, 1 godzinę, 48 minut temu macko 176 rozwiń

Zastrzeżenie: może poniższe wypociny to wcale nie Model-View-Presenter a Model-View-Controller, może MVC: Passive View a może MVC: Supervising Controller a może MVP: Ostatnia Krew. Szczerze: I don't give a damn. (no... nie do końca; polecam artykuły Fowlera w sekcji Presentation Patterns jako bardzo ciekawą lekturę, ale zbytnie rozwodzenie się nad włożeniem danej implementacji do prawidłowej szufladki uważam za lekki przerost formy nad treścią) Niniejszy post zakłada, że Czytelnik jest zaznajomiony ...

Model-View-Presenter z Autofac w aplikacji desktopowej

Architektura 2634 dni, 2 godziny, 47 minut temu macko 107 rozwiń

Jednym z wcześniejszych postów przedstawiłem aplikację nDepend obliczającą przeróżne metryki kodu. Większość metryk obliczanych przez program jest oczywista (liczba linii kodu, procent komentarzy, liczba klas itp). Na solidny komentarz zasługuje jednak złożoność cyklomatyczna (w skrócie CC). Aby obliczyć CC, należy najpierw należy narysować graf przepływu informacji dla badanego kodu. Złożoność można obliczać zarówno dla konkretnej metody jak i całego systemu. Rozpatrzmy następujący fragment kodu: priv...

Tagi:
Dziel się z innymi:
Piotr Zieliński  » Złożoność cyklomatyczna

Architektura 2636 dni, 9 godzin, 28 minut temu pzielinski 71 rozwiń

Poprawność kodu powinna być sprawdzana na każdym etapie produkcji oprogramowania. Do dyspozycji są wszelkie typy testów (jednostkowe, integracyjne obciążenia itp.). Wszystkie wymienione testy sprawdzają jednak czy kod wykonuje swoje zadanie w oczekiwany sposób. Nie sprawdzają jakości napisanego kodu. Testy nie wykażą, że dany kod jest napisany w sposób mało elegancki. Jednym z najskuteczniejszych rozwiązań jest tzw. code review (recenzjonowanie kodu). Polega to na tym, że dany fragment kodu jest przegląd...

Tagi:
Dziel się z innymi:
Piotr Zieliński  » Walidacja kodu źródłowego, nDepend

Architektura 2636 dni, 19 godzin, 42 minuty temu pzielinski 109 rozwiń

Klasycznym sposobem mapowania DTO na obiekt biznesowy jest użycie wzorca projektowego adapter. Przykładowo aby zmapować Order do OrderDto możemy napisać następującą klasę:class OrderDtoAdapter { private Order mOrder =null; public OrderDtoAdapter(Order order) { mOrder = order; } publicvoid Initialize(Order orderDto) { orderDto.CreationDate = mOrder.CreationDate; orderDto.Client = mOrder.Client; orderDto.Id = m_Order.Id; } } Rozwiązanie całko...

Tagi:
Dziel się z innymi:
Piotr Zieliński  » Mapowania między DTO a obiektami biznesowymi

Architektura 2649 dni, 9 godzin, 50 minut temu pzielinski 82 rozwiń

Z tym typem mapowania miałem najwięcej bolączki - jest on naprawdę najgorszym z jakim przyszło mi pracować i głównie zastosowałem go tylko raz by sprawdzić czy się opłaca. Post ten więc raczej jest ku przestrodze a nie opisem sposobu mapowania obiektów.

Źródło: blog.gutek.pl
Dziel się z innymi:
.neting in the free world | Mapowanie SPListItem na obiekt - AutoMapper

Architektura 2650 dni, 3 godziny, 29 minut temu gordon_shumway 33 rozwiń

Zwykle aplikacja potrzebuje spójnego UI - czyli kontrolek wyglądających i zachowujących się wg. ustalonego schematu. W programowaniu web mamy style css, asp.net ma mechanizm Control Adapters, WPF z tego co wiem także pozwala dość mocno ustandaryzować ten aspekt. W Windows Forms komercyjne pakiety kontrolek, jak np. Telerik, udostępniają możliwość swego rodzaju stylowania wyglądu kontrolek danego typu.

Dziel się z innymi:
Maciej Aniserowicz | Pseudo-style dla Windows Forms z Autofac

Architektura 2653 dni, 19 godzin, 22 minuty temu gordon_shumway 114 rozwiń

W poprzednich postach przedstawiłem wzorce projektowe warstwy biznesowej: skrypt transakcji (transaction script), moduł tabeli (table module), aktywny rekord (active record) oraz model domeny (domain model). Napisałem, że dwa ostatnie wzorce posiadają bardzo rozdrobniony interfejs i nie nadają się bezpośrednio do użycia w rozproszonej aplikacji. Dla przypomnienia, AR oraz DM polegają na stworzeniu klasy dla każdej (lub prawie każdej w przypadku DM) tabeli w bazie danych. Przykładowo system sprzedaży posi...

Tagi:
Dziel się z innymi:
Piotr Zieliński  » Warstwa usług

Architektura 2654 dni, 1 godzinę, 22 minuty temu pzielinski 81 rozwiń

Autor: "Na początku przygody z Inversion of Control, a także dość długo później, moje wykorzystanie dostępnych kontenerów ograniczało się właściwie do ręcznego zarejestrowania wszystkich interfejsów, wszystkich interesujących mnie implementacji oraz zdefiniowaniu zależności w postaci parametrów konstruktora. Działało. Ostatnio korzystając z okazji postanowiłem podejść do problemu inaczej. Moim celem było zminimalizowanie czynności prowadzących do uzyskania żądanego efektu - "minimum friction development...

Dziel się z innymi:
Maciej Aniserowicz | Samobudująca się aplikacja z Autofac

Architektura 2655 dni, 2 godziny, 38 minut temu http://pawlos.blogspot.com/ 153 rozwiń

Ostatnio poznaję kontener DI Autofac i baaardzo mi się on podoba - nie tylko nazwa, funkcjonalność także. Ten post rozpoczyna paczkę kilku ciekawych (mam nadzieję:) ) postów pokazujących, jak przy pomocy Autofac zbudować "samoskładającą się" aplikację.

Maciej Aniserowicz | Autofac i open generic types: Application Events revisited

Architektura 2659 dni, 23 godziny, 53 minuty temu gordon_shumway 97 rozwiń

W poprzednim poście opisałem wzorzec repozytorium. Jak już wspomniałem, repozytorium może różnić się  implementacją w zależności od encji. W skrajnych przypadkach może być jedno repozytorium na jedną encję (Order – OrderRepository, Product – ProductRepository itp). Tworzenie każdego repozytorium ręcznie w zależności od przetwarzanej encji jest dość niewygodne. Przydałby się jakiś globalny mechanizm na tworzenie obiektów na podstawie typu encji. Dobrym rozwiązaniem problemu jest implementacja wzorca serv...

Tagi:
Dziel się z innymi:
Piotr Zieliński  »  Jak tworzyć instancję repozytorium?

Architektura 2662 dni, 34 minuty temu pzielinski 89 rozwiń

Jak już wspominałem kilka postów temu, ponowna lektura części Strategic Design z książki Erica Evansa pomogła mi usystematyzować swoją aktualną wiedzę na temat DDD. Dziś chciałbym się z Wami podzielić dalszą częścią mojego odkrycia. Warstwa możliwości (capabilities) świetnie nadaje się do tworzenia encji warstwy operations. O co chodzi? Jakiś czas temu Udi Dahan pisał o tym, że nie powinniśmy tworzyć korzeni agregatów. Jego post wykorzystuje przykład sklepu internetowego. Za...

Tagi: DDD
Dziel się z innymi:
Warstwy modelu « Notki Po Polsku « Simon says… architecture!

Architektura 2662 dni, 4 godziny, 19 minut temu gordon_shumway 91 rozwiń

Implementując warstwę biznesową za pomocą DomainModel lub ActiveRecord uzyskujemy bardzo rozdrobniony interfejs. Ponadto stworzone obiekty biznesowe zawierają logikę odnoszącą się tylko do konkretnej encji. W poprzednich postach pokazałem prostą klasę Client, implementującą wzorzec DomainModel. Przedstawiona klasa mogła wykonywać tylko operacje dla konkretnego, jednego klienta. W systemie jednak często będziemy musieli brać pod uwagę zbiór encji. Przykładowo może być potrzeba zwrócenia zbioru klientów, d...

Tagi:
Dziel się z innymi:
Wzorzec repozytorium (repository pattern)

Architektura 2663 dni, 8 godzin, 15 minut temu pzielinski 518 rozwiń

Wiele ludzi zastanawia się jak rozwiązać używanie MessageBoxa  w wpfie. Ja proponuje ( jeśli to możliwe) w ogóle go nie używać. Zwykły MessageBox jest dosyć ograniczony, mamy do wyboru tylko parę przycisków i obrazków. W samym wpfie dodatkowo dosyć trudno rozwiązać problem otwierania messageboxa z viewmodeli, z reguły owija się go wtedy dodatkową klasą. W wpfie proponuje zastąpić MessageBoxa przez Adornera z odpowiednią zawartością, który będzie p...

Tagi: WPF
Źródło: bartekszafko.pl
Dziel się z innymi:
Bartek Szafko »    WPF: proponuje nie używać MessageBox-a

Architektura 2667 dni, 1 godzinę, 23 minuty temu gordon_shumway 138 rozwiń

Niedawno natknąłem się na StackOverflow interesujące pytanie dotyczące Domain-Driven Design. Chciałbym się z Wami podzielić moimi przemyśleniami. Pytanie dotyczyło zaprojektowania logiki biznesowej dla domeny składającej się z trzech obiektów: Książki (Book), Rozdziału (Chapter) oraz Strony (Page): Problem polega na tym, który element, z przedstawionych trzech, powinien być korzeniem agregatu?

Tagi: DDD, uml
Dziel się z innymi:
Przypadek książkowy « Notki Po Polsku « Simon says… architecture!

Architektura 2673 dni, 9 godzin, 40 minut temu gordon_shumway 86 rozwiń

Dzisiaj krótki post o wsparciu narzędzi ORM (konkretnie EF) da wzorca aktywny rekord. Tak naprawdę to co generuje nam EF jest już aktywnym rekordem. Wystarczy tylko uzupełnić wygenerowane klasy o logikę biznesową ponieważ w przeciwnym wypadku będzie to tylko czysta warstwa dostępu do danych. Załóżmy, że mamy już wygenerowany jakiś diagram encji EF.Na tą chwile mamy wyłącznie  zaimplementowaną (a raczej wygenerowaną) warstwę dostępu do danych. W celu dodawania właściwej logiki biznesowej, należy stworzy...

Tagi:
Dziel się z innymi:
Aktywny rekord i Entity Framework

Architektura 2674 dni, 9 godzin, 58 minut temu pzielinski 80 rozwiń

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 2675 dni, 20 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 2676 dni, 4 godziny, 38 minut temu pzielinski 149 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 2676 dni, 18 godzin, 50 minut temu pzielinski 166 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 2677 dni, 30 minut temu pzielinski 86 rozwiń

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

wrzesień

14.
devConf
Kraków
20.

październik

Zobacz wszystkie

Najaktywniejsi

1

macko (32 816,53)

2

http://pawlos.blo... (31 654,47)

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,25)

8

Damian (9 096,1)

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

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

17

spetz (3 143,27)

18

CaMeL (2 954,87)

19

lkurzyniec (2 669,92)

20

mnikolajuk (2 596,93)