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 5373 dni, 13 godzin, 55 minut temu 114 źrodło rozwiń
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...
W przykładzie z ostatniego posta wielu mogła nie podobać się następująca linijka: 1: string targetTimeZoneName = Config.TargetTimeZone; I mają rację, gdyż można by to zamodelować jako zależność konwertera od konfiguracji - najlepiej przez constructor injection.
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 5373 dni, 13 godzin, 55 minut temu 44 ź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.
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 5374 dni, 12 godzin, 2 minuty temu 105 źrodło rozwiń
Ostatnio musiałem przekazać klientowi częściowo gotową aplikację zanim jednak to zrobiłem poprosiłem znajomego by ją odpalił u siebie i zobaczył czy wszystko mu śmiga (to, że mi na komputerach w domu działa to nic dziwnego). Dobrze się złożyło, gdyż niestety aplikacja się nie uruchomiła :) co lepsze dodała do Windows Event Log błąd Windows Error Reporting o ID 1001. Mimo usilnych prób u siebie nie byłem wstanie problemu z reprodukować - suma sumarum okazało się, że wina leży w jednej DLLce, która u mnie ...
A właściwie już nadeszło. Okazuje się, że gigant z Redmond słucha i zmienia na lepsze. Lista ostatnich zmian robi wrażenie.
Mobile development 5374 dni, 12 godzin, 2 minuty temu 69 ź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 :)
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 5375 dni, 19 godzin, 41 minut temu 116 źrodło rozwiń
W trakcie studiów, przychodzi taki moment gdzie należy wybrać temat pracy dyplomowej. W moim przypadku padło, na technologię XNA.Obecnie system jest dość zamkniętą platformą, ale jest również w fazie testowej i plany sięgają znacznie dalej, a sama platforma edukacyjna, prawdopodobnie zostanie zmieniona. W trakcie kursu zaprezentowałem jak stworzyć aplikację w XNA na przykładzie wymyślonej na potrzeby wykładów gry Chrupcio. ...
Zakładamy, że stworzyliśmy już swój serwis. Mamy zdefiniowany kontrakt serwisu, oraz określone metody, które chcemy upublicznić. Teraz chcemy wystawić go (ang. expose) światu. Do tego służy właśnie punkt wejściowy (ang. endpoint), przez który klient może się z nim komunikować. Endpoint pozwala nam określić gdzie nasz serwis będzie się znajdował (ang. address), w jaki sposób będziemy się z nim komunikować (ang. binding), oraz co serwis robi (ang. contract). Te trzy elementy to tzw. “ABCs of Endpoints”. AB...
Programowanie rozproszone 5376 dni, 12 godzin, 4 minuty temu 32 źrodło rozwiń
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ł. ...
Na stronach MIX możecie znaleźć ciekawy projekt dedykowany specjalistom od technologii Adobe Flash, którzy są zainteresowani poznaniem Silverlight. Projekt ma nazwę Rosetta. Na tej stronie zostały opublikowane tutoriale pozwalające w łatwy sposób zapoznać się z narzędziami Microsoft. Dodatkowo dla programstów, jest tam też rozpiska, która pomoże za pomocą słów kluczowych odnaleźć pewne odpowiedniki Flasha w Silverlight, przykład poniżej:MovieClip to UserControlFlas...
Silverlight 5377 dni, 9 godzin, 23 minuty temu 53 źrodło 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, ...
Architektura 5377 dni, 20 godzin, 16 minut temu 172 źrodło rozwiń
Artykuł pochodzi w serii przygotowań do egzaminu 70-562 ASP.NET. Możemy użyć plików konfiguracyjnych do określenie ustawień naszej strony. Ustawienia te są przechowywane w odrębnym pliku, oddzielonym od kodu aplikacji i zapisane w XML. Zazwyczaj storna internetowa zawiera jeden plik web.config który jest w głównym katalogu aplikacji. Jednak nic nie stoi na przeszkodzie aby umieścić ich wiele i będą zarządzały ustawieniami aplikacji na różnych poziomach.Zrozumieć hierarchie pliku konfiguracyjnego Plik kon...
Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. Z poprzedniej lekcji wiemy jak utworzyć usługę i jak zdefiniować jej część “behawioralną”, czyli poszczególne metody serwisu. Dzisiaj dowiemy się jak zdefiniować własne typy danych i przekazywać je przez serwis.Kontrakt danych Kontrakt danych definiuje nam format, strukturę i sposób serializacji przesyłanych danych. Rozbudujmy nasz kalkulator o możliwość wykonywania dowolnych działań dwuargumentowych. Najpierw ...
Programowanie rozproszone 5380 dni, 51 minut temu 50 źrodło rozwiń
ASP.NET udostępnia programiście dwa typu kontrolek serwerowych, które może wykorzystać w swoich aplikacjach webowych: HTML Controls oraz Web Controls. Ale zanim opiszę różnice między nimi, warto zapoznać się z cyklem życia strony ASP.NET.View State ASP.NET poszczególne żądania do strony traktuje jako osobne i nie przechowuje żadnych informacji pomiędzy kolejnymi odsłonami (są różne mechanizmy zapisywania stanu, które zostaną opisane w późniejszych artykułach). ASP.NET wykorzystuje mechanizm View State, k...
Próba zapisania obiektu naruszającego więzy integralności przy użyciu biblioteki NHibernate spowoduje wygenerowanie wyjątku GenericADOException. Dopiero sięgając do wartości właściwości InnerException możemy przekonać się, co jest przyczyną niepowodzenia. Istnieje jednak sposób na zastąpienie standardowego wyjątku własnym.
Bazy danych i XML 5380 dni, 19 godzin, 56 minut temu 58 źrodło rozwiń
Artykuł pochodzi w serii przygotowań do egzaminu 70-562 ASP.NET. Witajcie w moim pierwszym artykule, w nowej serii wpisów. Dziś troszkę podstaw. Powiemy o tworzeniu nowego projektu w Visual Studio, dodawaniu nowych stron itp.Tworzenie strony internetowej Visual Studio 2008 pozwala nam stworzyć projekt typu Web Site, z rozróżnieniem tego w jaki sposób chcemy mieć dostęp do zawartości strony. Możemy stworzyć projekt Web podłączony do systemu plików na naszym komputerze, na serwerze IIS lub FTP. Wybór odpow...