Andrew Coates ::: MSFT

It's all about community!

November, 2007

  • Andrew Coates ::: MSFT

    .NET Framework 3.5 Namespaces Poster Available

    • 1 Comments

    clip_image002This just in from Paul Andrew.

    We just completed the .NET Framework 3.5 update to the Commonly Used Types and Namespaces poster.

    Here's a link to the file (PDF, XPS and 16-page XPS) if you want to grab it now and be the first on your block to get it on your wall. We'll be using it at a variety of places, if you think it would be a cool thing to have at a Microsoft event then please go suggest it to some Microsoft employee that you know.

    Let me point out the little additive circles diagram at the bottom right. We've found that this is a great way to explain the additive version releases of the .NET Framework 2.0 – 3.0 – 3.5. The primary reason for updating the .NET Framework this additive way instead of the side-by-side nature of .NET Framework 1.1 – 2.0 is to make it easier for customers to upgrade their apps. Here's that diagram again.

  • Andrew Coates ::: MSFT

    Illusions - How can this be true?

    • 4 Comments

    Michael's twirling dancer link generated a lot of chatter, but this one seems even less fathomable to me

    Michele's posted an image as an example of your brain messing with your head (as it were). In this image, the squares marked A and B are the same colour!

    Don't believe me? I didn't either, so I snipped a small part of the image and placed it in Paint.

    image

    Still didn't look possible, so I drew a rectangle next to the image, split it in 2 and used the eye dropper tool to pick up the colour first from square A (and filled the left segment) and then from B (and filled the right segment).

    image

    As my son would say - "Freaky!"

  • Andrew Coates ::: MSFT

    Searching for Contacts in VSTO

    • 0 Comments

    I LOVE VSTO v3!

    As part of my demos for Graham Seach's Office DevCon, I've developed a VSTO v3 Outlook Add-in that adds a form region to an incoming e-mail if:

    1. The sender is in my contacts (based on the e-mail address); and
    2. The contact has a non-null, not-empty company name

    Here's what I did to start off with:

    // look up the contact from the sender of the mail
    Outlook.MailItem thisMail = (Outlook.MailItem)e.OutlookItem;
    Outlook.MAPIFolder ContactFolder =
       (Outlook.MAPIFolder)thisMail.Application.Session.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderContacts);
    foreach (Outlook.ContactItem contact in ContactFolder.Items)
       {
       
          Outlook.ContactItem contact = (Outlook.ContactItem)obj;
    
          if ((contact.Email1Address == thisMail.SenderEmailAddress ||
             contact.Email2Address == thisMail.SenderEmailAddress ||
             contact.Email3Address == thisMail.SenderEmailAddress) &&
             !(contact.CompanyName.Trim() == ""))
          {
             // Instantiate the service and get the details of the company's sales
             SalesDetails.svcSalesDetails.SalesDetailsServiceClient svc =
                new SalesDetails.svcSalesDetails.SalesDetailsServiceClient();
    
             _salesDetails = svc.GetSalesDetails(contact.CompanyName);
             found = true;
             break;
          }
       }

    This threw an InvalidCastException in the foreach line complaining that the object (of type System.__comobject) couldn't be cast to a ContactItem.

    So next I looped through the items in the folder as a collection of objects and did the cast within the loop. 

    foreach (System.Object obj in ContactFolder.Items)
    {
    Outlook.ContactItem contact = (Outlook.ContactItem)obj;
    
    

    Same issue (at the cast line again). I'm not sure why I thought this would work any better.

    I got a little sidetracked by the first paragraph of Sue Mosher's response to this question on OutlookCode.com and added

    Marshal.ReleaseComObject(contact);

    at the bottom of the loop (especially as by this stage I'd discovered that it wasn't the first object in the collection that was throwing the exception - it was about the 270th - near enough to Sue's 250).

    Actually, I was running into the issue addressed in her second paragraph, but I didn't read that. It took me a call to Nick Randolph (just before we went off to play hockey) to realise that a contact folder can contain things other than Contacts. Thanks Nick.

    An easy way to filter the collection is to use the Restrict() method:

    Outlook.Items colItems = ContactFolder.Items.Restrict("[MessageClass]='IPM.Contact'");

    Finally things were working, but they were still SLOW. Turns out it's lots quicker to let the built-in search function do the heavy lifting; in particular the Find() method. The final incarnation of my find code now looks like this:

    Outlook.ContactItem contact;
    if (e.OutlookItem is Outlook.MailItem)
    {
       // look up the contact from the sender of the mail
       Outlook.MailItem thisMail = (Outlook.MailItem)e.OutlookItem;
       Outlook.MAPIFolder ContactFolder =
          (Outlook.MAPIFolder)thisMail.Application.Session.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderContacts);
    
       Outlook.Items colItems = ContactFolder.Items.Restrict("[MessageClass]='IPM.Contact'");
       string FilterString = "[Email1Address] = '" + thisMail.SenderEmailAddress + "' OR " +
          "[Email2Address] = '" + thisMail.SenderEmailAddress + "' OR " +
          "[Email3Address] = '" + thisMail.SenderEmailAddress + "'";
       contact = (Outlook.ContactItem)colItems.Find(FilterString);
    }
    else
    { ...

    The moral of the story is two-fold:

    1. Check your types before attempting to cast; and
    2. The built-in methods for searching or filtering are almost always better than those you try to roll yourself (it's all about the platform, man!)
  • Andrew Coates ::: MSFT

    .NET and VBA Interop

    • 1 Comments

    I got a nice note from Joe Hanna of vantage IT today following my presentation at the Office DevCon last weekend.

    In case you were interested, I thought I might let you know the results of attempting to build a .NET User Control and consuming it in a VBA project.  Following your advice, I downloaded the Interop Forms Toolkit 2.0a and hey presto...

    Thanks mate!

    Regards,

    Joe

    As I've discussed before, The Interop Toolkit is a great resource for developers with a foot in both the Win32 and .NET camps.

  • Andrew Coates ::: MSFT

    Visual Studio Extensibility CoDe Focus Magazine Online

    • 2 Comments

    VSXI was chatting with Ken Levy a couple of weeks ago about what he's up to now (he works for the Visual Studio Extensibility Team) and he pointed me at a great resource that he's put together with the guys from CoDe Focus Magazine.

    VSX CoDe Focus magazine is now online at http://code-magazine.com/focus/vsx. Microsoft sponsored this special edition of CoDe Magazine on the topic of VSX. The entire 76 page magazine is available online in multi-page HTML format and also as a PDF download (13MB). Printed copies of the magazine will be available in late October at various developer events and mailed to many existing CoDe magazine subscribers.

  • Andrew Coates ::: MSFT

    MSDN Webcast: Building Spatial Applications with SQL Server 2008 (Level 300)

    • 3 Comments

    The word's getting out there (a little too slowly for my liking, but anyway ...): SQL Server 2008 will have spatial data support built-in. The first CTP to have this feature enabled should be CTP5 (due out any day now).

    In the mean time, Isaac Kunen and Michael Rys have recorded a webcast with some great information.

    View it here

  • Andrew Coates ::: MSFT

    MapPoint Web Services (and SQL 2k8 Spatial) Presentation for GITA

    • 1 Comments

    I'm in Perth as a result of GITA inviting me to speak at their Seminar and Workshops. I presented on MapPoint Web Services and showed a sneak peek of SQL Server 2008's Spatial capabilities (here's another white paper).

    My slides are available here.

    The demo app I showed is here. (Don't forget about the bug I first described here, and I've also got a detailed walk-through document showing how to build a simpler app)

    If you want a copy of SQL Server 2008 CTP5, you need to go here.

  • Andrew Coates ::: MSFT

    MCT Community Summit in Sydney 29-31 Jan 2008

    • 2 Comments

    Sharmilla sent this through today.

    Microsoft proudly presents its first MCT Community Summit 2008 in Sydney, Australia, January 29 – 31st

    For the very first time, Australia  will be hosting its very own MCT Community gathering to gain and share knowledge!

    This exciting Event is from Jan 29 – 31st 2008 – REGISTER NOW !!!!

    For more information, https://www.local.microsoft.com.au/australia/events/register/home.aspx?levent=993019&linvitation

    The 2008 program promises to be filled with new course training on Windows Server 2008, SQL “Katmai” 2008, Office Communications Server, Exchange Server 2007 and many more. The sessions are designed to enhance technical product knowledge, improve training skills and provide an early look at new Microsoft Learning courses and course formats.

    NEW technologies covered in the Summit :

    · Windows Server 2008: Virtualization, Active Directory, Networking and Security, Terminal Services, Applications platform, as well as trainer preparation sessions on new courseware.

    · SQL Server 2008: For database administrators, for database developers, as well as trainer preparation sessions on new courseware.

    · Office Communication Server 2007: Architecture and deployment, as well as trainer preparation sessions on new courseware.

    · SharePoint Technologies: Developing on SharePoint server and incorporating MOSS SDK into your SharePoint technologies deliveries.

    · Exchange Server 2007: Incorporating Service Pack 1 into your Exchange class deliveries.

    · Visual Studio 2008: The next version of Visual Studio, Microsoft® Visual Studio® 2008, will provide an industry-leading developer experience for Windows Vista, the 2007 Microsoft Office system, and the Web.

    Who should attend?

    Microsoft Certified Trainers, who work as staff trainers or independents can gain much value from attending an MCT Summit. You should attend if you want to:

    · Get in-depth technical knowledge about Microsoft technologies in early stages of product lifecycles.

    · Get “Tips and tricks” on delivering newly released Microsoft Learning Products.

    · Learn from veteran instructors and experienced speakers.

    · Meet, network and share your experiences with trainers from all over the world.

    · Meet Microsoft Learning staff responsible for managing courseware development and certification programs.

    Event Details :

    Date                                  :             January 29 - 31, 2008

    Venue                               :             Sydney Marriott Hotel, 36 College Street, Sydney, New South Wales 2010, Australia

    Participation Fee              :             AUD 399 excluding GST. This price is inclusive of 3-days training, materials and lunch.

    REGISTER NOW !!!!!!! : https://www.local.microsoft.com.au/australia/events/register/home.aspx?levent=993019&linvitation

  • Andrew Coates ::: MSFT

    What, more fishbowl movies?

    • 1 Comments

    The last batch of Virtual TechEd Fishbowl movies from TechEd Australia have been posted. Check 'em out! (You'll need to page down at least once because VTE's been to South Africa, Japan, and now Barcelona in the mean time)

    Click to Play

    A Veteran WIT Tells her Story

    In this last WIT installment from Tech·Ed Australia, Rose Watson, Microsoft Technical Account Manager, relays to Charlene Clark how she has successfully worked in the IT field for more than 18 years while at the same time raising a family. She emphasizes the importance of taking the necessary time to achieve a satisfying work-life balance.

    Watch Now

    Click to Play

    Another Successful Woman in Technology

    Hear another successful woman working in the IT field tell her story about how she started her career, and how she encourages women to “go for it” when considering this industry, with Kathy Kam, Microsoft Program Manager, and Charlene Clark, from Queensland Rail.

    Watch Now

    Click to Play

    What’s Expression?

    Shane Morris, Microsoft User Experience Evangelist, and Ron Jacobs, host of ARCast.TV, carry on a lively chat about Expression. What’s Expression? Simply put, the technology is about providing tools for designers—user interface designers, interaction designers, graphic designers, and others—so they get a seat at the table when technology is developed.

    Watch Now

    Click to Play

    A Community Leader in Security

    Orin Thomas, Security MVP, is widely involved in a number of Security-related endeavors. Listen in as he speaks with Michael Kleef, Technology Advisor, about www.windowsitpro.com (where he is associate editor), his involvement with the Melbourne Security and Infrastructure Interchange, and his two Tech·Ed Australia sessions “Pushing the limits of EFS in Windows Vista and Windows Server 2008” and “Deploying and managing a Microsoft Windows Server Update Services 3.0 Server.”

    Watch Now

    Click to Play

    WIT Series Video

    Join Zaakera Stratman, Program Manager for Virtual Tech·Ed, as she interviews Bronwen Zande, Windows Live Services Development Specialist, about Bronwen’s first exposure to computers and her organic entry into the IT field—helping her Dad write a program for his work when she was in high school! Bronwen and Zak share what they love about being women in the technology industry and how to overcome stereotypes women face.

    Watch Now

    Click to Play

    The SQL Server Community

    In this video recorded at Tech·Ed Australia, Catherine Eibner, Cybner Computer Solutions, and Peter Ward, Chief Technical Architect from Wardy IT and recently-awarded MVP, talk about Peter’s session “Things You Need to Know for a Painless Upgrade to Microsoft SQL Server 2005” and his involvement in the Sequel Server Community.

    Watch Now

    Click to Play

    Windows Server 2008 Scenarios

    Werner Kasselman and Amit Pawar, Microsoft Technical Specialists, describe Windows Server 2008 scenarios, and in particular they cover the branch office scenario. With Windows Server 2008, customers can manage their branch, reduce their costs and gain all the services they need in an optimized environment.

    Watch Now

    Click to Play

    Women in Technology

    In this WIT video recorded at Tech·Ed Australia, Nikki Curtis from the Australian Computer Society and Charlene Clark, Queensland Rail, talk about how they got started in IT, some of the challenges women face when growing their IT careers, and tips for young women considering entering the field.

    Watch Now

  • Andrew Coates ::: MSFT

    Windows Embedded Retail Seminars - Sydney and Melbourne

    • 1 Comments

    Don Kerr just sent this through (he, Nelson Lin and and Dave Glover are presenting):

    Get the competitive edge with Windows Embedded in retail

    Discover the latest end-to-end solutions for retail at the Windows Embedded for Point of Service (WEPOS) Seminar. Explore the latest in-depth product specific information, hear from sector specialists and learn from practical demonstrations. Sessions cater for Independent Software Vendors (ISVs) and Original Equipment Manufacturers (OEMs). Catch the complimentary seminar in Sydney on 4 December, or Melbourne on 5 December.
    >> Get the event details now

Page 1 of 2 (13 items) 12