W poprzednim poście przedstawiłem zasadę działania generacji w GC. Dowiedzieliśmy się, że zwalnianie zasobów z generacji 0 jest bardzo szybkie z kolei z GEN 2 wolne. Healthy GC to reguła określająca optymalny (zdrowy) stan GC: gen0 : gen1 : gen2 => 100 : 10 : 1 W Internecie można również znaleźć nieco inne wartości ale ogólna zasada jest taka sama: GEN0 powinna zawierać dużo więcej obiektów niż GEN2. Jeśli obiekty nie są zwalniane, wtedy promowane są do generacji pierwszej i drugiej. Z poprzedniego po...
Może nie tylko w Polsce, ale na pewno nie w Stanach Zjednoczonych czy Wielkiej Brytanii. Kiedy decydujemy się na wystawienie naszej aplikacji na rynek międzynarodowy podejmujemy podstawową decyzję: czy nasza aplikacja będzie lokalizowana, czy „sztywno” anglojęzyczna. W drugim przypadku jesteśmy zwolnieni z tłumaczenia tekstów interfejsu oraz wyświetlania danych (takich jak data, czas, waluta) w formacie charakterystycznym dla danego ...
Tworząc aplikację, która operuje na jakichkolwiek danych, które mają być dostępne również w przyszłości, szybko dochodzimy do momentu, kiedy to musimy wybrać odpowiedni sposób składowania tych danych. Po szybkim namyśle, przyjdzie Wam z pewnością kilka propozycji: Tekstowy plik danych o określonej strukturze Plik XML (można korzystać z serializacji) Baza danych Każde z tych rozwiązań ma swoje określone wady i zalety, a wszystko zależy również od skali projektu. W moim przypadku miałem właśnie do czy...
Bazy danych i XML 4047 dni, 14 godzin, 4 minuty temu 346 źrodło rozwiń
W poprzednim poście przedstawiłem ogólne zasady działania GC w zarządzanych językach. Dziś przyjrzymy się bardziej na konstrukcję rozwiązania Microsoft’owego. Zakładam, że czytelnik zna już algorytm Mark&Sweep. Pamięć alokowana w .NET jest przechowywana w tzw. generacjach. Istnieją 3 generacje:Generation 0 – zwolnienie obiektu z GEN0 jest szybkie i mało kosztowne. Przechowywane są w niej obiekty używane tylko przez krótki czas. Generation 1 – obiekty, które awansowały z GEN0. Zwolnienie zasobów w GE...
Analiza logów to nieodłączna część poprawiania, naprawiania, optymalizacji… W IIS również gromadzone są logi operacji. Zapisywane są w katalogu, którego ścieżkę – jak i wiele opcji dotyczących logowania – można sprawdzić we właściwościach sekcji „Logging”. Każda aplikacja stworzona na serwerze www posiada identyfikator. Domyślnie pliki loga tworzone są w trybie „jeden plik dziennika na witrynę dziennie” i zapisywane w katalogu: %SystemDrive%\inetpub\logs\LogFiles. Microsoft udostępnia sprytne narzędz...
Niniejszy post jest kontynuacją cyklu o Reactive Extensions dla .NET ([RX 1], [RX 2], [RX 3], [RX 4], [RX 5], [RX 6], [RX 7], [RX 8], [RX9], [RX10], [RX11]) stanowi on kontynuację przykładu z poprzedniego wpisu i skupia się na kompozycji zdarzeń.Przejdźmy może do ciekawszego przykładu, w którym będziemy rysować linie. Linia będzie rysowana poprzez wskazanie przyciśnięciem lewego klawisza myszki jej początku, przesunięcie myszki i wskazanie końca linii poprzez zwolnienie lewego przycisku. Wymaga to złożen...
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 4051 dni, 1 godzinę, 24 minuty temu 218 źrodło rozwiń
autor: Od bardzo dawna VS służył mi do jednego-li tylko celu: programowania. Wraz z objęciem stanowiska DevLeada trochę się w tej kwestii zmieniło. Teraz wiżuala używam do trzech bardzo odmiennych celów. I każdy z nich potrzebuje trochę innej konfiguracji VS
AppDomain.AssemblyResolve - zdarzenie to pozwala załadować assembly jeśli standardowy mechanizm platformy .NET nie poradzi sobie z tym zadaniem. Aplikacja działała poprawnie aż do migracji na platformę .NET 4.0 Czemu? O tym właśnie będzie post. Zwrócę w nim uwagę na dość istotną różnicę pomiędzy platformą .NET 4.0, a jej wcześniejszymi wersjami jeśli chodzi o wspomniane zdarzenie. Różnica ta, w określonych warunkach, może napsuć krwi.
W ostatnim czasie Microsoft uraczył programistów .NET kilkoma podobnymi technologiami. WPF, Silverlight, Silverlight for Windows Phone czy najnowsze aplikacje Metro w Windows 8. Wszystkie wymienione technologie łączy XAML z pewnymi tylko różnicami wynikającymi ze specyfiki poszczególnych platform. Skoro mamy pewien punkt wspólny pomiędzy technologiami, dlaczego by nie spróbować przenieść już napisany program ...
Mobile development 4053 dni, 13 godzin, 13 minut temu 180 źrodło rozwiń
Graficzne oznaczanie wymaganych pól w formularzach ASP.NET MVC 3 za pomocą jQuery.
http://msdn.microsoft.com/pl-pl/library/prism–nawigacja-na-podstawie-zmiany-widokowExplore posts in the same categories:WPF
Niedawno poznałem w pracy magiczną kombinację klawiszy, która daje mi od tamtej pory wiele radości. O ile o radości może być w tym przypadku mowa. Chodzi o CTRL+G. Takie coś wciśnięte w VS w kontekście TFS wyświetli dialog box z polem na wpisanie ID interesującego nas workitema. Po wpisaniu tegoż otwiera się nowa zakładka z wybranym w ten sposób elementem. Baaaardzo się cieszę, że nauczyłem się tego po 3 tygodniach a nie 3 latach szukania tasków za pomocą sortowania wyników zapytań ORDER BY ID DESC.
Artykuł ma na celu łagodne wprowadzenie czytelnika w świat PRISM. Dokumentacja, dostępna aktualnie na CodePlex lub MSDN, jest moim zdaniem zbyt skomplikowana dla osoby, która chce się w skrócie dowiedzieć, co oferuje programistom ten bardzo rozbudowany framework. http://msdn.microsoft.com/pl-pl/library/prism–modularne-aplikacje-wpf.aspxExplore posts in the same categories:Patterns & Practices, WPF
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 4056 dni, 7 godzin, 16 minut temu 267 źrodło rozwiń
Na pierwszy rzut oka może się wydawać, że Silverlight nie pozwala na „przechwytywanie” i obsługę wciskania wielu klawiszy jednocześnie np: CTRL + C, ALT + X itd. Ale to tylko pierwsze wrażenie. Poniżej opiszę jak radzić sobie z tym problemem.
Silverlight 4057 dni, 8 godzin, 7 minut temu 98 źrodło rozwiń
Aby pisać kod, który jest wydajny i optymalny należy dobrze zrozumieć jak działa Garbage Collector (GC). W dzisiejszym poście przedstawię ogólne zasady działania GC na przykładzie algorytmu mark and sweep. Zaznaczam, że implementacja w .NET różni się i jest dużo bardziej wyrafinowana – ale o tym w następnych postach. Chcę najpierw przedstawić algorytm mark and sweep ponieważ da to czytelnikowi ogólny obraz zagadnienia związanego ze zwalnianiem pamięci w językach zarządzanych. Garbage Collector oczywiści...
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 4058 dni, 20 godzin, 6 minut 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 4058 dni, 20 godzin, 6 minut temu 61 źrodło rozwiń