in

Utah .NET User Group

Home of Utah's professional .NET developers.

Bryan Hinton's Blog

September 2008 - Posts

  • Hotmail gets a Wave 3 Update

    Hotmail was updated this week as part of the Wave 3 rollout.  When the Live Calendar Wave 3 update rolled a couple of weeks ago we got a good idea of what the UI for the new Hotmail would look like.  I like the cleaner look a lot.  In my previous post about the Client pieces of Wave 3 I commented that the UI change on the client didn’t do much for me.  That is not the case with the UI changes for Hotmail and Calendar, I like the changes a lot.  The performance as promised by the team seems great. 

    The search feature worked great – sweeping quickly through my mail collection to find matching items.  I couldn’t find a way to make it only search a specific folder which I like as an option to constrain search results from time to time. 

    One glitch to note is that with IE8 when trying to switch to Calendar it opens a new window.  With FF3 the Calendar view shows up in the same window that Hotmail was showing in as I would prefer and expect.  Not sure if that is a problem with how IE8 is working for me specifically or if that is the anticipated behavior for IE8 – I hope not!

    image

     

    Contacts

    I have a couple of gripes about contacts to air, but they really stem from the fact that I love what they have done to the Contacts view.  There has been some great work done there.  Not all the integration is available to us at this point I am assuming because in blog postings about the upgrade from the Hotmail team I could see People showing up on their Wave 3 header and that doesn’t show up on mine (although People does show up on the Contacts page as the “title” for that page.  You have a better breakdown of all your contacts versus who is a Messenger contact.  You get to see their profile pictures and when you click on it you can send them a Spaces message, IM them, email them, or view their contact information.  When I try to IM them Live Messenger comes up from what has been written I would expect a Web version of Messenger would be displayed for you to chat with the contact if Live Messenger wasn’t installed on the system.

    The Contact Info page is awesome in my opinion.  I love the Recent email listing sitting at the bottom.  The ability to quickly fire off an email to them embedded inline in the Contact page works really well for me (from a UI layout perspective that is – I never doubted that it would actually send an email to the person).  I went to my Gmail account to compare the UIs quickly.  Visually Hotmail was much cleaner to me – looks more polished as well.  All in all a much better UI look than Gmail IMO.  Back to the Contact page I LOVE that I can see a contacts permissions across Windows Live properties.  I can tell what Calendar permissions they have, what Skydrive folders they have access to (can wait for Skydrive and Live Mesh to have some integration story), and Profile information of mine they have access to as well as the same information about what I have access to of theirs.  It surprises me that I can’t edit those permissions from that screen – that enhancement would be Request #1.  Request #2 is that I would like to be able to sort my contact list in other ways than by name.  The main one that come to mind is by Status (Available, Offline, etc…).  There seems to be no effective way to see easily who is Online for example without selecting the Messenger Contacts option (since that is above the Category section it would seem to be considered something different than a Category) and then scanning the list which isn’t easy or effective.  Once again well done on the Contacts interface I love it.

    image

    Calendar

    The Calendar Wave 3 upgrade rolled out a couple of weeks ago or so.  I talked briefly about it or referred to it is a more appropriate description in my previous post on the Wave 3 Clients.  I love the interface.  Clean and focused.  I love that To-Dos have made their appearance and with them being connected to a Calendar that concept of a shared task list etc… is really nice and MS has definitely one upped Google in this space.  With the subscription to ICS files worked out etc… my wife and I have started using this heavily.  We sync them to Outlook and update them in Outlook using Outlook Connector and that works wonderfully as well.  Calendar has made huge strides and now stands as a worthy competitor to Google Calendar.  That said I do have a few requests of course!

    First – a way to search through your calendar – neither the online edition or the Live Mail Client exposed a way to search for future appointments.  Google Calendar has this and it is very handy – definitely a must have.  Second is To-Dos syncing down to the various Clients (Outlook or Live Mail).  I was disappointed that Live Mail didn’t have this with Wave 3.  I realize that there is a level of difficulty in matching Client capabilities with Server capabilities, but if the Clients are always going lag the Servers in functionality that is going to be a big disappointment.  Especially if new releases have the long lead times that Wave 3 has had.  Lastly, Recurring To-Dos!  I was surprised since we can add recurring events that recurring tasks weren’t available.  I use them heavily with Outlook and could never replace my To-Do tools without having recurring tasks.  You would also have to have that if you wanted to support a sync scenario with Windows Mobile.  I suppose that is truly my last request.  Windows Live for mobile has worked great for my email and contacts.  Obviously the last two pieces are Tasks and Calendar items.  Calendar is probably to the point where it may be possible to add that syncing capability.  Tasks/To-do synchronization with Windows Mobile will have to wait until we get recurring tasks.  I am not sure why I see a banner add on my Calendar.  I have a Hotmail Plus subscription and so I don’t see it on the Hotmail screen or on my Spaces site, but do see it on Calendar – that would seem to be a bug as I would expect it not to be there – am I wrong on that?

    image

    image

    Additional requests aside I am very pleased with the server upgrades to Windows Live (much more so than the Client upgrades frankly).  I am very excited and hopefully to see similar good things with the upgrades to Spaces, Photos, etc… 

    Note: I use this blog to post both Personal and Technical articles.  For a technical only feed use the following URL (http://bryanandnoel.spaces.live.com/category/technology/feed.rss).  For a family only feed use the following URL (http://bryanandnoel.spaces.live.com/category/family/feed.rss)

  • Maps.Live.Com continues to get better – now with Visible Weather and lots more

    I love maps.live.com and have for a long time I must confess.  There new update is full of good stuff – you can read about it here.  Weather is only one of the cool features that were added in this latest release.  I love the context provided in the driving directions (like turn at the Taco Bell).  Just ONE REQUEST add the drag route feature that Google and Yahoo have.  That is an awesome feature that can be very useful. 

    I like where MS is driving Live Maps and Virtual Earth.  I love that 2D and 3D are together in the same interface.  I love the new imagery including trees and bushes. It enhances the image quality immensely.  Too bad there are only 6 cities online with the V2 imagery right now.  Below you can see that Washington DC is partially cloudy as of the writing of this (weather data is updated every 3 hours or so I think) and Miami is cloudy (gotta love the trees in that picture as well).  Okay – in addition to my one request above, it would be cool to allow for a time of day setting.  Perhaps initially just a dusk type setting to differentiate between night and day.  But it would be awesome to do something similar to what is done with trees and bushes and added light sources.  Bigger buildings are lit up of course and then some amount of street light density, etc…  All in all - Well done Virtual Earth team!  I am looking forward to what you are going to do next!

    image

    image

    Windows Live Tags: clubhouse, Live Maps, Virtual Earth, Story
    Technorati Tags: ,
  • Windows Live Wave 3 Impressions

    Setting the context

      As I share my impressions at this point in the Wave 3 rollout I realize that we have yet to see the full picture.  At this point we have seen the Betas of the client pieces of Wave 3, but with the exception of the Calendar upgrade released last night the server pieces (like Groups, Photos,  Spaces, Hotmail, etc…) have not been upgraded and I have every reason to believe that great things are coming for those server pieces.  So I fully anticipate updating this post with my impressions of those upgrades as they come out as well as revising my impression of the client side tools as server upgrades affect the client experience.

       One of the major themes of Wave 3 so far seems to have been to revise the UI.  More consistent branding (excluding Photo Gallery which for some reason deviates from Mail and Live Writer) along with a cleaner look with more white space seem to have been key areas of focus.  Integrating Windows Live features throughout the suite seem to have been a focus as well, but after a year of largely silence for most of these tools I can’t escape the feeling that I wanted more.  For example calendar integration for Mail is a great feature, but after a year I was expecting it.  6 months ago I would have been excited by it.  I would have seen it as a satisfier.  After a year I expected it and if it hadn’t been there it would have been a major dissatisfier.  Couple that with the release of To-Do features on the server part of Calendar that are not exposed in the Client and I am left wanting (which in some ways could be seen as a good thing).  The major disappointment is that based on the past year I am expecting to not see another Mail upgrade for another year with little communication on what will be in it.   

    Writer

       Writer already had a decent extensibility story in V1 and I enjoyed leveraging the variety of plugins that were available.  The new UX is nice, but doesn’t make a net difference for me (not negative, but not positive either).  Writer didn’t have much to do in my opinion so little change here was expected.  The addition of YouTube as a provider of videos (and as a destination for publishing) is nice.  The integration story with Photo Gallery could have been improved (it is nonexistent).  Being able to pullout pictures from the Gallery using tagging and dates is much easier than having to sort through all my folders and files as the current Add Picture experience forces me to do.  As it is I open Photo Gallery find the pictures I want and use that to help me navigate to the right pictures in Live Writer.

    Live Mail

        Obviously as I mentioned above Calendar integration was a must for Mail.  I have had great success with my parents and grandparents using Mail for email and for RSS which I have written about before.  The RSS integration in Mail makes them feel like a blog article comes to them like an email and in a day when I still know IT people that don’t leverage RSS for my parents and grandparents to be using it is amazing in my opinion and a direct result of Mail being available as a desktop client (the fact that Google doesn’t have a better web integration experience for Reader and GMail continues to amaze me).  I am disappointed that Mail doesn’t expose the To Do functionality just released for the server part of Calendar.  I also am perplexed why clicking on Calendar changes the main window view, but clicking on Contacts opens up a completely separate window.  The Contacts window acted like this in V1 as well, but with Calendar operating differently the lack of consistency in the UI in that regard is highlighted even more.  Not a big deal just a little strange.  Mail doesn’t have an extensibility story nor does it have integration with Windows Live Events in anyway (which you do have with the web experience for Calendar).  Lastly does anyone still use the newsgroup feature?  If so for what?

    Photo Gallery

       I have loved Photo Gallery over the last year.  It is fast and focused on what I want to do.  I loved the Panorama feature.  Google stole a little bit of the thunder of the Photo Gallery upgrade when they released an update to Picasa that did facial recognition.  There are subtle differences in implementation that need to be noted.  Photo Gallery does recognition on the client while Google only exposes that functionality on the server I believe.  Google does take facial recognition to the next level on the server side by grouping faces that it sees as being similar together to make tagging them quicker.  I am not sure if Picasa goes to the next step by looking at previously tagged photos and trying to guess what tag should be applied to the faces.  The facial recognition feature is the major feature in this Photo Gallery upgrade.  Right now it’s usefulness is limited honestly.  Without it detecting pictures that have the same face to allow for bulk tagging or even better detecting what you have tagged that face as and applying a tag automatically facial recognition feels like standard tagging which drags down the “coolness” of the feature.  I can’t help but look ahead to the future with this feature because right now it simply makes little difference (especially considering that there is no way I going back to tag one by one the thousands of pictures I currently have in my library).  The last thing of note on Photo Gallery is the new extensibility feature that allows extras to be added to the extras menu and exposes a publishing API.  That is really nice and I look forward to a nice set of plug-ins coming out to enhance Photo Gallery.

    Messenger

    I really like the Messenger upgrade.  I have thought that Messenger needed a UI refresh for a while.  It put front and center a lot of features that I and everybody I knew didn’t really use.  So it was great to see the team recognize that and make a change.  I love the Scene capability.  I have thrown a couple of my own pictures in as scenes and it just looks great.  I would like the ability to control how the picture gets cropped into the scene window (move the point of focus from the center).  The integration of the What’s New feed is a nice subtle enhancement.  I am a little confused at this point though because what I see on my Live Spaces What’s New feed doesn’t match up with what I am seeing in my Messenger feed even though clicking on the What’s New link in Messenger takes my to my Lives Space What’s New feed with completely different items in the feed.  A little bizarre, but perhaps due to the Lives Space upgrade (that I am anxiously awaiting) not having rolled out yet.  I like the Favorites feature that is something that I wouldn’t have called out explicitly before the release, but after seeing it I can’t help, but think – “yeah, I have always wanted that.” I love the change so that people are represented by their profile picture with coloring to tell you what their status is and that they reduced the number of statuses.  I look forward to hearing how we can add stuff to the What’s New feed or customize what shows up as well.  Based on my use so far I think my Messenger use will increase because of the upgrade (I also just started using Messenger with Facebook – I love the ability to sync my Messenger personal messages with Facebook).

    Movie Maker

    Movie Maker is embarrassingly incomplete.  Honestly I am surprised Microsoft shipped it.  When Live Photo Gallery came out as a replacement for the Photo Gallery in Vista it had feature parity and had added the Panorama functionality.  It was a worthy replacement.  Movie Maker is almost laughable in how incomplete it is.  It doesn’t feel like it is from MS.  It doesn’t install on XP machines and people with Vista have the original Movie Maker so I have no idea who will ever use this version of Movie Maker.  Here is hoping that the Movie Maker guys are very busy working to upgrade and enhance the product because if Windows 7 ships with this instead of something closer to what Windows Movie Maker does that will be a real disappointment.

  • Programmatically setting the version of the Enterprise Library Configuration Tool for Visual Studio

    I previously wrote about the issue we ran into using Enterprise Library and Unity that caused us to have to roll our own version of the binaries.  The procedure to get the config tool to reference our custom binaries involves changing the EnterpriseLibraryConfigurationSet solution property.  Since we are developing a Starter Kit to be used for new projects starting up here at the Church I wanted to add to our Starter Kit automation the setting of the property to the appropriate value.  Tried as hard as I wanted I couldn't get it to work until I accessed the Solution Property using EntepriseLibraryConfigurationSetPropertyExtender.EnterpriseLibraryConfigurationSet which is how it was listed when I enumerated the property collection. 

    So the one line piece of code to do the job is

    Dte.Solution.Properties.Item("EntepriseLibraryConfigurationSetPropertyExtender.EnterpriseLibraryConfigurationSet").Value = "StackV1EntLib";
    Of course that needs to be accompanied with an entry in the Registry that the StackV1EntLib string can point to which is listed below

    [HKEY_CURRENT_USER\Software\Microsoft\Practices\EnterpriseLibraryV4\ConfigurationEditor\StackV1EntLib]
    "ConfigurationUIAdapterClass"="Microsoft.Practices.EnterpriseLibrary.Configuration.Design.UI.SingleHierarchyConfigurationUIHostAdapter"
    "ConfigurationUIAssemblyPath"="C:\\Program Files\\MSStack\\V1\\StackEntLib\\Microsoft.Practices.EnterpriseLibrary.Configuration.Design.UI.dll"
    "ConfigurationUIPluginDirectory"="C:\\Program Files\\MSStack\\V1\\StackEntLib\\"

    Note: I use this blog to post both Personal and Technical articles.  For a technical only feed use the following URL (http://bryanandnoel.spaces.live.com/category/technology/feed.rss).  For a family only feed use the following URL (http://bryanandnoel.spaces.live.com/category/family/feed.rss)

    Technorati Tags: ,,
  • Programmatically setting multiple startup projects on a Visual Studio solution

      A month or so ago I was waist deep in Visual Studio automation code trying to figure out how to create a solution programmatically with multiple startup projects.  I searched and searched on the Internet, but could never find the answer.  I knew that the code I was writing was very, very close, but it wasn't working.  At the time I had to step away and work on other things that were more important, but today I was in and around that code and tried again.  I found the answer on good old Google in less than 10 minutes - http://www.dotnetmonster.com/Uwe/Forum.aspx/vs-ext/1609/Editing-DTE2-Solution-SolutionBuild-StartupProjects .  It is as simple as setting the StartupProjects property of the SolutionBuild object to an array of objects populated with the unique name of projects in the solution.  I had been trying to set it to a string array of the same thing!  Talk about close.  Either way job accomplished.  Our VS automation is now just a little more polished as a result.

    Note: I use this blog to post both Personal and Technical articles.  For a technical only feed use the following URL (http://bryanandnoel.spaces.live.com/category/technology/feed.rss).  For a family only feed use the following URL (http://bryanandnoel.spaces.live.com/category/family/feed.rss)

    Technorati Tags: ,
  • That darn backlog there is so much stuff in it!

      I used to be a believer that when a good idea came around you should throw it on the backlog.  Those ideas (or bugs) live on the backlog indefinitely waiting for their chance to "dance".  As I re-evaluate my thinking from a Lean perspective I am reconsidering that approach.  In Lean maintaining large amounts of inventory (queued inventory) is frowned up.  Without going into all the gory detail of Lean (if you are an Agilist, want to be an Agilist, or develop software go read about Lean and think about it in terms of your software development process - it will be good for you) large amounts of inventory lead to "inventory rot".  In the software world this amounts to requirements that were scoped two years ago by a Business Analyst that is no longer around or a bug reported by a tester two releases ago.  The information relevance in those backlog items has dropped considerably during the time that they were idle.  As time goes on and it becomes obvious that prioritizing them won't happen - close them.  Dump them.  If they are important they will show up again.

      In addition to trimming the backlog appropriately it may make sense to have tiered backlogs.  There will be a Sprint backlog (or Iteration Plan) that represents the work in flight.  It is useful to have an "on deck" backlog that represents the work coming up in the next 6 months or so.  The "long range" backlog represents those ideas and concepts that are more "out there" and likely are fairly vague, large, and inestimable.  Each backlog requires different types of care and feeding and involves different sets of people in the care and feeding process.  The Sprint backlog is the focus of the team, talked about in Standup as people report progress, and the tactical focus.  The On-Deck Backlog should be actively worked by the Business Analyst, Customers, Technical Lead/Architect, and Project Manager.  Perhaps this is a weekly, bi-weekly, or monthly meeting.  The Long Range backlog is likely discussed perhaps monthly or quarterly as needed to identify items ready to move on-deck and be fleshed out, identify new directions that need to be captured, and obsolete ideas that are no longer applicable (don't forget this one!).

      With bugs I subscribe to the Broken Window theory.  The more you have the less likely you are to care.  You have to be careful with that of course - take it too far and you end up with a product with no bugs, but no features either because you have spent all your time fixing bugs that weren't important.  Once a bug has been identified as costing more to fix than it is worth you start to have a case for closing it and dropping it off the bug backlog.

      The goal is to make sure your focus is where it needs to be.  Your Sprint Backlog efforts should be  focused on execution.  Moving those items through the development process as effectively as you can.  On-Deck Backlog efforts should be focused around locking down the requirements for the items so that they are ready to be executed on (a blog on how critical it is to do requirements definition is in the works).  The Long Range backlog efforts should be focused around making sure that you have outlined the key strategic elements for the future and analyzing them in the context of the market you are serving to see what value propositions make the most sense to pursue.

     

    Note: I use this blog to post both Personal and Technical articles.  For a technical only feed use the following URL (http://bryanandnoel.spaces.live.com/category/technology/feed.rss).  For a family only feed use the following URL (http://bryanandnoel.spaces.live.com/category/family/feed.rss)

  • Using Resources with WPF and Winforms

    I had a developer ask me how to use Resources the other day.  Honestly I had never used them for any production system and so I didn't know.  So I decided to find out.  Below is the code on how to do it in WPF and then after that how you would do it in Winforms.

    WPF

    I borrowed a lot of  this example from http://mostlytech.blogspot.com/2007/09/enumerating-xaml-baml-files-in-assembly.html.  The article I link to showed how to iterate through Resources files that are in your solution with the Build Action set to Resource.  I then use that to put an image on a button that alternates every time it is clicked.  At http://forums.msdn.microsoft.com/en-US/wpf/thread/1bb025e8-a20a-43c4-a760-8666c63ff624/ it explains how to work with Resources that you define in the Resource tab in the Project Properties.  You can also set an image directly in XAML as shown below

    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.IO;
    using System.Reflection;
    using System.Resources;
    using System.Windows;
    using System.Windows.Media.Imaging;
     
    namespace WpfApplication1
    {
        /// <summary>
        /// Interaction logic for Window1.xaml
        /// </summary>
        public partial class Window1 : Window
        {
            private int ButtonClicks = 0;
            List<object> EmbeddedResources = new List<object>();
            public Window1()
            {
                InitializeComponent();
                Assembly asm = Assembly.GetExecutingAssembly();
                Stream stream = asm.GetManifestResourceStream(asm.GetName().Name + ".g.resources");
     
                using (ResourceReader reader = new ResourceReader(stream))
                {
                    foreach (DictionaryEntry entry in reader)
                    {
                        if (entry.Key.ToString().Contains(".jpg"))
                        EmbeddedResources.Add(entry.Key);
                    }
                }
     
            }
     
            private void Button_Click(object sender, RoutedEventArgs e)
            {
     
                ButtonClicks++;
                ButtonImage.Source = new BitmapImage(new Uri(EmbeddedResources[ButtonClicks % 2].ToString(), UriKind.Relative));
            }
        }
    }
    <Window x:Class="WpfApplication1.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Window1" Height="300" Width="300">
        <Grid>
            <Button Click="Button_Click">
            <Image Name="ButtonImage" Source="Images/IMG_7680.jpg" />
            </Button>
        </Grid>
    </Window>

    Winforms

    I didn't spend as much time looking at the Winforms side of things, but here is a snippet of code that can be used.  Note that I set the Build Action for the Image file to EmbeddedResource because that is what all the examples said to do.  Bitmap has an overload that allows it to resolve Resource References.  The name of the resource becomes <Namespace>.<Path>.<Filename>.

    pictureBox1.Image = new Bitmap(typeof(Form1), "Images.IMG_7680.jpg");

    Note: I use this blog to post both Personal and Technical articles.  For a technical only feed use the following URL (http://bryanandnoel.spaces.live.com/category/technology/feed.rss).  For a family only feed use the following URL (http://bryanandnoel.spaces.live.com/category/family/feed.rss)

    Technorati Tags: ,,,
Copyright © 2000-2007, Utah .NET User Group
Powered by Community Server (Commercial Edition), by Telligent Systems