It’s the last day of the show, and I have to say I’m ready to get back to writing code rather than learning about writing code! Basically in 4 days they’ve packed in a college semester’s worth of class…makes me realize just how easy college was!
The first session was bright and early at 8:30am. Fortunately it was a good one, it was Exchange Web Services Managed API. Basically this technology will make it extremely simple to write to Exchange, either hosted in the cloud or locally, in your own applications. You can interact via Raw SOAP based XML, Autogenerated SOAP Proxies, or via the Managed API. We were led through a series of demos on creating appointments, setting up meeting requests and doing other tasks that in the past were very difficult to accomplish. Now it’s a few simple lines of code. There were a few points they wanted to drill home which they did, first, you should always “Autodiscover” rather than hardcode the URI of the exchange server. This is done through the managed API by providing an email address to an autodiscovery function that’s built into the API. The autodiscovery does take a few seconds so it is then recommended that you cache the URI for up to a day or so and utilize the cached version. The second was that you can use a “PropertySet” when requesting data to limit what is returned to only what you need. This reduces overhead, both on server IO and network overhead. They presented the ability to trace a service object which prints out the raw soap to the debug console. This is great if you are trying to develop in another platform that only supports raw xml, you can copy these soap messages into your application and parameterize them as necessary. Also displayed was the fact that a “change key” comes down with each object so that you can ignore taking action if nothing has changed. There are also ways of receiving notification via pull or push subscription. This technology looks fantastic, it has not been released yet but I was able to get added to a private “metro” beta so hopefully I’ll get the bits in a few days.
The next session I attended was not nearly as intriguing to me. It was a session about .Net messaging and scalability. I just have had a really hard time getting my head around the latest WCF networking stuff and this trend continued in this session. I am an old school TCP/IP nerd and all this “voodoo” is just not totally making sense to me yet.
After a quick boxed lunch I attended “Building WPF Datacentric Apps with the Datagrid and WPF Ribbon Control.” Samantha Durante went through both controls. I was pretty familiar with the datagrid control, but the introduction to the ribbon control was very interesting. I have some thoughts as to how we may wish to leverage this in our application, although I’m a bit concerned about its ability to be built out of code at run-time which is a pre-requisite for true user customization. Nevertheless, it is an extremely powerful control, its ability to auto-size is fantastic and it looks quite flexible in this regard. It’s Contextual tab functionality may get around any problems with building tabs at run-time. The Ribbon control also introduces a new root control called the “Root Window.” This was necessary to allow it to interact with the title bar in the same way Outlook does. This session finished up with a demo of some of the latest WPF designer improvements in VS 2010. Mark Wilson-Thomas showed us how you can automatically create your bindings from the Datasources window. Further there is a databinding picker available now in Cider, along with color pickers that work for solid brushes and gradient brushes.
The last session of the conference I sat in on was “Live Platform: Deep Dive on Virtual Earth.” Virtual Earth is really cool. There are 2 main pieces right now, an AJAX control for websites and a web services interface for the rest of us. Unfortunately there is not a Silverlight or WPF control right now, and when I asked about it they said they had nothing to announce. The new 6.2 version of the Virtual Earth AJAX control adds support for imagery metadata so you can find out when a tile was taken. It offers routing landmarks so it will tell you that there is say a “Burger King on the left” when making a turn. Tile localization has been added in a few languages so that you can tell it to display the map in French, English, Spanish, or German (there may have been one other). Finally, Pushpin clustering has been added so that groups of pushpins near each other are rendered as one until you zoom in further. Virtual Earth 6.2 now has a webservice. The webservice supports Imagery, Search, Geocoding, and Routing, in addition to a common authentication & token service that is needed to set this all up. One of the coolest things that was demonstrated with the webservice was the ability to leverage SQL server’s “Spatial Queries” to query for all objects within x miles of another object. Unfortunately this is a feature of SQL server, not of Virtual Earth, on the upside, it is available as part of SQL Express so some clever development could leverage this without paying for a full SQL license. Virtual Earth is a very impressive product, licensing is always a concern, we may utilize it at some point if we can figure out just how much it would cost to do so.
That wraps up my trip to PDC. LA is a great city, much nicer than I expected it to be. I enjoyed my time here very much, thanks to a great show and some great friends who let me crash on their couch and showed me around while I was here. If any of you have further comments please feel free to leave them!