SlideShare ist ein Scribd-Unternehmen logo
1 von 67
Dovydas Navickas
dovydas.nav@gmail.com
http://linkd.in/dovydasnavickas
agenda
                              
o   introduction
o   metro style
o   silverlight development
o   phone development
o   the marketplace
about me
                                      
o   6 years of developing
o   4 years of C# experience
o   lecturer at “Prografika”
o   microsoft student partner
o   patogiau.lt

o   http://linkd.in/dovydasnavickas
introduction
features metro             tools       cloud          
o new platform
    o   based on familiar technologies and tools
o   multiple hardware vendors
    o   consistent baseline (cpu, resolution, etc.)
o   your chance to enter a brand new market!
introduction
features metro   tools   cloud     
METRO IS WINDOWS PHONE‟S DESIGN
LANGUAGE. IT‟S MODERN AND CLEAN.
IT‟S ABOUT TYPOGRAPHY AND CONTENT.

metro
        
metro
        
metro
principals                 
clean, light, open, fast
celebrate typography
alive in motion
content, not chrome
metro
app hubs   
introduction
features metro   tools    cloud         

 Phone Emulator
      Samples        Documentation
      Guides          Community
     Packaging and Verification Tools
introduction
features metro      tools    cloud        
    Notifications      App Deployment

      Location         Identity   Feeds
                        Social    Maps
SILVERLIGHT
silverlight
introduction                                        
o a subset of the .net framework and WPF
o first introduced as a browser plug-in
    o   .net runtime on multiple platforms (mac,
        windows)
o   currently targeted for:
    o   device apps (currently windows phones)
    o   client apps (emphasis on enterprise)
    o   rich media apps (such as streaming video)
o   reuse code for desktop, web and phone
    apps!
silverlight
principals       
o code + xaml
o controls
o layout
o data binding
o graphics
code + xaml
o   xaml is basically a declarative language for
                                                      
    object instantiation
o   xaml is great for UI development. it‟s:
    o   standard XML
    o   hierarchical
    o   extensible
    o   declarative
o   we can do most things both in xaml and in
    code, but you‟ll quickly find that xaml is much
    more convenient for some tasks
code + xaml
comparison
XAML
                                                     
<Grid x:Name="ContentPanel"
      Margin="12,0,12,0">
      <TextBlock Text="Hello, Windows Phone 7!"
                 Margin="6"
                 HorizontalAlignment="Center"
                 VerticalAlignment="Center" />
</Grid>

C#
var tb = new TextBlock();
tb.Text = "Hello, Windows Phone 7!";
tb.HorizontalAlignment = HorizontalAlignment.Left;
tb.VerticalAlignment = VerticalAlignment.Top;
tb.Margin = new Thickness(6);
ContentPanel.Children.Add(tb);
code + xaml
the visual tree                               
o controls contain other controls, and some
  controls are built using other controls
o this creates a hierarchical relationship
  between the controls which we call the
  visual tree
o when you write xaml, the structure of the
  visual tree is very clear
demo
hello, xaml
controls
           
controls
anatomy
o inherits from FrameworkElement
                                                   
o two main types:
    o   custom control – a reusable, templatable
        control (e.g. a button)
    o   user control – a way to modularize your
        application (e.g. employee view)
o   uses dependency properties and routed
    events
o   responds to input (touch, keyboard)
controls
dependency properties            
o extend CLR properties with:
  o   data binding
  o   change notification
  o   animation
  o   validation
  o   control-tree inheritance
controls
routed events                         
o extend CLR events
o can travel along the visual tree:
  o   bubbling or tunneling
controls
routed events
                            Root
                                                                           

            Element 1                     Element 2



        Element   Element          Element         Element
          1.1       1.2              2.1             2.2

                                      PreviewMouseDown on Root
                                      PreviewMouseDown on Element 1
                                      PreviewMouseDown on Element 1.2
                                      MouseDown (bubble) on Element 1.2
                                      MouseDown (bubble) on Element 1
                                      MouseDown (bubble) on Root
layout
basic properties
 Container
                                                                  
                       Vertical Alignment




                               Margin
 Horizontal
 Alignment                                  Padding


               {Min,
               Max}
                                 Element
              Height                           Render Transform



                           {Min, Max} Width
