I’m currently preparing my talk for next Tuesday - “What’s new in WCF 4.0” and one of the features I want to talk about is the new WS-Discovery implementation. My only problem so far (until today) was that I couldn’t find the bits on the Virtual PC Image! I have been searching high and low with .NET Reflector – to no luck.

So I wrote a post in the WCF forum and asked if anyone knew where I could find it. No good answers, so I sent the question to a couple of the PM’s in Connected Systems Division that I know work with WCF. No answer. Finally I turned to the Email form on Nicholas Allen’s blog – and he was kind enough to mail me back.

Turn out that the bits is in the System.WorkflowServiceModel – one of the assemblies I didn’t bother to search since I thought they only contained Workflow-specific bits…

The invitation to the talk on Tuesday can be found here (In Norwegian). I’m hoping for at least 70-80 attendees.

Zune sign in dialog

Hmm, strange thing. Tried to sign in to Zune now, but I get an error message telling me that their server certificate is expired. If that is true – how unprofessional is that!?

Not to mention the cost of it; for every hour people can’t log into their marked place they must be loosing tons of money…

On Tuesday the 25th November, I will be speaking at the NNUG Oslo meeting (hosted by NITH @ Galleriet, Oslo).

My inital idea was to do an advanced extensibility talk, but after I attended the PDC in LA a couple of weeks ago I’ve changed my mind; the talk will be about the new features in WCF 4.0 (and I will probably touch WF 4.0 as well).

If there are anything special you want me to shed light on, please leave a comment or drop me a mail.

Thanks.

Ok, there was a time I was a RSS addict. I subscribed to 130’ish feeds – almost all of the related to development & architecture on the Microsoft platform.

And all of a sudden I almost stopped reading any feeds at all. I believe it happened when I changed job and my old setup with Newsgator from my work computer wasn’t available anymore.

I didn’t install it on my home computer – and reading the feeds in the online version of Newsgator is really a hassle.

So do I want to get back to subscribe to 130+ feeds again and drowing in posts that I don’t read? No. I want to rebuild a new blog roll with relevant feeds for the things I’m focusing on *today*. My old OPML is full of stale and (now) uninteresting feeds.

I would really like input on what you consider as the “must-haves” on a new blog roll – and if you know me the content should really be about Microsoft technology and more specific; things out of the Connected Systems  Division.

Send me an email or leave me a comment. Thank you :-)

[A.k.a. a work in progress]

I’m sitting at gate 60, terminal 6 waiting for to board flight Continental CO16 heading for Newark / EWR in about an hour.

This week has been crazy. Yes, really crazy. The program was so packed that I think I need at least a week to recover from both the jetlag and to digest all the information that has been crammed into my brain. In this post I’ll try to summarize my experiences from the Microsoft Professional Developers Conference 2008.

In this post I’ll try to wrap up the events of the week:

Saturday

  • See earlier blog post.
  • OSL – EWR
  • Missed my connecting flight to LAX
  • Had to stay over at the Sheraton Hotel near the Newark airport.

Sunday

  • Arrived in LA at about noon (local Pacific time).
  • Ate lunch at a small pasta joint close to the hotel.
  • Went for a walkabout downtown LA - *not* a good experience.
  • Went down to the LA Convention Center and registered myself for the conference.
  • Had a 10 minutes talk with a bell boy/guy at the Rennesaince Hotel up in Hollywood about girls, girls, women & girls. He was from El Salvador and the best part of the whole thing was his name; Magnum Scarface :-D.
  • Ate dinner with  Olav Tollefsen (Microsoft Norway), Mads Lillelund (Computerworld Norway) & Ella … (Statens Vegvesen) up in Hollywood.

