Strona głównaUżytkownik

pzielinski | użytkownik

pzielinski
pzielinski
27 178,29
4089 dni, 15 godzin, 18 minut temu
21 lutego, 2010
dotnetomaniak.pl

W .NET 4.0 dodano (mało chyba popularną) klasę MemoryCache służącą do buforowania danych. Wcześniej programiści znali podobną klasę w ASP.NET. Od wersji 4.0 została ona wydzielona i można z niej teraz korzystać we wszystkich typach aplikacji – także WPF i WinForms.  Za pomocą MemoryCache można ustawić czas  ważności danych w buforze za pomocą czasu absolutnego,  priorytetu, monitorów, które unieważniają dane np. na podstawie zmiany pliku na dysku lub tzw. SlidingExpiration – czasu który upłynął od ostatn...

Dziel się z innymi:
Piotr Zieliński » MemoryCache–buforowanie w .NET 4.0

Windows 4767 dni, 6 godzin, 39 minut temu pzielinski 307 źrodło rozwiń

C# 4.0 dostarcza kilka nowych możliwości jeśli chodzi o parametry i ich przekazywanie. Pierwszym rozszerzeniem jest możliwość zdefiniowania opcjonalnych argumentów (dlaczego musieliśmy tak długo na to czekać?):privatevoid ShowText(string text="Hello world") { MessageBox.Show(text); } Teraz możemy wywołać metodę ShowText dostarczając własny argument lub pomijać go i wykorzystując wartość domyślną (“Hello World”):ShowText("Custom Text"); ShowText(); // również poprawne Named arguments umożliwiają prze...

Dziel się z innymi:
Piotr Zieliński » C# 4.0–parametry opcjonalne oraz named arguments

Inne 4770 dni, 16 godzin, 4 minuty temu pzielinski 316 źrodło rozwiń

