Shared ProjectNowość NR.1

Visual Studio przez lata rozwinęło się bardzo - na przestrzeni projektów Cross-platformowych.

Dzięki Portable Class Library tworzenie projektów, obsługujących wiele platform mobilnych, jak Android, iOS przy użyciu rozwiązania Xamiarin, jest teraz bardzo łatwe.

Na pewno wszystko jest teraz wygodniejsze w tych kwestiach, niż np. 3 lata temu.

Scalanie kodu z aplikacjami WPF, Windows Phone, Android, iOS, ASP.NET, itp. teraz jest bardzo łatwe.

Do arsenału doszło kolejne rozwiązanie nazywane Shared Project.

Początkowo rozwiązanie to miało nazwę Universal App. Jednak można je było tylko zastosować do projektów Windows Phone i Windows 8 (WinRT). Pojawiło się ono w Visual Studio 2013 Update 2.

Spodobało się to wielu, więc powstało rozwiązanie Shared Project.

Shared

Jak widzimy projekt Shared nie ma ikony “References”. Możemy do niego dodawać klasy, obrazki i inne pliki zasobów jak XML.

W zależności do jakiego projektu dodamy referencję Shared, nasze plik klas jak i pliki zasobów zostaną odpowiednio skompilowane. Typ projektu decyduje więc jak projekt Shared zostanie skompilowany.

Projekt Shared wydaje się być bardzo uproszczoną formą “Portable Class Library”.

Projekt Shared został stworzony z myślą o maksymalnej elastyczności. Elastyczność ta stawia pewne ograniczenia, jak chociażby brak możliwości dodania referencji i paczek NuGet.

SharedProject referencja dodanie

Gdy spróbujemy dodać referencje do projektu Shared zobaczymy nową zakładkę w “Reference Manager”.

SharedProject referencja

Projekt “Shared” też ma inną ikonę.

SharedProject ikona

Zdjęcia też mogą zostać dodane.

SharedProject

Później mogę je w XAML wykorzystać.

"<Grid>
    <Image Source="../AwesomeSharedProject/Lady.png" Margin="0,0,407,209" />
    <Image Source="../AwesomeSharedProject/Exper.png" Margin="115,0,292,209" />
</Grid>

image

W samym projekcie Shared możemy skorzystać z dyrektyw preprocesor.

public class Game
{
#if WPF
    public static int number = 12;
#endif
    
#if WindowsPhone
   public static int resource = 12;
#endif
}

Jeśli nie wiesz na czym one polegają, to pozwól, że wyjaśnię. Do projektu przykładowo WPF dopisujesz “Conditional compilation symbols” określenie WPF.

Teraz jeśli kompilator napotka na dyrektywę preprocesora if z klauzurą WPF, to wie, że do tego projektu, ten fragment kodu może zostać skompilowany.

preprocessor

Wewnątrz projektu Shared możesz też zobaczyć w Intellisense, jakie rzeczy nie są ogólnodostępne.

Game