Upload
darren-hart
View
216
Download
0
Embed Size (px)
Citation preview
Introduction to Building Windows 8.1 & Windows Phone Applications
Hi. I’m Waseem Hassan
• Windows 8.1 Developer
• Windows Phone Developer
• Microsoft Azure Developer
How Windows and Windows Phone Applications are developed?
C# XAMLFront-End
Back-End
Tools Needed
Where to start?
C#
Start building universal applicationsXAML
Microsoft Virtual Academy
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
Introduction to C#
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
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++
C# Features
• Properties
• Interfaces
• The foreach keyword
• The readonly keyword
• Parameter modifiers: ref and out
• Delegates and events
• Generics (Instead of Templates)
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
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 );
}}
Properties Demo
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!
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 );}
Interfaces Demo
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
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
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…
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.
Delegates Demo
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;
Events Demo
Introduction to XAML
XAML
• Extensible Application Markup Language
‑ Used for designing the interface
• Much more easier and powerful than XML (Android) and
Objective-C (iOS)
Demo
Layouts
XAML Layouts
• StackPanel
• Grid
• Canvas
02 Layouts Demo
Controls
XAML Controls
• TextBox
• TextBlock
• Slider
• ProgressBar
• ProgressRing
• Button
• CheckBox
• RadioButton
• HyperlinkBut
ton
• ToggleSwitch
• PasswordBox
• RichEditBox
• ComboBox
• Image
• ToolTip
• Popup
03 Controls Demo
Questions?
Thank You