XMLSerializer jest bardzo wygodnym sposobem zapisu klas w formie pliku XML. Rozważmy następujący przykład:publicinterface IData { // jakies dekleracjestring Text{get;set;} } publicclass Data: IData { publicstring Text{get{...}set{...}} } publicclass ClassA { public IData Data{get;set;} } Niestety po próbie serializacji dostaniemy wyjątek mówiący, że nie można zapisywać interfejsu. Jaka jest odpowiedź na pytanie zadanie w poście? NIE da się! W poście mam zamiar pokazać wyłącznie pewne sposob...

Dziel się z innymi:
Piotr Zieliński  » Jak serializować interfejsy w C#?

Inne 4771 dni, 22 godziny, 54 minuty temu pzielinski 309 źrodło rozwiń

Domyślnie WPF wyświetla okno dialogowe nieobsłużonego błędu a następnie po przyciśnięciu przycisku aplikacja zostaje zamknięta. W poście zajmiemy jednak się przeładowaniem tego zachowania poprzez np. zapis błędu do pliku. W WPF możemy wykorzystać zdarzenie DispatcherUnhandledException(plik App.xaml.cs), która wywoływana jest dla nieobsłużonych wyjątków. Jeśli zatem w kodzie znajdzie się wywołanie throw bez klauzuli catch, zdarzenie DispatcherUnhandledException zostanie uruchomione. Przykład, plik app.xam...

Tagi: WPF, wyjątki
Dziel się z innymi:
Piotr Zieliński  » Nieobsłużone wyjątki w WPF

Windows 4775 dni, 1 godzinę, 49 minut temu pzielinski 175 źrodło rozwiń

Jakiś czas temu napotkałem na problem podczas próby przypisania własnego kontekstu kontrolce ContextMenu. Zacznijmy może od razu od przykładu XAML: Prosty widok  – zwykły Grid z kontekstowym menu. DataContext ustawiam na SimpleVIewModel a następnie binduje właściwość Text. Code-behind wygląda następująco:publicpartialclass MainWindow : Window { public MainWindow() { SimpleViewModel =new WpfApplication1.SimpleViewModel(); DataContext =this; InitializeComponent(); } ...

Dziel się z innymi:
Piotr Zieliński » ContextMenu, DataContext oraz problemy z binding

Windows 4777 dni, 20 godzin, 21 minut temu pzielinski 117 źrodło rozwiń

Zwykłe (blokowe) bloby w Windows Azure są trudne do wdrożenia dla już istniejących aplikacji. Załóżmy, że napisaliśmy prostą galerie zdjęć w ASP.NET i wykorzystaliśmy do tego celu przestrzeń System.IO, np. do robienia kopii zapasowych czy zarządzania plikami na dysku. Jeśli jednak chcielibyśmy przechowywać zdjęcia w Azure Blobs, musielibyśmy zmodyfikować kod. Azure Drive pozwala na stworzenie wirtual...

Tagi: Azure
Dziel się z innymi:
Azure Drive | MSDN (Polska)

Programowanie rozproszone 4779 dni, 15 godzin, 50 minut temu pzielinski 137 źrodło rozwiń

Zanim przejdę do wyjaśnienia kilku usprawnień wprowadzonych w C# 4.0 spróbujmy zdefiniować pojęcia kowariancji oraz kontrawariancji. Te skomplikowane pojęcia odnoszą się po prostu do typów konwersji. Kowariancja to określenie typu konwersji  z bardziej specyficznego do bardziej ogólnego(klasy). Kontrawariancja to oczywiście przeciwieństwo (bazowa klasa do pochodnej). Jako przykład kowariancji w c# można pokazać np.:object text ="Hello World!"; Deklaracja text jest kowariancją ponieważ możemy przypisać ...

Dziel się z innymi:
Piotr Zieliński » Kowariancja i kontrawariancja a C# 4.0 oraz typy generyczne

Inne 4781 dni, 14 godzin, 50 minut temu pzielinski 721 źrodło rozwiń

Kilka miesięcy temu pisałem o attached behaviour jako sposobie na wiązanie zdarzeń do komend. Sposób całkowicie poprawny i wygodny w użyciu. Dzisiaj jednak chciałbym przedstawić nieco prostsze rozwiązanie z wykorzystaniem bibliotek z Expression Blend SDK. Jeśli jeszcze nie posiadacie SDK możecie je ściągnąć ze strony Microsoft’u. Do projektu dołączamy  bibliotekę System.Windows.Interactivity (SDK). Następnie w pliku XAML spróbujmy powiązać zdarzenie MouseMove z komendą ShowMsgCmd: Namespace “i” powin...

Tagi: MVVM, WPF
Dziel się z innymi:
Piotr Zieliński » Binding zdarzeń w WPF, MVVM cz.2

Windows 4784 dni, 15 godzin temu pzielinski 429 źrodło rozwiń

Wzorzec Model-View-ViewModel jest najczęściej wykorzystywany przez programistów WPF. Związane jest to z mechanizmem wiązań, który znacząca ułatwia wdrożenie MVVM do projektu. ViewModel stanowi wyeksponowany model przeznaczony do bindingu, z kolei widok to zwykły, pasywny plik XAML. Ważną cechą ViewModel jest brak powiązań z interfejsem użytkownika. Najlepiej aby projekt zawierający ViewModel nie posiadał żadnych referencji do bibliotek warstwy prezentacji. Częstym zadawanym pytaniem jest: Jak wywoływać ...

Tagi: MVVM
Dziel się z innymi:
Piotr Zieliński » Message Boxes w MVVM

Windows 4789 dni, 4 godziny, 23 minuty temu pzielinski 363 źrodło rozwiń

Po długiej przerwie związanej z przeprowadzką, czas powrócić do prowadzenia blog’a i pisania artykułów. Mam nadzieję, że od dziś posty będą pojawiać się częściej i bardziej regularnie chociaż nie wszystko jeszcze idzie po mojej myśli. No to zaczynamy… Visual State Manager został wprowadzony w wersji 4.0 Wcześniej mogliśmy go spotkać w Silverlight lub WPF Toolkit. Służy do zmieniania wyglądu kontrolek na podstawie zdefiniowanych stanów. Zastosowanie jest podobne więc do triggerów jednak różnica polega na ...

Dziel się z innymi:
Piotr Zieliński  » Blog Archive   » WPF – Visual State Manager

Windows 4793 dni, 5 godzin, 56 minut temu pzielinski 196 źrodło rozwiń

Typy Enum są ładnym rozwiązaniem służącym do definiowania stałych. Zamiast przekazywać nic nie mówiącą liczbę do funkcji, możemy zdefiniować enum i przekazać np. TextAlignment.Left – z pewnością poprawi to czytelność kodu. Czasami jednak chcemy przekazać dwa enumy naraz lub dowolną ich kombinację. W tym celu musimy skorzystać z tzw. flag. Zacznijmy od razu od przykładu:[Flags] enum Days { None =0, Sunday =1, Monday =2, Tuesday =4, Wednesday =8, Thursday =16, Friday =32, Sa...

Tagi: Enum, flags
Dziel się z innymi:
Piotr Zieliński » Flagi w Enum

Inne 4878 dni, 23 godziny, 18 minut temu pzielinski 179 źrodło rozwiń

http://msdn.microsoft.com/pl-pl/library/testy-obciazenia-w-visual-studio

Dziel się z innymi:
Piotr Zieliński  » Testy obciążenia w Visual Studio

Narzędzia 4880 dni, 21 godzin, 40 minut temu pzielinski 104 źrodło rozwiń

Zapraszam do kolejnego artykułu, tym razem o wtyczce NuGet: http://msdn.microsoft.com/pl-pl/library/nuget–system-dystrybucji-bibliotekE

Tagi: NuGet
Dziel się z innymi:
Piotr Zieliński  » NuGet – system dystrybucji bibliotek

Narzędzia 4886 dni, 21 godzin, 7 minut temu pzielinski 83 źrodło rozwiń

Artykuł dla osób, które dopiero zaczynają z testami jednostkowymi. Wprowadzenie, trochę teorii i best practises: http://msdn.microsoft.com/pl-pl/library/testy-jednostkowe-w-visual-studio

Dziel się z innymi:
Piotr Zieliński » Testy jednoskowe w Visual Studio

Inne 4890 dni, 2 godziny, 26 minut temu pzielinski 265 źrodło rozwiń

Większość dzisiejszych aplikacji typu desktop posiada bufor stanu – popularnie nazywany “undo\redo” (skróty CTRL+Z, CTRL+Y). Najpopularniejszym zastosowaniem są edytory tekstu. Pisząc aplikację w C# z wykorzystaniem standardowym kontrolek TextBox taką funkcjonalność już będziemy mieli. Jednak czasami zachodzi rozwinięcie standardowej funkcjonalności o elementy specyficzne dla danej aplikacji. Najczęściej występuje to w różnego rodzaju edytorach (np. edytory map). W dzisiejszym poście przyjrzymy się imple...

Tagi: redo, undo
Dziel się z innymi:
Piotr Zieliński  » Bufor Undo \ Redo

Windows 4899 dni, 14 godzin, 15 minut temu pzielinski 96 źrodło rozwiń

Wzorzec MVVM jest najpopularniejszym rozwiązaniem architektonicznym dla WPF. Ze względu na wbudowany mechanizm wiązań, programiści chętnie sięgają po ten wzorzec projektowy. Jednym z problemów jest podpięcie zdarzenia. W większości przypadków możemy powiązać komendę za pomocą właściwości Command. Co jednak w przypadku gdy potrzebujemy specyficzne zdarzenie np. OnMouseDown? WPF niestety nie udostępnia właściwości typu OnClickCommand – do dyspozycji mamy tylko OnClick zwracający EventHandler a nie ICommand...

Tagi: MVVM, WPF
Dziel się z innymi:
Piotr Zieliński » Model-View-ViewModel a zdarzenia w WPF.

Windows 4902 dni, 8 godzin, 6 minut temu pzielinski 356 źrodło rozwiń

Dziś kolej na MVC 3.0. W pierwszej części podstawy: http://msdn.microsoft.com/pl-pl/library/wprowadzenie-do-asp-net-mvc-3-0 Dla tych którzy chcą poznać sam silnik Razor zapraszam tutaj: http://msdn.microsoft.com/pl-pl/library/razor–nowy-silnik-renderujacy

Dziel się z innymi:
Piotr Zieliński  » Wprowadzenie do ASP.NET MVC 3.0

Web 4907 dni, 1 godzinę temu pzielinski 302 źrodło rozwiń

Krótki tekst o instalacji MVC 3.0 w chmurze Azure: http://msdn.microsoft.com/pl-pl/library/asp-net-mvc-3-0-w-azure

Tagi: Azure, chmura
Dziel się z innymi:
Piotr Zieliński  » ASP.NET MVC 3.0 w Azure

Web 4910 dni, 21 godzin, 43 minuty temu pzielinski 62 źrodło rozwiń

SQL Server posiada kilka mechanizmów umożliwiających przechowywanie dużej ilości danych np. plików graficznych. FileStream Pierwszych z nich jest FILESTREAM. Przed pojawieniem się typu FILESTREAM, programiści najczęściej zapisywali pliki sami na dysku a lokalizacje przechowali w bazie danych. Rozwiązanie dobre jednak kłopoty powstały w momencie synchronizacji – co jeśli ktoś usunie jakiś plik z dysku? FILESTREAM to nic innego jak zapisanie pliku w bazie danych. W przeciwieństwie do typu varbinary, FILEST...

Tagi: SQL
Dziel się z innymi:
Piotr Zieliński  »  Przechowywanie dużej ilości danych w SQL Server

Bazy danych i XML 4917 dni, 3 godziny, 15 minut temu pzielinski 149 źrodło rozwiń

Zdarzenia oraz delegaty (tak to chyba się tłumaczy?) pełnią podobną funkcje w C#. Jaka jest jednak różnica? Przyjrzyjmy się sposobowi ich użycia:class Program { publicstaticevent EventHandler SimpleEvent =null; publicstatic EventHandler SimpleDelegate =null; staticvoid Main(string[] args) { SimpleEvent+=new EventHandler(EventMethod); SimpleDelegate +=new EventHandler(DelegateMethod); SimpleEvent(null, null); SimpleDelegate(null, null); } staticvoid D...

Tagi: delegaty, eventy
Dziel się z innymi:
Piotr Zieliński  » Events vs. Delegates

Inne 4941 dni, 15 godzin, 59 minut temu pzielinski 181 źrodło rozwiń

1 2... 11 12 13 14 15 16... 19 20