W .NET istnieje twór zwany AppDomain. W systemie operacyjnym mamy kilka podobnych pojęć takich jak proces czy wątek. AppDomain w dużej mierze przypomina proces – służy do izolowania aplikacji bezpośrednio niezwiązanych ze sobą. Dwa różne procesy mają przede wszystkim różną przestrzeń pamięciową. Adres zmiennej w procesie A, odnosi się już do innego obszaru w procesie B – alokacja zaczyna się w różnych miejscach. Z tego względu uruchomienie nowego procesu jest czasochłonną operacją i wiąże się z alokacją...
Architektura 3771 dni, 6 godzin, 52 minuty temu 254 źrodło rozwiń
O liczbach losowych Napiszmy prosty program, który rzuca 10 razy kostką. class Program { static void Main(string[] args) { for (int i = 0; i < 10;="" i++)="" console.writeline(gen.next(6)="" +="" 1);="" }="" }="" teraz="" program="" już="" działa="" zgodnie="" z="" oczekiwaniami.="" widzimy,="" że="" zmiana="" polegała="" na="" tym,="" że="" teraz="" mamy="" jeden="" generator,="" generujący="" kolejne="" liczby.="" w="" czym="" kilka="" generatorów="" jest="" ...
Architektura 3790 dni, 19 godzin, 30 minut temu 230 źrodło rozwiń
autor: Niedawno uczestniczyłem w Study Group poświęconej architekturze aplikacji organizowanym przez Łódzką grupę profesjonalistów IT & .NET, gdzie przedstawiałem prezentację p.t. "Rozszerzalne aplikacje w .NET (czyli MAF i MEF)". Tych, którzy chcieliby się zapoznać z prezentacją lub kodem źródłowym, który powstał podczas prezentacji, zapraszam do obejrzenia mojej prezentacji umieszczonej na portalu SlideShare.
Architektura 3800 dni, 18 minut temu 131 źrodło rozwiń
mijagiC# W życiu każdego programisty przychodzi moment (dość szybko ), kiedy zwykłe zmienne przestają być wystarczające. Potrzebujemy „miejsca” na przechowywanie porcji danych. W rozwiązaniu tego problemu pomogą nam tablice. Najprościej mówiąc tablica to zarezerwowany obszar w pamięci (zestaw zmiennych), tego samego typu, który jest podzielony na tzw elementy.Tablice jednowymiarowe Tablice jednowymiarowe, jak sama nazwa wskazuje mają tylko jeden wymiar, a ich reprezentacje fizyczną możemy sobie wyob...
Architektura 3810 dni, 16 godzin temu 199 źrodło rozwiń
autor: Nie dawno (patrz wpis: „Rozszerzanie aplikacji .NET (czyli plugin'y, add-in'y, MAF, MEF, itp. ...)”) wspomniałem na tym blogu o Managed Aadd-in Framework (zwanego również System.AddIn lub MAF), przyjrzyjmy się bliżej temu rozwiązaniu. Naszą przygodę z MAF zacznijmy może od powrotu to pokazanego wcześniej rysunku, który zaczerpnięty został z MSDN: Muszę przyznać, że musiałem się chwilę zastanowić, gdy go pierwszy raz zobaczyłem. Przedstawia on tzw. pipeline, czyli ścieżkę prowadzącą przez poszcze...
Architektura 3810 dni, 16 godzin temu 102 źrodło rozwiń
Z biegiem lat, mam nieodparte wrażenie, że doba staje się coraz bardziej krótsza. Brakuje mi czasu na wiele różnych rzeczy. Obojętnie czy jest to pisanie kodu, czytanie książek, czy też nauka. Problem ten dotyczy również bloga, dlatego też spróbuję rozwiązać go w pewien sposób, wprowadzając nowy rodzaj tekstów oznaczonych tagiem Szybkie porady. Głównym zadaniem wpisów oznaczonych takim znacznikiem, będzie rozwiązanie pewnych, jasno określonych problemów. Teksty tego typu mogą pojawić się właściwie w każd...
Architektura 3816 dni, 3 godziny, 16 minut temu 165 źrodło rozwiń
W poprzedniej notce pokazałem jak przy pomocy bardzo prostego interfejsu IRepository oraz QueryObject można zrealizować warstwę dostępu do danych. W zalezności od wielkości projektu może się okazać, że ciut brakuje funkcjonalności. Co zatem robić? Z założenia nie chcemy już więcej zmieniać naszego interfejsu. Jak więc przykładowo wykonać operację pobrania rekordu z bazy i ustanowienia na nim blokady? W bazowej implementacji nie mamy takiej metody... i nie będziemy jej dodawać do interfejsu. Na szczęście...
Architektura 3816 dni, 15 godzin, 26 minut temu 110 źrodło rozwiń
Jestem właśnie w trakcie lektury "Czystego kodu" Roberta C. Martina (polecam wszystkim programistom). Chciałbym podzielić się pewnym spostrzeżeniem autora tej książki. Otóż jako zupełne przeciwieństwa stawia on kod obiektowy oraz kod proceduralny operujący na strukturach danych. Zasadnicza różnica polega na tym, że klasy ukrywają swoją implementację komunikując się ze światem zewnętrznym wyłącznie przez metody, podczas gdy struktury danych mają zupełnie jawną postać, przez co nie potrzebują żadnych metod...
Architektura 3819 dni, 1 godzinę, 31 minut temu 224 źrodło rozwiń
W poprzednim wpisie chciałem pokazać jak w dłuższej perspektywie opasłe obiekty repozytoriów są mało użyteczne i nie spełniają swoich teoretycznych założeń. Mimo to jednak postanowiłem zostawić w swojej infrastrukturze interfejs IRepository
Architektura 3825 dni, 19 godzin, 9 minut temu 218 źrodło rozwiń
O to jest pytanie. Używać czy nie używać Repository Pattern? Ostatnio troszkę się nad tym zastanawiałem i doszedłem do solidnego wniosku: tak i nie. :) Wiadomo, że ktoś zawsze powie: "to zależy". A ja mu przytaknę. W malutkim projekcie nie ma sensu. W większym? Chcąc być purystą powinienem zrealizować cały dostęp do danych poprzez wartwę realizowaną na bazie Repository Pattern. Czy to ma sens? Co jeśli chcę tylko wyciągnąć imię i nazwisko ostatnio dodanego użytkownika? Czy na prawdę muszę pisać te wszys...
Architektura 3831 dni, 1 godzinę, 2 minuty temu 267 źrodło rozwiń
Trzeci z serii artykułów, w których pokażę swój pomysł na ożenienie WPF, Silverlight i Windows Phone. Przedstawiam tutaj działającą, prostą architekturę pozwalającą na komunikację wszystkich 3 klienckich platform z serwerem przy pomocy socketów.
Architektura 3833 dni, 13 godzin, 52 minuty temu 54 źrodło rozwiń
Drugi z serii artykułów, w których pokażę swój pomysł na ożenienie WPF, Silverlight i Windows Phone. Przedstawiam w nim zarys komunikacji dwustronnej klient/serwer - serwer/klient przy pomocy socketów.
Architektura 3833 dni, 13 godzin, 52 minuty temu 61 źrodło rozwiń
.NET pozwala na tworzenie aplikacji na wiele platform. To pierwszym z serii artykułów, w których pokażę swój pomysł na ożenienie WPF, Silverlight i Windows Phone. W tym znajdziecie trochę ogólnej teorii oraz informację o sposobach współdzielenia plików.
Architektura 3833 dni, 13 godzin, 52 minuty temu 111 źrodło rozwiń
Zachęcam do kolejnego artykułu, tym razem o wzorcu MVVM: http://msdn.microsoft.com/pl-pl/library/wprowadzenie-do-wzorca-projektowego-model-view-viewmodel-na-przykladzie-aplikacji-wpf.aspxExplore posts in the same categories:Patterns & Practices, WPF
Architektura 3839 dni, 11 godzin, 46 minut temu 919 źrodło rozwiń
Nieprawidłowa obsługa wyjątków może przynieść więcej problemów niż pożytku. O obsłudze błędów można byłoby napisać artykuł, jednak w poście chciałbym skupić się wyłącznie na kilku aspektach. 1. Pierwszym problemem jest fakt, że część programistów używa wyjątków do sytuacji po prostu niewyjątkowych. Jak sama nazwa mówi, wyjątek powinien być zastosowany gdzie może zdarzyć się coś niespodziewanego. Spójrzmy więc na poniższy fragment:int number; try { number =int.Parse(text); } catch { numbe...
Architektura 3850 dni, 14 godzin, 49 minut temu 462 źrodło rozwiń
Czy kiedykolwiek zdarzyło się Wam spotkać z aplikacją, która podczas przetwarzania jakiś bardziej złożonych i czasochłonnych operacji, swoje okno w sposób, który skutecznie blokował Waszą pracę? Czy nie zdarzało się Wam również w takich sytuacjach ujrzeć pełny optymizmu napis Brak odpowiedzi? Podejrzewam że każdy z Was, przynajmniej raz spotkał się z taką sytuacją. Być może część z Was przeklinała system operacyjny, choć w istocie to nie była do końca jego zasługa. Bardziej winny w takiej sytuacji był...
Architektura 3868 dni, 16 godzin, 59 minut temu 135 źrodło rozwiń
W komentarzu do poprzedniego posta Bartosz napisał, że według niego nowo utworzony obiekt z wynullowanymi polami nie zawsze jest błędem i czasami może mieć sens. Nie zgadzam się z tym zupełnie. Powiem więcej: wg mnie, w językach wysokiego poziomu (chodzi mi o takie, gdzie już nie musimy ręcznie alokować i zwalniać pamięci) wartość null nie ma w ogóle racji bytu! ...
Architektura 3873 dni, 11 godzin, 15 minut temu 403 źrodło rozwiń
Ostatnimi czasy (tuż przed świętami) stwierdziłem że .Net oferuje dosyć ubogie wsparcie dla struktur drzewiastych. Ponieważ miałem konieczność dokonywania operacji Wspieranych przez Linq naturalnym pomysłem było napisanie operacji wspierających iterowanie po drzewie (takiej małej małpki). W ramach tego artykułu opisuję co udało mi się osiągnąć. Nieprzyzwyczajonych do mojej formy wypowiedzi przepraszam za to że "Ten wykwit werbalnej weny wyrodził się w wielomówność" i zapraszam do lektury samego artykułu.
Architektura 3873 dni, 11 godzin, 15 minut temu 210 źrodło rozwiń
W kilku ostatnich wpisach przedstawiłem czym jest metodyka Scrum, po co i jak ją stosować przy użyciu Team Foundation Server. W teorii moglibyśmy już rozpocząć projekt i z powodzeniem go prowadzić. Możliwe, że więcej wiedzy nie było by Wam szybko potrzebne, ale podejrzewam, że całkiem szybko zaczęły się pojawiać pytania o zarządzanie i przepływ zadań. W tym artykule postaram się wybiec przed nie i od razu przedstawić garść odpowiedzi. W skrócie co jak i gdzie w kombinacji TDD + TFS + SRUM
Architektura 3889 dni, 12 godzin, 21 minut temu 128 źrodło rozwiń
MEF jest kolejnym frameworkiem umożliwiającym tworzenie rozszerzalnych aplikacji. Pomijając marketing serwowany na różnych stronach, jest to po prostu biblioteka umożliwiająca dependency injection. W wersji .NET 4.0 została zintegrowana w .NET Framework i nie musi być instalowana osobno. Na oficjalnej stronie można sporo poczytać o budowie MEF’a jednak w poście chciałbym ograniczyć to do minimum ponieważ dla mnie osobiście, zbyt dokładne intro do tematu po prostu zniechęca mnie do dalszego czytania. Zac...
Architektura 3889 dni, 12 godzin, 21 minut temu 206 źrodło rozwiń