Strona głównaUżytkownik

pzielinski | użytkownik

pzielinski
pzielinski
27 178,29
4091 dni, 14 godzin, 35 minut temu
21 lutego, 2010
dotnetomaniak.pl

Interfejsy IEnumerable oraz IQueryable mogą wydawać się bardzo podobne. W końcu IQueryable implementuje IEnumerable więc funkcjonalność musi być podobna. W praktyce poniższe dwa zapytania bardzo się różnią:IEnumerable

Tagi:
Dziel się z innymi:
Piotr Zieliński  » Blog Archive   » Różnica miedzy IEnumarable a IQueryable (LINQ to SQL)

Bazy danych i XML 5310 dni, 17 godzin, 12 minut temu pzielinski 101 źrodło rozwiń

W poprzednim poście przedstawiłem w skrócie czym jest WCF Data Service i jak stworzyć prostą usługę sieciową opartą o WCF Data Service. Dzisiaj przyjrzymy się jak stworzyć aplikacje kliencką za pomocą bibliotek dołączonych do .NET. .NET ułatwia znacząco dostęp do usług WCF Data Service. Programista nie musi samemu tworzyć zapytań URL. Korzystanie z WCF Data Service bardzo przypomina pracę z lokalnym EntityFramework. Stwórzmy więc aplikację kliencką:Tworzymy nowy projekt aplikacji klienckiej np. WPF lub...

Tagi:
Dziel się z innymi:
Piotr Zieliński  » Blog Archive   » WCF Data Services – aplikacja kliencka

Programowanie rozproszone 5311 dni, 23 godziny, 26 minut temu pzielinski 81 źrodło rozwiń

Entity Framework jest rozbudowanym narzędziem ORM (ang.Object Relational Mapping), dołączonym do Visual Studio. Dzięki zaawansowanemu IDE tworzenie modelu danych jest bardzo łatwe i w pełni zautomatyzowane.

Tagi:
Dziel się z innymi:
Entity Framework – aplikacja dwuwarstwowa

Bazy danych i XML 5311 dni, 4 godziny, 16 minut temu pzielinski 159 źrodło rozwiń

WCF Data Service to usługa sieciowa umożliwiająca łatwy dostęp do danych. Wyobraźmy sobie następujący przypadek: Mamy pewną bazę danych zawierającą np. informacje o produktach. Można napisać ręcznie usługę WCF, która wyeksponuje wszelkie potrzebne dane za pomocą metod. Usługa w takim przypadku zawierałaby metody typu Create, Update, Delete, GetById, GetByQuery itp. Implementacja usługi dla każdej tabeli w bazie jest dość czasochłonna i niezbyt interesująca. Za pomocą WCF Data Service, usługa zostanie ...

Tagi:
Dziel się z innymi:
Piotr Zieliński  » Blog Archive   » WCF Data Services

Programowanie rozproszone 5314 dni, 23 godziny, 58 minut temu pzielinski 54 źrodło 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 5319 dni, 6 godzin, 7 minut temu pzielinski 78 źrodło rozwiń

Domyślnie dane o użytkownikach przetrzymywane się w osobnej bazie danych aspnetdb (SQL Server Express). Czasami jednak warto aby wpisy o użytkownikach były zapisywane w naszej bazie danych. Wyobraźmy sobie portal społecznościowy, w którym użytkownicy mogą umieszczać zdjęcia. W takim przypadku w bazie danych z pewnością będzie tabela łącząca wysłane fotografie z użytkownikami. Jeśli użytkownicy są w jednej bazie danych mamy łatwą kontrolę nad relacjami – wystarczy użyć klucza obcego wskazującego na klucz ...

Tagi:
Dziel się z innymi:
Piotr Zieliński  » Własna baza danych oraz ASP .NET Membership

Web 5317 dni, 2 godziny, 22 minuty temu pzielinski 113 źrodło 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 5319 dni, 16 godzin, 22 minuty temu pzielinski 109 źrodło rozwiń

Czasami istnieje potrzeba zapisania stanu aktualnie wykonywanego workflow’a. Domyślnie wszelkie dane zapisywane są w pamięci ulotnej. W przypadku awarii komputera odtworzenie ostatnio wykonywanego stanu jest niemożliwe. Nie jest to problem w przypadku gdy wykonanie workflow’a zajmuje tylko kilka sekund. W sytuacji w której zakończenie workflow’a może potrwać kilka godzin lub tygodni, niezbędne jest zapisywanie informacji w pamięci trwałej np. w bazie danych SQL Server. WWF dostarcza specjalną usługę, Sq...

Tagi:
Dziel się z innymi:
Piotr Zieliński  » Windows Workflow Foundation – persystencja stanu

Inne 5322 dni, 7 godzin, 51 minut temu pzielinski 78 źrodło rozwiń

ASP .NET Membership jest bardzo dobrym rozwiązaniem dla uwierzytelnienia oraz autoryzacji użytkowników w aplikacji webowej. Umożliwia m.in. zarządzanie kontami użytkowników czy tworzenie ról. Często jednak system składa się również z aplikacji typu desktop. W rozbudowanych systemach proponuję zrezygnować z czystego ASP .NET Membership na rzecz Windows Identity Framework. Jeśli jednak tworzymy małą aplikacje z pewnością przyda nam się wsparcie ASP .NET Membership w WinForms. Rozwiązaniem problemu są tzw...

Tagi:
Dziel się z innymi:
Piotr Zieliński  » ASP .NET Membership w WinForms.

