Przegląd technik współdzielenia kodu aplikacji między Windows Phone i Windows 8 (WinRT). Omawiane jest zarówno podejście opierające się o HTML i Javascript jak i aplikacje natywne (wzorzec MVVM, portable class libraries, wybrane praktyki architektoniczne i sztuczki w IDE).
infoShare 2013: Rafał Czupryński - Aplikacje na Windows Phone 8 - jak to ugryźć?Infoshare
Rafał Czupryński / Microsoft
Aplikacje na Windows Phone - jak to ugryźć?
Prezentacja z konferencji infoShare 2013
Presented at infoShare 2013 conference in Gdańsk, Poland.
Zdrowy styl życia 2013. Cyfrowy raport syndykatowy IRCenter
Pierwszy w Polsce raport oparty o aktywność Polaków w świecie cyfrowym – wypowiedziach w mediach społecznościowych, korzystaniu z aplikacji mobilnych wsparte badaniem kwestionariuszowym online.
"Średnie Kroczące i Oscylatory" to kolejna z cyklu prezentacji przeznaczonych dla osób początkujących na rynku FOREX.
Przedstawia ona podstawowe pojęcia związane z rynkiem walutowym takie jak: lot, pips, spread itp.
Inne prezentacje dla osób początkujących:
- Wprowadzenie do Analizy Technicznej
- Wprowadzenie do Analizy Fundamentalnej
- Świece japońskie
- Różne metody inwestycyjne
- Gotowe strategie
Strefa Forex to portal analityczno-edukacyjny dedykowany profesjonalnym inwestorom. Szkolenia, analizy, gotowe strategie. Wszystko o Rynku Forex.
Zapraszamy na:
strefaforex.pl
infoShare 2013: Rafał Czupryński - Aplikacje na Windows Phone 8 - jak to ugryźć?Infoshare
Rafał Czupryński / Microsoft
Aplikacje na Windows Phone - jak to ugryźć?
Prezentacja z konferencji infoShare 2013
Presented at infoShare 2013 conference in Gdańsk, Poland.
Zdrowy styl życia 2013. Cyfrowy raport syndykatowy IRCenter
Pierwszy w Polsce raport oparty o aktywność Polaków w świecie cyfrowym – wypowiedziach w mediach społecznościowych, korzystaniu z aplikacji mobilnych wsparte badaniem kwestionariuszowym online.
"Średnie Kroczące i Oscylatory" to kolejna z cyklu prezentacji przeznaczonych dla osób początkujących na rynku FOREX.
Przedstawia ona podstawowe pojęcia związane z rynkiem walutowym takie jak: lot, pips, spread itp.
Inne prezentacje dla osób początkujących:
- Wprowadzenie do Analizy Technicznej
- Wprowadzenie do Analizy Fundamentalnej
- Świece japońskie
- Różne metody inwestycyjne
- Gotowe strategie
Strefa Forex to portal analityczno-edukacyjny dedykowany profesjonalnym inwestorom. Szkolenia, analizy, gotowe strategie. Wszystko o Rynku Forex.
Zapraszamy na:
strefaforex.pl
Prezentacja przedstawiona przez Miguel Beleza podczas 55 Seminarium BRE-CASE: Portuguese Experience in Restructuring and Privatizing of Banks (27.06.2001)
Zobacz więcej na nasze stronie: http://www.case-research.eu/en/node/56492
Podręcznik pokazuje i objaśnia, jak zarządzać treściami multimedialnymi i jak odpowiednio dostosowywać tradycyjne techniki zarządzania wiedzą w kontekście multimedialnym.
Krzysztof Indyk: Jak przetwarzać duże ilości danych? Wprowadzenie do Hadoopa.GameDesire Academy
Celem prezentacji jest wprowadzenie do tematyki Big Data. Wyjaśnię tajemniczo brzmiące nazwy HDFS, Yarn czy Data Node i zaprezentuję fundament, na którym został zbudowany Hadoop - algorytm map reduce. Zaprezentuję także podstawowe narzędzia ekosystemu Hadoopa. W ostatniej części podpowiem, w jaki sposób rozpocząć zabawę z Hadoopem.
Visual Basic 2005 nie jest tak rewolucyjnym produktem, jak Visual Basic .NET. Opracowując wersję 2005, twórcy języka skoncentrowali się na usunięciu błędów i usterek oraz zwiększeniu komfortu pracy programisty. Narzędzia i kontrolki, w które wyposażono zarówno najnowszą wersję Visual Basica, jak i środowisko programistyczne Visual Studio 2005, pozwalają znacznie przyspieszyć pisanie kodu. Jednocześnie został zachowany dostęp do wszystkich możliwości platformy .NET.
Książka "Visual Basic 2005. Zapiski programisty" to zbiór notatek spisanych przez programistów analizujących tę wersję języka. Zawiera ćwiczenia ilustrujące nowe funkcje Visual Basica 2005, platformy .NET Framework 2.0 i środowiska programistycznego Visual Studio 2005. Programiści korzystający z wcześniejszych wersji tych narzędzi szybko opanują nowe funkcje, takie jak definiowanie klas generycznych czy korzystanie z obiektów My. Godne odnotowania jest także znaczne przyspieszenie i udoskonalenie technologii ASP.NET.
* Edycja kodu w Visual Studio 2005
* Tworzenie dokumentacji w formacie XML
* Korzystanie z obiektów My
* Definiowanie klas generycznych
* Tworzenie aplikacji dla środowiska Windows oraz aplikacji WWW
* Projektowanie formularzy
* Komunikacja z bazami danych
* Wdrażanie aplikacji za pomocą technologii ClickOnce
Dzięki tej książce najnowsza wersja Visual Basica odsłania swoje tajemnice.
Kolejna wersja popularnego języka PHP wniosła zupełnie nową jakość do tworzenia aplikacji internetowych. PHP5 to w pełni obiektowe środowisko, pozwalające na korzystanie z wszystkich nowoczesnych technologii sieciowych i budowanie wydajnych oraz, co najważniejsze, bezpiecznych systemów. Przed twórcami aplikacji otwarły się bramy do protokołu SOAP, usług sieciowych, ogromnych możliwości języka XML i znacznie wydajniejszych połączeń z bazami danych.
Książka "PHP5. Profesjonalne tworzenie oprogramowania" jest przeznaczona właśnie dla takich programistów -- tych, którzy opanowali poprzednie wersje PHP i chcą poznać możliwości, jakie oferuje jego najnowsze wcielenie. Przedstawia tajniki projektowania i programowania obiektowego, ze szczególnym uwzględnieniem stosowania wzorców projektowych i testowania za pomocą biblioteki PHPUnit. Opisuje możliwości zastosowania w aplikacjach PHP języka XML, protokołu SOAP i zaawansowanych technik operowania na bazach danych. Czytając ją, poznasz również metody automatycznego dokumentowania kodu oraz modelowania aplikacji za pomocą języka UML i dostępnych bezpłatnie narzędzi ArgoUML i Poseidon for UML.
* Klasy i obiekty
* Serializacja obiektów
* Mechanizmy dziedziczenia
* Korzystanie z biblioteki PHPUnit do testowania aplikacji
* Stosowanie wzorców projektowych
* Wzorce konstrukcyjne i strukturalne oraz wzorce zachowań
* Obsługa języka XML w PHP5
* Tworzenie usług sieciowych
* Wykorzystywanie możliwości rozszerzenia MySQL
* Komunikacja z bazami danych za pomocą Creole i Propel
* Tworzenie dokumentacji kodu z wykorzystaniem narzędzia phpDocumentator
* Modelowanie aplikacji w języku UML
Wykorzystaj najnowszą wersję PHP5do stworzenia szybkich i bezpiecznych aplikacji internetowych.
Półwysep Bałkański jest od XIX wieku miejscem licznych konfliktów, a zróżnicowania etniczne i kulturowe ludności, zamieszkującej tę część Europy powodują, że sytuacja geopolityczna nie została ustabilizowana do dziś.
Aplikacje mobilne tworzone w technologiach webowychTomasz Borowski
Android, iOS, Windows Phone... Czy zróżnicowanie platform i języków programowania musi być przeszkodą w tworzeniu aplikacji mobilnych? Na szczęście nie! Dzięki technologiom webowym możemy tworzyć oprogramowanie działające na wielu platformach, a posiadane doświadczenie w HTML i JavaScript może znacznie przyspieszyć pracę i ukończenie projektu. Podczas wystąpienia zostaną przedstawione dostępne narzędzia i biblioteki do tworzenia cross-platformowych aplikacji mobilnych.
Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?PHPCon Poland
Autor: Michał Żyliński
Projektujesz serwisy lub aplikacje internetowe i czujesz, że popadasz w rutynę? Zobacz, co może zaoferować Silverlight, ninja i czarny koń technologii RIA.
Prezentacja przedstawiona przez Miguel Beleza podczas 55 Seminarium BRE-CASE: Portuguese Experience in Restructuring and Privatizing of Banks (27.06.2001)
Zobacz więcej na nasze stronie: http://www.case-research.eu/en/node/56492
Podręcznik pokazuje i objaśnia, jak zarządzać treściami multimedialnymi i jak odpowiednio dostosowywać tradycyjne techniki zarządzania wiedzą w kontekście multimedialnym.
Krzysztof Indyk: Jak przetwarzać duże ilości danych? Wprowadzenie do Hadoopa.GameDesire Academy
Celem prezentacji jest wprowadzenie do tematyki Big Data. Wyjaśnię tajemniczo brzmiące nazwy HDFS, Yarn czy Data Node i zaprezentuję fundament, na którym został zbudowany Hadoop - algorytm map reduce. Zaprezentuję także podstawowe narzędzia ekosystemu Hadoopa. W ostatniej części podpowiem, w jaki sposób rozpocząć zabawę z Hadoopem.
Visual Basic 2005 nie jest tak rewolucyjnym produktem, jak Visual Basic .NET. Opracowując wersję 2005, twórcy języka skoncentrowali się na usunięciu błędów i usterek oraz zwiększeniu komfortu pracy programisty. Narzędzia i kontrolki, w które wyposażono zarówno najnowszą wersję Visual Basica, jak i środowisko programistyczne Visual Studio 2005, pozwalają znacznie przyspieszyć pisanie kodu. Jednocześnie został zachowany dostęp do wszystkich możliwości platformy .NET.
Książka "Visual Basic 2005. Zapiski programisty" to zbiór notatek spisanych przez programistów analizujących tę wersję języka. Zawiera ćwiczenia ilustrujące nowe funkcje Visual Basica 2005, platformy .NET Framework 2.0 i środowiska programistycznego Visual Studio 2005. Programiści korzystający z wcześniejszych wersji tych narzędzi szybko opanują nowe funkcje, takie jak definiowanie klas generycznych czy korzystanie z obiektów My. Godne odnotowania jest także znaczne przyspieszenie i udoskonalenie technologii ASP.NET.
* Edycja kodu w Visual Studio 2005
* Tworzenie dokumentacji w formacie XML
* Korzystanie z obiektów My
* Definiowanie klas generycznych
* Tworzenie aplikacji dla środowiska Windows oraz aplikacji WWW
* Projektowanie formularzy
* Komunikacja z bazami danych
* Wdrażanie aplikacji za pomocą technologii ClickOnce
Dzięki tej książce najnowsza wersja Visual Basica odsłania swoje tajemnice.
Kolejna wersja popularnego języka PHP wniosła zupełnie nową jakość do tworzenia aplikacji internetowych. PHP5 to w pełni obiektowe środowisko, pozwalające na korzystanie z wszystkich nowoczesnych technologii sieciowych i budowanie wydajnych oraz, co najważniejsze, bezpiecznych systemów. Przed twórcami aplikacji otwarły się bramy do protokołu SOAP, usług sieciowych, ogromnych możliwości języka XML i znacznie wydajniejszych połączeń z bazami danych.
Książka "PHP5. Profesjonalne tworzenie oprogramowania" jest przeznaczona właśnie dla takich programistów -- tych, którzy opanowali poprzednie wersje PHP i chcą poznać możliwości, jakie oferuje jego najnowsze wcielenie. Przedstawia tajniki projektowania i programowania obiektowego, ze szczególnym uwzględnieniem stosowania wzorców projektowych i testowania za pomocą biblioteki PHPUnit. Opisuje możliwości zastosowania w aplikacjach PHP języka XML, protokołu SOAP i zaawansowanych technik operowania na bazach danych. Czytając ją, poznasz również metody automatycznego dokumentowania kodu oraz modelowania aplikacji za pomocą języka UML i dostępnych bezpłatnie narzędzi ArgoUML i Poseidon for UML.
* Klasy i obiekty
* Serializacja obiektów
* Mechanizmy dziedziczenia
* Korzystanie z biblioteki PHPUnit do testowania aplikacji
* Stosowanie wzorców projektowych
* Wzorce konstrukcyjne i strukturalne oraz wzorce zachowań
* Obsługa języka XML w PHP5
* Tworzenie usług sieciowych
* Wykorzystywanie możliwości rozszerzenia MySQL
* Komunikacja z bazami danych za pomocą Creole i Propel
* Tworzenie dokumentacji kodu z wykorzystaniem narzędzia phpDocumentator
* Modelowanie aplikacji w języku UML
Wykorzystaj najnowszą wersję PHP5do stworzenia szybkich i bezpiecznych aplikacji internetowych.
Półwysep Bałkański jest od XIX wieku miejscem licznych konfliktów, a zróżnicowania etniczne i kulturowe ludności, zamieszkującej tę część Europy powodują, że sytuacja geopolityczna nie została ustabilizowana do dziś.
Aplikacje mobilne tworzone w technologiach webowychTomasz Borowski
Android, iOS, Windows Phone... Czy zróżnicowanie platform i języków programowania musi być przeszkodą w tworzeniu aplikacji mobilnych? Na szczęście nie! Dzięki technologiom webowym możemy tworzyć oprogramowanie działające na wielu platformach, a posiadane doświadczenie w HTML i JavaScript może znacznie przyspieszyć pracę i ukończenie projektu. Podczas wystąpienia zostaną przedstawione dostępne narzędzia i biblioteki do tworzenia cross-platformowych aplikacji mobilnych.
Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?PHPCon Poland
Autor: Michał Żyliński
Projektujesz serwisy lub aplikacje internetowe i czujesz, że popadasz w rutynę? Zobacz, co może zaoferować Silverlight, ninja i czarny koń technologii RIA.
Technologie mobilne w platformach edukacyjnych. Kosmikus, studium przypadkuMichal Lukaszewski
Prezentacja przygotowana na potrzeby cyklu Launch & Learn prowadzonego w Young Digital Planet. Autorzy: Sławek Rodak i Michał Łukaszewski (ja).
Prelekcja składała się z dwóch części:
1. Czego technologia oczekuje od biznesu aby przygotować dobry produkt uwzględniający urządzenia mobilne
2. Co technologia musi wiedzieć aby wesprzeć biznes w realizacji dobrego produktu.
Kosmikus, produkt YDP, jako studium przypadku - jakie technologie zostały wybrane i dlaczego, gdzie były kompromisy i dlaczego.
Przegląd najważniejszych technologii pozwalających zrealizować aplikacje dostępne na szerokim spektrum urządzeń.
Mnóstwo linków do źródeł, porównań.
Prezentacja do ściągnięcia również stąd:
http://sdrv.ms/MtH62k
W razie pytań, wątpliwości, chęci podyskutowania - zapraszm do kontaktu :)
O tworzeniu rozwiązań mobilnych z punktu widzenia front-end dewelopera. Omówienie istniejących rozwiązań oraz głębsza analiza biblioteki NativeScript wraz z demem.
Demo #1: https://github.com/pawelkondraciuk/nativescript-hello-world-demo-1
Demo #2: https://github.com/pawelkondraciuk/sample-groceries-demo-2
Jakie są trzy możliwości kodowania aplikacji mobilnych? Jakie są ich wady i zalety? Kiedy najlepiej sprawdzi się kodowanie natywne, kiedy wybrać aplikację hybrydową, kiedy z kolei postawić na aplikację przeglądarkową.
PHP i Microsoft - kto się lubi, ten się czubiPHPCon Poland
Autor: Michał Żyliński
Ja mówię, wy ziewacie – mam szczerą nadzieję, że nie skończy się to typową prezentacją sponsora. Postaram się pokazać gdzie w środku Microsoft spotkać można open source, przedstawić z grubsza aktualne projekty dotyczące bezpośrednio lub pośrednio PHP oraz zachęcić do (spontanicznych) pytań i dyskusji. Taka okazja nie zdarza się w końcu zbyt często!
2. Poznasz różne strategie pisania przenośnego kodu
dla smartfonów i tabletów (nie tylko Microsoft i nie tylko w C#!)
Zrozumiesz podobieństwa i różnice między platformami
Windows Phone 8 i Windows 8
Poznasz podstawy wzorca Model-View-ViewModel
Zastosujesz Portable Class Libraries do wyodrębnienia wspólnej
logiki
aplikacji Windows Phone i Windows 8
Cel sesji
3. Różne strategie pisania kodu przenośnego
HTML i JavaScript – jQuery Mobile, PhoneGap
C#
Windows Phone 8, Windows 8 – podobieństwa i różnice
Architektura aplikacji - MVVM i Portable Class Libraries
Plan prezentacji
4.
5.
6. 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 – Q1-2012 – Mobile Developer Report
7. 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
http://jscriptlinq.codeplex.com/ - LINQ w JS
http://bellard.org/jslinux/ - implementacja Linux w JS
8. 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
12. 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
15. Mimo wszystko większe możliwości
Lepsza integracja z urządzeniem
Większa wydajność niż PhoneGap
Wygodniejsze pisanie (subiektywne) i debugowanie
Decyzja na podstawie celu, budżetu, projektu, wiedzy
zespołu
Natywne aplikacje
16. 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
17. 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
Managed Managed &
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
18. 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.
19. 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
20. 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 dodatki
21. 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.DataTransferManag
er
• 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
22. 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 API Windows Phone Runtime API
System.IO.IsolatedStorage Windows.Storage
System.NET.Sockets Windows.Networking.Sockets
System.Threading.ThreadPool Windows.System.Threading.ThreadPool
Microsoft.Devices.Sensors Windows.Devices.Sensors
23. 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
29. 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
30. Współdzielenie logiki – jak?
Brak binarnej kompatybilności między projektami
Silverlight, Windows Phone, Windows 8, WPF
Osobne typy class library
42. public abstract class ServiceBusAdapter
{
public static ServiceBusAdapter Current
{
get;
set;
}
public abstract byte[] ComputeHmacSha256(byte[] secretKey, byte[] data);
}
Abstrakcja - klasa abstrakcyjna
43. // 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();
}
}
44. 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
45. 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; }
}
47. 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<MyViewModel>();
}
}
}
Dependency Injection – c.d.
49. 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?
51. HTML 5 (+ PhoneGap)
Niski koszt wejścia
Wiele platform
Niższa wydajność i mniejsze możliwości
MVVM i Portable Class Libraries
Współdzielenie logiki
Abstrakcje funkcjonalności platform-specific
Windows Phone 8 i Windows 8
Wiele współdzielonych elementów, ale też różnic
Podsumowanie
54. Daniel Plaisted’s blog
http://blogs.msdn.com/b/dsplaisted/archive/2012/08/27/how-to-make-portable-class-libraries-work-for-you.aspx
Portable Class Library MSDN documentation
http://msdn.microsoft.com/en-us/library/gg597391(v=vs.110)
Portable Class Library overview blog post
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/hh852593.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.