27 September 2011

It’s that time of the year again… Time for Tulsa Tech Fest 2011! I’ve had the pleasure of speaking at this conference for the past several years and it has always been a well-planned and orchestrated event. If you are going to be around the Tulsa area next week (Friday, October 7th) then take the time to register (it’s FREE! although a food donation is requested – see the web site for details) and enjoy some great content throughout the day.

This year I will be presenting on the following topics:

Getting Started with the TFS Object Model - Microsoft's Team Foundation Server (TFS) is a very capable platform for integrating all aspects of the software development lifecycle (SDLC). There is a great deal of functionality provided out of the box that will handle the majority of a development team's needs. However, there are times when you need to extend the functionality of TFS to handle scenarios not anticipated by Microsoft (or they just didn’t have the time to get them built into the product). This session will cover the common APIs provided by the TFS Object Model and provide the knowledge needed to get started developing with TFS right away.

Visual Studio v.Next: A Look at What's Coming - Visual Studio 2010 was released a year and a half ago but Microsoft has been hard at work on the next release. This talk will take a look at the myriad features that are being incorporated into the next version of Visual Studio and Team Foundation Server. Some of these features are even available today for use within Visual Studio 2010. If you want to get a peek at what's coming in Visual Studio v.Next (a.k.a. "Dev11"), then check out this session.

20 September 2011

Like most people who downloaded the Windows 8 Developer Preview last week, I’ve have only a short amount of time to play around with the bits. During that time I’ve hit several speed bumps and have scratched my head a bit while attempting to figure out a few (seemingly simple) tasks. What I’ve listed below are just a few of my observations and moments of contemplation that I’ve had over the past few days.

How do I shut down my Windows 8 machine? This is one of those functions that is so completely obvious that you don’t realize it’s even there until someone moves it from the place it’s lived in for the past 16, or so, years. Like a lot of people, I installed the Windows 8 Developer Preview bits, played around for a while only to realize it was the middle of the night. So I decided to power off my laptop and go to bed. However, I no longer had a “Shut down'” option under my Start menu. In fact, all my Start menu seemed to do was toggle between the two most recent apps. So, I had to do some digging.

There are several options, none of which were immediately obvious to me, for powering down your Windows 8 machine. Although there may be other options that I’m no yet aware of, I’ve included the ones I’ve discovered below. Some of these are more convenient than others but I’ve listed them all for completeness:

On the Start screen, press Windows+I to display the Settings panel and then click on the Power icon at the bottom and select Shut down.

Press Ctrl+Alt+Del and then click on the Power icon at the bottom and select Shut down.

Go to the Control Panel (e.g. from the Start screen type ‘con’ and press Enter) and select More settings. Click on Power Options and then ‘Choose what the power buttons do’. Set the ‘When I press the power button’ option to Shut down. Then simply press the power button to turn off your machine.

You can also create a Shut Down Live Tile for your start screen. Instructions are here.

Keyboard Shortcuts. If you’ve been using Windows 7 (or prior versions) for a while then you may already be used to many of the standardized Windows keyboard shortcuts. For example, pressing Windows+E will display the Windows Explorer. Most of these shortcuts still work in Windows 8 but there is also a new set of keyboard shortcuts for the new Metro-style Start screen. Rather than list them all here check out this post.

Windows Phone 8. Although I didn’t attend last week’s //Build/ conference, I have watched the keynotes as well as several other sessions. One topic I didn’t really hear/see any information on was that of Windows Phone 8 (codename “Apollo”). I’ve seen various speculation (e.g. here and here and others) that Windows 8 would eventually run on Windows Phone but I didn’t see anything to substantiate that during the conference. It only makes sense for Microsoft to head that direction, I just suppose it’s a little too early to talk about it with Windows Phone 7.5 (“Mango”) due to be officially released (by the carriers) any time now.

.NET Framework. It’s certain that the .NET Framework is not going anywhere anytime soon. I do have to wonder, however, just how long will the .NET Framework be around? With the introduction of the new Windows Runtime (WinRT) used to develop Windows 8 Metro applications the .NET Framework is now used to develop non-Metro apps (including Silverlight-based applications). Will WinRT eventually be used to build all applications for Windows 8? I suppose that until all supported versions of Windows support WinRT Microsoft will have to continue support for the .NET Framework. Only time will tell but I’m sure someone in Microsoft has seen the super-secret roadmap and knows where all of this is heading.