layout
panels                                      
o Grid
o StackPanel
o WrapPanel (*)
o Canvas
o DockPanel
o TabControl


* can be found in the silverlight toolkit
demo
layout with panels
controls
styles                                           
o defines a set of dependency properties and
  values
o similar to CSS in HTML
o provides a great way to control the looks of
  your app from a central location
controls
templates                                        
o completely customize appearance of
  controls without having to write any code or
  inherit from the control
o all controls have default styles and
  templates
o template editing is easy with Expression
  Blend
demo
template editing in blend
data binding
o   flow data from a source to a target
                                                        
    o   source: any CLR object
    o   target: Dependency Property only
    o   modes: one way, two way
o   supports change notifications
    o   changes to a source object automatically sent
        to the UI
    o   both property and collection changes are
        supported
data binding
data templates                                             
o provide a visual representation of an object
    o   the default behavior if no template is specified
        is to display the Object.ToString() result
o   use bindings to display data
o   respond to changes using triggers
o   can only be written in xaml
data binding
collections                                      
o use ItemsControl whenever you need to
  bind to a collection
o provide an ItemTemplate to change the
  visuals of each item
o controls that inherit from ItemsControl:
  o   ListBox, ContextMenu, MenuItem, Panorama
demo
data binding
data binding
the mvvm pattern
o   designed specifically with           business logic and
                                                              
    WPF/Silverlight in mind      Model   data
o   relies on bindings to
    retrieve and set data from
    and to the view model                presentation logic
                                 View
o   uses commands to             Model
                                         and state
    perform operations on the
    view model
o   relies on notifications to           UI (and possibly
    communicate between the      View    some UI logic)
    layers
o   creates a data-driven UI
graphics
images                                                
o store images as resources or as content
    o   content is recommended
o   use the Image control to show them
o   use WritableBitmap to create images in
    runtime
    o   you can also use it to capture your screens
graphics
vectors                                                
o controls inheriting from Shape can be used
  to create 2D shapes
    o   Rectangle, Ellipse, Line, Polyline, Polygon,
        Path
o   Path is the most versatile, accepting a
    Geometry object which can represent any
    shape
o   it is easiest to create shapes using
    Expression Blend
graphics
transforms
o FrameworkElement has a RenderTransform
                                                   
  property which can be assigned to:
    o   TranslateTransform (move)
    o   ScaleTransform
    o   RotateTransform
    o   SkewTransform
    o   CompositeTransform (combine any of the
        above)
o   additionally, the Projection property allows
    creating 3D-like effects
graphics
animations
o   animate dependency property using a Timeline
                                                
    that fits the property type:
    o   DoubleAnimation, ColorAnimation, PointAnimation
o   use Storyboard to group a few animations
    together
o   use an easing function to make the animation
    look more “real” (e.g. to add elasticity)
o   it‟s easiest to create storyboards in xaml and in
    Expression Blend
demo
animations
resources
                                                     
o   silverlight toolkit
    http://silverlight.codeplex.com/

o   prism
    http://prism.codeplex.com/

o   project rosetta (tutorials)
    http://visitmix.com/labs/rosetta
o   Introducing Expression Blend 4
    http://expression.microsoft.com/en-us/ff624124
break
WINDOWS PHONE
windows phone
                              
o   application structure
o   phone-specific controls
o   sensors and services
application structure
files
o App.xaml: application entry point. contains
                                                  
   global resources, services, events (startup,
   shutdown, etc.) and instantiates
   PhoneApplicationFrame
o WMAppManifest.xml: contains application
   deployment information: capabilities, tasks,
   icon.
o MainPage.xaml: a PhoneApplicationPage
   that contains the main view of the
   application.
application structure
default control tree
o   PhoneApplicationFrame
                                                 
    o   PhoneApplicationPage
         o   Grid named “LayoutRoot”
         o   StackPanel named “TitlePanel”
               o   TextBlock named
                   “ApplicationTitle”
               o   TextBlock named “PageTitle”
         o   Grid named “ContentPanel”
               o   <your content goes here>



you can clear the entire page
content and write your own, but for
most apps it is recommended to
stay within the „metro‟ guidelines
application structure
navigation
o   web browser like: each page can be navigated
                                                
    to using the NavigationService by passing a
    URI
    o   the PhoneApplicationFrame can only display a
        single page at a time!
