Live blogging – clean up later:
Sorry, no pictures today – I had to leave the camera back at the hotel for charging :-( Go find the live stream.
First off: Ray Ozzie
Yesterday: computing foundation
Today: User Interface
Front-end innovation – client OS – personal computing
PC – Phone – Web
* Full and high-performance access to displays & paripherals
* Natural UI & common controlsfor ink voice/audio, camera, touch, …
* Local data privacy, portability, reliable/fast/full access
* Use & recombine applications, data, documents, media as needed
* A ‘personal’ enviropnment, trusted & assumed to be under your control
Web:
* one common way to find, access, assemble & interact with people
* One common way to find, access, share & transact information
…
Phone:
* As the PC, full and high-performance access to displays & peripherals
* As the PC, natural UI & common controls for ink, voice/audio, camera, touch…
* Always with you, and within arm’s reach…
…
PC: Windows 7 – Windows Vista, Windows XP
Continue to evolve the .NET framework and DirectX
Next: Steven Sinofsky, Senior VP
Welcome to Windows 7
1. introduce windows 7 client
2. software + services
3. transition from Vista
4. APIs
5. Fundamentals
6. Path to RTM
7. Call to Action
* Personalized experience
* Connect to devices and storages
* Bring together all the “stuff”
Demo: Julie Larson-Green, VP, Windows Experience
Hmm, looks quite cool – a new UI paradigm…
Cool new Task bar
Window snapping
Windows Explorer – Library locations
Networking at home: HomeGroup – plug’n’play connecting to everything in your home network
New Media player – including a lightweight version – super easy to play on other devices in the home
Mobile Devices – new device center
Gadgets – can be placed everywhere
New theming functionality – Pimp your desktop
System tray (notification area): user has full control over the items & notifications
Touch: HP TouchSmart (sub $2000 machine avail. today)
25% more space between item when using touch.
Multi-touch! Zoom etc.!
Easy on-screen keyboard with predictive typing
Flicks & gestures in IE8
Refresh of MS Paint, Calculator etc. etc.
Drag & drop.
Windows 7 + Windows Live Essentials & Windows Live Services
Software + Services
Transition from Windows Vista
* Windows Server 2008 and Windows Vista SP1
* Ecosystem Readiness
* Standards
* Compability
* Scenarios
Develop for Windows 7
* Ribbon User Interface
* Jump Lists
* Multi-Touch, Ink, Speech
* DirectX family
Fundamentals
Decrease
* Memory
Reference set, Graphics
* Disk I/O
Registry Reads, Indexer
* Power
DVD Playback, Panel, Timers
Increase
* Speed
Faster Boot, Device Ready
* Responsiveness
Start menu, Taskbar
* Scale
256 processors
Demo Windows Development Environment (Steve S, Senior VP)
Bitlocker encryption on usb sticks!
Manage and create VHDs from the Disk Management Tool – at last.
Mount them directly! – Point the boot manager to a VHD and boot from it!
High DPI – managing multiple monitors – enhanced experience.
New Screen Magnifier – Windows Key + + key! (- for zoom out)
Windows key + P: Change output (display / projector type) – Dual projectors
Remote desktop into computers with multiple desktops – AT LAST!
Customize the task bar and shutdown buttons :-)
Pre-beta available today – beta early next year
Call to Action
1. Install and use Windows 7 pre-beta
2. Develop for 64-bit
3. Focus on Fundamentals in Your Code
4. Integrate with Windows 7 Desktop
5. Evaluate New APIs in Windows 7
6. Code to Web Standards with Internet Explorer 8
7. Download Windows Live Beta @ download.live.com
Next up: Corp. Vice President Scott Guthrie
Windows 7 Client Development
Yin/Yang with .NET / Win32
Focus on interop – combine managed and unmanaged code
Walktrough – Autodesk case – Mudbox and AutoCAD 2009
Windows 7 Applications with Win32/C++
* New Windows 7 APIs
** Ribbon, Jump Lists, Libraries, Multi-touch, DirectX and more
* MFC for Windows 7
** Ribbon, Multi-touch. …
…
Windows Applications With .NET
.NET 3.5 SP1 Improvements
** Streamlined Setup
** Start Up Performance
** Graphics Improvements
** DirectX/Direct3D Interoperability
** More Controls
* Also built into Windows 7
ScottGu: Demo: Building a windows 7 Application with .NET
PhotoSuru – Photo album app (oh, not another one… – cool though)
This week MS will ship a new WPF Ribbon Control!
<WPF:RibbonWindow> ftw.
Jumplists – custom contextualized tasks on the task bar items.
Multi-touch: Easily handle multi-touch and gesture events in WPF.
DataGrid, DatePicker, Calendar, Ribbon, Visual State Manager controls
Windows Applications with .NET 4
* WPF improvements
** Multi-touch, deep zoom, visual state manager, text
* Fundamentals and interop
** In-prcess side by side support
** Managed / native code interop
** Dynamic Language support
** Extensible component model
* Improved tooling with Visual Studio 2010
Visual Studio 2010 Built On WPF !!!
Multi-monitor support – richer code visualization. Better TDD support, Managed Extensibility Framework
Demo: Visual Studio 2010 Extensibility
ScottGu’ru – MEF extensibility is a blast in VS2010!!!
.NET Client Momentum
Customer demo – Next Generation Grocery Shopping – Tesco.com
Nick Lansley – Head of New Technlogoy tesco.com
Back to the Gu:
jQuery support in VS2008
ASP.NET 4 Improvements
* Web Forms
* MVC
* AJAX
* Distributed Caching
VS2010 for web development
* Code focused improvements
* JavaScript / AJAX tooling
* Design View CSS2 support
* Publishing and deployment
Multiple configurations (web.config) for dev, test & prod in the project!
Announcing the Silverlight Toolkit
* Charting
* TreeView
* DockPanel
* WrapPanel
* ViewBox
* Expander
* AutoComplete
* …
MS-Pl licensed.
Silverlight Designer in VS2010!
Next: David Treadwell, Corp Vice President – Live Platform
Live Services
Identity – Directory – Communication and Presence – Search and Geospatial
* Access A User’s Social Graph
* Easy Integration and Interoperability
* Leverages Familiar Services
Yawn! This guy should work on his speaking skills…
Announcing the Live Framework
Building applications for the Mesh / Live Services
* Provides Consistency
* Open and Interoperable
* Supports PC, Phone and Web
Demo: Enchancing a Windows Application
with Live Framework
Ori Amiga – Group Program Manager – Live Services
[Ori is a cool guy :-P Loved his Channel9 casts…]
HAHA – This is *the* bomb! Great stuff! As expected…
Takeshi Numoto – Office 14
Office 14 will deliver both web and desktop apps.
Demo
OneNote 14 – Digital Notetaking app.
Office in the browser looks cool – Ribbon and all.
Ray Ozzie back on the scene – bringing it together.
Next up: Don Box & Chris An – this day will truly be EPIC! If just someone could bring me some food!
Live from the session:
Will cleanup later:
evolution
1.0 – 2.0 – 3.0
impedence mismatch – programming languages and data
LINQ
Trends: Declarative / Dynamic / Concurrent
Declarative Programming
Imperative –> Declarative
How - What
Dynamic Languages
* Simple and succinct
* Implicitly typed
* Meta-programming
* No compilation
Static Languages
* Robust
* …
Concurrency
The elephant in the room
Moores law has stopped working
Not one single silver bullet
C# 4.0
Dynamic programming
Dynamically types objects
Optional and named parameters
Improved COM interoperability
Co- and Contra-variance
Dynamic Language Runtime
* Expression trees
* Dynamic dispatch
* Call Site Caching
IronPython & IronRuby today
Tomorrow: C# and VB.NET and others…
Object Binder: .NET
JavaScript Binder: Silverlight
Python Binder: python
Ruby Binder: Ruby
COM Binder: Office
Calculator calc = GetCalculator();
int sum = calc.Add(10, 20);
object calc = GetCalculator();
Type calcType = calc.GetType();
object res = calcTYpe.InvokeMember(…);
int sum = Convert.ToInt(res);
C# 4.0:
dynamic calc = GetCalculator();
int sum = calc.Add(10, 20);
= : dynamic conversion
.Add : Dynamic method invocation
dynamic x = 1;
dynamic y = “Hello”;
dynamic z = new List<int> {1, 2, 3, 4};
When operand(s) are dynamic…
* Member selection deferred to run-time
* At run-time, actual type(s) substituted for dynamic
* Static result type of operation is dynamic
IDynamicObject ( duck typing)
optional and named parameters:
OpenTextFile(string path, Encoding encoding = null, bool detectEncoding = true, bufferSize = 1024);
OpenTextFile(….);
Improved COM interop
No more ref missing… doc.SaveAs(“Test.docx”);
Co- and Contra-variance
string[] strings = GetStringArray();
Process(strings);
void Process(object[] objects) { … }
C# 4.0 supports safe co- and contra-variance.
public interface IEnumerable<out T>
{
}
out = Co-variant Output positions only
public IComparer<in T>
{
}
in = Contra-variant input positions only
Variance in C#4.0
*Supported for interface and delegate types
* “Statically checked definition-site variance”
*Value types are always invariant
** IEnumerable<int> is not IEnumerable<object>
** Similar to existing rules for arrays
* ref and out parameters need invariant types
Compiler as a Service
Source files –> Compiler –> .NET Assembly
* Meta-programming
* Read-Eval-Print loop
* Language Object Model
* DSL Embedding
CSharpEvaluator ev = new CSharpEvaluator();
ev.Usings.Add(“System”);
[Damn, all this is so cool]
ev.Eval(“for (int i = 0; i < 10; i++) Console.WriteLine(i * i)”);