REKLAMA

Programista 12/2016 (55) – .NET- spis treści

Zapraszamy do zamówienia magazynu w >>prenumeracie<<. Miesięcznik jest dostępny w formie papierowej, PDF, EPUB i MOBI oraz AZW3. Do prenumeraty papierowej zawsze dołączamy wydania elektroniczne.

BIBLIOTEKI I NARZĘDZIA

Co nowego w Visual Studio 2017

Czy używając Visual Studio, nie zdarzało się nam narzekać na długą instalację i dość ograniczoną możliwość konfiguracji? Czy wydajność zawsze nas satysfakcjonowała? To przykłady problemów, które rozwiązuje najnowsza wersja pakietu. Dodatkowo wnosi szereg udogodnień zwiększających produktywność pracy programisty, a także nowe funkcjonalności zgodne z duchem czasu. Zapraszam do lektury!

Marcin Kruszyński

JĘZYKI PROGRAMOWANIA

Implementacja traitów w języku C# przy użyciu biblioteki Fody (>>więcej o tym artykule<<)

Często staramy się używać już istniejących rozwiązań. Programowanie obiektowe wspiera to podejście w naturalny sposób przez dziedziczenie implementacji, co jednak nie zawsze jest nam na rękę, gdyż czasami chcielibyśmy tylko wykorzystać istniejące metody, bez całego balastu dziedziczenia. W tym artykule zaprezentuję przykładową implementację traitów w języku C# przy użyciu biblioteki Fody.

Adam Furmanek

Czytelny i wydajny – C++ XXI wieku (>>więcej o tym artykule<<)

Ostatnie lata to dla języka C++ czas istotnych zmian. C++ 11, który światło dzienne ujrzał w 2011 roku, był istnym trzęsieniem ziemi. Trzy lata później wprowadzono kolejne usprawnienia w C++14, a w 2017 roku spodziewane jest uchwalenie kolejnej iteracji języka (C++17) zawierającej jeszcze więcej małych, acz przydatnych zmian.

Paweł "KrzaQ" Zakrzewski

Haskell. Programowanie czysto funkcyjne

Popularność języków funkcyjnych stale rośnie. Paradygmat programowania funkcyjnego jest z powodzeniem adoptowany w językach obiektowych. Jeżeli na co dzień piszemy w C#, korzystamy z rozszerzeń Linq. Tworzone potoki wywołań i przekazywanie do nich funkcji anonimowych to przykład programowania funkcyjnego. JavaScript filtruje i mapuje kolekcje, pozwala przekazywać funkcje jako argumenty do innych funkcji. To jest programowanie funkcyjne. Kod jest krótki, czytelny i mniej podatny na błędy.

Paweł Wicher

PROGRAMOWANIE ROZWIĄZAŃ SERWEROWYCH

Automatyzacja środowiska w chmurze

Czy zastanawialiśmy się kiedyś, co czuje administrator, gdy po raz n-ty musi zainstalować system na serwerze i go skonfigurować? Pewnie wiemy i jeśli nie jesteśmy wyjątkowymi twardzielami, to zwykle manual w takiej sytuacji idzie na bok i zaczynamy konfigurować wszystko z pamięci – przecież tyle razy już to robiliśmy, że nie popełnimy błędu. W tym artykule postaram się przedstawić, jak ustrzec się przed tym problemem i uprzyjemnić sobie pracę.

Maciej Nabożny

PROGRAMOWANIE SYSTEMOWE

Programowanie w służbie medycyny. Zbieranie i analiza danych fizjologicznych człowieka przez sprzęt elektroniczny

Dzięki obecnemu postępowi technologicznemu praktycznie wszędzie możemy spotkać komputery – począwszy od urządzeń kuchennych, po samochody, inteligentne domy oraz Internet of Things. Maszyna jest w stanie zastąpić człowieka w bardzo wielu czynnościach. Jednak wciąż daleko robotom do naśladowania człowieka, dlatego że żywy organizm jest jednostką nieprzewidywalną i nieopisywalną przez istniejące schematy. A czy dałoby się stworzyć urządzenie zdolne reagować na fizjologiczne sygnały żywego organizmu?

Zyta Szpak

PROGRAMOWANIE APLIKACJI WEBOWYCH

