skip to Main Content
WiX Toolset – Jak Zmienić Nazwę Pliku Wyjściowego, Aby Zawierał Informacje O Wersji

WiX Toolset – Jak zmienić nazwę pliku wyjściowego, aby zawierał informacje o wersji

Powiedzmy, że mamy projekt który tworzy nam instalator. Fajnie.

Projekt tworzy nam plik uruchomieniowy o nazwie MyInstaller.exe. Dobrze.

Wysyłamy taki plik naszej koleżance z pracy. Super.

Piszemy nowe funkcje i naprawiamy istniejące błędy. Extra.

Tworzymy instalator zawierający nową wersję programu. Bosko.

Musimy ręcznie zmienić nazwę z MyInstaller.exe na coś w stylu MyInstaller.1.1.exe. Smutek.

Nie róbimy rzeczy, które może za nas komputer zrobić.

Jak to naprawić smutek?

Czytaj resztę...
String Enums W TypeScript

String enums w TypeScript

Jak typ danych może wyrazić dokładnie 1000 słów? enum String.

String może zawierać wszystkie słowa świata. Kiedy chcemy ograniczyć się tylko do kilku w TypeScirpt mogliśmy wykorzystać union types

Teraz (od wersji 2.4 – która powinna się wyjść lada dzień) mamy do dyspozycji możliwość tworzenia typów wyliczeniowych, które jako wartość mogą przyjmować łańcuchy znaków.
Czytaj resztę...
WPF I MEF – Sterowanie Wyglądem Aplikacji W Zależności Od Posiadanych Zasobów.

WPF i MEF – sterowanie wyglądem aplikacji w zależności od posiadanych zasobów.

Jednym z fundamentów WPF’a są zasoby – Resources. Definiowane w ResourceDictionary czyli słowniku zasobów. Każdy element słownika posiada swój klucz, który używamy do pobrania zasobu „z bazy”.

Odwołanie do zasobu może odbyć się na dwa sposoby.

  • StaticResource – Wartość jest ustalona podczas załadowania XAML.
  • DynamicResource – Wartość jest ustalona w momencie, kiedy obiekt ma się pojawić.

To zachowanie DynamicResource możemy wykorzystać do wprowadzenia ciekawych rozwiązań.

Jeżeli DynamicResource odwołuje się do zasobu aplikacji, to może być on przykryty przez inny zasób o tej samej nazwie.

Jeżeli mamy kilku klientów, a każdy z nich chce innych kolorów w swojej aplikacji, możemy załatwić tą prośbę dołączając do binarek .dll z zasobami, które zmienią kolory w odpowiednich miejscach.

Przykładowa aplikacja ma na celu wyświetlać dwukolorową flagę.

polish_flag

Aplikacja zawiera swoje zasoby zdefiniowane w osobnej .DLL o nazwach MainResources (podstawowe zasoby aplikacji), ClientResources (zasoby zmienione na danego klienta).

Czytaj resztę...
Tymczasowe Sprawdzanie Typów W Kodzie JavaScript Dzięki Visual Studio Code Oraz TypeScript

Tymczasowe sprawdzanie typów w kodzie JavaScript dzięki Visual Studio Code oraz TypeScript

Programistyczny edytor Visual Studio Code, jest napisany w TypeScript, co więcej każda nowa wersja Visual Studio Code przychodzi razem z nową wersją kompilatora TypeScript. Tak się składa, że oba produkty Microsoftu są ze sobą dobrze powiązane.

Ostania aktualizacja Visual Studio Code w wersji 1.12 (kwiecień 2017), przychodzi z kompilatorem TypeScript 2.3. Ta wersja otrzymała możliwość sprawdzania typów w kodzie JavaScript poprzez przełącznik --checkJs.

Możesz sprawdzić poprawność typów w kodzie JavaScript tymczasowo. Jeżeli dodasz na początku pliku .js komentarz // @ts-check, wtedy kompilator TypeScript przejdzie po typach i podkreśli na czerwono błędy.

Czytaj resztę...
TypeScript 2.3 – Generatory

TypeScript 2.3 – Generatory

W TypeScript 2.3, który pojawi się w maju. Jedną z nowych możliwości, dostępnych w języku, będzie możliwość korzystania z generatorów.

TypeScript goni z zmianami w pojawiającymi się JavaScript. Jak TypeScript goni za zmianami to ja też muszę.

Generator to funkcja, która potrafi zwracać wiele wartości. Potrafi uwaga, uwaga generować je, na przykład na podstawie poprzednich wartości.

Klasycznie jak funkcja coś zwraca to funkcja razem z zwróconą wartością kończy swój żywot. W przypadku generatorów one giną, gdy:

  • Wykonywanie kodu dojdzie do klamry zamykającą funkcję
  • Generator wyrzuci wyjątek
  • Generator zostanie przerwany

Kod:

Czytaj resztę...
Zapisywanie Ustawień W Przeglądarce; Fasada Dla LocalStorage Lub SessionStorage

Zapisywanie ustawień w przeglądarce; fasada dla localStorage lub sessionStorage

Moja gra The Ship Game nie wymaga back-endu w postaci serwera bazą danych. Jak zapisać dane bez bazy danych? Można postawić na to co daje nam współczesna przeglądarka i jej JavaScriptowe obiekty localStorage oraz sessionStorage.

Gdy popatrzymy na interfejs obiektów typu Storage, czyli localStorage i sessionStorage to on wygląda on następująco.

Notacja z typami według TypeScriptu

  • length: number – właściwość tylko do odczytu. Zwraca ilość danych przechowywanych w Storage.
  • clear(): void – czyści cały Storage z danych.
  • key(index: number): string – Zwraca i-ty klucz z Storage.
  • getItem(keyName: string): string – Wyciąga wartość pod kluczem keyName.
  • setItem(keyName: string, keyValue: string): void – Zapisuje wartość keyValue pod kluczem keyName.

Fajny interfejs do zapisywania stringów do bazy. A co z obiektami? Jakbym chciał zapisać takie coś:

Czytaj resztę...
TsLint – Utrzymywanie Kodu W Jednym Stylu I Zapobieganie Bólowi Głowy

TsLint – utrzymywanie kodu w jednym stylu i zapobieganie bólowi głowy

TsLint to TypeScriptowa wersja JsLinta…

Linty to programy które sprawdzają twój kod pod względem:

  • Czytelności
  • Łatwość utrzymania
  • Błędy funkcjonalne

TsLint w projekcie TheShipGame jest uruchamiany przez WebPacka:

test oznacza, że jest dopasowany do rozszerzeń .ts oraz .tsx. .ts to rozszerzenie standardowe dla TypeScript, natomiast .tsx oznacza podobnie do .jsx pliki korzystające z rozszerzonej składni używanej np. przez bibliotekę React.

Czytaj resztę...
Back To Top