Recently I spoke at MS Days in Sofia, Bulgaria on a couple different programming topics. This is the second time I’ve been to Sofia, the first time was last October for DevReach. I really like Bulgaria and Bulgarians are super friendly, smart, tech-savvy, and on average the attendees were pretty young which was very cool. Also there seemed to be a lot more women in technology there – more than I have ever seen in any other country I’ve spoken. That was definitely awesome to see.
The conference was held in the Kino Arena which is a big, circular movie theater complex with 3 levels of theater rooms and a food court with escalators up the middle. Vendor and sponsor booths situated themselves around each floor. The theme of the conference was all about the cloud so all staff wore blue flight assistant-style dresses and these pilot wing pins which was really cute. They also had a cool community / “Ask the Experts” lounge set up with these “Austin Powers” 60’s-style chairs we could sit in as attendees came by and asked questions.
The first session I presented was on the OData protocol and how to create and consume data services in .NET. There were about 45 attendees. I have written and spoken about this topic many times and it’s one of my favorites. The session goes over what the OData protocol is and how it works on the wire. We first play with the Netflix data service then I show how to create them over Northwind and the AdventureWorks data warehouse. I then show how to consume them using PowerPivot in Excel. I also show how to consume and analyze data from the Azure DataMarket – these are sets of data in the cloud that you can subscribe to and use in your applications, some are pay and some are free. For my demo, I took some free US government crime data and used PowerPivot to create a simple report on the most violent cities. I also showed how to write a VSTO Excel document customization that works with SharePoint 2010 data services to visualize the data.
One thing that threw me off was the sessions at MS Days were only 60 minutes instead of 75 minutes so I had to cut out a Windows Phone 7 demo. I’ll save that one for TechEd US where I’ll be delivering this again there – with a couple extra demos up my sleeve ;-)
The cool thing about data services is that you can easily and securely expose data in your enterprise and then business users can use PowerPivot to consume these feeds directly into Excel 2010. These spreadsheet applications can then be saved back to SharePoint 2010 so that data can be managed by IT and refreshed on a schedule. Then users can browse to the applications and view them in the browser using Excel services. There’s a powerful story here even for a developer :-)
Here are some resources you should check out:
- Add Spark to Your OData: Consuming Data Services in Excel 2010 Part 1
- Add Spark to Your OData: Consuming Data Services in Excel 2010 Part 2
- Fun with OData and Windows Phone 7
- Integrate Outlook Appointments with SharePoint 2010 Calendar Lists using Data Services
- Using Projections with Data Services in Visual Studio 2010
Introducing Visual Studio LightSwitch
I had two sessions the next day on Visual Studio LightSwitch. There were about 50 attendees in this introductory session. In this session we build my version of the Vision Clinic application from scratch, end-to-end, including security and deployment. We do write some code but only some simple business rules and calculated fields, and in the end we have a full-blown business application. The goal is to show what LightSwitch can do for you out of the box without having to know any details of the underlying .NET technologies upon which it is built. I did the entire demo with just Visual Studio LightSwitch installed (not VS Pro or Ultimate) so that I could show how simplified the menus, toolbars, and tool windows are inside the development environment.
When I asked who had downloaded the Beta already, about 30% raised their hand which was great to see. I also asked how many people got paid to write code (i.e. were professional developers) and almost all of them raised their hand (which was expected since this was a pro developer conference). However there were about 6 people in there that were not developers but rather IT pros that came to listen in. That was fun because they realized how easily they could create these types of business productivity applications for the departments they supported.
What I showed in the session is pretty much exactly what I included in the LightSwitch Training Kit. If you look under the “LightSwitch Overview” on the right-hand sidebar on the opening page of the kit you will see the complete demo code and demo script that you can use for training folks at your local user groups. :-)
Here are some more resources to check out that will help introduce you to Visual Studio LightSwitch:
- LightSwitch Developer Center & Learning Center
- LightSwitch Training Kit
- LightSwitch How Do I Videos
- LightSwitch Samples
- LightSwitch Team Blog
- LightSwitch Forums
Visual Studio LightSwitch – Beyond the Basics
This session drew the most attendees for me, about 75, and about half of them had been working with the Beta already so the crowd was a little more advanced. In this talk I show what you can do with LightSwitch beyond just the screen templates and entity designer. I started off by quickly walking through our new Course Manager sample which shows off features of Beta 2. This application does not have any custom controls or extensions and really shows what kind of powerful applications you can build right out of the box with just Visual Studio LightSwitch installed. Check out the series Andy has started on how he built the Course Manager.
We then dove into the LightSwitch API and I explained the save pipeline and the DataWorkSpace as well as talked a little bit about the underlying n-tier architecture upon which LightSwitch applications are built. I also showed how to build custom controls, data sources, and how to use extensions to make your business applications more sophisticated. In this session I had LightSwitch installed into Visual Studio Professional so that I could show building custom controls and extensions. You create custom controls like you would any other Silverlight control in a Silverlight class library which can be referenced and used on screens. If you want to go a step further you can create a LightSwitch extension which (depending on the type of extension) integrates into the LightSwitch development environment and shows up like other built-in items.
To demonstrate custom controls, I built a simple Silverlight class library with a custom list box of my own and then showed how you can set up the data binding to the view model and reference the control on your LightSwitch screen. I also built a custom RIA service and showed how LightSwitch screens interacted with custom data sources. I think the crowd appreciated how easy it was to reference these controls and data sources from LightSwitch. When I got to extensions, I walked through the Bing map control extension (which is included in the Training Kit) and loaded it into LightSwitch. Just like any other Visual Studio extension, LightSwitch extensions are also VSIX packages you just click on to install. I then added the map to a Patient details screen to display the address of the patient.
You can get a good understanding of more advanced LightSwitch features by working through the LightSwitch Training Kit. If you look under the “LightSwitch Advanced features” section on the right-hand sidebar on the opening page of the kit you will see the demos and labs.
Here are some more advanced resources of Visual Studio LightSwitch to explore:
- The Anatomy of a LightSwitch Application
- LightSwitch Beta 2 Extensibility “Cookbook”
- Walkthrough of a Real-World LightSwitch Application used at Microsoft
- Channel 9 Interview: Visual Studio LightSwitch – Beyond the Basics
- Channel 9 Interview: Inside LightSwitch
Other Fun (and not so fun) Stuff
Community – The newsletter registration page for the local .NET communities in Bulgaria was written in LightSwitch – http://register.sofiadev.org/ – cool! This little one screen app lets folks signup for newsletters that interest them.
Press – I had an interesting time with local technology reporters the first night of the conference at this loud DJ’d social event that reminded me of speed dating. They had all the speakers sitting on one side of a table and about 20 or so press people sat in front of us and they had 5 minutes to ask you questions. At that point a whistle blew, they rotated, and you got to do that all over again with the next person. A few people lost their voices but it was a wacky & fun experience.
Travel woes – This was the first time I have ever lost my luggage travelling to Europe. To get to Sofia I flew through Amsterdam and my KLM flight out of SFO was 45 minutes delayed because of a ground security check so I was nervous I wasn’t going to make the Bulgaria Air connection. But when I got to AMS my Sofia flight was over an hour delayed (whew!) so I thought everything would be OK. NOPE. I made it but my luggage didn’t. Thank the lord I brought an extra pair of underwear and contact lenses in my purse. Between the clothes I was wearing and the conference speaker shirt I stretched one outfit for two days. My hair was a different story. My luggage made it to the hotel the next evening.
Connections – I made a lot of great connections and met a lot of cool people at this conference from areas like Germany, Turkey and Bulgaria that I hope to keep in touch with. Check out the pictures below.
Thank you Sofia, until next time!