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...
Strona głównaUżytkownik
Damian | użytkownik
Architektura 5354 dni, 22 godziny, 12 minut temu 103 źrodło rozwiń
Ostatnio dość głośno się mówi o nowej platformie dla XNA – Windows Phone 7. Microsoft udostępnił już stosowne narzędzia pozwalające emulować zarówno samą platformę sprzętową na PC jak również tworzyć na nią aplikację. Odnośnie samego Windows Phone’a, kilka featerów można zobaczyć na prezentacji znajdującej się pod tym adresem. Jednak to co z mojego punktu widzenia jest najbardziej interesujące to właśnie możliwości tej platformy pod kątem XNA. ...
Mobile development 5354 dni, 22 godziny, 12 minut temu 95 źrodło rozwiń
Rzucam wyzwanie standardom kodowania. Postanowiłem po raz kolejny, na bazie nagromadzonych w ciągi ostatnich miesięcy doświadczeń, zrewidować swój sposób pisania kodu. Oto, co wymyśliłem.Var Jakiś czas temu przy okazji cyklu dotyczącego czytelności kodu pozwoliłem sobie dosyć mocno skrytykować słowo kluczowe var. Zgadnijcie co się stało? Zmieniłem zdanie. varjuż mnie nie straszy. Oswoiłem si...
Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. Wiemy już jak uruchomić nasz serwis na IIS. Jeśli nie chcemy do tego wykorzystywać IIS’a WCF daje nam możliwość hostowania serwisu w aplikacji konsolowej, usłudze systemowej, aplikacji Windows Forms, czy nawet WPF (ang. Windows Presentation Foundation). Dla prostych usług WCF zapewnia swoją aplikację hostującą (o niej będzie na końcu lekcji).Aplikacja konsolowa Najczęściej serwisy hostuje się w aplikacji konsol...
Programowanie rozproszone 5357 dni, 20 godzin, 15 minut temu 46 źrodło 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...
Architektura 5356 dni, 16 godzin, 42 minuty temu 202 źrodło rozwiń
Artykuł pochodzi w serii przygotowań do egzaminu 70-562 ASP.NET. W dzisiejszym artykule powiemy sobie o nawigacji na stronie, używaniu SiteMap, przekierowywaniu użytkowników itp.Wybór metody nawigacji po stronie Istnieje kilka sposobów nawigacji między stronami ASP .NETNawigacja po stronie klienta Chyba najprostszym sposobem nawigacji między stronami jest użycie kontrolki HyperLink i ustawienie właściwości NavigateUrl na adres, do którego chcemy dotrzeć. Kontrolka HyperLink w naszym kodzie przyjmuj...
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 5354 dni, 7 godzin, 50 minut temu 82 źrodło rozwiń
Autor przedstawia 11 zasad postępowania w pracy.
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 5356 dni, 2 godziny, 30 minut temu 168 źrodło rozwiń
Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. Zakładamy, że mamy już utworzony nasz serwis. Teraz nadeszła pora na wdrożenie (ang. deployment). Jedną z najprostszych metod uruchomienia serwisu jest wykorzystanie serwera IIS (Internet Information Services) lub WAS (Windows Process Activation Service). Bardzo prosty kod, który pozwala hostować naszą usługę z poziomu zarządzanej aplikacji został przedstawiony w artykule 70-503: Service Endpoint Basics, akapit...
Programowanie rozproszone 5357 dni, 20 godzin, 15 minut temu 61 ź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 5356 dni, 22 godziny, 22 minuty temu 86 ź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 :).
Jednym z częstszych problemów twórcy aplikacji webowych jest konieczność upewnienia się, czy dane wprowadzone przez użytkownika są poprawne (np. czy wszystkie wymagane pola w formularzu są wypełnione lub czy dane mają odpowiedni format). Sprawdzenie danych musi odbyć się po stronie serwera. Z drugiej strony fajnie by było, jak by po stronie klienta nastąpiło sprawdzenie wprowadzonych danych, aby ten nie musiał wysyłać formularz do serwera, gdzie nastąpiło by sprawdzenie poprawności danych, a następnie zw...
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...
Artykuł pochodzi w serii przygotowań do egzaminu 70-562 ASP.NET. Dzisiaj powiemy sobie o podstawowych kontrolkach (tytuł mógłby mylić :D ) których możemy użyć na naszej stronie. Dokładnie będą to: Literal, Table, TableRow, TableCell, Image, ImageButton, ImageMap, Calendar, FileUpload, Panel, MultiView, View, Wizard.Kontrolka Literal Kontrolka ta jest bardzo podobna do kontroli Label, ponieważ odpowiada za wyświetlanie statycznego tekstu na stronie. Nie dziedziczy ona po WebControl. Kontrolka ta nie wprow...
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 5360 dni, 19 godzin, 26 minut temu 114 źrodło rozwiń
Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. Wiemy już jak wystawić światu naszą usługę. Najczęściej skorzystamy z jakiegoś standardu i to nam wystarczy. Czasem jednak potrzeba coś dopasować do naszych potrzeb.Dostosowywanie standardowych bindowań Każdy ze standardowych sposobów komunikacji (ang. bindings) ma kilka właściwości, które możemy dowolnie zmieniać. Np. wsHttpBinding ma następujące właściwości:AllowCookies – czy klient akceptuje i tworzy ciastec...
Programowanie rozproszone 5360 dni, 19 godzin, 26 minut temu 44 źrodło rozwiń
Niedawno popisałem troszkę o czasie UTC i dlaczego tylko taka reprezentacja czasu powinna znajdować drogę do bazy danych. A teraz... w jaki sposób przygotować datę do podróży w drugą stronę, czyli do użytkownika. Z Automapperem jest to zadanie doprawdy banalne, wystarczy odpowiedni Type Converter...
Artykuł pochodzi w serii przygotowań do egzaminu 70-562 ASP.NET. W ASP .NET mamy do dyspozycji wiele gotowych kontrolek serwerowych. W dzisiejszym artykule opiszemy 5:Label TextBox Button CheckBox RadioButton Etykieta Etykieta (ang. Label), wyświetla tekst w określonym miejscu na stronie. Etykiety używamy, kiedy w pewnym momencie chcemy zmienić jakiś tekst na stronie (który jest wyświetlany właśnie w postaci etykiety). Nie powinno używać się etykiety, kiedy wiemy że nasz tekst nie będzie się zmieniał. ...
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 5363 dni, 1 godzinę, 12 minut temu 116 źrodło rozwiń