Implementacja Single Sign-On w Symfony 3

Tworzenie zyskujących coraz większą popularność mikroserwisów często stanowi nie lada gratkę dla programisty, natomiast konieczność implementacji uwierzytelniania w każdym z nich już nie tak bardzo. W tym artykule postaramy się pokazać, jak przekształcić to niezbyt porywające i powtarzające się zadanie w ciekawy projekt, tworząc scentralizowany mikroserwis służący do uwierzytelniania użytkowników – Single Sign-On.

Tomasz Wójcik, Maciej Szkamruk

LABORATORIUM BOTTEGA

Co w pamięci .NET piszczy? (>>więcej o tym artykule<<)

Programiści i programistki .NET muszą dobrze poruszać się w temacie podstawowych bibliotek i składni języka C# (bądź innego przez siebie wybranego dostępnego na platformie .NET). To podstawa i nasz „chleb powszedni”. Z wiekiem, czy – jak kto woli – z doświadczeniem, przychodzi jednak często refleksja, że warto wiedzieć więcej. Jeśli ciekawią Was trochę wnętrza CLR (ang. Common Language Runtime), zapraszam do lektury. Uchylimy rąbka tajemnicy, jak .NET zarządza pamięcią.

Konrad Kokosa

LABORATORIUM NOKIA

Wdrożenie projektu laboratoryjnego w dużej firmie telekomunikacyjnej – jak to się robi w Nokia

Projektując nowe laboratorium na potrzeby badań i rozwoju (ang. Research & Development) technologii telekomunikacyjnych, należy wziąć pod uwagę bardzo wiele aspektów. Tylko dokładne zebranie wymagań i potrzeb umożliwi przygotowanie planu, a następnie zaprojektowanie wydajnego i wysoce dostępnego laboratorium. Pozwoli to na pracę nad najbardziej innowacyjnymi technologiami w branży i szybki rozwój biznesu, a o to nam przecież chodzi.

Michał Budziński, Łukasz Dubiel, Piotr Kamola, Bogdan Madeyski, Łukasz Michna, Tomasz Spałek

KLUB LIDERA IT

A3 thinking w rozwiązywaniu problemów technicznych

Wiele zespołów mierzy się z problemami architektonicznymi w swoich systemach. Co może być zaskakujące, wielokrotnie wcale nie o to chodzi, że nie wiadomo, jak go rozwiązać, tylko że pomysłów jest zbyt wiele lub wydają się zbyt pracochłonne, aby udało się je przeprowadzić. Tego typu problemy czekają nierozwiązane przez wiele miesięcy, bo zespół nie może się dogadać. A3 thinking to bardzo przydatna metoda, która krok po kroku prowadzi do rozwiązania, które jest dużo prostsze niż na początku się wydawało.

Mariusz Sieraczkiewicz

STREFA CTF

CSAW 2016 Quals – (Still) Broken Box

CSAW to jedne z największych zawodów CTF odbywających się online, organizowane w ramach konferencji Computer Security Awareness Week na Uniwersytecie Nowojorskim. W tym roku udział wzięły 1274 ekipy, zwyciężyła amerykańska drużyna PPP, a my zakończyliśmy zmagania na pozycji 7., będąc tym samym najwyżej sklasyfikowanym polskim zespołem. Postanowiliśmy podzielić się z czytelnikami rozwiązaniami dwóch interesujących zadań z dziedziny kryptografii asymetrycznej. Są one o tyle ciekawe, że sam algorytm został bezbłędnie zaimplementowany, a wektor ataku stanowiły symulowane błędy sprzętowe, możliwe do wywołania także w realnej sytuacji.

Stanisław Podgórski, Jarosław Jedynak

PLANETA IT

Krótki kurs języka angielskiego dla programistów

W poprzednim numerze napisałem, dlaczego moim zdaniem znajomość języka angielskiego to dla programisty sprawa fundamentalna. Wspomniałem też o kursie języka angielskiego dla programistów. W tym numerze natomiast przedstawiam podstawowe założenia, jakie moim zdaniem powinien spełniać dobry kurs.

Łukasz Piwko

KLUB DOBREJ KSIĄŻKI

Algorytmy. Wydanie IV

Rafał Kocisz