Thursday, April 05, 2007

series_8_vspower_left.jpg

On Wednesday, April 11th from 6:00PM - 9:00PM, come join us at the Microsoft office at 77 W. Wacker in Chicago for the maiden voyage of the Chicago Visual Studio Team System User Group! You can register for the event here, or visit www.microsoft.com/msevents and use Event ID 1032333482 (in addition to search for all the other great events we have in your area!)

Agenda for the April 11th meeting:

6:00pm - 6:30pm Welcome, Introductions and Pizza
6:30pm - 8:30pm What is Visual Studio Team System?
8:30pm - 9:00pm Q&A, Raffle and Wrap Up

Microsoft Visual Studio 2005 Team System is the best integrated software development platform to build the mission-critical applications that businesses depend on. It extends Visual Studio’s integrated and productive experience from the developer to the entire development team by delivering powerful new role-based tools for software architects, developers, testers and project managers.

It also includes an integrated team server and customizable processes to help teams drive predictability, visibility, and control into their software development process.  Join us each month for new topics including how the different role based editions can help your team to finish your projects on time, on scope and on budget, dive into the many features included in the powerful and robust Team Foundation Server product, or speak to one of the many partners who have extended the platform to enable continuous integration scenarios, integrate into Microsoft outlook, even an Eclipse plug-in!

Thursday, April 05, 2007 9:57:23 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  | 
 Tuesday, April 03, 2007

What happens when a group of passionate evangelists, Microsoft MVPs, Microsoft Regional Directors get together, listen to customer feedback and advocate on behalf of you, the developer and the customer? Massive changes to existing go-to-market plans and more products at your disposal to make building the best applications ever even easier!!

Today, Soma Somasegar announced that we are making Expression Web and Expression Blend available to anyone with an MSDN Premium Subscription, but I wanted to take a moment and provide you with a peak behind the curtain at how - unknown to many of you - there was a huge amount of advocacy on your behalf to make this possible.

We've have had a very vocal and long running debate inside of Microsoft that spanned our Developer & Platform Evangelism teams, MVPs, Regional Directors, product managers - the whole gambit! - for the past few months. The debate centered around whether or not our new Expression line of products would be available to developers with an MSDN Premium subscription.

The go-to-market plans around Expression were originally designed such that Expression Web and Expression Blend were for the "designer market" not the "developer market," and therefore would not be made available to developers through existing MSDN Premium subscribers. Instead, these products would be made available at a steep discount but would require an out-of-band purchase to acquire. However, everyone above - myself included - went to the mat to be your advocates in pointing out that the line between developer and designer is not always so well defined.

You see, we have lived the life of the developer. We know what it means to have better tools for building better Web applications. And with the introduction of Windows Presentation Foundation - a technology that borrows many concepts from Web-based design - we know that having kick ass design products for creating stellar Web and WPF applications is a must-have for our development community.

Visual Studio 2005 is the best development tool on the face of the planet. How do I know? Every developer I've seen use it does not want to give it up - and that includes some staunch Java converts I've known in my career! And while Visual Studio 2005 enables you to create Web and WPF applications, it will never win over the hard-core design market, nor does it make design of advanced user experiences very easy.

All that changes with Expression Web and Expression Blend. If you've never spent time with design tools, the experience is likely to feel a little odd. And that's by design. Expression is targeted at the design market - and designers do think differently than developers. However, everyone's voice made it claer that developers frequently do cross the line into the design realm and could create even more compelling applications if provided with the same tools that designers have at their disposal.

The result is today's announcement that Expression Web and Expression Blend will be available via MSDN Premium Subscriptions. So, if you're a Visual Studio 2005 with a MSDN Premium Subscription, you can download Expression Web today from MSDN Subscriber Downloads. You can also download the release release candidate of Expression Blend which will also be available on MSDN Subscriber Downloads when finally released. And what if you don't have an MSDN Premium Subscription? Then go download the trial version of Expression Web and see what the buzz is all about.

