39
Programėlių kūrimo apžvalga Alan Mendelevič amCharts for WPF, Silverlight and Windows Phone 7 programuotojas AdDuplex įkūrėjas ailon @ailon.org http://devblog.ailon.org Twitter: @ailon

Lithuanian .NET User Group - Windows Phone 7 - Silverlight Development

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Lithuanian .NET User Group - Windows Phone 7 - Silverlight Development

Programėlių kūrimoapžvalga

Alan MendelevičamCharts for WPF, Silverlight and Windows Phone 7 programuotojasAdDuplex įkūrėjas

[email protected]://devblog.ailon.orgTwitter: @ailon

Page 2: Lithuanian .NET User Group - Windows Phone 7 - Silverlight Development

Šioje dalyje

• Programavimo platformų apžvalga• Įrankiai• Silverlight for Windows Phone

detaliau

Page 3: Lithuanian .NET User Group - Windows Phone 7 - Silverlight Development

Platformos

Aukštos greitaveikos žaidimų platforma

Greitas 2D ir 3D žaidimų kūrimas

Brandi plačiai naudojama technologija. Naudojama kuriant žaidimus Xbox 360, Windows, ir Zune

Šiuolaikiška vartotojo sąsajos kūrimo aplinka

Greitas įspūdingų programėlių kūrimas

Metro-stilizuoti vartotojosąsajos komponentai

500,000+ programuotojųpasaulyje

Page 4: Lithuanian .NET User Group - Windows Phone 7 - Silverlight Development

Įrankiai

• Expression Blend • Visual Studio

Page 5: Lithuanian .NET User Group - Windows Phone 7 - Silverlight Development

Įrankiai

• http://create.msdn.com– Visual Studio 2010 Express–Windows Phone Emulator– Silverlight– XNA Game Studio 4.0–Microsoft Expression Blend for Windows

Phone– .NET Framework 4

Page 6: Lithuanian .NET User Group - Windows Phone 7 - Silverlight Development

Silverlight programavimas Windows Phone

Page 7: Lithuanian .NET User Group - Windows Phone 7 - Silverlight Development

Aptarsime

• XAML• Data-Binding• Navigacija• Orientacija• Komponentai (Controls)• Launcher‘iai ir Chooser‘iai• Tombstoning

Page 8: Lithuanian .NET User Group - Windows Phone 7 - Silverlight Development

Silverlight 3+

• Silverlight 3 pagrindas• Plius specifiniai moduliai (telefono

funkcijoms, sensoriams ir t.t.)• XAML + C# (arba VB.NET)• Optimizuota veikimui mažuose

mažesnio galingumo įrenginiuose

Page 9: Lithuanian .NET User Group - Windows Phone 7 - Silverlight Development

XAML

• eXtensible Application Markup Language• XML pagrindu• Naudojama WPF ir Silverlight• Deklaratyviai aprašo vartotojo sąsają,

animacijas ir kt.

Page 10: Lithuanian .NET User Group - Windows Phone 7 - Silverlight Development

10

Standartiniai elementai

Page 11: Lithuanian .NET User Group - Windows Phone 7 - Silverlight Development

Temos

• Vartotojas gali keisti sistemos spalvas– Pasirinkti tamsų arba

šviesų foną– Pasirinkti „akcento“ spalvą

• Standartiniai Silverlight komponentai automatiškai prisitaiko prie temos

• Nustatyti stiliai

Page 12: Lithuanian .NET User Group - Windows Phone 7 - Silverlight Development

Data Binding

• Leidžia automatiškai „sujungti“ objektų laukus

• Padeda atskirti atsakomybes (dizainas/programavimas)

Page 13: Lithuanian .NET User Group - Windows Phone 7 - Silverlight Development

MVVM Pattern

• Model-View-ViewModel

• Atsakomybių atskirimas• Testability, Maintainability, Blendability• Populiariausios pagalbinės bibliotekos– MVVM Light Toolkit

http://mvvmlight.codeplex.com/– Caliburn.Micro http://caliburnmicro.codeplex.com/