o   the hardware back button can be used to go
    back to the previous page on the stack
o   you can pass data to the page using URI query
    or by placing it in a globally known location
    (such as the App class)
application structure
tombstoning
o   windows phone can only run one application at a
                                                             
    time. so, each time you switch to another
    application, the current one gets terminated – i.e.
    tombstoned
o   your app will get tombstoned if:
    o   you click the start button
    o   you get a call while the app is running
    o   the phone gets locked
    o   the app uses a launcher or a chooser (e.g. use the
        camera)
o   you can use the app‟s Activated and Deactivated
    events to handle tombstoning
application structure
application bar
o preferred menu system for
                                     
  your apps
o up to 4 buttons,
  monochrome 62x62
  bitmaps
    o   add a button from Blend to
        get some default bitmaps
    o   get more from
        http://thenounproject.com
o   add up to 5 menu items
demo
application bar
phone controls
                                                   
o   most of silverlight‟s controls have been
    adjusted to windows phone, supporting
    touch and templated to the phone‟s theme
    o   while some controls such as ComboBox and
        ToolTip exist on the phone, their use is
        discouraged
phone controls
panorama and pivot
o   panoramic applications
                                
    offer a unique way to
    view controls, data,
    and services by using
    a long horizontal
    canvas that extends
    beyond the confines of
    the screen.
o   pivot can be used for
    filtering large datasets,
    viewing multiple data
    sets, or switching
    application views.
demo
panorama & pivot
sensors
accelerometer
o   measures acceleration forces such as gravity
                                                 
    or the forces caused by moving the sensor
    o   can tell the direction of the earth relative to the
        phone
o   use the Accelerometer class to access the
    sensor
    o   this sensor reports a constant value in the
        emulator, so it is recommended that you mock its
        values for testing
o   possible uses: responding to phone
    movements in games, bubble levels, etc.
sensors
geo-location                                      
o obtain the current location of the phone
  using the GeoCoordinateWatcher class
o you can get the latitude, longitude, altitude
  and current speed of the device
o this sensor is not available in the emulator.
  use the GpsEmulator project, available at
  app hub
o use the Bing maps control to display a map
  of the current location
sensors
camera                                     
o obtain photos from the camera using the
  CameraCaptureTask chooser
o get a Stream from the chooser and create a
  BitmapImage from it
o the emulator will provide a simple black-
  and-white image to capture
services
push notifications
o   allows applications to receive updates in the
                                                    
    background (app doesn‟t need to be running!)
o   three types of notifications:
    o   toast – when app is inactive
    o   tile (background, title, count)
    o   raw – directly to the app
o   you need to create a compatible web service
what‟s new
in version 7.5 (aka “mango”)
o   internet explorer 9
                                           
o   SQL CE: in-memory local SQL database
o   multi-tasking and live agents
o   silverlight 4
o   raw camera feed access
o   tcp/ip sockets
o   better developer tools
o   beta sdk shipping this month
resources
                                                            
o   Programming Windows Phone 7 by Charles
    Petzold (free ebook)
    http://www.charlespetzold.com/phone/

o   Windows Phone 7 Developer Guide
    http://msdn.microsoft.com/en-us/library/gg490765.aspx

o   quickstarts
    http://create.msdn.com/en-us/education/quickstarts

o   the noun project (icons for your app)
    http://thenounproject.com/
break
THE MARKETPLACE
marketplace
advantages                                          
o integrated into the phone
    o   use the zune software to browse on the PC
o   free or paid apps with a trial option
o   downloads, updates and payments are
    managed for you
o   free registration for students using
    DreamSpark
marketplace
steps                                      
 develop        submit          certify
 & debug        & validate       & sign




       windows phone
       application           marketplace
       deployment service
marketplace
best practices                                     
o make it appealing (use metro!)
o make it stable and reliable
o make it original and useful
o make it easy to use
o read the certification requirements carefully
  o   test your app as suggested to avoid common
      certification pitfalls
marketplace
in lithuania                                  
o currently not supported directly in App Hub
o use a third-party broker: appa market / yalla
  apps
o as a student, you get 100 credits which you
  can use to:
  o   upload apps
  o   unlock devices for development