In summary, I do not recall a more long-running and passionate set of conversations in favor of developer advocacy like this in my 10 year career here at Microsoft (not to say that they haven't happened, but it was awesome to see this one evolve.) It makes me proud to be a Microsoft employee and a Developer Evangelist in particular. As this is a substantial change to the original go-to-market plans it should, once again, demonstrate Microsoft's deep commitment to listening and responding to the needs of you, our customers.

Now, go grab the tools and start building the most compelling applications your users and customers have ever seen.

[Edited to make it clear that this effort was put forth by Microsoft MVPs, Microsoft Regional Directors and a ton of passionate folks within Developer & Platform evangelism.]

Technorati tags: , ,
Tuesday, April 03, 2007 10:01:15 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [2]  | 
 Wednesday, March 28, 2007

I've been a Speakeasy customer for years and years. They have been - and continue to be - a fantastic ISP. Speakeasy is one of the few ISPs on the face of the planet where a support call can go something like this:

Me: "Hello, I seem to be dropping packets at a router about four hops past my own gateway."

Speakeasy CSR: "Just a moment while I look into it ... yup, we see that too and we've dispatched a technician to look into it."

This is radically different from the typical ISP experience where the CSR wants to know what version of Windows I'm running, have me reboot my computer, have me reboot my DSL modem, etc. Furthermore, Speakeasy provides me with true naked DSL - I have no ties to the local phone company and rely upon Speakeasy for my Voice-over-IP services (which, by the way, have been rock solid, including 911 call handling by the City of Chicago they way it should be!) I have more than enough dedicated IP addresses for my needs. I can host any and all network services I choose. Speakeasy does a fantastic job of providing me a high-speed gateway to the Internet, letting me do whatever I want with that link and supporting me in my efforts.

This morning, I awoke to a mail message from Bruce Chatterley, Speakeasy CEO, communicating they had been acquired by Best Buy. While I personally have not been burned by some of the Best Buy horror stories out there - in fact, I've had very good experiences with Best Buy's in-store customer service - I'm somewhat concerned over where this could go. Fortunately, the acquisition was made by Best Buy for Business, which gives me some hope that Best Buy has the proper focus around how to deal with customers with demanding needs. Speakeasy certainly understands this, which is why this acquisition certainly makes sense.

Rest assured I'll be closely watching this one. Should the stellar service provided by Speakeasy begin to falter as a result of Best Buy at the helm, I will no doubt look to something like FIOS from Verizon. However, until that day comes I will remain a loyal Speakeasy customer and relish in the stability of their service.

Speakeasy, you have treated me well for years ... please keep up the good work and keep me as a loyal customer!

Wednesday, March 28, 2007 6:02:36 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  | 
 Saturday, March 17, 2007

I recently commented on Scott Hanselman's desire for the Ultimate Developer Rig and thought I'd share my comments directly with you all.

  1. Re: 64-bit Vista - unless you’re putting > 4GB of RAM in the machine, the return on performance for 64-bit Vista does not outweigh the potential for driver issues and the pure annoyance of the file system structure to store 32-bit applications, especially when you consider your list of power tools … how many of them have 64-bit versions? Yes, 64-bit Vista works great (surprisingly great, actually), but the market and adoption are still in their infancy
    1. On a related note, we recently did some benchmark testing of our 4GB Dell Latitude D820 boxes with 512MB nVidia Quadro 120Ms running both 64-bit Vista and 32-bit Vista; in all test cases, 64-bit did indeed outperform 32-bit, but that’s where the truth stops; the performance increase was ever so slight; so my recommendation here is to do a perf benchmark on your final rig in both configurations to determine if your 64-bit config blows 32-bit so far out of the water that it’s worth the potential 32-bit/64-bit application and driver compatibility hassles
  2. Visual Studio 2005 has no edit-and-continue support for 64-bit installations; while I don’t do a ton of edit-and-continue myself, I’ve done it enough times to be annoyed by 64-bit VS2K5 not supporting it
  3. Make sure your motherboard can address > 4GB of memory; it’s no secret that in many cases we’re staring the old days of 1MB DOS back in the face with the 640K/384K split for IO address mapping; read the Coding Horror article for good links to info/insight on this particular topic
    1. Then if you get a box that can address > 4GB of memory, either put 4GB or greater into it and run 64-bit Vista or put 3GB into it and run 32-bit Vista per the guidelines above
  4. I’d be real tempted to do a RAID 10 set for my data drives at 7,200 RPM or better … stripe and mirror; doubles your cost for hard drives but gives you wicked speed and reliability – especially when you’re potentially I/O bound on large compiles, file copies, etc.
    1. Make sure you trust your RAID controller and driver! Either can make scrambled eggs of your data regardless of the amount of redundancy you throw at it (RAID 1, 5, 10, etc.) if either decides to have a really bad day
  5. nVidia’s video drivers, while WHQL certified, are not as high performing as ATI across the board; video is often times a religious debate, as I’m sure you know; if you’re intent is to do development work and not gaming, I’d go with ATI every time whereas gaming can be a crap shoot
  6. If you do virtual machines and are a Virtual PC/Virtual Server fan rather than a VMware fan, then use Virtual Server 2005 R2 SP1 instead of Virtual PC, assuming of course that you’re getting a dual core or better machine; Virtual PC will not take advantage of more than one CPU, where as Virtual Server will, and it runs fine on Vista in its current release candidate form
  7. Get the largest/fastest CPU cache and memory speeds you can afford; a fast/large CPU cache makes a huge difference, though you pay for it
Saturday, March 17, 2007 12:21:54 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [1]  | 
 Tuesday, March 06, 2007

There's been a good deal of interest in my last post, How to Use Windows CardSpace with ASP.NET Forms Authentication. I recently went back and reviwed the screencast and noticed that I mistakenly stored the private personal identifier rather than the unique identifier.

If you're using my code as an example, you need to make some minor tweaks:

  1. In Link.aspx.cs, replace the token.Claims property usage with token.UniqueID on line 32
  2. In Login.aspx.cs, replace the token.Claims property usage with token.UniqueID on line 28

Technically you can leave the database changes alone and still use the field named PPID, but it may be desirable to refactor the database and the stored procedures names to reflect the storage of a unique identifier rather than the private personal identifier.

In short, you want to rely upon the unique identifier rather than the private personal identifier for a number of security reasons. Vittorio Bertocci does a great job of explaining the details about why you want to use the UniqueID rather than the PPID in his post UniqueID and PPID.

Tuesday, March 06, 2007 12:05:14 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [2]  | 
 Tuesday, January 09, 2007

You give me 18 minutes, I'll give you Windows CardSpace integration with ASP.NET forms authentication. You can watch my How to use Windows CardSpace with ASP.NET Forms Authentication screencast directly from Microsoft's streaming media server or download and watch the video later.

[EDIT: The download link was broken and is now fixed as of 13:23 CST]

In this screencast, I take a simple ASP.NET 2.0 application that has been secured with forms authentication using the AspNetSqlMembershipProvider, and extend it to support information cards with Windows CardSpace.

The Challenge

So, how do you take an existing ASP.NET 2.0 application that is using an ASP.NET membership provider and extend it such that users can authenticate with either their existing username and password or their information card? You build upon the awesome out-of-the-box experience that ASP.NET 2.0 provides with the AspNetSqlMembershipProvider!

The AspNetSqlMembershipProvider

Ultimately, the AspNetSqlMembershipProvider uses your username to log you into a site using the FormsAuthentication class. Since you typically provide your username when you log into a forms authentication-secured site, gaining access to the username is pretty straight forward.

The Solution

In the case of information cards, however, a username is not provided. In its place, a private personal identifier, or PPID, associated with one's information card is the unique piece of identifying information.

It is a relatively simple exercise, then, to extend the ASPNETDB used by AspNetSqlMembershipProvider to include a new table that provides a mapping between a username and a private personal identifier.

My screencast walks you through the creation of an ASPX page that enables an authenticated user to link their information card with their account, and then extends the login page to use an information card as an alternative authentication mechanism. I hope that once you've watched the screencast, you'll be prepared to start extending your own ASP.NET 2.0 applications with information cards as well!

More Information

If you are new to ASP.NET, there is a great "How do I?" series for all things ASP.NET at http://www.asp.net/learn/videos. In particular, How do I: Secure my Site using Membership and Roles? provides you with the background you'll need to secure your site using the AspNetSqlMembershipProvider before attempting to integrate information cards with Windows CardSpace.

This posting is provided "AS IS" with no warranties, and confers no rights.

Tuesday, January 09, 2007 12:21:48 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [1]  | 
 Saturday, December 30, 2006

Unfortunately, the hard drive hosting the virtual instance of casadehambone.com completely failed. It will take another day or so to get everything back up and running again.

[Update: Saturday, December 30, 2006]

Windows Live Writer has saved my bacon! I was able to repost everything that was saved by Windows Live Writer and recover > 90% of the last four months of content on casadehambone.com. I also found some cached entries on Google that will let me recover the few posts I wrote outside of Windows Live Writer.

Through a bit of DasBlog hacking on the content files, I was able to get everything back into to the month in which it was written. December, November and September are actually updated with matching dates and times from their original entries. Presently, all of Octobers posts are dated 2006-10-01 but that will change when I have a bit more time to walk through the 50 or so posts and hand-edit their timestamps.

I'm also blessed in that I have all of the XML files created from when I migrated from .TEXT to DasBlog, recovering history dating back to my first ever blog post, March 2, 2004!!

Saturday, December 30, 2006 12:28:39 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  | 
 Sunday, December 17, 2006
Amazon.com

Amazon does a great job with the mobile browsing and buying experience.

Saturday I was sitting at my daughter's dance class and remembered a DVD series my wife wanted for Christmas. I could think of no better way to spend the idle time than knocking out some much needed Christmas shopping. Armed with my Samsung Blackjack, I fired up Internet Explorer and browsed over to www.amazon.com.

First thing to note is that amazon.com renders specifically for the mobile device, making it cake to browse for products without the annoying up-and-down/left-to-right scrolling that pains most visitors to web sites that don't consider the mobile browsing experience.

Second thing to notice is that amazon.com does a great job of using "1-Click" ordering specifically in the mobile version. Why? Because it is hard to enter billing and shipping information on a mobile device. Since I had visited amazon.com before on this device, they knew who I was and could leverage my 1-Click settings. And had I purchased multiple items, I could use 1-Click for them all and Amazon would batch up all the purchases into a single order. That's nice.

So there I was, sitting at my daughter's dance class and in less than two minutes had found the DVD series my wife wanted, had it purchased, gift wrapped and shipped to Casa de Hambone in time for Christmas. I got back to watching the kids tap and smiled knowing that I had just done some Christmas shopping while looking around at the other father's who clearly were sweating what they'd be getting their wives for Christmas and wondering when they'd find the time to get it.

Grab your favorite mobile device and go browse www.amazon.com. And honey, if you're reading this, act surprised on Christmas.

Technorati tags: ,
Sunday, December 17, 2006 10:51:43 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  | 

In order to further expand the social and success of Zune, Zune needs every way possible to not only share music itself but to enable owners to discover as much new music as possible. Why? Because that drives demand for Zune Marketplace which, in turn, drives revenue and brand loyalty.

Like most Zune new users, the first thing I tried was to share music from my Zune to a friend's Zune, only to discover that it failed miserably. The music I was trying to share was from Zune Marketplace via a Zune Pass. I've come to learn that it is hit or miss as to which tracks acquired via a Zune Pass may be shared in the social. However, what would rock would for me to freely share my playlists with friends, along with any sharable tracks over WiFi and over Zune Marketplace.

When I had a Yahoo! Music Unlimited subscription I had the ability for my friends to see my music library and my playlists. This was an incredibly powerful feature. If they too were equipped with a subscription, they could immediately start listening to music that I liked. It was a great way to find music if you know of others with similar tastes.

Zune needs the same thing. Not only should I be able to share the music itself, but sharing the playlists provides a way of saying, "Here's a variety of stuff I like that you may like too." Include with that playlist a set of "previews" of the tracks contained within the playlist. Just enough of a teaser for someone in the social to decide if they like it too and then use the playlist as a shopping list on Zune Marketplace.

Zune also needs a way to link to music on Zune Marketplace. Why? I'm currently streaming Rainbow in the Dark by Dio from The Very Best of Dio via Zune Marketplace over Milwaukee's free city-wide WiFi connection. I'd love to link you to it but I can't. Rock on.

Technorati tags: , ,
Sunday, December 17, 2006 10:36:03 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  | 

What a pleasant surprise tonight! I've read about major cities in the U.S. rolling out city-wide WiFi networks (in fact, my brother who runs the budget for Orange County recently asked me about doing this) but have never actually had an opportunity to use one. That is, never had an opportunity to use one until tonight.

As I checked into the Milwaukee Hyatt I inquired as to the availability of Internet access from the hotel. I was politely informed that wireless access is available, is provided by a separate company and is billed at $9.95 per 24 hours. That itself is a tad surprising in this day when many hotels are including Internet access in the price of the room. Still, I'm glad that I'd have some quite time to catch up on some research for an upcoming project. Once I reached my room and unpacked my laptop, I was greeted with three wireless networks from which to choose.

Now is probably a good time to bring up WiFi security. If you look at all three of those networks, each has the Windows Vista warning shield icon on them. I have no way of looking at the list of networks and knowing which one is "safe" to use. Which one do you choose? Chances are quite good that Hyatt is the network I'm interested in (given that I'm staying at the Milwaukee Hyatt.) But without a call to the front desk to specifically ask which network the Hyatt recommends I use, its an educated crap shoot. Pick the wrong WiFi network and you could end up on a network with bad intentions.

The network that got my attention is MILWIFI and connecting to it immediately yielded an IP address. Upon opening Internet Explorer I was greeted with a Terms of Customer Use Agreement. The second line of the agreement states, "All Customers must provide accurate and complete billing information, as requested for registration or billing." I really wondered what I had stumbled on and expected to be greeted with a registration page when I clicked I AGREE. Instead, I was greeted with a welcome page to the City of Milwaukee's WiFi network!!

Imagine that. Here I am 90 minutes north of one of the largest cities in the country (Chicago) where I find their technology infrastructure to be deployed than in the Second City. So I sit here, from the comfort of my hotel room, blogging and doing some research compliments of the City of Milwaukee.

Thank you, Milwaukee!

Technorati tags:
Sunday, December 17, 2006 8:56:25 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |