Artykuły dla kategorii Programowanie

freeimages.com
maj 18 2016
0

Visual Studio Code - czyli edytor od Microsoftu na każdy system

W ubiegłym tygodniu pisałem o zmianach, które zaszły w Microsofcie w ostatnich latach. Gigant z Redmond dziś zdaje się być zupełnie inną firmą niż kiedyś. Fundamentalnej przemianie uległa cała filozofia firmy, która kiedyś zaciekle walczyła z Open Source, a dziś jest jednym z największych kontrybutorów tego ruchu.

Nowa taktyka mocno opiera się na otwartości kodu oraz otwarciu na inne systemy. Można by dosłownie powiedzieć, że w Microsofcie w końcu ktoś otworzył okna;) Jednym z lepszych przykładów i być może dla niektórych symbolem zmian, jest właśnie tytułowa aplikacja Visual Studio Code, która pod spodem używa Chromium, jej kod jest otwarty, a na dodatek działa na Windows, OS X oraz Linuksie. Szok? Nie - dziś to codzienność giganta z Redmond.

freeimages.com
maj 04 2016
0

Najciekawsze funkcje C# 6.0, które warto znać

Czołowi blogerzy .Netowi zajmują się obecnie nowościami, które można będzie spotkać w stabilnej wersji 7.0 języka C#. W praktyce jednak, nie każdy może tak łatwo brnąć do przodu i podejrzewam, że jest sporo deweloperów, którzy wciąż nawet nie spróbowali szóstki.

Przyczyną tego stanu rzeczy najczęściej jest praca w firmie, która już jakiś czas funkcjonuje na rynku. W takiej sytuacji duży nacisk stawiamy na stabilność kodu, a każda nowa wersja czegokolwiek, stwarza potencjalne ryzyko błędu. Kompatybilny wstecz C# nie jest w tym miejscu wyjątkiem.

Dziś chciałbym Wam przedstawić kilka opcji z tej wersji języka, które rzeczywiście mogą uprzyjemnić Waszą codzienną pracę z tą technologią i które być może zachęcą Was (lub Waszych pracodawców), do ryzyka związanego z przejściem na nowszą wersję frameworka i tym samym języka C#.

freeimages.com
mar 30 2016
0

Czy można być programistą aż do emerytury?

Różne badania dowiodły, że z wiekiem spada nasza sprawność umysłowa. Nie tylko więc się wolniej uczymy, ale również w życiu codziennym analiza niektórych sytuacji może nam zająć więcej czasu, co może mieć oczywiście przełożenie na naszą pracą.

Będąc programistą, bardzo często jestem zmuszony do pracy na wysokich obrotach. Czasem trzeba szybko reagować, lub po prostu dobrze zanalizować problem, by uniknąć potencjalnych konsekwencji. Praca w IT wymaga również ciągłego rozwoju - wystarczy spojrzeć na ilość frameworków JavaScript wypuszczonych na przestrzeni kilku ostatnich lat, by przekonać się, że słowo dynamiczny, bardzo łagodnie określa tempo zmian dziejących się w tym świecie. Pytanie więc - jak długo można tak funkcjonować?

xamarin.com
lut 25 2016
0

Xamarin przejęty przez Microsoft! Co to oznacza dla deweloperów?

Ostatnie lata w świecie developmentu, to ogromny rozwój technologii frontendowych oraz dynamiczny rozwój sektora mobilnego, w którym wciąż jeszcze liczą się trzy systemy. No dobra - tak naprawdę to Windows Phone, tudzież Windows Mobile, trochę juz dogorywa. Świat WWW ma swoje problemy, a jednym z największych jest oczywiście wsparcie dla różnych przeglądarek. W świecie mobile, mamy za to zgoła inną sytuację. Z grubsza możemy spodziewać się wynikowego efektu na różnych urządzeniach z jednym systemem (chociaż w Androidzie to w sumie bywa różnie), ale problem stanowi fakt, że oprogramować musimy 2-3 różne platformy, które w standardzie wymagają innych języków programowania.

Na szczęście istnieją rozwiązania, które są w stanie ten problem zminimalizować, a jednym z nich jest Xamarin, który pozwala na jednoczesne pisanie aplikacji na Androida, iOS, Mac OS, Windows, Windows Mobile za pomocą C#. Dotychczas to rozwiązanie miało jednak pewną, dość istotną wadę - spory koszt licencji, ale wydaje mi się, że już wkrótce może to ulec drastycznej zmianie dzięki wydarzeniu, które miało miejsce w tym tygodniu.

freeimages.com
lut 04 2016
0

Nuget - budowanie paczek dla różnych konfiguracji i architektur

Gdy tworzymy kod jakiejś własnej paczki nugetowej, bardzo często wykorzystujemy kompilację w wariancie Any CPU. Dzięki temu docelowa DLLka zadziała zarówno na x86 jak i x64, ale również i na ARM w sytuacji gdy mamy do czynienia z systemami mobilnymi. Niestety nie zawsze jest tak kolorowo i prosto, i czasem Any CPU po prostu nie zadziała - np. w sytuacji gdy mamy składowe DLLki przygotowane pod określone platformy/architektury...