View (XAML) View Model Model

Page 14: Lithuanian .NET User Group - Windows Phone 7 - Silverlight Development

DemoAutomatic Unit Converter

Model-View-ViewModel su MVVM Light Toolkit

Page 15: Lithuanian .NET User Group - Windows Phone 7 - Silverlight Development

Application Bar

• Naudokite AppBar vietoje nuosavos meniu sistemos

• Iki 4 mygtukų + papildomi punktai išskleidžiamame meniu

• Mygtukai tik pagrindiniams veiksmams

• Balta spalva permatomame fone be apskritimo

Page 16: Lithuanian .NET User Group - Windows Phone 7 - Silverlight Development

Application Bar XAML

Page 17: Lithuanian .NET User Group - Windows Phone 7 - Silverlight Development

17

Puslapių navigacija• Navigacija per WP7

programėles vykdoma puslapių pagrindu– Panašiai, kaip web puslapiai– Puslapiai identifikuojami URI

private void hyperlinkButton1_Click( object sender, RoutedEventArgs e){ NavigationService.Navigate( new Uri("/SecondPage.xaml", UriKind.RelativeOrAbsolute) );}

Page 18: Lithuanian .NET User Group - Windows Phone 7 - Silverlight Development

Mygtukas „Atgal“

• Grįžta į prieš tai buvusį puslapį– Vartotojo sąsaja neduplikuoja šio

funkcionalumo

• Galima keisti, kai grįžimas į prieš tai buvusį puslapį nėra logiška operacija– Pavyzdžiui „pop-up“ lango uždarymui– Negalima naudoti su grįžimu

nesusijusiems tikslams (pvz. šaudymui)

Page 19: Lithuanian .NET User Group - Windows Phone 7 - Silverlight Development

Orientacijos palaikymas

• Puslapiai gali būti vertikalūs, horizontalūs arba automatiškai keisti orientaciją

• Nustatoma per SupportedOrientations property• Jei nustatyta PortraitOrLandscape,

persiorientuoja automatiškai

Page 20: Lithuanian .NET User Group - Windows Phone 7 - Silverlight Development

Pivot ir Panorama

• Geriausias būdas pradėti naujas programėles

• Atitinka Metro rekomendacijas „iš dėžutės“

• Paskirsto informaciją lengvai suvirškinamomis porcijomis

Page 21: Lithuanian .NET User Group - Windows Phone 7 - Silverlight Development

21

Pivot

Page 22: Lithuanian .NET User Group - Windows Phone 7 - Silverlight Development

Pivot

• Geras būdas atvaizduoti skirtingus tos pačios informacijos pjūvius

• Arba skirtingą susijusią informaciją• Leidžia vartotojui sukoncentruoti dėmesį ir

tuo pačiu matyti susijusią informaciją

Page 23: Lithuanian .NET User Group - Windows Phone 7 - Silverlight Development

23

Panorama

Page 24: Lithuanian .NET User Group - Windows Phone 7 - Silverlight Development

Panorama

• Horizontali drobė• Lydi vartotoją link papildomo turinio• Pradinis kelių skirtingų krypčių lygis• Dažniausiai būna iki 4 „ekranų“

Page 25: Lithuanian .NET User Group - Windows Phone 7 - Silverlight Development

Pivot prieš Panorama

• Gali atvaizduoti daugiau turinio

• Palaiko programinį perjungimą

• LoadingPivotItem ir UnloadingPivotItem įvykiai leidžia atidėti turinio pakrovimą

• Efektyvesnis ekraninio ploto panaudojimas

• Leidžia kurti įspūdingesnes programėles

• Foniniai paveikslėliai automatiškai tvarkingai nukerpami ir suklijuojami

• Horizontalios PanoramaItem leidžia tvarkingai išdėstyti skirtingo pločio turinį

Pivot Panorama

Page 26: Lithuanian .NET User Group - Windows Phone 7 - Silverlight Development

Atsargiai

