38
Introduction to Building Windows 8.1 & Windows Phone Applications

Introduction to Building Windows 8.1 & Windows Phone Applications

Embed Size (px)

Citation preview

Page 1: Introduction to Building Windows 8.1 & Windows Phone Applications

Introduction to Building Windows 8.1 & Windows Phone Applications

Page 2: Introduction to Building Windows 8.1 & Windows Phone Applications

Hi. I’m Waseem Hassan

• Windows 8.1 Developer

• Windows Phone Developer

• Microsoft Azure Developer

[email protected]

Page 3: Introduction to Building Windows 8.1 & Windows Phone Applications

How Windows and Windows Phone Applications are developed?

Page 4: Introduction to Building Windows 8.1 & Windows Phone Applications

C# XAMLFront-End

Back-End

Page 5: Introduction to Building Windows 8.1 & Windows Phone Applications

Tools Needed

Page 6: Introduction to Building Windows 8.1 & Windows Phone Applications

Where to start?

Page 7: Introduction to Building Windows 8.1 & Windows Phone Applications

C#

Start building universal applicationsXAML

Page 8: Introduction to Building Windows 8.1 & Windows Phone Applications

Microsoft Virtual Academy

Page 9: Introduction to Building Windows 8.1 & Windows Phone Applications

Join the MVA Community!

• Microsoft Virtual Academy

‑ Free online learning tailored for IT Pros and Developers

‑ Over 2M registered users

‑ Up-to-date, relevant training on variety of Microsoft products

• Recommended Course Flow

‑ Programming in C# JumpStart

‑ Essentials of Developing / Building Windows Store Apps with

C# / XAML

‑ Advanced Windows Store Apps with C# / XAML

‑ Designing your XAML UI with Blend

Page 10: Introduction to Building Windows 8.1 & Windows Phone Applications

Introduction to C#

Page 11: Introduction to Building Windows 8.1 & Windows Phone Applications

The Basics of C#

Lots of similarities with C++

• Object-Oriented

• Classes, structs, enums

• Familiar basic types: int, double, bool, …

• Familiar keywords: for, while, if, else, …

• Similar syntax: curly braces { }, dot notation, …

• Exceptions: try and catch

Page 12: Introduction to Building Windows 8.1 & Windows Phone Applications

The Basics of C#

• Everything lives in a class/struct (no globals)

• No pointers! (so no ->, * or & notation)

• Garbage collection: no delete!

• No header files

• Interfaces

• Static members accessed with . (not ::)

In a nutshell: much easier than C++

Page 13: Introduction to Building Windows 8.1 & Windows Phone Applications

C# Features

• Properties

• Interfaces

• The foreach keyword

• The readonly keyword

• Parameter modifiers: ref and out

• Delegates and events

• Generics (Instead of Templates)

Page 14: Introduction to Building Windows 8.1 & Windows Phone Applications

Properties

• Class members, alongside methods and fields

• “field” is what C# calls a member variable

• Properties “look like fields, behave like methods”

• By convention, names are in UpperCamelCase

Page 15: Introduction to Building Windows 8.1 & Windows Phone Applications

Propertiesclass Person{

// Private field (the "backing field")private String name;

// Public propertypublic String Name{

get{ return name;}

set{

// "value" is an automatic// variable inside the settername = value;

}}

}

class Program{

static void Main( string[] args ){

Person p = new Person();

// Use the setterp.Name = "Waseem";

// Use the getterConsole.WriteLine( p.Name );

}}

Page 16: Introduction to Building Windows 8.1 & Windows Phone Applications

Properties Demo

Page 17: Introduction to Building Windows 8.1 & Windows Phone Applications

Properties

• A really core feature of C#

• You’ll see them everywhere

• DateTime.Now

• String.Length

• Etc.

• Get into the habit of using a property whenever you need a getter

and/or setter

• Preferred to using GetValue(), SetValue() methods

• Never use public fields!

