Upload
damir-arh
View
2.234
Download
2
Embed Size (px)
DESCRIPTION
A presentation about using existing .NET code in Metro applications for Windows 8
Citation preview
Mission Possible:Uporaba sedanje kode pri razvoju aplikacij „Metro“Damir ArhAdacta d.o.o.
Agenda
IzziviPristopi
Uporaba aplikacijskega strežnikaKnjižnica za „Metro“ profilKnjižnica za „Portable“ profilWindows Runtime komponenta
Dodatni viri
Izzivi
Ločen profil v ogrodju .NET za Windows 8 Metro aplikacijeUporaba „standardnih“ .NET knjižnic ne bo podprta
Uporaba aplikacijskega strežnika Večnivojska
arhitekturaUporaba obstoječe kode na aplikacijskem strežniku„Metro“ aplikacija kot tanki odjemalec
„Metro“ aplikacija
Aplikacijski strežnik
Podatkovni viri
Knjižnica za „Metro“ profil
Obstoječa koda se ovije v „Metro“ .NET knjižnicoPotrebna je prilagoditev kode tipom, ki so na voljoLočena koda ali pogojno prevajanje
„Metro“ .NET aplikacija
„Metro“ .NET knjižnica
„Metro“ profil v ogrodju .NET
„Metro“ profil je podmnožica .NET 4.5Odstranjeni številni tipi
Neuporabni v „Metro“ZastareliPodvojeniOvoji okrog Win32 API…
Metro
SL5WP7
Ogrodje .NET Windows Runtime
System.Windows Windows.UI.Xaml
System.Security.IsolatedStorage Windows.Storage.ApplicationData
System.Resources Windows.ApplicationModel.Resources
System.Net.Sockets Windows.Networking.Sockets
System.Net.WebClient Windows.Networking.BackgroundTransferSystem.Net.HttpClient
Tipi Windows Runtime
Tipi ogrodja .NETIzbor sprememb
ReflectionXMLSystem.DataThreadingZbirke
Vodnik za prenos kodehttp://msdn.microsoft.com/en-us/library/windows/apps/br230302%28v=VS.85%29.aspx
Preslikani tipi Windows RuntimeWindows Runtime Ogrodje .NET
HRESULT Exception
IAsyncOperation<T> Task<T>
IIterable<T> IEnumerable<T>
IVector<T> IList<T>
IVectorView<T> IReadOnlyList<T>
IMap<K,V> IDictionary<K,V>
IMapView<K,V> IReadOnlyDictionary<K,V>
Pomožni tipi za interoperabilnost
Prehajanje z uporabo razširitvenih metodIInputStream.AsStream()Stream.AsInputStream()Byte[].AsBuffer()IBuffer.TryGetUnderlyingData()
Windows Runtime Ogrodje .NET
IInputStreamIOutputStreamIRandomAccessStream
Stream
IBuffer Byte[]
Knjižnica za „portable“ profil
Presek razpoložljivih tipov v vseh podprtih profilihBinarna združljivost zgrajenih zbirov z vsemi profiliOmejen nabor razpoložljivih tipov
Windows Runtime komponenta
Možna uporaba iz vseh podprtih jezikov:
C# in Visual BasicC++Javascript
Datoteke WinMDPrenos podatkov prek meja jezikov ima svojo ceno
Omejitve javnega vmesnika
Dovoljeni so le Windows Runtime tipi
Struct lahko vsebuje le javna polja
Vsi tipi morajo biti „sealed“
Dovoljeni so le sistemski generični tipi
Dva možna pristopa
Projekcija
WinRT komponenta
Projekcija
WinRT komponenta
.NET knjižnica
Dodatni virihttp://channel9.msdn.com/Events/Build/Build2011
http://channel9.msdn.com/Events/BUILD/BUILD2011/PLAT-877Thttp://channel9.msdn.com/Events/BUILD/BUILD2011/TOOL-930Chttp://channel9.msdn.com/Events/BUILD/BUILD2011/TOOL-531T
http://msdn.microsoft.com/en-us/windows/apps
Zaključek
Uporaba obstoječe kode brez večjih posegov ni možnaTežavna predelava obstoječih aplikacijOmejitve vredne razmisleka pri načrtovanju novih rešitev
HVALA