Z pewnością zdolnych/dobrych programistów jest cała masa. Prawdopodobnie większość z nas ma coś ciekawego do powiedzenia, spostrzeżenia do przekazania, dobre praktyki warte stosowania na szeroką skalę. Aż żal, że ogromna część takiej wiedzy/przemyśleń się po prostu marnuje. Dziesiątki niezaimplementowanych ulepszeń w bibliotekach, setki nierozpoczętych dyskusji, czy ...
Jedną z bardzo ważnych spraw w tworzeniu oprogramowania jest jego specyfikacja definiująca, co i jak ma zostać stworzone. Jej forma nie jest ważna, zaś sam fakt posiadania jej ułatwia znacząco pracę i wypływa pozytywnie na wydajność pracy programisty. Nie zależnie od tego jakiego rodzaju metodykę stosujemy w projekcie, zawsze siadając do pracy powinniśmy wiedzieć co mamy zrobić. Nie musimy wiedzieć jak ale co jest bardzo ważne. To co powinno definiować dokładnie wynik naszej pracy, nasz cel.
Tak jak zapowiedziałem w ostatnim wpisie, w dniu dzisiejszym przechodzimy do ostatniej grupy zagadnień związanych z egzaminem MCSD: 70-480, a więc do tematu styli CSS3. Pierwszy z postów poświęconych temu zagadnieniu, zgodnie z tytułem wpisu, dotyczyć będzie stylowania elementów tekstowych HTML5. W związku z tym poruszone będą zagadnienia takie jak: nadawanie styli dotyczących wyglądu tekstu; stylowanie fontów; określanie odstępów, akapitów oraz wyrównania; nadawanie styli łącznikom oraz efekt cienia rzu...
W dzisiejszym postem zakończymy omawianie zagadnień związanych z dostępem i zabezpieczaniem danych. Zgodnie z tytułem tego wpisu, zajmiemy się dziś serializacja i deserializacją danych: omówię więc binarny format danych (JSON i XML omówiłem już w poprzednim wpisie); przyjrzymy się metodzie 'serialize' dostępnej w ramach biblioteki jQuery, a także dowiemy się jak wysłać formularz z poziomu języka JavaScript; spojrzymy także jeszcze raz na obiekt 'XMLHttpRequest', tym razem w kontekście wysyłania danych, a...
Jeżeli szukasz dobrego frameworka do MVVM dla WinRT, to koniecznie zobacz nowy ciekawy framework -StyleMVVM.
Sztuka programowania 4302 dni, 8 godzin, 18 minut temu 292 źrodło rozwiń
Czasami zachodzi potrzeba serializacji obiektów, które powinny mieć maksymalnie jedną kopie w tym samym AppDomain. Klasycznym przykładem jest System.DBNull, którego deklaracja wygląda następująco:[SerializableAttribute] [ComVisibleAttribute(true)] publicsealedclass DBNull : ISerializable, IConvertible Załóżmy, że mamy klasę, w której jedna z właściwości ma wartość System.DBNull. Oczywiście podczas serializacji i potem deserializacji nie chcemy tworzyć nowej instancji DBNull – jest to sprzeczne z ...
Sztuka programowania 4302 dni, 8 godzin, 18 minut temu 106 źrodło rozwiń
Załóżmy, że mamy następujący kod:[Serializable] class Person { publicstring Name { get; set; } } Atrybut Serializable mówi, że będzie wspierana serializacja za pomocą IFormatter (np. BinaryFormatter). Jeśli chcemy wspierać ten mechanizm, zawsze powinniśmy tworzyć jawnie backing-field. Kompilator w końcu może wygenerować tak naprawdę dowolną nazwę. Zajrzyjmy do Reflector, aby zobaczyć jak wygląda wewnętrzna struktura: Wygenerowane pole to:[CompilerGenerated] privatestring
Sztuka programowania 4304 dni, 21 godzin, 22 minuty temu 147 źrodło rozwiń
Witam w kolejnym wpisie z cyklu "egzamin MCSD: 70-480"! W odcinku dzisiejszym zajmiemy się tematem konsumowania danych w języku JavaScript. Zgodnie z tym co napisane jest na temat wymagań na stronach Microsoftu, w poście niniejszym powinniśmy zająć się takimi zagadnieniami jak konsumowanie danych w formacie JSON oraz XML; pobieranie danych z webservice'ów; ładowanie danych z innych źródeł za pomocą obiektu 'XMLHTTPRequest'. Postaram się więc poruszyć te zagadnienia podpierając się przykładami kodu. Zapra...
Targetowanie projektu na architekturę x86 przy współpracy z natywnymi bibliotekami może nie być eleganckim rozwiązaniem, zwłaszcza jeśli dostępna jest w wersji 32 i 64 bitowej. Można tego uniknąć dokonując wyboru wersji biblioteki natywnej w czasie wykonywania programu.
Po odłożeniu kodu na weekend, jego przeglądzie i uwzględnieniu komentarzy, można uznać proces refaktoryzacji za zakończony. Pisząc „proces” mam tu na myśli wykonanie refaktoryzacji o ściśle określonym celu – w tym przypadku było to stworzenie mechanizmu importu, który zastąpi używany obecnie. Nie wchodziły zatem w ten proces...
Sztuka programowania 4304 dni, 21 godzin, 22 minuty temu 84 źrodło rozwiń
Opis najważniejszych właściwości języka TypeScript.
Dziś kontynuować będziemy temat formularzy w HTML5. W poprzednim poście, opisałem walidację dostarczaną bezpośrednio przez kontrolki formularzy. Jak jednak widzieliśmy, pozwalają one tylko na przeprowadzenie podstawowych walidacji, takich jak sprawdzenie czy wprowadzono dane w pola wymagane, czy w pole typu 'email' wprowadzono prawidłowy email. Ponadto omówiliśmy sposób na definiowanie walidacji wprowadzanych danych za pomocą wyrażeń regularnych (atrybut 'pattern'). Jeśli więc chcielibyśmy dokonać bardz...
Kolejnym głównym zagadnieniem wymaganym na egzaminie MCSD 70-480, jest dostęp i zabezpieczanie danych (ang. access and secure data). Pytania z tego zakresu stanowią 26% wszystkich pytań na egzaminie. W związku z tym, dzisiejszym postem rozpoczynam omawianie tego zagadnienia. Pierwszym z tematów jakie w ramach tego zagadnienia Microsoft zaleca poznać, jest kwestia wykorzystania, wprowadzonych w HTML5, elementów służących do tworzenia formularzy. Oprócz tego, w HTML5 wprowadzona została możliwość zdefiniow...
In this post, I want to share some details about my Visual Studio 2012 configuration. You can find here a list of plugins, some options and various customization that I am using.Some thoughts I am not using any GIT integration tool. I don’t need it. Console and bash is all, I need. I am mostly using 2 split window setup. All the tool windows are pinned out if i need them i can use CTRL+TAB. I am trying to not use mouse at all.ExtensionsR# Tool that you can’t live without. Finally i got my personal ...
W celu wykonania jakiegoś kodu za pomocą refleksji, należy najpierw zebrać informację o danym polu. Załóżmy, że mamy następującą klasę:class Sample { publicvoid PrintSomething() { Console.WriteLine("Something"); } } W celu wykonania metody za pomocą refleksji można:object sample =new Sample(); MethodInfo info=sample.GetType().GetMethod("PrintSomething"); info.Invoke(sample, null); Generalnie obiekty takie jak MemberInfo czy MethodInfo pożerają mnóstwo pamięci – są one dość ciężk...
Sztuka programowania 4307 dni, 15 minut temu 127 źrodło rozwiń
Przychodzi baba do lekarza. Mówi “panie doktorze, byłam już u doktora X i on zalecił mi Y“. Na co lekarz: “a-HA! znam X, to konował, nic nie umie, tak naprawdę to dopiero JA pani powiem co trzeba zrobić“. Baba jest od tej pory zakochana w swoim nowym doktorze, nie mając tak naprawdę pojęcia czy faktycznie jest tak dobry jak twierdzi. Chodzi po sąsiadac...
Niniejszy post jest ostatnim z serii "Implementacja przepływu aplikacji" będącej jedną z czterech głównych zagadnień egzaminu MCSD: 70-480. Zajmiemy się w nim omówieniem, wprowadzonego w HTML5, API "Web Workers", pozwalającego na uruchamianie skryptów "w tle". Dowiemy się więc jak wystartować i jak zakończyć działanie Web Workera; w jaki sposób przekazywać dane do procesu Web Workera i jak ustawić dla niego timeout i interwał; poznamy także sposób na rejestrację obserwatora zdarzenia dla Web Workera, a t...
Dzisiejszy wpis, jak można się domyślić po przeczytaniu jego tytułu, ponownie poświęcony będzie językowi JavaScript, a konkretniej wykorzystaniu i implementacji funkcji typu "callback". Jak zwykle, post traktować będzie o zagadnieniach podanych na stronach Microsoftu, dotyczących właśnie tego celu egzaminacyjnego. A zatem, poznamy dziś zagadnienie odbierania wiadomości z HTML5 WebSocket API; dowiemy się w jaki sposób użyć jQuery (stąd obrazek towarzyszący nagłówkowi posta ;)) do wykonania wywołania async...
Założę się, że wiele osób czytając ten tytuł puknie się w głowę. I owszem w wielu sytuacjach wzorce nie są niezbędne do tworzenia przejrzystych i dobrze rozwijalnych skryptów. Do czasu. Dokładnie do momentu gdy nasz skrypt zaczyna mieć więcej niż kilkadziesiąt linijek.
Sztuka programowania 4309 dni, 25 minut temu 203 źrodło rozwiń
As I mentioned some time ago Microsoft is offering free 3 month trial account in the BrowserStack service. Because I'm currently working on application that should support variety of browsers including old IE versions (fortunately starting from IE7 only - not IE6) I've decided to give it a try. I must say that I'm really impressed about it. But first let me explain some more details. What is it It is a service that gives us a possibility to use almost every browser running on operating system of our ...