1. Dev Environment
    1. Documentation
      1. On Line
      2. Local
    2. Visual Studio
      1. Designer
      2. Code Window
      3. Solutions, Projects...
        1. View Classes
          1. MainPage.xaml
        2. Model classes
          1. Customer
        3. ViewModel Classes
          1. MainViewModel
    3. Expression Blend
  2. UI & Controls
    1. UI
      1. Controls
        1. Layout
          1. Grid
          2. StackPanel
        2. Visible Controls
          1. TextBlock
          2. Lists and Details Pages
          3. TextBox
          4. RadioButtons
        3. Properties
          1. Height
          2. Width
          3. Vertical Alignment
          4. HorizontalAlignment
          5. Margin
      2. Styles (postponed)
  3. Data
    1. Customer
    2. Generating Data
    3. Data Binding
  4. MVVM
    1. Model
      1. Customers
        1. Customer Class
        2. Customer Collection
    2. View
      1. Data Context (current customer)
    3. ViewModel
      1. Customer Properties
  5. Language
    1. C#
      1. Classes
        1. Member variables/ fields
          1. Typically private
        2. Properties
          1. Typically public
          2. Automatic properties public Customer Name { get; set; }
        3. Methods
          1. Constructor is method, but no return value
          2. Constructor with no params = default
          3. Initialization vs. using setters
          4. Return values or void (except constructor)
          5. Return can be of any type
          6. Signature = name + params
          7. Overload by signature
          8. Overload by changing type of parameters
          9. Overload by number of params
      2. Memory Management
        1. No pointers (references)
        2. Garbage collection
      3. Interfaces
        1. Creates a contract
        2. Meets needs of M.I.
        3. Implemented by a class
      4. MVVM
      5. Generics - Type safe collections
    2. Objective C
      1. Allocate memory
        1. Pointers
        2. Deallocate when finished
      2. MVC
    3. Xaml
      1. Declarative
      2. Machine Readable
      3. Isomorphic with CLR objects
        1. Anything created in Xaml can be created in C#
      4. Subtopic 4
  6. Object Oriented
    1. Encapsulation
    2. Polymorphism
    3. User Created Types (Classes)
  7. Applications
    1. Navigation
      1. Consistent
      2. Through launching
        1. Launching tombstones previous foreground app if any
        2. Launch vs. resume
      3. Back via back button
    2. Stages
      1. Launch
      2. Activate
      3. Running
      4. Deactivate
      5. Close
    3. Responsive
      1. Only one application in foreground
      2. Background apps are tombstoned
    4. Lists and Details
      1. Provide a list of customers
      2. For each customer show full details when selected
      3. Reuse Customer class from previous tutorial
      4. View (MVVM)
    5. Windows Phone List Application
      1. Starter List Page
        1. Understanding out of the box
        2. Modifying to accommodate customer
        3. Changes are minor
          1. Update header
          2. Update data source and Context
          3. Update Xaml (bindings)
        4. List ItemsSource -Observable collection
        5. Observable collection implements INotifyPropertyChanged
      2. Starter details Page
        1. Use index passed to page query to find record
        2. Bind to the Customer from within the collection
  8. Interaction with other applications
    1. Launchers
      1. No value returned
      2. Example: Launch phone application
    2. Choosers
      1. Value returned
      2. Example, get phone number from contacts