• Niekada nedėkite Panoramos į Pivot• Niekada nedėkite Pivot į Panoramą• Nenaudokite Pivot ir Panoramos

nuoseklaus interfeiso kūrimui• Nerekomenduojama į Pivot ar

Panoramą dėti įvedimo komponentų

Page 27: Lithuanian .NET User Group - Windows Phone 7 - Silverlight Development

Bing Maps

• Leidžia atvaizduoti žemėlapius

• Optimizuotas lietimui (pinch zoom ir t.t.)

• Galima dėlioti papildomus sluoksnius

Page 28: Lithuanian .NET User Group - Windows Phone 7 - Silverlight Development

Kiti komponentai

• Silverlight for Windows Phone Toolkit– http://silverlight.codeplex.com

• Telerik RadControls for Windows Phone– http://

www.telerik.com/products/windows-phone.aspx

• Mindscape Phone Elements– http://

www.mindscapehq.com/products/phone-elements

• amCharts Quick Charts for Windows Phone 7– http://wpf.amcharts.com/quick

• Daug kitų

Page 29: Lithuanian .NET User Group - Windows Phone 7 - Silverlight Development

Prizas!!!

Page 31: Lithuanian .NET User Group - Windows Phone 7 - Silverlight Development

Launcher‘iai ir Chooser‘iai

• Kiekviena programėlė vykdoma uždaroje „smėlio dėžutėje“, ir negali prieiti prie sisteminės informacijos ar leisti kitas programėles

• Launcher‘iai ir Chooser‘iai leidžia netiesioginį priėjimą prie šių galimybių

Page 32: Lithuanian .NET User Group - Windows Phone 7 - Silverlight Development

Launcher‘iai ir Chooser‘iai

Launcher• Paleidžia vieną iš

standartinių programėlių, per kurias vartotojas atlieka reikiamus veiksmus

• Niekas negražinama mūsų programėlei

• Pavyzdžiui PhoneCallTask

Chooser• Paleidžia vieną iš

standartinių programėlių, per kurias vartotojas atlieka reikiamus veiksmus

• Gražina rezultatą mūsų programėlei

• Pavyzdžiui PhotoChooserTask

Page 33: Lithuanian .NET User Group - Windows Phone 7 - Silverlight Development

Launchers & ChoosersLaunchers PhoneCallTask SearchTask SMSComposeTask WebBrowserTask EmailComposeTask MarketplaceDetailTask MarketplaceHubTask MarketplaceReviewTas

k MarketplaceSearchTask MediaPlayerLauncher

Choosers CameraCaptureTask EmailAddressChooserTa

sk PhoneNumberChooserT

ask PhotoChooserTask SaveEmailAddressTask SavePhoneNumberTask

Page 34: Lithuanian .NET User Group - Windows Phone 7 - Silverlight Development

Tombstoning

Running

Deactivated

Tombstoned (in most

cases)

Activated

Programėles procesas sustabdomas (dažniausiai)*

Išsaugoti būseną

Pakrauti būseną

Vartotojas grįžta ten, kur ir buvo

Press Start Open toast Lock screen

Page 35: Lithuanian .NET User Group - Windows Phone 7 - Silverlight Development

DemoAutomatic Unit Converter

Launcher‘iai, Tombstoning

Page 36: Lithuanian .NET User Group - Windows Phone 7 - Silverlight Development

Apibendrinant

• Programėlės kuriamos Silverlight arba XNA

• Naudojant Visual Studio ir Expression Blend

• Silverlight 3 + specifiniai moduliai

Page 37: Lithuanian .NET User Group - Windows Phone 7 - Silverlight Development

Papildoma informacija

• App Hub– http://create.msdn.com

• Programming Windows Phone by Charles Petzold– http://www.charlespetzold.com/phone/

• Jesse Liberty “Windows Phone from Scratch”– http

://jesseliberty.com/windows-from-scratchindex/

• Twitter - #wp7dev

Page 39: Lithuanian .NET User Group - Windows Phone 7 - Silverlight Development

Ačiū!