18

Mission possible: Uporaba sedanje kode pri razvoju aplikacij "Metro"

Embed Size (px)

DESCRIPTION

A presentation about using existing .NET code in Metro applications for Windows 8

Citation preview

Page 1: Mission possible: Uporaba sedanje kode pri razvoju aplikacij "Metro"
Page 2: Mission possible: Uporaba sedanje kode pri razvoju aplikacij "Metro"

Mission Possible:Uporaba sedanje kode pri razvoju aplikacij „Metro“Damir ArhAdacta d.o.o.

Page 3: Mission possible: Uporaba sedanje kode pri razvoju aplikacij "Metro"

Agenda

IzziviPristopi

Uporaba aplikacijskega strežnikaKnjižnica za „Metro“ profilKnjižnica za „Portable“ profilWindows Runtime komponenta

Dodatni viri

Page 4: Mission possible: Uporaba sedanje kode pri razvoju aplikacij "Metro"

Izzivi

Ločen profil v ogrodju .NET za Windows 8 Metro aplikacijeUporaba „standardnih“ .NET knjižnic ne bo podprta

Page 5: Mission possible: Uporaba sedanje kode pri razvoju aplikacij "Metro"

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

Page 6: Mission possible: Uporaba sedanje kode pri razvoju aplikacij "Metro"

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

Page 7: Mission possible: Uporaba sedanje kode pri razvoju aplikacij "Metro"

„Metro“ profil v ogrodju .NET

„Metro“ profil je podmnožica .NET 4.5Odstranjeni številni tipi

Neuporabni v „Metro“ZastareliPodvojeniOvoji okrog Win32 API…

Metro

SL5WP7

Page 8: Mission possible: Uporaba sedanje kode pri razvoju aplikacij "Metro"

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

Page 10: Mission possible: Uporaba sedanje kode pri razvoju aplikacij "Metro"

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>

Page 11: Mission possible: Uporaba sedanje kode pri razvoju aplikacij "Metro"

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[]

Page 12: Mission possible: Uporaba sedanje kode pri razvoju aplikacij "Metro"

Knjižnica za „portable“ profil

Presek razpoložljivih tipov v vseh podprtih profilihBinarna združljivost zgrajenih zbirov z vsemi profiliOmejen nabor razpoložljivih tipov

Page 13: Mission possible: Uporaba sedanje kode pri razvoju aplikacij "Metro"

Windows Runtime komponenta

Možna uporaba iz vseh podprtih jezikov:

C# in Visual BasicC++Javascript

Datoteke WinMDPrenos podatkov prek meja jezikov ima svojo ceno

Page 14: Mission possible: Uporaba sedanje kode pri razvoju aplikacij "Metro"

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

Page 15: Mission possible: Uporaba sedanje kode pri razvoju aplikacij "Metro"

Dva možna pristopa

Projekcija

WinRT komponenta

Projekcija

WinRT komponenta

.NET knjižnica

Page 16: Mission possible: Uporaba sedanje kode pri razvoju aplikacij "Metro"

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

Page 17: Mission possible: Uporaba sedanje kode pri razvoju aplikacij "Metro"

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

Page 18: Mission possible: Uporaba sedanje kode pri razvoju aplikacij "Metro"

HVALA