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...
Strona głównaUżytkownik
Twelve | użytkownik
Architektura 5344 dni, 4 godziny, 42 minuty temu 202 źrodło 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...
Architektura 5342 dni, 10 godzin, 12 minut temu 103 źrodło 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...
Architektura 5341 dni, 19 godzin, 50 minut temu 82 źrodło 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...
Architektura 5344 dni, 10 godzin, 22 minuty temu 86 źrodło 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...
Architektura 5343 dni, 14 godzin, 30 minut temu 168 źrodło rozwiń
Ostatnimi czasy zarówno na devPytaniach jak i 9fingers pojawiało się podobne pytanie, wcześniej też je wielokrotnie słyszałem. Powiem więcej - sam je kiedyś zadawałem. Na dotnetomaniaku z kolei pojawił się link do bloga, którego autor (Matthew) również dzieli się refleksjami na ten temat: link. Zachęcam do lektury - jeśli nie czytaliście to przeczytajcie i spotkajmy się za kilka minut :).
Większość programistów podczas nauki programowania na platformie .NET omija temat silnych nazw i podpisywania assembly – nic dziwnego, kwestie te nie są najistotniejsze na etapie eksperymentowania z .NETem. W komercyjnych, profesjonalnych albo bardziej zaawansowanych projektach kwestie te zyskują na znaczeniu. W tym wpisie zajmę się tematyką związaną z Global Assembly Cache, podpisywaniem podzespołów (polska nazwa assembly) i silnymi nazwami.Po co podpisywać assembly? Zasadnicza odpowiedź na to pytanie ...
Na codeplex jest świetny projekt autorstwa Kenta Boogarta pozwalający na definiowane konwerterów w XAMLu.
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...
Architektura 5348 dni, 7 godzin, 26 minut temu 114 źrodło rozwiń
Minął luty, więc większość z nas staje jak co roku przed koniecznością wypełnienia i dostarczenia do urzędu skarbowego rocznego zeznania podatkowego. Zastanówmy się czy rozwiązania umożliwiające złożyć PIT elektronicznie, są dobre? Co z oprogramowaniem wspomagającym, czy możemy mu zaufać?
ASP jest technologią Microsoftu dlatego większa część piszących w niej automatycznie umieszcza swoje dzieci na IIS. Nie wszyscy wiedzą ze ta technologia może być zaimplementowana na każdym serwerze linuxowym. W sieci jest wiele wzmianek dotyczących jej instalacji i dwa razy więcej problemów jakie owa instalacja spowodowała. Jednym z tych sposobów jest instalacja: sudo apt-get install mono-xsp2 mono-xsp2-base asp.net2-examples W porządku serwer działa ale należy go każdorazowo uruchamiać...
Jak wiadomo w pliku tym znajdują się informacje konfiguracyjne sterujące pracą aplikacji, np. definicja połączenia z bazą danych lub konfiguracja zewnętrznych serwerów SMTP. Uzyskanie dostępu do tego pliku przez osobę niepowołaną może mieć drastyczne skutki dla aplikacji. Oczywistym faktem staje się zabezpieczenie tych informacji poprzez zaszyfrowanie ich. Służy do tego narzędzie „aspnet_regiis.exe” uruchamiane z konsol...
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
Architektura 5349 dni, 5 godzin, 34 minuty temu 105 źrodło rozwiń
Ostatnio coraz częściej spotykam się z pytaniem osób, które chcą się nauczyć programować, jakiego języka warto się nauczyć pod kątem przyszłego rynku pracy. Czy jeżeli nauczę się języka X to będą miał pracę? Co lepiej, Y czy Z, żeby dużo zarabiać? I tego typu różne pytania.
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...
Architektura 5350 dni, 13 godzin, 12 minut temu 116 źrodło rozwiń
Jakoś dawno nic mi się z niczym nie skodevjarzyło :). Aż tu nagle.... Nie mam nic przeciwko nałogowym palaczom, sam lubię sobie zajarać. ALE gdy wchodzę o 6.07 z samego rana do obleśnej mikrowindy w tym zapyziałym starym bloku, w którym aktualnie przyszło mi mieszkać, i otacza mnie zewsząd cuchnąca mgła wydyszana z płuc smołczyciela, który nie potrafił poczekać 2 minut z odpaleniem fajki, to mnie szlag trafia...
Załóżmy dla przykładu taki o to kod: public class Point { public int X; public int Y; } class Program { public Point Position { get; set; } public void SetPosition(int x, int y) { Position.X = x; Position.Y = y; } static void Main(string[] args) { var p = new Program(); p.SetPosition(10, 10); Console.ReadLine(); } }
Dostałem od znajomego fragment kodu napisany przez jego grupę programistów z pewnego wschodniego kraju: private static boolean isNull(Object objectToCheck) { boolean isNullFlag = false; if(objectToCheck!= null) { isNullFlag = true; } return isNullFlag; }
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, ...
Architektura 5352 dni, 13 godzin, 47 minut temu 172 źrodło rozwiń
Jednak pamiętać o takim małym wynalazku o nazwie Windows Presentation Foundation w skrócie powszechnie znanym jako WPF. Ale dlaczego? Podam prosty przykład :)