resources
o   certification requirements
                                                                     
    http://msdn.microsoft.com/en-us/library/hh184843(v=VS.92).aspx
o   dreamspark
    https://www.dreamspark.com/
o   yalla apps
    http://www.yallaapps.com/
o   appa market
    http://appamarket.com/
o   best practices for application marketing
    http://create.msdn.com/en-
    US/home/about/app_submission_walkthrough_application_marketing
thank you!

Weitere ähnliche Inhalte

Andere mochten auch

Andere mochten auch (20)

Intro uml
Intro umlIntro uml
Intro uml
 
WP-What-Makes-QlikView-Unique_EN
WP-What-Makes-QlikView-Unique_ENWP-What-Makes-QlikView-Unique_EN
WP-What-Makes-QlikView-Unique_EN
 
Program keajaiban sedekah
Program keajaiban sedekahProgram keajaiban sedekah
Program keajaiban sedekah
 
Function
FunctionFunction
Function
 
Membuat mail server di ubuntu
Membuat mail server di ubuntuMembuat mail server di ubuntu
Membuat mail server di ubuntu
 
Engage at Melcrum Summit 2012
Engage at Melcrum Summit 2012Engage at Melcrum Summit 2012
Engage at Melcrum Summit 2012
 
Social media im patentwesen
Social media im patentwesenSocial media im patentwesen
Social media im patentwesen
 
5
55
5
 
Curso e proinfo
Curso e proinfoCurso e proinfo
Curso e proinfo
 
Dell case study 1
Dell case study 1Dell case study 1
Dell case study 1
 
Ipv6
Ipv6Ipv6
Ipv6
 
Curriculum Vitae of Jean Christophe ROBLES (latest update)
Curriculum Vitae of Jean Christophe ROBLES (latest update)Curriculum Vitae of Jean Christophe ROBLES (latest update)
Curriculum Vitae of Jean Christophe ROBLES (latest update)
 
Membangun web server,_e-mail_server_dan_ftp_server
Membangun web server,_e-mail_server_dan_ftp_serverMembangun web server,_e-mail_server_dan_ftp_server
Membangun web server,_e-mail_server_dan_ftp_server
 
Understanding the Social Shift: How State Associations of Private Postseconda...
Understanding the Social Shift: How State Associations of Private Postseconda...Understanding the Social Shift: How State Associations of Private Postseconda...
Understanding the Social Shift: How State Associations of Private Postseconda...
 
Data encryption standar
Data encryption standarData encryption standar
Data encryption standar
 
Contoh penggunaan-iptables
Contoh penggunaan-iptablesContoh penggunaan-iptables
Contoh penggunaan-iptables
 
Curso e proinfo
Curso e proinfoCurso e proinfo
Curso e proinfo
 
Resume of Jean Christophe ROBLES
Resume of Jean Christophe ROBLESResume of Jean Christophe ROBLES
Resume of Jean Christophe ROBLES
 
Psikologi perkembangan
Psikologi perkembanganPsikologi perkembangan
Psikologi perkembangan
 
compuhelp courses information
compuhelp courses informationcompuhelp courses information
compuhelp courses information
 

Ähnlich wie Windows phone and azure

Introduction to Honeycomb APIs - Android Developer Lab 2011 Q3
Introduction to Honeycomb APIs - Android Developer Lab 2011 Q3Introduction to Honeycomb APIs - Android Developer Lab 2011 Q3
Introduction to Honeycomb APIs - Android Developer Lab 2011 Q3Paris Android User Group
 
WPF - the future of GUI is near
WPF - the future of GUI is nearWPF - the future of GUI is near
WPF - the future of GUI is nearBartlomiej Filipek
 
02 wp7 building silverlight applications
02 wp7   building silverlight applications02 wp7   building silverlight applications
02 wp7 building silverlight applicationsTao Wang
 
Parallel minds silverlight
Parallel minds silverlightParallel minds silverlight
Parallel minds silverlightparallelminder
 
Backbone/Marionette introduction
Backbone/Marionette introductionBackbone/Marionette introduction
Backbone/Marionette introductionmatt-briggs
 
Silverlight Developer Introduction
Silverlight   Developer IntroductionSilverlight   Developer Introduction
Silverlight Developer IntroductionTomy Ismail
 