Silverlight. There was a lot of speculation around the demise of Silverlight prior to the //Build/ conference. It was widely rumored (and somewhat stated) that HTML5/CSS and JavaScript were to be the languages of choice for writing Metro applications in Windows 8. A lot of questions were asked about the future of Silverlight if HTML5/CSS+JavaScript were to become the cross-platform technology of choice.

Although I did not see it directly addressed, it’s fairly clear now (after the conference) that Silverlight is very much alive and that the HTML5/CSS+JavaScript solution, when utilizing WinRT, really only applies to Windows 8 Metro apps – not cross-platform apps (like those that you might build with Silverlight).

So, from my simplistic point of view, if you want to build “fully immersive”, Metro-style applications in Windows 8 then HTML5/CSS+JavaScript over WinRT is a valid option (as is C/C++, VB, or C#). However, if you want to build a business application (or even a non-business application) that runs across multiple versions of Windows and/or other operating systems then Silverlight is still a great choice (as is HTML5/CSS+JavaScript sans WinRT).

What Gets “Metro-fied”? If you’ve used Windows 8 for more than a few minutes on a non-tablet PC (i.e. a desktop or laptop) then you surely have been forced into the non-metro bowels of Windows. For example, if you start Windows Explorer (Windows+E) it will open in the “desktop” shell. If you want to change your power settings (as described above), you will have to do that from the old-school desktop. In fact, the majority of Windows features do not run within the new Metro-based Start screen. So, as Windows 8 marches its way toward RTM, exactly which applications will be metrofied?

I don’t know the answer to this question but it seems logical that any application that you might want to make use of on a tablet PC would be a great candidate for metrofication. For example, the calculator app that ships with Windows 8 is currently not metrofied (i.e. it opens up on the desktop when you run it). I would imagine that a calculator app might be useful on a tablet PC so I could see this app being metrofied by the time Windows 8 finally ships.

Your Mouse is Not a Finger. Unfortunately, I was not at the //Build/ conference this year so I did not receive one of the ultra-cool Samsung Windows 8 Tablet PCs (or whatever they called them). Therefor, I installed Windows 8 on an old Dell Inspiron 9300 that does not have a touch screen. Once I logged on I was greeted by the beautiful, new Metro Start screen. Naturally, the first thing I did was to attempt to left-click and drag my mouse cursor across the screen in an attempt to scroll through the applications. To my surprise, nothing happened. It turns out that there is a really big (and ugly) scrollbar at the bottom of the screen that you have to use to manipulate the app list with the mouse. Why? Why not treat the mouse as a single touch point when left-clicking on the background? If your computer is locked (e.g. when you first power up) you can slide the lock screen up with the mouse. Why not the application list? Maybe this is something that will be worked into a future version (possibly as a configuration option that can be turned on/off). If not, maybe there will be enough extensibility in the platform such that a 3rd party provider can create some type of add-on to provide this type of functionality.

Closing an Application. Much like with Windows Phone 7/7.5 it appears you don’t really have to think a whole lot about closing (Metro) applications in Windows 8. In fact, none of the Metro applications that ship with the Windows 8 Developer Preview appear to have any sort of “close” functionality. When you’re finished with an app, you simply swipe from the right to display the “charms” (see below) and click on the Windows icon (or press the Windows key). At some point Windows will suspend and, eventually, terminate the application process(es). The specifics of how all this works is still a bit of a mystery to me (e.g. at what point is an application suspended? At what point does it get terminated?) but I’m sure the answers are out there somewhere – I just haven’t come across them yet.

Charms? Really? If you have a touch-based system running Windows 8 and you swipe from the right (or press Windows+I on a non-touch-based system) a vertical row of five icons are displayed (Settings, Devices, Share, Search, and Start). These icons are called, according to Microsoft, Charms. In fact, Microsoft has filed for a trademark for the term “charm”. I’ve always thought of charms as those small, shiny, jingly things my daughter wears on her bracelet. I suppose I’ll just have to get used to this one :-)

