W ostatnim poście napisałem kiedy warto korzystać z strong-name. Jeśli ktoś uważnie prześledził screen’y dołączone do postu, być może dostrzegł, że jest tam opcja taka jak “Delayed Signing”. Do czego to służy? Sprawa jest bardzo prosta. Delayed signing po prostu nie używa klucza prywatnego. Taka biblioteka nie zawiera więc poprawnego podpisu cyfrowego a w miejsce jego zawiera same zera. Klucz publiczny z kolei jest wstawiany do biblioteki z tym, że nie jest liczony jej hash. Integralność zatem jest nie...
Programując pod Sharepointa czy inne tego typu badziewie musimy podpisywać nasze assemblies i wrzucać je do GACa. Już dwa razy mnie to "ugryzło" i straciłem w sumie dobre kilka godzin na diagnostykę poniższego scenariusza: 1) piszę testy do funkcjonalności zawartej w podpisanej dllce 2) koduję implementację w tejże dllce 3) uruchamiam testy 4) dostaję wyjątek TypeLoadException czy coś innego w ten deseń mówiącego, że w testowanej dllce nie ma kodu który... przecież tam jest bo dopiero co go napisałem!
Niniejsze rozważania zacznę od następującej anegdoty, która doskonale oddaje ich sedno. Pewna mała dziewczynka przyglądała się mamie przygotowującej pieczeń: - Mamo, dlaczego gdy robisz pieczeń, to zawsze odcinasz końcówki mięsa i wkładasz je po bokach brytfanny? - Bo tak się piecze kochanie. - Ale dlaczego tak się piecze? - Końcówki obcina się, aby mięso lepiej się upiekło. - Mamo, ale przecież i bez tego mięso by się upiekło. - Córeczko, twoja babcia tak piekła, ciocia tak piecze i ...
Sztuka programowania 4628 dni, 13 godzin, 27 minut temu 163 źrodło rozwiń
Jasna polityka prywatności jest bardzo ważnym elementem aplikacji Metro. Microsoft zwraca na to uwagę podczas certyfikacji aplikacji wiec poniżej kilka słów o tym co, gdzie i jak.
Windows Phone jako jedyna platforma umożliwia tworzenie aplikacji z tzw. Trial‘em. Wiem, ktoś może powiedzieć, że przecież w AppStore czy Android Market też są aplikacje płatne i darmowe. Czym więc różni się Windows Phone? Tym, że możemy stworzyć jedną aplikację, która będzie jednocześnie wersją Trial i pełną, a Windows Phone Marketplace automatycznie zadba o procedurę kupna i podniesienia wersji z darmowej na pełną. W tym poście opiszę moje podejście do tego tematu.
Mobile development 4629 dni, 14 godzin, 2 minuty temu 75 źrodło rozwiń
Zapewne każdy zna podstawowe gesty ekranów dotykowych. Wiemy też, że każdy telefon z Windows Phone 7 musi spełniać kilka podstawowych wymagań w tej dziedzinie (np. obsługa co najmniej 4 punktów dotyku). Co więcej, w SDK (dokładnie w XNA Framework) znajdziemy wbudowana obsługę pewnych gestów (np. Tap, FreeDrag, DoubleTap, Vertical/HorizontalDrag, Pinch itd). Ale jeśli to dla nas za mało to zakłwsze możemy “zejść” na niższy poziom API i tworzyć własne gesty.
Mobile development 4629 dni, 14 godzin, 2 minuty temu 49 źrodło rozwiń
Nie wiem czy jest polski odpowiednik strong-named(SN) wiec będę używał nazwy angielskiej albo skrótu SN. Do zrozumienia tego wpisu niezbędna jest podstawowa wiedza o asymetrycznych algorytmach szyfrowania (RSA), podpisie cyfrowym , kluczu prywatnym, publicznym oraz zasadzie działania funkcji haszującej. Nie będę tego omawiał w poście, zachęcam więc do zapoznania się na własną rękę jeśli któreś z tych pojęć jest niezrozumiałe. SN to przede wszystkim sposób na unikalne identyfikowanie bibliotek. Przed poj...
W dzisiejszym temacie poruszę pewien problem na jaki można natknąć się podczas używania kolekcji obiektów typu wartościowego. Aby pokazać o co dokładnie chodzi zacznijmy od zdefiniowania przykładowej klasy opisującej prostokąt.
Sztuka programowania 4631 dni, 5 minut temu 323 źrodło rozwiń
Uczepiłem się ostatnimi czasy tego wzorca. Uczepiłem się na tyle, że w trakcie przygotowań jest mój autorski framework (może trochę za dużo powiedziane). Jednak nie o tym będzie w tym artykule. W czasie prac nad nową aplikacją na Windows Phone napotkałem pewne kłopoty. Jak to w MVVM, wywoływanie określonych zachowań interfejsu we View-Model zawsze stawia pewne znaki zapytania. Tym razem miałem do wyświetlenia różne komunikat...
Silverlight 4633 dni, 8 minut temu 387 źrodło rozwiń
StorageFolder & StorageFile API Dziś zajmę się częścią WinRT odpowiedzialną za obsługę plików i folderów. W tym artykule skupie się na dwóch klasach mianowicie StorageFolder i StorageFile które służą do operacji na plikach i folderach.Wybieranie folderów Zacznę od klasy KnownFolders, która służy do określenia miejsca możemy wybrać z kilki podstawowych bibliotek takich jak:Documents LibraryHome GroupMedia Server DevicesMusic LibraryPictures LibraryRemovable DevicesVideos Library Te typy zwracają ...
Dziś podstawy języka c#. Wszyscy znają modyfikatory public, protected, private i chętnie z nich korzystają. Modyfikator protected internal jest zdecydowanie mniej popularny a scenariusze użycia jeszcze rzadziej są prawidłowo identyfikowane. Jak sama nazwa mówi protected internal składa się z dwóch poziomów dostępności. W obrębie tego samego assembly zachowuje się jak czysty internal i mamy dostęp do pola tak jakby było one public. Załóżmy, że projekt składa się z dwóch bibliotek. W bibliotece numer A d...
Sztuka programowania 4634 dni, 16 godzin, 52 minuty temu 219 źrodło rozwiń
Dostałem NDepend4 w zamian za jego opis :) Nie muszę o nim mówić w samych słodkich komentarzach, także można wpis czytać do końca. NDepend służy to statycznej analizy kodu napisanego w .NET. Potrafi ocenić kod po wieloma względami, np: ze względu na skomplikowanie, ilość linii kod czy instrukcji IL, ilość zmiennych, łatwość modyfikacji, może zasugerować zmian typów z referencyjnych na wartościowe (ref type --> value type). Sama instalacja jest banalnie prosta, ściągamy paczkę ze strony, rozpakowujemy ...
W dwóch poprzednich tematach poświęconych Integration Services przedstawiłem wykorzystanie Script Component do tworzenia własnego źródła danych oraz ich transformacji. W dzisiejszym wpisie omówię jego ostatnie zastosowanie – implementację własnego zapisu danych.
W jednej z aplikacji pojawiło się wymaganie: dodać windows authentication. Nic prostszego! Zmiana na IIS, dodanie w web.config, i działa, prawda? Ano nieprawda, jeśli aplikacja stworzona jest w MVC 3.
Żyjemy teraz w ciekawym momencie roku, kiedy to Windows 8 uzyskuje status RTM, a za nim inne produkty jak np. Visual Studio 2012, a dodatkowo mamy też SQL-a 2012, który status RTM osiągnął już na przełomie marca i kwietnia tego roku. Wielu developerów zapewne będzie robiło reinstalacje, będzie po kolei instalowało aplikacje niezbędne do pracy, a później np. mogą zobaczyć w SQL Server Configuration Manager coś takiego: Najprościej jest pamiętać aby podczas nowej instancji wykonywać ją wg poniższej kole...
W ostatnim poście pisałem o barierze jako rozwiązaniu na uniknięcie problemów z związanych z optymalizacją dokonywaną przez CPU (re-ordering). Kilka postów wcześniej pisałem z kolei o buforowaniu danych i słowie kluczowym volatile. Jeśli nie wiedzie co to jest MemoryBarrier oraz Volatile zachęcam do przeczytania tych wpisów najpierw – bez nich dzisiejszy post będzie kompletnie niezrozumiały. Wiemy, że caching oraz re-ordering może na niektórych architekturach spowodować trudne w analizie błędy. Dziś chc...
Sztuka programowania 4637 dni, 38 minut temu 81 źrodło rozwiń
Nie, to nie będzie ogłoszenie w którym będę poszukiwał programisty. Wpis ten jednak będzie traktował o zatrudnianiu tychże. Ostatnio coraz częściej ocieram się o jakieś oferty pracy i naszło mnie kilka przemyśleń, którymi chciałbym się tu podzielić. Od razu zastrzegę, że są to tylko i wyłącznie moje opinie, a że za wyrocznię rynku się nie mam, mogą się kompletnie nie zgadzać z tym co mają do powiedzenia moi koledzy (i koleżanki?) programiści. Oferta ofercie nie równa Wiadomo, że ile firm tyle...
1 Sierpnia to bardzo ważny dzień dla firmy Microsoft. Dzisiaj, a właściwie godzinę temu, Windows 8 oraz Windows Server 2012 otrzymały status RTM czyli Release To Manufacture. RTM oznacza tyle, że produkty zostały ukończony. Do RTM-a nie dodaje się poprawek, nie wprowadza się zmian. RTM-a się tłoczy na płytach i wkłada do pudełek Windows 8 Jaki będzie żywot nowego systemu operacyjnego? Na pewno trudny, ponieważ jest bardzo rewolucyjny w swoim interfejsie użytkownika. Na pewno będzie wiele ...
W .NET istnieje metoda Thread.MemoryBarrier(). W użyciu jest bardzo prosta – nie wymaga przekazania żadnych parametrów. Strona teoretyczna jest jednak bardziej skomplikowana. Przed wyjaśnieniem czym jest Memory Barrier w świecie współbieżnym musimy zrozumieć jak wykonywane są instrukcje przez procesor. Załóżmy, że mamy następujące operacje:a = b +1 c = a +1 d = e +1; W jakiej kolejności zostaną wykonane powyższe operacje? Naturalne wydaje się, że procesor wykona je po kolei. Jednak ze względu na różn...
Sztuka programowania 4640 dni, 6 godzin, 29 minut temu 134 źrodło rozwiń
Tips & Tricks–handling the virtual keyboard Jakiś czas temu pokazałem jak można utworzyć w łatwy sposób pływające okno. Jednak w przypadku, jeśli takie okno jest używane do wprowadzania danych należy rozważyć obsługę wirtualnej klawiatury, aby menu użytkowania przesunęło się do góry. WinRT posiada odpowiednie zdarzenie do tego celu.Windows.UI.ViewManagement.InputPane.GetForCurrentView().Showing Natomiast kod do unoszenia menu nad wirtualną klawiaturę prezentuje się następująco.int flyoutOffset =...