Monday

  • Jetlagged – up at about 0500AM. Went down to LACC at about 0700. The first guy I run into is Dan Rigsby – what a coincidence! Ate breakfast together with Dan, Jeff Barnes and some Swedish guys. One of them is one of the Øredev organizers. TODO: Send him a mail and fix Øredev discounts for NNUG members.
  • Got a pretty good seat at the keynote. Ray Ozzie first on. Windows Azure revealed (Ref. my blog post from Monday).
  • First session: A Lap around Azure Services (TODO: link to http://sessions.microsoftpdc.com/ / Channel9 entry).
  • Second session: [Some services session together with Dan?]
  • Hung out in the Expo area and got to meet a lot of the Connected Systems Division guys – mainly people from the WCF/WF & Dublin teams.
  • Showed off my WCF Test Client hack to the PM on the team that owns the product. Had a great discussion on the WCF related tools and what that can be done to make them even more attractive to use.
  • Partner Expo Party – met up with some of the BEKK guys.
  • Went to bed reasonably early (10PM something).

Tuesday

  • Down at the LACC at about 0715AM. Ate breakfast together with some Swedish guys.
  • Again, good seating in the keynote hall.
  • Live blogged about the keynote – it was the best of the three (or actually, the two keynotes on Tuesday was better than the ones on Monday and Wednesday).
  • Attendee party at Universal Studios. Met up with Olav Tollefsen (Microsoft Norway) and hated the Halloween atmosphere over there. When the 10th idiot with a chainless chainsaw tried to scare me, I wanted to punch him down. We ate at a Mexican food joint – where we met three of the guys from DIPS Norway.
  • Olav and I went to see the Bill & Ted goes to [Something] Show – it was so-so. The special effects and the female actors were probably the best parts of it.
  • After the show was finished, I met Dan Rigsby and a lot of US DE and MVP guys. They asked if I wanted to go with them to this after-party, but the jetlag and beer kicked in and I went back to the hotel and passed out.
  • Got filmed by twice by two Developer Evangelists (Jeff Barns being one of them). Earned myself two Starbucks card ($10 on each of them).

Wednesday

  • Ate breakfast with two English guys – one of them was Rob Miles / University of Hull, Microsoft MVP doing XNA & .NET Micro Framework (and related technologies). I’m definitely going to recommend the organizers of Norwegian Developers Conference 2009 to bring in Rob for a session.
  • Boring keynote – a self bragging Rick Rashid from MSR telling how good he and his team was. It was really disappointing so I left a bit earlier (I was later told that they had saved the best to the end; Some cool game and a programming language for children that looked promising).
  • When I was about the leave I noticed Chris Sells sitting against the wall with his laptop. Went over to him and introduced myself. Chris asked if I was from Norway – and I told him I was from the Oslo area. Chris eyes lit up when I told him that, cause he had actually thought about finding a Norwegian guy to help him out on a little stunt that he had planned for his session later that day (Oslo: Models & Repository – he did it together with Martin Gudgin). I told him that he had met the right guy and I agreed to meet him in hall 151 a bit before the session would start (at 0300PM).
  • Took a cab down to the Together@PDC event to meet some of the Norwegian guys; Tor Einar Solli, Knut-Olav Traa, Peter Lillevold and Arjan Einbu. The party was at the Figueroa Hotel and when I got there my name wasn’t on the list – but by flashing a large smile and some of my Norwegian mojo, I managed to get in.
  • I got there a bit earlier than the others and the party area wasn’t exactly packed with people. Grabbed a beer from the bar and introduced myself to a group of people that already was present when I got there.
  • It turned out that the ten first guys I talked to were from South Africa so I was beginning to think that I had crashed a .ZA party. Luckily, that was not the case (no offense .ZA guys).
  • After a while Dan showed up from nowhere. Nowhere being defined as the other side of the pool area. Turned out he had attended a party that was about to

Thursday

  • When I woke up at 0705AM (without having turned on the alarm clock) I think I was still drunk – or at least very hung over. Took a quick shower and grabbed a shuttle bus to the convention center.

After boarding our flight, CO38 heading for OSL we where told that there was a problem with the airplane. After waiting for about half an hour we were told that we had to change to another plane. So now we’re waiting outside the gate opposite to the gate we initially used – 113.

Hopefully we’ll be leaving in about half an hour.

Argh.

Next up is  Don Box and Chris Anderson on Codename “Oslo”.

Stay tuned – live blogging.

Don Box – Distinguished Engineer
Chris Anderson – Partner Architect

A Lap Around The Azure Services Platform

NO Powerpoints on stage! Only VS2010 – DEV 10!

Standards: Uri’s, HTTP & XML

My left arm is killing me – think I’ll have to put away my computer for a while – sorry for that.

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)”);

P1020458

P1020459 Microsoft’s new services platform
US first - rest of the world later
CTP now
fraction of functionality now