Strona głównaUżytkownik

pzielinski | użytkownik

pzielinski
pzielinski
27 178,29
4150 dni, 17 godzin, 6 minut temu
21 lutego, 2010
dotnetomaniak.pl

Czytając różne książki lub artykuły można się zgubić w terminologii. Szczególnie Mock oraz Stub często są używane zamiennie a ich różnica jest jednak znacząca. Nie tłumaczyłem na język polski powyższych terminów aby nie wprowadzać jeszcze większego zamieszania Zacznijmy od terminu najbardziej ogólnego – Double. Nazwa określa dowolny obiekt  naśladujący realną klasę. Zatem obiektem double może być Fake, Dummy, Stub lub Mock. Innymi słowy double można podzielić na wspomniane 4 obiekty. Termin stanowi po pr...

Tagi: fake, mock, Stub
Dziel się z innymi:
Piotr Zieliński » Fake, Dummy, Stub, Mock, Test Double–krótkie wyjaśnienie terminologii używanej w testach jednostkowych

Inne 4824 dni, 14 godzin, 1 minutę temu pzielinski 279 źrodło rozwiń

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 4828 dni, 8 godzin, 27 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 4831 dni, 17 godzin, 51 minut 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 4833 dni, 42 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 4836 dni, 3 godziny, 37 minut temu pzielinski 176 ź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 4838 dni, 22 godziny, 9 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 4840 dni, 17 godzin, 37 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 4842 dni, 16 godzin, 37 minut temu pzielinski 726 ź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 4845 dni, 16 godzin, 47 minut 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 4850 dni, 6 godzin, 10 minut 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 4854 dni, 7 godzin, 44 minuty 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 4940 dni, 1 godzinę, 5 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 4941 dni, 23 godziny, 27 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 4947 dni, 22 godziny, 55 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 4951 dni, 4 godziny, 14 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 4960 dni, 16 godzin, 3 minuty 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 4963 dni, 9 godzin, 53 minuty 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 4968 dni, 2 godziny, 47 minut 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 4971 dni, 23 godziny, 30 minut 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 4978 dni, 5 godzin, 2 minuty temu pzielinski 149 źrodło rozwiń

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