Btb017 David
Btb017 DavidBtb017 David
Btb017 DavidRohit Ray
 
Overview of WPF in light of Ribbon UI Control
Overview of WPF in light of Ribbon UI ControlOverview of WPF in light of Ribbon UI Control
Overview of WPF in light of Ribbon UI ControlAbhishek Sur
 
Design stunning user experience with expression blend
Design stunning user experience with expression blendDesign stunning user experience with expression blend
Design stunning user experience with expression blendKosala Nuwan Perera
 
Code camp 2011 Getting Started with IOS, Una Daly
Code camp 2011 Getting Started with IOS, Una DalyCode camp 2011 Getting Started with IOS, Una Daly
Code camp 2011 Getting Started with IOS, Una DalyUna Daly
 
T 121 5300 (2008) User Interface Design 3 Uide
T 121 5300 (2008) User Interface Design 3   UideT 121 5300 (2008) User Interface Design 3   Uide
T 121 5300 (2008) User Interface Design 3 Uidemniemi
 
WPF Windows Presentation Foundation A detailed overview Version1.2
WPF Windows Presentation Foundation A detailed overview Version1.2WPF Windows Presentation Foundation A detailed overview Version1.2
WPF Windows Presentation Foundation A detailed overview Version1.2Shahzad
 
webOS App by Example: Sorting Thoughts
webOS App by Example: Sorting ThoughtswebOS App by Example: Sorting Thoughts
webOS App by Example: Sorting ThoughtsHendrik Ebel
 
Introduction to XAML and WPF
Introduction to XAML and WPFIntroduction to XAML and WPF
Introduction to XAML and WPFDoncho Minkov
 
Plug-in Architectures
Plug-in ArchitecturesPlug-in Architectures
Plug-in Architectureselliando dias
 
Flutter vs ReactNative
Flutter vs ReactNativeFlutter vs ReactNative
Flutter vs ReactNativeSumit Sahoo
 
The Theory Of The Dom
The Theory Of The DomThe Theory Of The Dom
The Theory Of The Domkaven yan
 

Ähnlich wie Windows phone and azure (20)

Introduction to Honeycomb APIs - Android Developer Lab 2011 Q3
Introduction to Honeycomb APIs - Android Developer Lab 2011 Q3Introduction to Honeycomb APIs - Android Developer Lab 2011 Q3
Introduction to Honeycomb APIs - Android Developer Lab 2011 Q3
 
WPF - the future of GUI is near
WPF - the future of GUI is nearWPF - the future of GUI is near
WPF - the future of GUI is near
 
02 wp7 building silverlight applications
02 wp7   building silverlight applications02 wp7   building silverlight applications
02 wp7 building silverlight applications
 
Parallel minds silverlight
Parallel minds silverlightParallel minds silverlight
Parallel minds silverlight
 
Backbone/Marionette introduction
Backbone/Marionette introductionBackbone/Marionette introduction
Backbone/Marionette introduction
 
Silverlight Developer Introduction
Silverlight   Developer IntroductionSilverlight   Developer Introduction
Silverlight Developer Introduction
 
Btb017 David
Btb017 DavidBtb017 David
Btb017 David
 
Overview of WPF in light of Ribbon UI Control
Overview of WPF in light of Ribbon UI ControlOverview of WPF in light of Ribbon UI Control
Overview of WPF in light of Ribbon UI Control
 
Chapter 1-Note.docx
Chapter 1-Note.docxChapter 1-Note.docx
Chapter 1-Note.docx
 
Design stunning user experience with expression blend
Design stunning user experience with expression blendDesign stunning user experience with expression blend
Design stunning user experience with expression blend
 
Code camp 2011 Getting Started with IOS, Una Daly
Code camp 2011 Getting Started with IOS, Una DalyCode camp 2011 Getting Started with IOS, Una Daly
Code camp 2011 Getting Started with IOS, Una Daly
 
T 121 5300 (2008) User Interface Design 3 Uide
T 121 5300 (2008) User Interface Design 3   UideT 121 5300 (2008) User Interface Design 3   Uide
T 121 5300 (2008) User Interface Design 3 Uide
 
WPF Windows Presentation Foundation A detailed overview Version1.2
WPF Windows Presentation Foundation A detailed overview Version1.2WPF Windows Presentation Foundation A detailed overview Version1.2
WPF Windows Presentation Foundation A detailed overview Version1.2
 