There is no 10 (at least not yet :-). For the sake of not creating yet another top ten list I am intentionally stopping at number nine above. However, as I spend more time with Windows 8 (and Visual Studio 11) over the coming weeks, I am sure I will uncover more questions and hopefully even more answers. One thing I am sure of is that it is going to be a fun time digging into all that is new with Windows 8.

13 September 2011

Like so many others, I was not able to attend the //build/ conference (formerly known as the Professional Developers Conference or PDC). However, I did have the opportunity to watch the streaming keynote live and I’ve also spent a good portion of the day watching various twitter, Facebook, and blog posts from those who are attending. With so much coming out of Microsoft in one day it’s hard to keep up with everything being announced and talked about so I thought I’d put a few notes together around today’s event.

The word of the day is BOLD

I didn’t actually count the number of times the word “bold” was used during the keynote session earlier today but I can safely say it was used a lot. In general, it was used in reference to Microsoft making a “bold, no compromises move”. I have to admit, after seeing the various demonstrations from the keynote, I agree that Microsoft is making a bold move and rethinking Windows as a platform. A quick (non-complete) list of some of the things demonstrated include:

Windows 8 using less memory with fewer (default) processes than Windows 7

Picture-based login

Support for inter-application integration provided directly within Windows 8

Spell checking at the OS level (i.e. spell checking everywhere)

Fast boot

Developing for Windows 8

With Windows 8 Microsoft introduce a new programming platform known as the Windows Runtime – or WinRT. Developers can now utilize their language of choice when building applications targeted against Windows 8. Regardless of which language you choose, which now includes JavaScript, the WinRT APIs will be reflected into your language of choice and made available for use.

One thing to note is that Silverlight (or WPF for that matter) was only mentioned during the keynote as a “legacy” technology (in not so many words). They did demonstrate running a Silverlight application running on Windows 8 and was able to “Metro-fy” it with a minimal amount of code modification. It seems that the rumors of HTML5/CSS + JavaScript being the preferred approach for developing Metro-style applications rather than Silverlight have been verified.

A pre-release version of Visual Studio “11” was also demonstrated and used for the various coding examples. The keynote did not go into the details of what’s new in Visual Studio so I will post more details on Visual Studio as they are made clear.

A new (pre-release) version of Expression Blend 5 was demonstrated now with support for HTML and CSS! That is an awesome addition to the Microsoft development tools suite.

Head in the Cloud

Windows Live integration is front and center in Windows 8. Modifying your applications to interact with SkyDrive, for example, requires minimal coding and is supported directly by Windows 8. Windows Live integration is present throughout Windows 8 with my favorite feature (although it wasn’t directly demonstrated) being the ability to synchronize your various settings (e.g. history, passwords, themes, etc.) via the cloud so they follow you around from device-to-device.

The “Giveaway”

If you’ve followed the PDC for the last couple of years you know that Microsoft has given some type of hardware to each of the (paying) attendees to help gain developer support. A couple of years ago, at PDC10, it was an Acer Table PC. Last year, it was a Windows Phone 7 device (I happened to be there and received an LG-900 Windows Phone 7 device). Once again, this year Microsoft did not disappoint and provided each of the attendees with a Samsung Windows 8 Developer Tablet (or PC as Microsoft calls it). To add to the already great gift, AT&T threw in a year of free 3G service (2GB/month)! Not a bad deal for the attendees!

That’s Awesome! When Can I Have It?

In typical Microsoft fashion, no release dates were announced. However, they did provide the “Path to ‘RTM’” as shown in the slide below:

Although we don’t know yet when the final bits will be made available for download, you can download the Windows 8 Developer Preview now. There are three flavors of Windows 8 downloads available:

More to Come!

Keep in mind that my observations below are a small part of what was seen and demonstrated today. I’m looking forward to the next few days of the //build/ conference and probably a few nights of little sleep :-) I have the preview version of Windows 8 downloaded and am preparing to install it as I type this post (I’m currently creating a bootable USB drive for the image). I have no doubt that I, along with thousands of others, will be blogging their experiences over the next days, weeks, and months ahead. It is going to be a fun ride!