Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Programowanie urządzeń mobilnych Bartłomiej Zass Microsoft.

Podobne prezentacje


Prezentacja na temat: "Programowanie urządzeń mobilnych Bartłomiej Zass Microsoft."— Zapis prezentacji:

1 Programowanie urządzeń mobilnych Bartłomiej Zass Microsoft

2 Aplikacje mobilne w HTML i JavaScript Aplikacje natywne Windows 8, Windows Phone 7 – krótkie przypomnienie Windows Phone 8 dla programistów Techniki współdzielenia kodu dla aplikacji natywnych Windows Phone 8, Windows 8 – podobieństwa i różnice Architektura aplikacji - MVVM i Portable Class Libraries Plan prezentacji

3

4

5 Dlaczego HTML i Javascript? Jedyny wspólny mianownik między platformami Przeglądarki internetowe w urządzeniach mobilnych Osadzone kontrolki przeglądarki w natywnych aplikacjach A może C++? Windows Phone 8 obsługuje C++ Objective-C to NIE C++ 79% of mobile developers report that they will integrate some HTML5 in their apps in 2012 Appcelerator/IDC – Q – Mobile Developer Report

6 Javascript dzisiaj Natywne aplikacje dla Windows 8 Gry – np. Cut The Rope, Angry Birds Office 2013, Sharepoint Node.js Cała masa bibliotek – nie tylko jQuery! Model-View-Whatever w Javascript np. Knockout, Angular, Backbone, Mustache Ciekawostki - LINQ w JS - implementacja Linux w JS

