O projekcie Roslyn od dawna już słychać, ale jeszcze nigdy nie miałem okazji z niego poważnie korzystać, ani wspomnieć o tym na blogu. Czym jest więc Roslyn? W skrócie pisząc jest to “compiler as service”. Roslyn dostarcza API za pomocą, którego możemy komunikować się kompilatorem. Możemy zatem pisać programy, które rozpoznają kod (C#) i mogą go dynamicznie wykonywać. Innymi słowy, dzięki Roslyn jesteśmy w stanie załadować kod w formie czystego tekstu i w pamięci analizować go już jako strukturę dany...
W architekturze WinRT możemy korzystać z dwóch bardzo przyjemnych kontrolek do prezentacji danych - ListView oraz GridView. Obie te kontrolki mają duże możliwości konfiguracyjne, posiadają sporo zdarzeń i można je również fajnie ostylować. Jednym słowem jest naprawdę dobrze;-) Naszą piękną, idealistyczną sielankę może jednak w łatwy sposób zakłócić, pewien dość prozaiczny problem, który nazywa się nadmiar danych. Tego rodzaju sytuacja zasadniczo nie ma żadnych pozytywów. Nasza aplikacja pochłonie duże il...
Sztuka programowania 3434 dni, 10 godzin, 2 minuty temu 168 źrodło rozwiń
In this article we focus on sample service based on WCF (Windows Communication Foundation), as we will only try to build sample service with claims-based authentication and authorization. All technical aspects connected with security e.g. configuration, certificates, encryption, signature or CRL will be described in details in the next posts.
Architektura 3437 dni, 11 godzin, 47 minut temu 146 źrodło rozwiń
Bardzo często tworzymy osobne usługi, które dostarczają jakieś dane. Pisząc aplikacje ASP.NET Web nierzadko chcemy korzystać z zewnętrznych usług, zamiast hostować dane w tym samym projekcie. Niestety może to spowodować problemy, jeśli chcemy skonsumować usługę w JavaScript, a należy ona do innej domeny. Załóżmy, że mamy jakąś usługę REST. Dla testów posłużyłem się http://www.mocky.io. Polecam tą stronę, można generować tam własne “mocki”. Dla tego wpisu stworzyłem mock, który zwraca następującą treść ...
Programowanie rozproszone 3442 dni, 1 godzinę, 36 minut temu 189 źrodło rozwiń
Aplikacje na telefon pełnią różne funkcje, ale z założenia często są one mobilnym odpowiednikiem stron WWW. I choć w dzisiejszych czasach coraz więcej mamy w sieci stron responsywnych, to i tak komfort pracy z dedykowanym programem wciąż często bywa znacznie wyższy. Nie oznacza to oczywiście, że strony WWW na przeglądarce telefonu są czymś złym.. czasem jest to naprawdę dobra opcja na start. Okazuje się również, że dzięki RWD możliwe jest również łatwe osadzanie pewnych fragmentów witryn bezpośrednio w a...
Mobile development 3442 dni, 1 godzinę, 36 minut temu 214 źrodło rozwiń
Have you ever written a program with such a complex algorithm that despite of using all processor cores the implementation wasn’t efficient enough? If yes, this is the moment you should consider using a more efficient device than CPU.
Sztuka programowania 3443 dni, 10 godzin, 7 minut temu 209 źrodło rozwiń
Rynek aplikacji mobilnych rozwija się niezwykle dynamicznie w ostatnich latach. Programy na telefony dotykają dzisiaj naprawdę wielu ważnych i istotnych obszarów naszego codziennego życia. Coraz częściej tego rodzaju aplikacje funkcjonują w chmurze, dzięki czemu mamy łatwy dostęp do wszystkich niezbędnych nam informacji, niezależnie od tego gdzie jesteśmy i z jakiego urządzenia aktualnie korzystamy. Wykorzystanie chmury wiąże się najczęściej z użyciem odpowiedniego API, do którego podłączają się wszystki...
Mobile development 3449 dni, 11 godzin, 1 minutę temu 346 źrodło rozwiń
My motivation for writing this article is to show that even a small new feature can have impact on the overall site availability. You can try to use right technology. How to do this? The answer is as usual ‘it all depends’. What I would like to do, in this article, is not to provide the final answer, but to show you options, solutions and ideas for a given use case.
Dekorator to jeden se strukturalnych wzorców projektowych, dzięki któremu możemy wykorzystać kompozycję w alternatywie do dziedziczenia w celu rozszerzenia zachowania klasy. W przypadku dziedziczenia klasa rozszerzana jest w trakcie kompilacji w przeciwieństwie do dekoratorów, które rozszerzają klasy w trakcie działania programu. Wzorzec projektowy Dekorator pozwala na dynamiczne przydzielanie danemu obiektowi nowych zachowań. Dekoratory dają elastyczność podobną do tej, jaką daje dziedziczenie, o...
Sztuka programowania 3461 dni, 4 godziny, 31 minut temu 481 źrodło rozwiń
Ponad dwa lata temu polskim Internetem wstrząsnęła ustawa o ciasteczkach, która nakazuje właścicielom stron informować użytkowników, że na ich witrynie mogą być oni śledzeni za pomocą cookies. Denerwujące popupy i divy informujące o ciasteczkach, zaczęły wyrastać jak grzyby po deszczu. Nowa regulacja nazwała po imieniu to o czym wiedzieli wszyscy internauci - jesteśmy śledzeni. O ile jeszcze śledzenie zarobkowe może być denerwujące (ciekawe skąd cały Internet nagle wie, że szukałem przed chwilą wakacji?)...
Tag Helpers mają na celu ułatwić tworzenie widoków. Cel jest taki, aby widok jak najbardziej przypominał czysty plik HTML. Pierwszym etapem było wprowadzenie Razor, a teraz w MVC 6 mamy tzw. Tag Helper. W celu przetestowania tego samemu, należy zainstalować najpierw Visual Studio 2015. Zacznijmy od przykładu. Klasyczny sposób na definiowanie linku to...
Niedawno pojawiła się wersja RC VS 2015. Wraz z nią, dodano nowe narzędzie diagnostyczne. O performance hub pisałem już wielokrotnie. Visual Studio coraz więcej narzędzi zewnętrznych wbudowuje w IDE. Mamy zatem już do dyspozycji profilery jak i o RC, diagnozowanie ruchu sieciowego....
In the previous article basic information about authentication and authorization process on .Net has been presented. Security Token Service is an integral part of claim based approach. As we remember from the previous article, STS is responsible for handling user’s requests and creating tokens; it can also work in two modes: active and passive. In this article we focus on Active STS, as we will only try to build sample STS.
Architektura 3471 dni, 23 godziny, 10 minut temu 167 źrodło rozwiń
Microsoft od zawsze stawiał na kontrolki w swoich aplikacjach. Mieliśmy z nimi do czynienia w Windows Forms, ASP.NET, WPF, a także Silverlight. Nie mogło ich oczywiście zabraknąć również w aplikacjach uniwersalnych. Każda z kontrolek ma swój zestaw właściwości oraz zdarzeń, które z założenia mają zaspokajać podstawowe potrzeby użytkowników. W praktyce, zestaw ten często jest niewystarczający. Co zrobić w takiej sytuacji? Zamiast kombinować z istniejącymi właściwościami i metodami, możemy spróbować stworz...
Mobile development 3475 dni, 11 godzin, 8 minut temu 206 źrodło rozwiń
Enum jest bardzo pożyteczną konstrukcją, której używam praktycznie w każdym, nawet najmniejszym projekcie. Enumeracja ma praktycznie same zalety - przede wszystkim pozwala na definiowanie stałych wartości, które później można łatwo użyć w dowolnym miejscu w naszym kodzie. Jak na razie wszystko jest jasne i oczywiste. Mniej znaną właściwością enumów jest praca w trybie flagi, dzięki czemu enumeracja dostaje dodatkowego kopa;-) Przykład umieszczony w dalszej części tekstu pokaże jakie może to przynieść kor...
Sztuka programowania 3487 dni, 13 godzin, 41 minut temu 382 źrodło rozwiń
Dzisiaj ostatnia warstwa modelu, która zdecydowanie często jest pomijana w implementacjach REST. Moim zdaniem, w przypadku publicznych API jest bardzo ważna, szczególnie w środowisku mikro-serwisów, gdzie nawigacja jest utrudniona ze względu na liczbę usług. HATEOAS to skrót od Hypertext As The Engine Of Application State. Mechanizm dostarcza możliwość nawigacji przez zasoby bez wiedzy o konkretnych adresach URL. Załóżmy, że mamy bazę klientów w systemie i możemy w niej:Wylistować listę klientów.Zwróci...
W dwóch postach poruszałem już temat dokumentacji usług REST. Ręczne tworzenie plików JSON dla swagger jest dosyć czasochłonne i łatwo potem zapomnieć przy jakiś modyfikacjach o aktualizacji dokumentacji. Dla ASP.NET MVC WebAPI na szczęście jest Swashbuckle.
Wiadomo, że każdy projekcie są testy. W części z nich są testy jednostkowe, w innych są testy integracyjne, w innych testy programistyczne - programista klika i jak działa to działa, a w jeszcze innych test na produkcji u klienta razem z milionami użytkowników. Generalnie każdy jakieś test ma. Wiadomo jak jest w projektach komercyjnych, klient chce aplikację działająca, wykonaną z najnowszymi i najlepszymi technikami, najlepiej napisaną przez juniorów, bez testerów i PM...
Sztuka programowania 3494 dni, 22 godziny, 27 minut temu 284 źrodło rozwiń
Sporo w ostatnim czasie pisałem o wzorcach projektowych. Starałem się w miarę dokładnie zgłębić ten temat i po stworzeniu kilku tekstów z tego cyklu, naszło mnie na małą refleksję - wzorce projektowe są nierozerwalnie związane z polimorfizmem. Jeśli spojrzymy na poszczególne przypadki (zwłaszcza te z grupy konstrukcyjnych wzorców projektowych), to szybko przekonamy się, że elementem spójnym jest wspólny interfejs. Pojawia się on naprawdę w wielu wzorcach.
Sztuka programowania 3498 dni, 5 godzin, 25 minut temu 529 źrodło rozwiń
Każdy z nas jest choć trochę leniwy. Jedni troszkę mniej, inni troszkę bardziej. Ja na ten przykład czasem się rozpędzam i piszę kod, który potrzebuje. Potem o nim opowiadam, a potem ktoś pyta czemu nie skorzystałem z jakiejś tam gotowej biblioteki. Wiem, że każdy z nas należy do mensy i wie, że ten wpis nie wziął się z powietrza.