Page 18: Introduction to Building Windows 8.1 & Windows Phone Applications

Interfaces

• Like a class, but all its members are implicitly abstract

• i.e., it does not provide any method implementations,

only method signatures

• A class can only inherit from a single base class, but may

implement multiple interfacesinterface ILog{ void Log( string text );}

Page 19: Introduction to Building Windows 8.1 & Windows Phone Applications

Interfaces Demo

Page 20: Introduction to Building Windows 8.1 & Windows Phone Applications

Delegates

• Delegates are how C# defines a dynamic interface between

two methods

• Same goal as function pointers in C

• Delegates are type-safe

• Consists of 2 parts: a delegate type and a delegate

instance

Page 21: Introduction to Building Windows 8.1 & Windows Phone Applications

Delegates

• A delegate type looks like an (abstract) method declaration,

preceded with the delegate keyword

• A delegate instance creates an instance of this type,

supplying it with the name of the real method to attach to

• Example on next slide

Page 22: Introduction to Building Windows 8.1 & Windows Phone Applications

Delegates// Delegate type (looks like an abstract method)delegate int Transform( int number );

// The real method we're going to attach to the delegatestatic int DoubleIt( int number ){ return number * 2;}

static void Main( string[] args ){

// Create a delegate instanceTransform transform;// Attach it to a real methodtransform = DoubleIt;// And now call it (via the delegate)int result = transform( 5 );Console.WriteLine( result );

}

I can never remember the syntax for either!Keep a handy reference book…

Page 23: Introduction to Building Windows 8.1 & Windows Phone Applications

Multicast Delegates

• A delegate instance can have more than one function

attached to it

• Now when we call transform(), all methods are called

• In the order in which they were added

Transform transform = DoubleIt;transform += HalveIt;transform += TripleIt;// etc.

Page 24: Introduction to Building Windows 8.1 & Windows Phone Applications

Delegates Demo

Page 25: Introduction to Building Windows 8.1 & Windows Phone Applications

Events

• Events are really just special instances of delegates

• By convention they have a specific declaration for the delegate:

• We declare an event like this

• We use an event just like a delegate except that only the += and -=

can be used by classes

delegate void GuestHandler( String name );

event GuestHandler EnterEvent;

Page 26: Introduction to Building Windows 8.1 & Windows Phone Applications

Events Demo

Page 27: Introduction to Building Windows 8.1 & Windows Phone Applications

Introduction to XAML

Page 28: Introduction to Building Windows 8.1 & Windows Phone Applications

XAML

• Extensible Application Markup Language

‑ Used for designing the interface

• Much more easier and powerful than XML (Android) and

Objective-C (iOS)

Page 29: Introduction to Building Windows 8.1 & Windows Phone Applications

Demo

Page 30: Introduction to Building Windows 8.1 & Windows Phone Applications

Layouts

Page 31: Introduction to Building Windows 8.1 & Windows Phone Applications

XAML Layouts

• StackPanel

• Grid

• Canvas

Page 32: Introduction to Building Windows 8.1 & Windows Phone Applications

02 Layouts Demo

Page 33: Introduction to Building Windows 8.1 & Windows Phone Applications

Controls

Page 34: Introduction to Building Windows 8.1 & Windows Phone Applications

XAML Controls

• TextBox

• TextBlock

• Slider

• ProgressBar

• ProgressRing

• Button

• CheckBox

• RadioButton

• HyperlinkBut

ton

• ToggleSwitch

• PasswordBox

• RichEditBox

• ComboBox

• Image

• ToolTip

• Popup

Page 35: Introduction to Building Windows 8.1 & Windows Phone Applications

03 Controls Demo

Page 36: Introduction to Building Windows 8.1 & Windows Phone Applications

Questions?

Page 37: Introduction to Building Windows 8.1 & Windows Phone Applications

References

• Microsoft Virtual Academy

Page 38: Introduction to Building Windows 8.1 & Windows Phone Applications

Thank You