DDive11 - Mobile Development For Domino
DDive11 - Mobile Development For DominoDDive11 - Mobile Development For Domino
DDive11 - Mobile Development For Domino
 
WPF Intro
WPF IntroWPF Intro
WPF Intro
 
webOS App by Example: Sorting Thoughts
webOS App by Example: Sorting ThoughtswebOS App by Example: Sorting Thoughts
webOS App by Example: Sorting Thoughts
 
Introduction to XAML and WPF
Introduction to XAML and WPFIntroduction to XAML and WPF
Introduction to XAML and WPF
 
Plug-in Architectures
Plug-in ArchitecturesPlug-in Architectures
Plug-in Architectures
 
Flutter vs ReactNative
Flutter vs ReactNativeFlutter vs ReactNative
Flutter vs ReactNative
 
The Theory Of The Dom
The Theory Of The DomThe Theory Of The Dom
The Theory Of The Dom
 

Kürzlich hochgeladen

Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 

Kürzlich hochgeladen (20)

Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 

Windows phone and azure

  • 2. agenda  o introduction o metro style o silverlight development o phone development o the marketplace
  • 3. about me  o 6 years of developing o 4 years of C# experience o lecturer at “Prografika” o microsoft student partner o patogiau.lt o http://linkd.in/dovydasnavickas
  • 4. introduction features metro tools cloud  o new platform o based on familiar technologies and tools o multiple hardware vendors o consistent baseline (cpu, resolution, etc.) o your chance to enter a brand new market!
  • 5. introduction features metro tools cloud  METRO IS WINDOWS PHONE‟S DESIGN LANGUAGE. IT‟S MODERN AND CLEAN. IT‟S ABOUT TYPOGRAPHY AND CONTENT.
  • 6.
  • 7. metro
  • 8. metro
  • 9. metro principals  clean, light, open, fast celebrate typography alive in motion content, not chrome
  • 11. introduction features metro tools cloud  Phone Emulator Samples Documentation Guides Community Packaging and Verification Tools
  • 12. introduction features metro tools cloud  Notifications App Deployment Location Identity Feeds Social Maps
  • 14. silverlight introduction  o a subset of the .net framework and WPF o first introduced as a browser plug-in o .net runtime on multiple platforms (mac, windows) o currently targeted for: o device apps (currently windows phones) o client apps (emphasis on enterprise) o rich media apps (such as streaming video) o reuse code for desktop, web and phone apps!
  • 15. silverlight principals  o code + xaml o controls o layout o data binding o graphics
  • 16. code + xaml o xaml is basically a declarative language for  object instantiation o xaml is great for UI development. it‟s: o standard XML o hierarchical o extensible o declarative o we can do most things both in xaml and in code, but you‟ll quickly find that xaml is much more convenient for some tasks
  • 17. code + xaml comparison XAML  <Grid x:Name="ContentPanel" Margin="12,0,12,0"> <TextBlock Text="Hello, Windows Phone 7!" Margin="6" HorizontalAlignment="Center" VerticalAlignment="Center" /> </Grid> C# var tb = new TextBlock(); tb.Text = "Hello, Windows Phone 7!"; tb.HorizontalAlignment = HorizontalAlignment.Left; tb.VerticalAlignment = VerticalAlignment.Top; tb.Margin = new Thickness(6); ContentPanel.Children.Add(tb);
  • 18. code + xaml the visual tree  o controls contain other controls, and some controls are built using other controls o this creates a hierarchical relationship between the controls which we call the visual tree o when you write xaml, the structure of the visual tree is very clear
  • 20. controls
  • 21. controls anatomy o inherits from FrameworkElement  o two main types: o custom control – a reusable, templatable control (e.g. a button) o user control – a way to modularize your application (e.g. employee view) o uses dependency properties and routed events o responds to input (touch, keyboard)
  • 22. controls dependency properties  o extend CLR properties with: o data binding o change notification o animation o validation o control-tree inheritance
  • 23. controls routed events  o extend CLR events o can travel along the visual tree: o bubbling or tunneling
  • 24. controls routed events Root  Element 1 Element 2 Element Element Element Element 1.1 1.2 2.1 2.2  PreviewMouseDown on Root  PreviewMouseDown on Element 1  PreviewMouseDown on Element 1.2  MouseDown (bubble) on Element 1.2  MouseDown (bubble) on Element 1  MouseDown (bubble) on Root
  • 25. layout basic properties Container  Vertical Alignment Margin Horizontal Alignment Padding {Min, Max} Element Height Render Transform {Min, Max} Width
  • 26. layout panels  o Grid o StackPanel o WrapPanel (*) o Canvas o DockPanel o TabControl * can be found in the silverlight toolkit
  • 28. controls styles  o defines a set of dependency properties and values o similar to CSS in HTML o provides a great way to control the looks of your app from a central location
  • 29. controls templates  o completely customize appearance of controls without having to write any code or inherit from the control o all controls have default styles and templates o template editing is easy with Expression Blend
  • 31. data binding o flow data from a source to a target  o source: any CLR object o target: Dependency Property only o modes: one way, two way o supports change notifications o changes to a source object automatically sent to the UI o both property and collection changes are supported
  • 32. data binding data templates  o provide a visual representation of an object o the default behavior if no template is specified is to display the Object.ToString() result o use bindings to display data o respond to changes using triggers o can only be written in xaml
  • 33. data binding collections  o use ItemsControl whenever you need to bind to a collection o provide an ItemTemplate to change the visuals of each item o controls that inherit from ItemsControl: o ListBox, ContextMenu, MenuItem, Panorama
  • 35. data binding the mvvm pattern o designed specifically with business logic and  WPF/Silverlight in mind Model data o relies on bindings to retrieve and set data from and to the view model presentation logic View o uses commands to Model and state perform operations on the view model o relies on notifications to UI (and possibly communicate between the View some UI logic) layers o creates a data-driven UI
  • 36. graphics images  o store images as resources or as content o content is recommended o use the Image control to show them o use WritableBitmap to create images in runtime o you can also use it to capture your screens
  • 37. graphics vectors  o controls inheriting from Shape can be used to create 2D shapes o Rectangle, Ellipse, Line, Polyline, Polygon, Path o Path is the most versatile, accepting a Geometry object which can represent any shape o it is easiest to create shapes using Expression Blend
  • 38. graphics transforms o FrameworkElement has a RenderTransform  property which can be assigned to: o TranslateTransform (move) o ScaleTransform o RotateTransform o SkewTransform o CompositeTransform (combine any of the above) o additionally, the Projection property allows creating 3D-like effects
  • 39. graphics animations o animate dependency property using a Timeline  that fits the property type: o DoubleAnimation, ColorAnimation, PointAnimation o use Storyboard to group a few animations together o use an easing function to make the animation look more “real” (e.g. to add elasticity) o it‟s easiest to create storyboards in xaml and in Expression Blend
  • 41. resources  o silverlight toolkit http://silverlight.codeplex.com/ o prism http://prism.codeplex.com/ o project rosetta (tutorials) http://visitmix.com/labs/rosetta o Introducing Expression Blend 4 http://expression.microsoft.com/en-us/ff624124
  • 42. break
  • 44. windows phone  o application structure o phone-specific controls o sensors and services
  • 45. application structure files o App.xaml: application entry point. contains  global resources, services, events (startup, shutdown, etc.) and instantiates PhoneApplicationFrame o WMAppManifest.xml: contains application deployment information: capabilities, tasks, icon. o MainPage.xaml: a PhoneApplicationPage that contains the main view of the application.
  • 46. application structure default control tree o PhoneApplicationFrame  o PhoneApplicationPage o Grid named “LayoutRoot” o StackPanel named “TitlePanel” o TextBlock named “ApplicationTitle” o TextBlock named “PageTitle” o Grid named “ContentPanel” o <your content goes here> you can clear the entire page content and write your own, but for most apps it is recommended to stay within the „metro‟ guidelines
  • 47. application structure navigation o web browser like: each page can be navigated  to using the NavigationService by passing a URI o the PhoneApplicationFrame can only display a single page at a time! o the hardware back button can be used to go back to the previous page on the stack o you can pass data to the page using URI query or by placing it in a globally known location (such as the App class)
  • 48. application structure tombstoning o windows phone can only run one application at a  time. so, each time you switch to another application, the current one gets terminated – i.e. tombstoned o your app will get tombstoned if: o you click the start button o you get a call while the app is running o the phone gets locked o the app uses a launcher or a chooser (e.g. use the camera) o you can use the app‟s Activated and Deactivated events to handle tombstoning
  • 49. application structure application bar o preferred menu system for  your apps o up to 4 buttons, monochrome 62x62 bitmaps o add a button from Blend to get some default bitmaps o get more from http://thenounproject.com o add up to 5 menu items
  • 51. phone controls  o most of silverlight‟s controls have been adjusted to windows phone, supporting touch and templated to the phone‟s theme o while some controls such as ComboBox and ToolTip exist on the phone, their use is discouraged
  • 52. phone controls panorama and pivot o panoramic applications  offer a unique way to view controls, data, and services by using a long horizontal canvas that extends beyond the confines of the screen. o pivot can be used for filtering large datasets, viewing multiple data sets, or switching application views.
  • 54. sensors accelerometer o measures acceleration forces such as gravity  or the forces caused by moving the sensor o can tell the direction of the earth relative to the phone o use the Accelerometer class to access the sensor o this sensor reports a constant value in the emulator, so it is recommended that you mock its values for testing o possible uses: responding to phone movements in games, bubble levels, etc.
  • 55. sensors geo-location  o obtain the current location of the phone using the GeoCoordinateWatcher class o you can get the latitude, longitude, altitude and current speed of the device o this sensor is not available in the emulator. use the GpsEmulator project, available at app hub o use the Bing maps control to display a map of the current location
  • 56. sensors camera  o obtain photos from the camera using the CameraCaptureTask chooser o get a Stream from the chooser and create a BitmapImage from it o the emulator will provide a simple black- and-white image to capture
  • 57. services push notifications o allows applications to receive updates in the  background (app doesn‟t need to be running!) o three types of notifications: o toast – when app is inactive o tile (background, title, count) o raw – directly to the app o you need to create a compatible web service
  • 58. what‟s new in version 7.5 (aka “mango”) o internet explorer 9  o SQL CE: in-memory local SQL database o multi-tasking and live agents o silverlight 4 o raw camera feed access o tcp/ip sockets o better developer tools o beta sdk shipping this month
  • 59. resources  o Programming Windows Phone 7 by Charles Petzold (free ebook) http://www.charlespetzold.com/phone/ o Windows Phone 7 Developer Guide http://msdn.microsoft.com/en-us/library/gg490765.aspx o quickstarts http://create.msdn.com/en-us/education/quickstarts o the noun project (icons for your app) http://thenounproject.com/
  • 60. break
  • 62. marketplace advantages  o integrated into the phone o use the zune software to browse on the PC o free or paid apps with a trial option o downloads, updates and payments are managed for you o free registration for students using DreamSpark
  • 63. marketplace steps  develop submit certify & debug & validate & sign windows phone application marketplace deployment service
  • 64. marketplace best practices  o make it appealing (use metro!) o make it stable and reliable o make it original and useful o make it easy to use o read the certification requirements carefully o test your app as suggested to avoid common certification pitfalls
  • 65. marketplace in lithuania  o currently not supported directly in App Hub o use a third-party broker: appa market / yalla apps o as a student, you get 100 credits which you can use to: o upload apps o unlock devices for development
  • 66. resources o certification requirements  http://msdn.microsoft.com/en-us/library/hh184843(v=VS.92).aspx o dreamspark https://www.dreamspark.com/ o yalla apps http://www.yallaapps.com/ o appa market http://appamarket.com/ o best practices for application marketing http://create.msdn.com/en- US/home/about/app_submission_walkthrough_application_marketing

Hinweis der Redaktion

  1. on the fly
  2. on the fly
  3. 3+4
  4. you get a few seconds to save the current state of the application to a permanent storage.when the app gets reactivated, the user will expect it to return to the same state.a good place to save state while the application is running is the page’s OnNavigatedTo/OnNavigatedFrom methods.
  5. from scratch
  6. from scratch
  7. from scratch
  8. from scratch
  9. Certification pitfalls:Always closes without exceptionMust not be unresponsive for over 3sMust launch within 5sBack should close app and lead to prev pageNever delay a phone callContent: no violenceor sexual