Web 5324 dni, 16 godzin, 12 minut temu pzielinski 93 źrodło rozwiń

W jednym z ostatnich postów pokazałem jak stworzyć aplikację WWF na przykładzie prostego Sequential Workflow. Dzisiaj zajmiemy się wykorzystaniem stworzonej biblioteki w aplikacji klienckiej. Warto najpierw ściągnąć kompletny kod źródłowy ponieważ nastąpiła jedna drobna zmiana w implementacji workflow. Pierwszym etapem jest oczywiście stworzenie aplikacji np. WPF lub Connsole. Następnie należy dodać referencje do skompilowanej biblioteki zawierającej WWF. Ponadto jest jeszcze potrzebna biblioteka System...

Tagi:
Dziel się z innymi:
Piotr Zieliński  » Aplikacja kliencka – Windows Workflow Foundation

Inne 5328 dni, 15 godzin, 6 minut temu pzielinski 100 źrodło 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 5332 dni, 6 godzin, 29 minut temu pzielinski 82 źrodło rozwiń

Dzisiaj spróbujemy stworzyć pierwszy workflow. Co prawda, nic praktycznego nie będzie wykonywał, ale pokaże kilka mechanizmów, które można wykorzystać w workflow. Zasada działania przykładowego workflow wzorowana jest na przykładzie z MSDN:Jako parametr wejściowy podajemy liczbę całkowitą,Workflow sprawdza wartość liczby. Jeśli jest mniejsza niż 2000, kończy działanie wysyłając e-mail. W przeciwnym razie, wymagana jest akceptacja wprowadzonej wartości. Użytkownik musi po prostu wywołać pewnie zdarzenie –...

Tagi:
Dziel się z innymi:
Piotr Zieliński  »  Prosty Sequential Workflow

Inne 5337 dni, 23 godziny, 18 minut temu pzielinski 59 źrodło 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 5336 dni, 22 godziny, 1 minutę temu pzielinski 81 źrodło rozwiń

Omawiając warstwę biznesową wydaje mi się, że warto wspomnieć o technologii WWF. Kilka postów wcześniej pisałem o tzw. silniku reguł biznesowych. Chodziło o zdefiniowanie reguł oraz przepływu informacji w systemie. Jako przykład można podać wysyłanie zamówienia. Proces składa na pewno z kilku etapów takich jak aktualizacja bazy danych, wysłanie e-mail’a  z potwierdzeniem do klienta oraz np. wywołanie metody usługi sieciowej (może to być WCF magazynu). Po kilku miesiącach może okazać się, że scenariusz ni...

Tagi:
Dziel się z innymi:
Piotr Zieliński » Windows Workflow Foundation, część 1 (wprowadzenie)

Inne 5341 dni, 17 godzin, 53 minuty temu pzielinski 114 źrodło rozwiń

W celu wyjaśnienia zasady działania asynchronicznych stron, najpierw przyjrzyjmy się jak wygląda standardowe zapytanie do serwera. Klient wysyła żądanie HTTP do serwera np. typu GET w celu uzyskania danej strony www. Następnie serwer używa tzw. puli wątków (thread pool). Po prostu przydziela wątek z puli każdemu nadchodzącemu żądaniu. Tworzenie (a raczej odtwarzanie) wątków z puli jest szybkie (o tym już pisałem kiedyś), jednak liczba wątków jest ograniczona. W przypadku gdy serwer będzie musiał obsłużyć...

Tagi:
Dziel się z innymi:
Piotr Zieliński  » Asynchroniczne strony ASP .NET

Web 5343 dni, 17 godzin, 8 minut temu pzielinski 119 źrodło 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 5344 dni, 21 godzin, 13 minut temu pzielinski 89 źrodło 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 5346 dni, 4 godziny, 54 minuty temu pzielinski 633 źrodło rozwiń

Silverlight jest technologią odpowiedzialną za tworzenie warstwy prezentacji po stronie klienta. Wszelki kod wykonywany jest w przeglądarce zatem nie ma bezpośredniego dostępu do serwera www. Czasami jednak aplikacja musi wysyłać do serwera jakieś pliki np. graficzne (w przypadku modułu galerii zdjęć). Niestety ze względu na opisaną lokalność działania, Silverlight nie wspiera tego. Jedną z metod obejścia jest implementacja własnego HTTP handlera. Zacznijmy więc od stworzenia aplikacji Silverlight hostow...

Tagi:
Dziel się z innymi:
Wysyłanie plików na serwer w aplikacji Silverlight

Silverlight 5350 dni, 19 godzin, 35 minut temu pzielinski 93 źrodło rozwiń

Nowoczesne aplikacje web’owe często wymagają obsługi wielu języków. Silverlight podobnie jak ASP .NET wspiera mechanizm globalizacji za pomocą zasobów (resources files). Pliki zasobów są tak naprawdę zwykłymi plikami XML. Stanowi to ogromną zaletę – za pomocą zewnętrznego narzędzia odpowiednie osoby  mogą przygotować tłumaczenie interfejsu. Najpierw należy stworzyć główny plik zasobów. Zawiera on tłumaczenia dla domyślnego języka. W przypadku gdy użytkownik pochodzi z kraju, którego język nie jest obsłu...

Tagi:
Dziel się z innymi:
Silverlight – lokalizacja aplikacji

Silverlight 5351 dni, 20 godzin, 13 minut temu pzielinski 60 ź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...

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

Architektura 5357 dni, 20 godzin, 59 minut temu pzielinski 103 źrodło rozwiń

1 2... 16 17 18 19 20