Programując w domu w C#, przez kilka ostatnich lat korzystałem głównie z Visual Studio 2010, którego to pozyskałem jeszcze w studenckich latach. Minęło już więc trochę czasu i stwierdziłem, że najwyższa pora na zmianę. Postanowiłem że skuszę się na najnowszy zestaw edycji typu Express. Pierwsze spostrzeżenie było takie, że sporo się tu zmieniło w interfejsie od czasu wersji 2010. Oczywiście widziałem wcześniej screeny z dwóch najnowszych edycji oraz krótko nawet je testowałem, ale w praktyce nie jest to...
Strona głównaUżytkownik
Yuras | użytkownik
Dobry programista to ten, który w swoim codziennym programowaniu, nie , ale tworzy aplikacje zbudowane w oparciu o wszelkiej maści biblioteki i wzorce projektowe. Już kilka razy na tym blogu powtarzałem, że nie warto tworzyć koła od nowa, a niektórzy idą nawet dalej nazywając odtwórcze programowanie okradaniem własnych szefów - w pewnym sensie chyba coś w tym jest. W dzisiejszej odsłonie bibliotek wartych poznania, mam więc coś ciekawego, co w pewnym sensie powinno przerwać pewną programistyczną rutynę....
Architektura 4146 dni, 20 godzin, 6 minut temu 333 źrodło rozwiń
YUI Compressor od Yahoo! to z pewnością narzędzie dobrze znane każdemu webmasterowi, który szanuje cierpliwość użytkowników swojej witryny;-) Dotychczas ta przydatna biblioteczka kojarzyła się głównie z JAVĄ, która ostatnimi czasy nie ma zbyt dobrej prasy. Warto jednak wiedzieć, że na szczęście istnieją całkiem przyjemne alternatywy. Jedną z nich jest właśnie port biblioteki YUI Compressor dla .Net. Zasadniczo jest to nieduże rozszerzenie, ale oferujące wszystkie potrzebne opcje kompresji oraz spore moż...
Architektura 4182 dni, 20 godzin, 5 minut temu 212 źrodło rozwiń
Świat się zmienia. Obecnie moc obliczeniowa nie jest takim problem jak kiedyś, co chyba najlepiej odzwierciedla pewnego rodzaju stagnacja na rynku komputerowym. Podobnie sprawa ma się z przestrzenią dyskową. Kiedy sobie przypomnę mój pierwszy komputer, w którym dysk miał 20MB, to pamiętam że miałem dylemat - instalować Windowsa 3.1, czy zainstalować więcej gier;-) Trochę inne były wtedy to czasy. Pamiętam również, że gdzieś pod koniec lat 90-siątych na dobre rozpoczęła się walka formatów do kompresji. P...
Architektura 4195 dni, 20 godzin, 20 minut temu 252 źrodło rozwiń
Zawód programisty to jeden z tych, w których powiedzenie nabiera szczególnego znaczenia. Tworząc oprogramowanie niejednokrotnie stanąłem przed problemem, który został przez kogoś już wcześniej rozwiązany, dlatego tylko jeśli na czymkolwiek się to od razu sięgam do wujka Google. Podobnie sprawa ma się w przypadku pewnych schematycznych rozwiązań. Tworząc specjalne klasy do obsługi logowania, bazy danych, czy kolekcji, trzeba liczyć się z tym, że ktoś już coś podobnego wcześniej zrobił. Jeśli określone ...
Architektura 4202 dni, 19 godzin, 58 minut temu 343 źrodło rozwiń
Można powiedzieć, że temat tego wpisu powstał na poczekaniu, ponieważ na początku miałem zamiar pisać o czym innym. Dzisiejszy tekst miał dotyczyć tworzenia silnych nazw, ale po małym stwierdziłem, że chyba nie jestem ekspertem od tematów powiązanych z szyfrowaniem, dlatego odpuściłem sobie ten wątek (osoby zainteresowane tematem odsyłam do ciekawego posta, którego znalazłem podczas własnego zgłębiania tematu). Ponieważ miałem nieodpartą ochotę napisać jednak dziś coś o programowaniu, naprędce wymyśliłe...
Architektura 4241 dni, 1 godzinę, 42 minuty temu 571 źrodło rozwiń
Chciałbym rozpocząć nowy cykl na blogu, tym razem o PLINQ. Dzisiaj zaczniemy od podstaw czyli czym jest LINQ oraz kiedy z niego korzystać. PLINQ to skrót od Parallel Linq czyli są to zapytania wykonywane równolegle. W dzisiejszym świecie, programiści starają się zrównoleglić co tylko jest możliwe. Samodzielne pisanie LINQ w sposób równoległy jest dość niewygodne i dlatego Microsoft wprowadził PLINQ. Należy oczywiście zawsze pamiętać, że próba zrównoleglenia operacji, które muszą po prostu zostać wykona...
Sztuka programowania 4245 dni, 12 godzin, 24 minuty temu 224 źrodło rozwiń
Jedną z ogromnych zalet programowania obiektowego jest to, że raz napisany kod możemy łatwo rozszerzyć o dowolne konstrukcje, lub stworzyć zupełnie coś nowego na jego podstawie. W tym przypadku chodzi mi głównie o kwestię dziedziczenia, która ma swoje wady i zalety. W tym przypadku bardziej chciałbym skupić się na tych pierwszych. Dziedziczenie nie zawsze jest do końca dobrym rozwiązaniem, ponieważ w C# możemy rozszerzać tylko jedną klasę (ale za to na szczęście możemy implementować dowolną ilość interf...
Architektura 4281 dni, 12 godzin, 57 minut temu 165 źrodło rozwiń
Tworząc duże projekty niejednokrotnie musiałem stworzyć szereg małych klas, których głównym zadaniem było chwilowe przechowywanie określonych danych i przekazywanie ich pomiędzy obiektami. Nie niosły one więc ze sobą żadnej wartości dodanej, a sam ich żywot był raczej krótki. Kilka, kilkanaście klas tego typu, potrafi dość w skuteczny sposób zabałaganić nawet najlepiej zorganizowany projekt. Jeśli wrócimy do niego za jakiś czas, zaczniemy sobie z pewnością zadawać pytanie - po co ta, czy tamta klasa? ...
Architektura 4299 dni, 12 godzin, 5 minut temu 149 ź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 ...
Jednym z bardziej charakterystycznych zadań, którego implementację można wykazać w szeregu różnych aplikacji dostępnych na rynku, jest praca wykonywana w stałych określonych interwałach czasu. Przykładów nie trzeba daleko szukać, ponieważ wystarczy spojrzeć choćby na aplikacje mobilne, o których trochę na tym blogu się pisze. W przypadku smartfonów, zjawisko to widoczne jest w aspekcie synchronizacji. Sprawdź statusy na Facebooku co 3 godziny, ściągnij wiadomości RSS co 6 godzin, aktualizuj kalendarz co ...
Architektura 4433 dni, 7 godzin, 28 minut temu 170 źrodło rozwiń
Tydzień temu w pierwszym poście poświęconym synchronizacji, przedstawiłem Wam trzy kluczowe zagadnienia związane z tym tematem. I choć lock, Monitor oraz Mutex pozwalają nam rozwiązać naprawdę dużą liczbą problemów dotyczących wielowątkowości, to warto wiedzieć, że jest to tylko część programistycznego orężu w jaki wyposażył nas Microsoft. Dziś chciałbym Wam przedstawić cztery kolejne klasy, które powinny uzupełnić temat rozpoczęty tydzień temu i zasadniczo wyczerpać kwestię synchronizacji. Bez zbędnego ...
Architektura 4439 dni, 18 godzin, 57 minut temu 349 źrodło rozwiń
Kilka dni temu zainicjowałem cykl postów związanych z wielowątkowością. Rozpocząłem dość standardowo, bo od wyjaśnienia istoty tego zagadnienia i przedstawienia prostych wątków. Wiedza zawarta w tamtym wpisie, powinna w wielu przypadkach okazać się wystarczająca - szczególnie jeśli w naszej aplikacji mamy tylko jeden wątek dodatkowy, który stworzony jest tylko po to by odciążyć wątek główny. Takie proste rozwiązanie nie będzie jednak zawsze do końca wystarczające. Problemy pojawią się w sytuacji gdy wąt...
Architektura 4446 dni, 16 godzin, 14 minut temu 353 źrodło rozwiń
Nie wiem jak Was, ale mnie osobiście irytuje zdarzenie w którym na górnej belce aplikacji pojawia się napis , a sam program wygląda jakby się gdzieś po drodze pogubił... Generalnie taki stan rzeczy może być spowodowany wieloma różnymi aspektami, choć zasadniczo w tym przypadku najczęściej można wskazać dwie przyczyny. Trzeba niestety tu otwarcie przyznać, że w głównej mierze są one spowodowane źle napisanym kodem przez programistów tychże aplikacji. Po pierwsze, w każdym programie może po prostu pójść c...
Architektura 4450 dni, 17 godzin, 11 minut temu 118 źrodło rozwiń
Ponad dwa lata temu, popełniłem wpis na temat operacji na kolekcjach w C#. Post ten ku mej uciesze, wciąż cieszy się sporą popularnością, dlatego też postanowiłem napisać niejako jego kontynuację. Gdy dwa lata temu pisałem tamten wpis, wciąż dominującą wersją frameworka .Net, była ta oznaczona wersją 2.0. Dziś sytuacja się trochę zmieniła i przynajmniej w moim odczuciu, coraz więcej osób korzysta z wersji 3.5 i 4.0, a na horyzoncie jest już .Net 4.5, który pojawi się w pełni wraz z Windowsem 8 i Visual ...
Architektura 4537 dni, 21 godzin, 11 minut temu 296 źrodło rozwiń
W .NET 4.0 wprowadzoną klasę Tuple służącą do owijania kilku wartości w jeden obiekt. Tuple to nic innego jak obiekt zawierający w sobie jakieś dane w postaci właściwości. Do dyspozycji jest 8 statycznych metod służących do stworzenia Tuple:Create(T1)Create(T1,T2)Create(T1,T2,T3)Create(T1,T2,T3,T4)Create(T1,T2,T3,T4,T5)Create(T1,T2,T3,T4,T5,T6)Create(T1,T2,T3,T4,T5,T6,T7)Create(T1,T2,T3,T4,T5,T6,T7,T8) Ponadto istnieje możliwość stworzenia tuple za pomocą jednego z konstruktorów:Tuple
W obecnym czasie, z bardzo rozwiniętymi środowiskami programistycznymi, takimi jak choćby Visual Studio, czy też Eclipse, bardzo łatwo jest rozpocząć swoją przygodę z programowaniem, które w tym przypadku czasem bardziej przypomina zabawę z klockami, niż rzeczywiste . Jednak nastawiając się na bezmyślne składanie klocków, szybko można obudzić się z przysłowiową , w sytuacji gdy zajdzie potrzeba modyfikacji lub rozszerzenia tak radośnie tworzonego kodu, a warto zaznaczyć, że nieumiejętnie sklejony kod mo...
Architektura 4559 dni, 8 godzin, 15 minut temu 475 źrodło rozwiń
Ostatnimi czasy rozpocząłem naukę programowania pod Windows Phone 7. Szybko okazało się, że przy pisaniu jednej z testowych aplikacji, warunkiem koniecznym jej dalszego rozwoju stał się dostęp do bazy danych. Programowanie na platformę mobilną wiążę się jednak z wieloma ograniczeniami w stosunku do programowania aplikacji desktopowych i oczywiście nie ominęły one również samej bazy danych. W przypadku Windows Phone, możemy korzystać zatem tylko z SQL Server CE i wykorzystywać w tym celu wyłącznie LINQ t...
Mobile development 4584 dni, 1 godzinę, 44 minuty temu 179 źrodło rozwiń
Jeśli miał ktoś do czynienia np. z CPP z pewnością kojarzy pojęcie destruktora. Jest to metoda, wywoływana w momencie zwalniania obiektu z pamięci (przeciwieństwo konstruktora). Zarówno w CPP jak w C#, nazwa destruktora stanowi ‘~’ plus nazwa klasy.
Z biegiem lat, mam nieodparte wrażenie, że doba staje się coraz bardziej krótsza. Brakuje mi czasu na wiele różnych rzeczy. Obojętnie czy jest to pisanie kodu, czytanie książek, czy też nauka. Problem ten dotyczy również bloga, dlatego też spróbuję rozwiązać go w pewien sposób, wprowadzając nowy rodzaj tekstów oznaczonych tagiem Szybkie porady. Głównym zadaniem wpisów oznaczonych takim znacznikiem, będzie rozwiązanie pewnych, jasno określonych problemów. Teksty tego typu mogą pojawić się właściwie w każd...
Architektura 4632 dni, 3 godziny, 12 minut temu 165 źrodło rozwiń