Wpis o tym dlaczego w projektach na Windows Phone, Silverlight do serializacji binarnej używam biblioteki SharpSerializer oraz jak przeportowałem ją na .NET 4.5 oraz Windows Runtime.
Mobile development 3039 dni, 21 godzin, 34 minuty temu 52 źrodło rozwiń
Kontrolka użytkownika (web user control) jest komponentem, który działa bardzo podobnie do zwykłej strony ASP.NET. Elementy, metody oraz akcje definiuje się zupełnie identycznie. Różnica jest taka, że kontrolki ascx umieszcza się na stronach aspx. Jest to świetny sposób na zgromadzenie w oddzielnym pliku współpracujących ze sobą kontrolek, a co za tym idzie odseparowanie ich zdarzeń od pozostałej logiki. Artykuł ten opisuje, jak ...
W C# można implementować interfejsy na dwa sposoby: jawny oraz niejawny. Rozważmy poniższy interfejs:interface ISerializable { void Serialize(string path); } Implementacja jawna:class ExplicitImplementation:ISerializable { #region ISerializable Membersvoid ISerializable.Serialize(string path) { thrownew NotImplementedException(); } #endregion } Implementacja niejawna:class ImplicitImplementation:ISerializable { #region ISerializable Membersvoid ISerializable.Serial...
Sztuka programowania 3040 dni, 23 godziny, 12 minut temu 130 źrodło rozwiń
Rozpoznaję taki jakby pattern przeładowanych metod dla string.Format(…). Jest wykorzystywany w wielu miejscach we Frameworku jak i poza nim. Chciałem zwrócić uwagę na ILog.DebugFormat() w bibliotece log4net oraz na Console.WriteLine().
Sztuka programowania 3040 dni, 23 godziny, 12 minut temu 109 źrodło rozwiń
Visual Studio to potężne narzędzie i tak na dobrą sprawę ciężko wykorzystać wiele z możliwości dostarczonych przez projektantów Microsoftu. Spora grupka programistów ogranicza się do podstawowego zakresu funkcji - Solution Explorerem>, IntelliSense i ewentualne prostego debugowania. Tymczasem liczba opcji dostępnych w tym IDE jest porażająca. Sam często odkrywam nowe funkcje przez przypadek, lub wynajduję ich opis w Internecie. Po jakimś czasie zastanawiam się tylko, jak mogłem wcześniej programować bez ...
Ostatnio mam okazję pisać aplikację dla Windows Phone 7 i potrzebowałem do niej wykresów. Padło na darmową wersję amChart for WPF and Silverlight – Quick Charts for WPF, Silverlight and Windows Phone 7 (http://wpf.amcharts.com/quick/general). Dodatek jest udostępniony za darmo bez brandingu i bezpośrednich odniesień do firmy na dodatek mega plus za udostępnienie kodu (https://github.com/ailon/amCharts-Quick-Charts) na licencji Ms-PL (http://opensource.org/licenses/ms-pl.html). Wykresy wyglądają dość ciek...
Życie programisty byłoby prostsze, gdyby zawsze używał explicite CultureInfo gdy korzysta z ToString() oraz string.Format(...).
Sztuka programowania 3042 dni, 6 godzin, 41 minut temu 140 źrodło rozwiń
Serializator XML'owy platformy .NET jest bardzo łatwy i przyjemny w użyciu, ale czasami jego działanie może sprowadzić nas na manowce. Poniższy kod obrazuje o co mi chodzi. Zacznijmy od przykładowej, bardzo prostej klasy, którą będziemy serializować...
Jak automatycznie generować skrypt bazy danych np. w celu okresowego przebudowywania programu instalacyjnego ze względu na zmianę struktury tejże bazy.
Bazy danych i XML 3043 dni, 2 godziny, 44 minuty temu 70 źrodło rozwiń
O strukturach na blogu pisałem już wielokrotnie m.in.: “Klasy i struktury w C#”, “Dlaczego struktury nie mogą posiadać konstruktora bez parametrów?”, “StructLayout – wprowadzenie”, “StructLayout–zastosowanie”. W pierwszych z tych postów, przedstawiającym różnice między klasami a strukturami napisałem, że co prawda struktury nie mogą dziedziczyć po klasach ale mogą za to implementować interfejsy. Dzisiaj chciałbym rozszerzyć to o kilka słów gdyż w tamtym wpisie ograniczyłem się tylko do stwierdzenia, że j...
Sztuka programowania 3044 dni, 3 godziny, 34 minuty temu 98 źrodło rozwiń
„Ciemno wszędzie, głucho wszędzie, Co to będzie, co to będzie?” … ano będzie, będzie! a raczej jest! pierwszy odcinek drugiego sezonu codingtv();! Dzisiaj zaczynamy tworzyć instalator naszego bloga. Przygotowujemy metodę do uaktulniania ustawień bazy danych w web.confgu i standardowo omawiamy komentarze z poprzedniego odcinka. Pamiętamy również o naszym konkursie i zgodnie z obietnicą dzisiaj wylosowaliśmy zwycięzcę
Knockout jest javascriptowym frameworkiem, pozwalającym na wprowadzenie w obrębie interfejsu użytkownika, wzorca MVVM (Model View ViewModel) - w ramach projektu, przy którym obecnie pracuję często go stosujemy - warto się z nim zapoznać (więcej o knockoutjs tutaj). W wielkim skrócie, pozwala on na "podpięcie" elementów interfejsu, takich jak na przykład textbox'y, do modelu danych - aktualizacja wartości w tak podpiętym textbox'ie powoduje aktualizację wartości w modelu, a co za tym idzie w innych elemen...
O dwóch sposobach inicjalizacji właściwości obiektu pisałem już tutaj. Dziś chciałbym pokazać jak zainicjalizować kolekcję używając “nowego” mechanizmu wprowadzonego w C# 3.0. Z poprzedniego post’a wiadomo, że właściwości można ustawiać tak:internalclass Person { public Person() { } public List
Hi everyone, I was thinking about subject of this post. I tried invent something what wasn't written yet. After few days I asked myself: "What should I expect during reading about programming in Metro?" .The answer: "Workshop!" But not basic "hands-on-lab" which give you some information and recommend you to read many articles if you would like to know more. I was expecting "driving" through all process of project . From bussiness case, architecture, development backend, to Metro application im...
Mobile development 3047 dni, 14 godzin, 58 minut temu 49 źrodło rozwiń
W zeszłym tygodniu na dotNETomaniaku wypromowano artykuł na temat interfejsów. Zapoznałem się z nim i odnoszę wrażenie, że autor nie rozumie w pełni roli interfejsu i myli go z klasą bazową. O taką pomyłkę rzeczywiście nietrudno, wiele klas buduje bowiem swoją funkcjonalność na podstawie interfejsów, ale to nie oznacza automatycznie, że interfejs jest ich przodkiem, zaczynem. Trzeba zacząć od tego, że choć interfejs umieszcza się w definicji klasy tak samo jak klasę dziedziczoną...
Sztuka programowania 3047 dni, 18 godzin, 11 minut temu 97 źrodło rozwiń
Piotr Zieliński pisze ciekawy cykl “Dobre i złe praktyki w C#”, a ja dzisiaj chciałem się odnieść do części VI i opisać rzecz, której dotychczas nie byłem świadom. Inicjalizacja właściwości obiektu.
It is a common practice to validate function arguments before running actual code. Usually validation looks like that: public void Update(Car entity) { if(entity ==null) throw new ArgumentNullException("entity"); } There is nothing wrong with this code, however we have to repeat this piece of code in every function. Of course we could create some helper class for argument validation and call approperiate validation function before launching...
Platforma .NET pozwala na definiowanie metadanych, czyli pewnych informacji opisujących różne elementy kodu. Funkcjonalność ta realizowana jest poprzez atrybuty. Atrybuty używane mogą być do opisu takich elementów jak klasy, metody, zdarzenia, pola, właściwości oraz wielu innych. Oprócz szeregu zdefiniowanych atrybutów mamy możliwość tworzenia własnych.
Wyrażenia lambda są łatwe w użyciu, ale jak to bywa z takimi ułatwieniami również nieświadomie można spowodować poważne problemy. Przykład:class SampleClass { } class Factory { private Type _type =typeof (SampleClass); public Func
Sztuka programowania 3050 dni, 6 godzin, 6 minut temu 143 źrodło rozwiń
SQL Server 2012 jest już na rynku chwilę. Pracując z klientami i partnerami zbudowałem sobie na własne potrzeby listę co cenniejszych zasobów pomocnych w opanowaniu zarówno samej technologii, jak i trudnej sztuki licencjonowania. Mam nadzieję, że dzięki wymienionym na poniższej liście materiałom uda się odszukać większość odpowiedzi na nurtujące Was pytania i wątpliwości.
Bazy danych i XML 3051 dni, 13 godzin, 55 minut temu 85 źrodło rozwiń