W takim przypadku musimy skompilować osobne DLLki pod każdą architekturę. Wszystko byłoby proste, gdyby nie trzeba było ich umieścić wspólnie w jednej paczce Nugeta, która standardowo zakłada jedną DLLkę o określonej nazwie. Czy można sobie zatem z tym jakoś poradzić i serwować różne biblioteki w zależności od systemu i architektury? Okazuje się, że tak - wystarczy tylko posiadać odpowiedniego nowego Nugeta i w prawidłowy sposób spreparować plik nuspec:)

freeimages.com
gru 03 2015
0

Templated control - gdy ważna jest wydajność

Ostatnio przy jednym z projektów służbowych, musiałem zrobić layout, który obejmowałby zagnieżdżanie kontrolek ListView. Poziomy scroll przesuwał elementy głównej listy, natomiast w każdym takim obiekcie, znajdował się panel zawierający pewne określone dane + kolejny ListView przesuwany już wertykalnie. Nie byłoby w tym nic nadzwyczajnego, gdyby nie fakt, że wewnętrzne kontrolki ListView, zawierały w sobie listę elementów na których znaleźć można było kontrolki użytkownika. Szybko okazało się, że to był błąd, bo w praktyce takie kontrolki w dużej ilości są strasznie nie wydajne, nawet przy zastosowanej wirtualizacji.

Na szczęście w porę przypomniałem sobie o innym rodzaju kontrolek, który pozwolił mi zaoszczędzić nawet kilkadziesiąt megabajtów pamięci i znacznie przyspieszył ładowanie widoku:-)

freeimages.com
lis 25 2015
0

ListView w poziomie w Windows Phone

Niektóre kontrolki z których korzystamy w Windows Phone, przygotowane są do pracy w różnych orientacjach. Możemy je używać zarówno w pionie jak i w poziomie. W niektórych przypadkach, wystarczy przestawić jedną właściwość. Z taką sytuacją mamy do czynienia np. w StackPanelu. Inne są nieco bardziej złożone, co nie oznacza, że ich konfiguracja jest jakoś wielce karkołomna. Taką właśnie sytuację mamy w przypadku kontrolki ListView, która domyślnie działa również wertykalnie.

freeimages.com
lis 15 2015
0

Obsługa notyfikacji push w Universal Apps

Dwa tygodnie temu popełniłem wpis na temat lokalnych notyfikacji, które z powodzeniem bez większych przeszkód można użyć w każdej aplikacji uniwersalnej. Dziś chciałbym pozostać w temacie notyfikacji, aczkolwiek tym razem podejdziemy do sprawy trochę bardziej globalnie - zajmiemy się tzw. notyfikacjami push.

Idea tego rodzaju notyfikacji jest prostsza niż się to powszechnie zdaje, a kluczem do sukcesu w naszym przypadku będzie usługa WNS oraz testowy serwis do wysyłania pushy. Oczywiście wysyłka notyfikacji docelowo powinna zostać zrealizowana w jakiejś usłudze backendowej, ale to już temat na inny wpis;-)

freeimages.com
paź 22 2015
0

Biblioteki warte poznania w C# - Conditional XAML

W swojej stosunkowo krótkiej karierze programistycznej, zdążyłem już pracować z różnymi technologiami. Naturalnym tego następstwem są oczywiście wszelkiej maści porównania. Czasem np. porównuje Razora z MVC do XAMLa. I choć w teorii bardziej rozbudowana jest ta druga z obu tych technologii, to w praktyce Razor ma kilka konstrukcji, do których tęsknym okiem wyglądają designerzy XAMLa. Jedną z nich jest IF. I choć w teorii można ją częściowo zastąpić choćby za pomocą VisualStates, to w praktyce okazuje się, że istniejące rozwiązania, nie zawsze są do końca optymalne, ale od czego są dodatkowe biblioteki;-) Powitajcie Conditional XAML - prostą bibliotekę, która skrywa olbrzymie możliwości.

freeimages.com
paź 15 2015
0

MVVM Light - wykorzystanie messengera w komunikacji

Czasem tworząc aplikację wykorzystującą XAML, chcielibyśmy przekazywać dane pomiędzy poszczególnymi stronami. Niestety technologie Microsoftu nie są do tego dobrze przygotowane. Co prawda możemy zawsze wykorzystać jakiś globalny obiekt kontekstu, ale w praktyce jest to rozwiązanie nieefektywne. Możemy również wykorzystać foldery lokalne/roaming, który opisywałem tutaj, ale w pewnym sensie strzelamy tutaj do muchy z armaty. Czy można to zrobić jakoś prosto i elegancko? Okazuje się, że tak - choć po części zależy to od używanych przez Was bibliotek.

Jakiś czas temu opisywałem na łamach tego blogu MVVM Light, która upraszcza wdrożenie modelu MVVM w wielu technologiach Microsoftu, a oprócz tego skrywa w sobie kilka fajnych funkcji. Dziś chciałbym opisać jedną z nich - Messengera, który może być swego rodzaju mostkiem informacyjnymi pomiędzy ViewModelami umieszczonymi w naszej aplikacji.