7 Nowy język autorstwa Andersa Hejlsberga (twórca C#) Nadzbiór Javascript Nie trzeba uczyć się nowej składni Silnie typowany Javascript Klasy, interfejsy, dziedziczenie, modyfikatory dostępu,... Częściowa zgodność z propozycją ECMAScript 6 Refactoring, wsparcie Visual Studio Kompilowany do Javascript! TypeScript

8 Demo TypeScript

9 Strategie - HTML 5 i aplikacje mobilne OS platform Przeglądarka obsługująca HTML 5 Mobilna strona Natywna platforma aplikacyjna Rozwiązania hybrydowe Cross- kompilacja Titanium (Appcelerator) … Frameworki Javascript Apache Cordova (PhoneGap) AppMobi … JQueryMobile SenchaTouch Jo Propulsion …

10 Demo jQuery Mobile

11 Dostęp do natywnych funkcji z poziomu JavaScript Inaczej niż w Windows 8 – opakowana kontrolka przeglądarki PhoneGap – popularna dystrybucja Apache Cordova Obecnie własnością Adobe PhoneGap Build Service Aplikacje mogą być zgłaszane do sklepów Windows Phone, Android, iOS, Symbian, BlackBerry,... Windows 8 póki co nie – może nie mieć sensu Windows Phone 8 – nadal ma zastosowanie, pełne wsparcie Apache Cordova

12 PhoneGap i Windows Phone

13 Demo PhoneGap i Windows Phone

14 Aplikacje natywne Windows 8 – krótkie przypomnienie Windows Phone

15 Platforma Windows 8 Windows Store Apps HTML JavaScript C C++ C# VB Desktop Apps Win32.NET / SL Internet Explorer Communication & Data Application Model Devices & Printing WinRT APIs Graphics & Media System Services JavaScript (Chakra) C C++ C# VB XAMLHTML / CSS View Model Controller Windows Core OS Services Core

16 Demo Windows 8 i Windows Phone 7

17 Windows Phone 8

18 wiele rdzeni procesora, nowy procesor graficzny, nowoczesna architektura, karty MicroSD, NFC, … Nowe telefony, nowe rozdzielczości, … WVGA 800 x :9 WXGA 1280 x :9 720p 1280 x :9

19 WVGA 480x Scale 720p 720x Scale WXGA 768x Scale 400 Logical 400 Physical 400 Logical 600 Physical 400 Logical 640 Physical 30 Logical 30 Physical 30 Logical 45 Physical 30 Logical 48 Physical 2 Logical 2 Physical 2 Logical 3 Physical 2 Logical 3 Physical ( Rounded)

20 Wspólne jądro systemu – Windows NT Te same komponenty systemowe Sieć, kernel, grafika, system plików, multimedia Wspólny model sterowników Obsługa wielu rdzeni w Windows Phone Solidna, nowoczesna platforma do przyszłej rozbudowy Ten sam CLR Nie oznacza to dokładnie tego samego API Obecnie - wiele podobieństw W przyszłości - na pewno bardzo dużo wspólnego kodu Windows Phone 8 i Windows 8

21 Windows Phone 8 API Aplikacje managed wykorzystujące WP 7.1, WP 8.0.NET oraz WinPRT API Natywne aplikacje wykorzystujące WinPRT i Win32 Gry wykorzystujące WP 7.1 XNA Framework Gry wykorzystujące Direct3D lub DirectX.NET API for Windows Phone Windows Phone Runtime Win32 & COM ManagedManaged & Native Native WP7.1 XAML & C#/VB WP8.0 XAML & C#/VB WP8.0 XAML & C++ WP8.0 Games DirectX/Direct 3D & C++ WP7.1 XNA & C#/VB WP8.0 XAML & C#/VB with Direct3D Graphics

22 Kod natywny (C++) Współdzielenie większości kodu Wspólny kod gier wykorzystujących DirectX / Direct3D HTML 5 np. PhoneGap, własne rozwiązanie hybrydowe lub strony mobilne Ten sam silnik Internet Explorer 10! C# / VB.NET Dla programistów WP 8 – wiele klas współdzielonych z WinRT Drobne różnice w podstawowym API (zwłaszcza widoki) Windows Phone 8 i Windows 8 – c.d.

23 Zarządzany kod Wszystkie API z Windows Phone 7.1 Przestrzenie nazw System oraz Microsoft.Phone Wiele nowych klas dodanych w WP 8, np.: Microsoft.Phone.Wallet Microsoft.Phone.Tasks.ShareMediaTask Microsoft.Phone.Tasks.MapsTask Microsoft.Phone.Storage.ExternalStorage Microsoft.Phone.Networking.Voip ….NET API for Windows Phone

24 Podzbiór pełnego WinRT + dodatki specyficzne dla telefonu Windows (Phone) Runtime zaimplementowane w C++ Projekcje do C#, VB.NET, C++ Obecnie brak projekcji do HTML5/JavaScript Windows Phone Runtime API Pełny WinRT (ok. 11,000 obiektów) Podzbiór przeniesiony do Windows Phone Runtime (ok. 2,800 obiektów) Nowe dla Windows Phone Runtime (ok. 600 obiektów) Specyficzne dla Windows Phone (wybrane): Synteza i rozpoznawanie mowy VOIP Windows.Phone.PersonalInformation LockScreen,LockScreenManager Wszystkie i dodatkiWszystkie dodatki

25 Wspólne API dla WinRT i WinPRT Wybrane wspólne przestrzenie nazw i klasy Windows.ApplicationModel.Package Windows.ApplicationModel.Activation Windows.ApplicationModel.DataTransfer Windows.ApplicationModel.DataTransfer.DataTransferManager Windows.ApplicationModel.Store Windows.Devices.Geolocation Windows.Devices.Sensors.Accelerometer Windows.Devices.Sensors.Compass Windows.Devices.Sensors.Gyrometer Windows.Devices.Sensors.Inclinometer Windows.Foundation.IAsyncAction Windows.Foundation.IAsyncOperation(TResult) Windows.Graphics.Display Windows.Networking.Connectivity Windows.Networking.Proximity Windows.Networking.Sockets Windows.Storage Windows.Storage.Pickers Windows.System.Launcher Windows.System.Threading.Threadpool … Wszystkie

26 W kilku przypadkach, WinPRT API oferują podobne funkcjonalności do.NET API z WP 7.5, np.: Możemy skorzystać z dowolnego API Deweloperzy adresujący WP 7.1 oraz WP 8 będą preferowali.NET API Deweloperzy myślący o współdzieleniu kodu pomiędzy Windows Phone 8 i Windows 8 będą skłaniali się do WinPRT API Przypadki duplikacji w API.NET APIWindows Phone Runtime API System.IO.IsolatedStorageWindows.Storage System.NET.SocketsWindows.Networking.Sockets System.Threading.ThreadPoolWindows.System.Threading.ThreadPool Microsoft.Devices.SensorsWindows.Devices.Sensors

27 Oprócz.NET i WinPRT API, dostęp do niektórych Win32 API, np.: Winsock do niskopoziomowego oprogramowania połączeń Camera APIs dla aplikacji natywnych COM APIs takie jak CoInitializeEx, CoTaskMemAlloc, CoTaskMemFree, CreateFile2, ReadFile, WriteFile, HeapAlloc, CreateMutexExW, WaitForSingleObjectW, … Głównie dla programistów piszących w kodzie natywnym Możliwość dodania referencji w projekcie managed (rzadko potrzebne) Win32 i COM API

28 Co z aplikacjami na Windows Phone 7.x?

29 Aplikacje stworzone na WP 7.x będą działały na telefonach z systemem WP 8.0 Aplikacje WP 7.x na systemie WP 8.0 WP OS 7.1 app WP 8.0 Runtime/ Libraries bez rekompilacji WP OS 7.1 app +Quirks WP OS 8.0 app

30 Skąd wziąć narzędzia do programowania?

31 dev.windowsphone.com Twoje centrum dowodzenia aplikacjami

32 Nie jest wymagane do tworzenia aplikacji Jest wymagane do testowania aplikacji na urządzeniu i publikacji jej w Windows Phone Store Jak je otrzymać?: znajduje się w MSDN, studenci bezpłatnie poprzez Dreamspark, płacąc 99$ rocznie per programista. Konto deweloperskie

33 System operacyjny: Windows 8 x64 Hardware: zalecane 4GB RAM, 8GB wolnej przestrzeni dyskowej WP Emulator wymaga Second Level Address Translation (SLAT) Wymagania sprzętowe dla WP SDK 8.0

34 Z klawiatury: Dwa razy F12 Simulation Dashboard Lock the Screen na emulatorze

35 Dostępne w simulation dashboard Testowanie dla różnych warunków sieci Symulacja sieci

36 Na emulatorze Na urządzeniu Przyciski Win + power Zrzuty ekranu 36

37 Co nowego w Windows Phone 8?

38 Wydajność aplikacji Czas startu bardzo ważny z punktu widzenia użytkownika Facebook WP 7 – 12 sekund WP 8 – 4 sekundy Dlaczego? Zmiany w środowisku uruchomieniowym Usprawnienia CoreCLR Kompilowanie w chmurze Dual core > 1 ghz

39 Kompilowanie w chmurze CoreCLR dodaje wsparcie dla NGEN Czasochłonne na urządzeniu Po zgłoszeniu aplikacji do Windows Store automatyczny NGEN Nowe aplikacje Zgłaszamy XAP XAP aktualizowany – kod natywny Co z istniejącymi aplikacjami? Aplikacje WP 7.5 kompilowane przez NGEN dla WP 8 Oryginalny XAP pozostaje dla WP 7.x

40 Model aplikacji Użytkownicy oceniają aplikację na podstawie własnych doświadczeń 4 sekundy to wciąż długo, jeśli często uruchamiamy aplikację Za każdym razem wchodzenie do określonej sekcji aplikacji Fast Application Swithing – WP 7.x Przycisk wstecz Task switcher – wielu użytkowników nie wie o nim

41 Fast Application Resume Aplikacja może być wskrzeszana niezależnie od tego jak została uruchomiona Lista aplikacji Live Tile Toast Deep link Jeśli jest na stosie – przywracanie Jeśli nie ma jej na stosie – nowa instancja Podobnie jak w Windows 8

42 Włączanie Fast Application Resume

43 Kontrolki ProgressBar animuje się poza wątkiem UI Panorama, Pivot i LongListSelector przeniesione do ROM Mniejsze zużycie pamięci przez kontrolkę Panorama Poprawiony first touch experience Toolkit –

44 LongListSelector

45 Nowa kontrolka korzysta z technologii i zasobów Nokia Zawiera m.in.: Bazuje na wektorach cztery modele kartograficzne tryb jasny i ciemny informacje o ruchu, trasach itp. Nowa kontrolka do wyświetlania map

46 Bliźniacze do API w Windows 8 Windows Phone OS 7.1.NET Location API nadal jest wspierane Background task pobierający lokalizację urządzenia Tylko 1 agent Tylko kiedy aktywnie śledzi położenie Nowe API służące do lokalizacji

47 Jak włączyć?

48 Nowe wielkości i szablony kafelków W Windows Phone 8 możemy korzystać z trzech typów Tile: Flip – dwa rotujące obrazki (tożsame z WP 7.1 Tile) Iconic – sama pojedyncza ikona Cycle – rotacja do dziewięciu różnych obrazków

49 Użytkownik może dodać powiadomienia z naszej aplikacji (LockScreen Notification) Nasza aplikacja może zmienić tło zablokowanego ekranu (LockScreen Background) New Shell APIs ShellSetWallpaper to use a new image ShellWallpaperSchedule to download a single image from the internet on a specific interval (e.g., 30 mins, 1 hour, etc.) ShellWallpaperFolderSchedule to cycle through a set of image in apps isolated storage (e.g., a photo slideshow) based on number of views of the lock screen Dostęp do Lockscreen

50 SaveAppointmentTask ShareMediaTask MapDownloaderTask MapsTask MapsDirectionsTask Zestaw nowych launcherów

51 Voice Commands umożliwia uruchomienie aplikacji, lub jej konkretnej funkcji, za pomocą głosu, po przytrzymaniu przycisku Start Speech Recognition + Text-to-Speech API wspiera przekształcenie mowy w tekst i czytanie już zapisanego teksu Komendy głosowe i rozpoznawanie mowy

52 Portfel Możliwość zarządzania kartami i kuponami z poziomu własnej aplikacji Obsługa kart: kredytowych i debetowych, lojalnościowych, specjalnych ofert, Wsparcie dla tap to pay

53 Lenses = rozszerzenia do kamery oferujące nowe opcje, możemy tworzyć je sami i udostępniać użytkownikom Picture.GetPreviewImage() = miniaturka obrazka Integracja aplikacji z Photo Edit Picker lub rejestracja jako własny edytor Upload zdjęć w tle do zewnętrznych serwisów Zaawansowana kontrola (klasy PhotoCaptureDevice i AudioVideoCaptureDevice) Nowe możliwości aparatu fotograficznego i przetwarzania zdjęć

54 VoIP i wideo rozmowy API dostępne dla wszystkich deweloperów Rozmowy integrują się z systemem telefonu Aplikacje VoIP działają również w tle

55 Protokoły i asocjacje Własne schematy Rejestracja własnego URI dla aplikacji Np. skype:jankowalski – rozpoczyna konwersację Fb://profile/ – otwiera profil użytkownika Integracja z przeglądarką Integracja między aplikacjami Typy plików Zarejestruj aplikację dla danego formatu pliku

56 Loved the Purple Onion Peter Bergman Deep linking - przykład

57 Bluetooth API komunikacja aplikacja – aplikacja, komunikacja aplikacja – urządzenie Proximity API połączenie aplikacji z wykorzystaniem Bluetooth, ustanowenie połączenia Wi-Fi, Bluetooth lub Wi-Fi Direct pomiędzy aplikacją, a jej instancją działająca na innym urządzeniu, wysyłanie danych poprzez NFC, interakcję z tagami NFC Bluetooth i NFC

58 Windows.Networking Windows Phone Runtime API nowe API kompatybilne z Windows 8 Nasłuchiwanie przychodzących połączeń (Incoming Sockets) wspierane przez System.Net.Sockets i Windows.Networking.Sockets Wsparcie dla IPV6 Wsparcie dla Winsock API możliwość przenoszenia już istniejących bibliotek natywnych korzystających z tego API Możliwości sieciowe

59 Microsoft.Phone.Storage API umożliwia czytanie danych z karty MicroSD Użytkownik może zapisywać personalne dane i multimedia na karcie w telefonie Przechowywanie danych na kartach MicroSD Zdjęcia Muzyka Filmy Instalacja aplikacji

60 Baza danych SQL Server i Linq To SQL nadal obsługiwane Wiele zgłoszeń, że potrzebne są alternatywne rozwiązania Kompatybilność z innymi platformami SQLite

61 Dostęp do API umożliwiającego tworzenie, edycję, kasowanie, przeszukiwanie własnych typów kontaktów Możliwość automatycznej synchronizacji listy z listą wystawiona na własnym serwerze Dostęp read/write do własnych Dostęp readonly do pozostałych jeśli użytkownik wyraził zgodę (jak w Mango) Własna lista kontaktów

62 API do tworzenia aplikacji z katalogiem własnych produktów Microsoft zapewnia całe środowisko sprzedażowe Po stronie programisty pozostaje obsługa zakupionego przez użytkownika przedmiotu In-app Purchase = zakupy wewnątrz aplikacji

63 Enterprise Zarządzanie urządzeniami inTune, itp. Ustawianie i aktualizowanie polis Automatyczne aktualizowanie aplikacji Deployment Nie trzeba zgłaszać aplikacji do Windows Store Różne sposoby wdrażania (managed / unmanaged), web, , aplikacja

64 Tworzenie konta

65 Deployment – managed vs unmanaged FeatureManagedUnmanaged Enrollment methodSettings applet + MDM /browser Policy managementYesNo Number of enrollmentsLimited to 1Unlimited App install methodMDM/company hub /browser/company hub App inventoryMDMNo Silent app updatesMDMNo UnenrollRemote and localNo

66 Managed enrollment

67 Company Hub

68 Windows Phone i Windows 8

69 Wspólne API dla WinRT i WinPRT Wybrane wspólne przestrzenie nazw i klasy Windows.ApplicationModel.Package Windows.ApplicationModel.Activation Windows.ApplicationModel.DataTransfer Windows.ApplicationModel.DataTransfer.DataTransferManager Windows.ApplicationModel.Store Windows.Devices.Geolocation Windows.Devices.Sensors.Accelerometer Windows.Devices.Sensors.Compass Windows.Devices.Sensors.Gyrometer Windows.Devices.Sensors.Inclinometer Windows.Foundation.IAsyncAction Windows.Foundation.IAsyncOperation(TResult) Windows.Graphics.Display Windows.Networking.Connectivity Windows.Networking.Proximity Windows.Networking.Sockets Windows.Storage Windows.Storage.Pickers Windows.System.Launcher Windows.System.Threading.Threadpool … Wszystkie

70 W kilku przypadkach, WinPRT API oferują podobne funkcjonalności do.NET API z WP 7.5, np.: Możemy skorzystać z dowolnego API Deweloperzy adresujący WP 7.1 oraz WP 8 będą preferowali.NET API Deweloperzy myślący o współdzieleniu kodu pomiędzy Windows Phone 8 i Windows 8 będą skłaniali się do WinPRT API Przypadki duplikacji w API.NET APIWindows Phone Runtime API System.IO.IsolatedStorageWindows.Storage System.NET.SocketsWindows.Networking.Sockets System.Threading.ThreadPoolWindows.System.Threading.ThreadPool Microsoft.Devices.SensorsWindows.Devices.Sensors

71 Demo WinPRT i WinRT - podobieństwa

72 Namespacey XAML WP – xmlns:imgsch="clr-namespace:ImageSearch;assembly=…" W8 – xmlns:imgsch="using:ImageSearch" Event handlery WP – System.Windows.RoutedEventArgs W8 – Windows.UI.Xaml.RoutedEventArgs Nawigacja WP – NavigationService.Navigate(new Uri("/page.xaml?Id=5", UriKind.Relative)); W8 – Frame.Navigate(typeof(DetailsPage), e.ClickedItem); SQL CE Windows 8 - brak Wybrane różnice

73 Windows Phone 7 settings = IsolatedStorageSettings.ApplicationSettings; settings["exampleSetting"] = "Hello Phone"; Windows 8 settings = Windows.ApplicationData.Current.LocalSettings; container = settings.CreateContainer(main", ApplicationDataCreateDisposition.Always); settings.Containers["main"].Values["exampleSetting"] = "Hello Windows"; Roaming – tylko Windows 8 settings = ApplicationData.Current.RoamingSettings; Zapis ustawień

74 Kontrolki XAML Mapowanie kontrolek Np. Panorama, PivotNp. GridView, ListView Np. Grid, StackPanel, TextBox, ListBox, Button, itp.

75 Demo Z Windows Phone do Windows 8 - różnice

76 Współdzielenie elementów XAML Separacja logiki i UI – wzorzec Model-View-ViewModel Wspólna logika w Portable Class Libraries Dodawanie plików jako link Własne komponenty Windows Runtime (tylko WP 8) Kompilacja warunkowa + dyrektywy preprocesora Techniki współdzielenia kodu

77 Współdzielenie logiki – jak? Brak binarnej kompatybilności między projektami Silverlight, Windows Phone, Windows 8, WPF Osobne typy class library

78 Trudności w utrzymaniu...

79 Jedno źródło Jeden projekt Jedne binaria Wiele platform! Portable Class Libraries

80 Platform / feature matrix

81 Demo Portable Class Library

82 Model-View-ViewModel DataBindingCommands Messages View Service Events PropertyChanged

83 Demo Przyspieszony kurs podstaw MVVM

84 Architektura cross-platform Windows Store App Portable Class Library Windows Phone App

85 // W Portable Class Library public interface IFileStorage { Task SaveFileAsync(string filename, string contents); Task LoadFileAsync(string filename); } // W ViewModelu public void Save() { _fileStorage.SaveFileAsync(Filename, Contents); } public async void Load() { Contents = await _fileStorage.LoadFileAsync(Filename); } Abstrakcja – interfejs

86 Dodawanie plików jako link Również z Partial Classes...

87 Kompilacja warunkowa Nie w Portable Class Library W plikach XAML – nieobsługiwane Ostrożnie i z umiarem...

88 Demo Portable Class Libraries i MVVM

89 public abstract class ServiceBusAdapter { public static ServiceBusAdapter Current { get; set; } public abstract byte[] ComputeHmacSha256(byte[] secretKey, byte[] data); } Abstrakcja - klasa abstrakcyjna

90 // Windows Phone - implementacja public class PhoneServiceBusAdapter : ServiceBusAdapter { public override byte[] ComputeHmacSha256(byte[] secretKey, byte[] data) { using (var cryptoProvider = new HMACSHA256(secretKey)) { return cryptoProvider.ComputeHash(data); } // Windows 8 - implementacja public class MetroServiceBusAdapter : ServiceBusAdapter { private const string HmacSha256AlgorithmName = "HMAC_SHA256"; public override byte[] ComputeHmacSha256(byte[] secretKey, byte[] data) { var provider = MacAlgorithmProvider.OpenAlgorithm(HmacSha256AlgorithmName); //... return hashed.ToArray(); }

91 ServiceBusAdapter.Current = new PhoneServiceBusAdapter(); // Windows Phone startup ServiceBusAdapter.Current = new MetroServiceBusAdapter(); // Windows 8 startup // W Portable Class Library var adapter = ServiceBusAdapter.Current; byte[] signatureBytes = adapter.ComputeHmacSha256(issuerSecretBytes, Encoding.UTF8.GetBytes(token)); Wywoływanie kodu platform-specific

92 Kod specyficzny dla platformy Abstrakcje Klasy abstrakcyjne Interfejsy Przekazywanie zależności z kodu aplikacji Kontener IoC Service locator / platform abstraction layer public class ServiceLocator { public static IFileStorage FileStorage { get; set; } public static IPhotoChooser PhotoChooser { get; set; } }

93 // Rejestrowanie usługi – start aplikacji WP 7 _container.RegisterType (); // Rejestrowanie usługi – start aplikacji Win 8 _container.RegisterType (); // Rejestrowanie usługi – singleton _container.RegisterType ( new ContainerControlledLifetimeManager()); Dependency Injection - Unity

94 public class MyViewModel(IStateService stateService) { //... } // Wewnątrz Portable Class Library // Widok bindujemy (np. w XAML) do ServiceLocator.MainViewModel public class ServiceLocator { public static MyViewModel MainViewModel { get { // Automatyczne wstrzykiwanie zal. do konstruktora return container.Resolve (); } Dependency Injection – c.d.

95 Demo Windows Phone i Windows 8 + PCL – przykład zaawansowany

96 Xamarin Port Mono dla iOS (MonoTouch) i Android MvvmCross Framework MVVM dostarczany w postaci Portable Class Library Współdzielenie kodu ViewModeli, Modeli oraz usług między Windows Phone, WinRT, MonoTouch i Mono for Android Inne platformy?

97 Demo MVVMCross

98 HTML 5 (+ PhoneGap) Niski koszt wejścia Wiele platform Niższa wydajność i mniejsze możliwości Windows Phone 8 i Windows 8 Wiele współdzielonych elementów, ale też różnic MVVM i Portable Class Libraries Współdzielenie logiki Abstrakcje funkcjonalności platform-specific Podsumowanie

99 MVVM MVVM Light Toolkit portable forkportable fork MvvmCross IoC Autofac Ninject portable forkportable fork Microsoft.Composition (Lightweight MEF) Microsoft.Composition Other Json.NET Zasoby

100 MVVM Light toolkit (basics) MVVM Light toolkit (deep dive) Windows 8 and MVVM Light toolkit code-from-techdays-belgium-and-netherlands.aspx code-from-techdays-belgium-and-netherlands.aspx Caliburn.micro concepts Zasoby – c.d.

101 Daniel Plaisteds blog Portable Class Library MSDN documentation Portable Class Library overview blog post blogs.msdn.com/b/dotnet/archive/2012/07/06/targeting-multiple-platforms-with-portable-code- overview.aspx blogs.msdn.com/b/dotnet/archive/2012/07/06/targeting-multiple-platforms-with-portable-code- overview.aspx Create a continuous client using portable libraries msdn.microsoft.com/en-us/magazine/hh aspx MvvmCross slodge.blogspot.com/2012/05/portable-class-libraries-in-mvvmcross.html Portable Class Libraries on Channel 9 (lots of links in show notes) channel9.msdn.com/Shows/Visual-Studio-Toolbox/Visual-Studio-ToolboxPortable-Class-Libraries Zasoby – c.d.


Pobierz ppt "Programowanie urządzeń mobilnych Bartłomiej Zass Microsoft."

Podobne prezentacje


Reklamy Google