//build/ 2014 Day 1 session recap

I have attended live the sessions described below on day 1 at the Build conference and these are my notes from these sessions. Some parts might not be easily readable or understandable (even for me Smile )  because the sessions were fast-paced and I tried to write down everything which seemed important to me. Nevertheless I hope that this brief summary is helpful to some of you.

Building Games for Windows

  • Use Visual Studio Universal projects
  • Unity Beta for Windows Phone 8.1 announced (RTM in the summer)
  • Unity Beta 4.5 (RTM in the spring)
  • Angle: bring OpenGL to Windows (DirectX)
  • Use DirectX 12 and Direct 3D 12

Building great Windows and Windows Phone XAML Apps with Visual Studio 2013

  • Build apps on Windows 8.1 and Windows Phone 8.1
  • Support for C#, C++, JavaScript
  • Visual Studio 2013 Update:
    • New Store Apps project template: Universal Apps, Windows Apps, Windows Phone Apps
  • Creating new universal apps:
    • Universal Apps
      • Blank/Hub App
      • Class library/Windows RT Component
    • Solution structure
      • The following projects target the specific platform and include references to the corresponding SDKs but may include also platform-specific assets and XAML:
        • .Windows
        • .WindowsPhone
      • .Shared => NEW!
        • Container referenced by Windows 8 and Windows Phone 8.1 projects to share code
        • May include localization, assets, XAML
        • Cannot build, no output
  • Migrating existing apps to universal apps:
    • Add new Windows Phone 8 project
      • Adds .Shared project automatically
    • Move files between projects from project-specific to shared with cut-paste
    • Change startup project in debug target dropdown, if more than one project in solution
  • Back button navigation
    • App has to respond, not exit!
    • Hardware buttons must be supported in the app, only on Windows Phone 8.1 and not on Windows 8.1
      • Usage of conditional C# code:
        • #if WWINDOWS_APP … #endif
        • #if WINDOWS_PHONE_APP … #endif
  • New context switcher in the Visual Studio editor: Windows Phone/Windows with Intellisense support
    • File is moved to selected context
    • For XAML and C# files
      • Element combo box in the Navbar
  • Full support for universal apps in Blend
  • If share between nX universal apps, use class libraries
  • Code reuse for universal apps
    • Shared projects: share code
    • PCLs: share binary
  • Windows 8.1 PCLs
    • Properties => Targets
    • Add reference in platform-specific projects
  • Use Shared Projects in class libraries
    • Template in Visual Studio Gallery
    • Reference in platform-specific class libraries
  • Project templates => C# node => Shared Asset Project (Empty)
  • XAML authoring for Windows Phone 8.1
    • Intellisense for resources and data bindings filtered by element type, e.g. TextBlock
    • Already available for Windows 8.1, now also for Windows Phone 8.1
    • F12: Got to definition works for binding property,style, type (e.g. Image) and can be used anywhere in the editor
    • Designer: show device display with various resolutions
  • Guide feature in Blend: Snap to, pixel perfect UI, Save/Load Guide
  • Behaviors in Blend: add interactivity without writing code

Tips and Tricks in Visual Studio 2013

  • Visual Studio 2013 Update 2 RC available today!
  • Parallel Visual Studio 2010, 2012 and 2013
  • Sign in to get the environment settings
    • Select which settings should be synced in Options => Sync-ed Settings
  • You can now resize the Tools => Options window
  • Search in Options with Ctrl + I
  • Notification hub
    • Flag icon in the top right corner
    • Critical notifications marked in red
  • Windows Management
    • Multiple monitors
    • Shortcuts
      • Dock: Windows + Left/Right
      • Maximize/Minimize: Windows + Up/Down
  • New Solution Explorer View scoped to folders/…
  • Ctrl + double click on the window moved the window back to where it was if previously undocked
  • Taskbar: Windows + Shift + 3 creates a new Visual Studio instance
  • How to identify which Visual Studio instance is active: logo is grayed out (inactive) or colored (active)
  • Ctrl + F4: close document in Visual Studio
  • You can pin the documents with Pin Tab
  • You can Close this, Close all, Close all but this
  • Alt+W+L: close all
  • Preview tab: preview document when navigating in the solution explorer
  • Ctrl+Q: Quick launch
    • Top right corner
    • Categorized by Menus, Nuget, Options
    • Scoped search by typing @menu
    • Displays shortcuts
  • Error list window: filter all, current project
  • Search in New Project dialog
  • Search in Add New Reference dialog
  • Ctrl+I always goes to search in the current window or dialog
  • Ctrl+F: Find
    • Docked in the top right corner of the editor
    • Enter/Shift+Enter: go forward/back
  • Solution Explorer improvements
    • C# files/classes: drill down to see members, navigate members directly in the solution explorer, displays in editor too
    • Select file => Open containing folder
    • Open command prompt
    • Filters: scope to files in Pending Changes, with errors,…
    • Inline errors where project and/or file is red underlines, popup error list
  • Alt+F6: cycle through Visual Studio windows
  • Ctrl+F2: focus to navigation dropdown, tab through dropdowns
  • Editor improvements
    • Alt+Up/Down: move one or more lines up and down
    • Annotation over scrollbar
    • Code preview: hover zooms in
    • Ctrl+,: Navigate to
      • In document place top right corner
    • Alt+F2: peak window inline => full editor with possibility to edit in the peak window or to promote to document
    • Code lenses above methods, hold down Alt+1/2/3 to open small summary window/lens
      • Tools => Options => CodeLens settings
      • Code lens can be undocked
    • Bing code search for C# by starting to type in the editor => “How do I…?” displayed in a peak window with code snippets, e.g. stackoverflow
  • Feedback: the bubble icon in the top right corner to send a smile or a frown
    • Suggestions collected on the UserVoice site

Useful links

Innovations in High Performance 2D Graphics with DirectX Across Windows and Windows Phone

  • D3D 11 on Windows Phone 8
  • D2d and Image Effects, DirectWrite on Windows Phone 8.1
  • Universal Visual Studio solutions
    • Samples on MSDN
    • Same code running on Windows and Windows Phone
    • Shared and specific project are pushed together and compiled
    • Sample: 99% shared code, specific include constants
  • Text in 8.1: color fonts for Emoji instead of bmp because bitmaps don’t scale well
    • These are just texts with color
    • No need for different bitmaps with different DPIs
    • Gradient not supported
    • Segoe UI/Windows Phone Emoji
  • 2D geometry
    • Complex rendering is CPU bound
    • Bitmaps need to be regenerated, don’t scale/rotate well
    • Optimization goal is to work on the GPU and to eliminate CPU, to find a balance between CPU and GPU
      • CPU for curve evaluation and tessellation => caching in Geometry Realization, reuse on GPU
      • GPU for antialiasing and brushing
    • Geometry realization is available also on Windows Phone
    • Use Geometry Realization with static geometry, depends on scale factors, only for transformations like translation, rotation, uniform scale.
  • Image effects
    • Memory utilization and startup time taken up by images
    • Quality vs. space trade-offs
    • Block compression by 4 bits
      • BC 1-3: DX 9+
        • BC 1: 4 bits/pixel
        • BC 2-3: 8 bits/pixel
      • BC 4-5: DX 10+
      • BC 6-7: DX 11+
      • Best is BC3 or BC1, depending if with alpha or not
    • JPEG YCBCR compression

You can find also lots of pictures from the conference and also some of the most important slides here on OneDrive.

Session recaps for day 2 and 3 are coming soon…

Useful links