Welcome to MSDN Blogs Sign in | Join | Help

Community is where you make it

As my blog tag says, it's all about community. Just before I went dark to go on the Wave Launch tour, I got a note from Daniel Vaughan to say he was doing a presentation to a User Group inside the firewall at his work (btw, Daniel's blogged about the presentation - Model Driven Development: An introduction to Windows Workflow Foundation and posted the deck he used). I love this concept of user groups in an organisation with a bunch of developers, and it's something I've been trying to facilitate in a number of companies. If you're interested in starting up a group in your company, please drop me a note and we can talk.

Benefits

There are some real advantages to companies who instigate and support a user group/community of practice/centre of excellence, call it what you will.

Staff Development

User Group meetings become a regular training session for all developers in the organisation – introduction to and discussion of current and emergent technologies and techniques

Emergence of Experts

Presenters on a particular topic become in-house experts, which encourages their development of that expertise. A virtuous cycle.

Cross-pollination

Discussion of what’s going on in one group often leads to transfer of skill or knowledge to another group that is doing similar things.

Candid discussion inside the firewall

Because all of the attendees are internal, current projects and candid disclosure are fair game

Morale

Developers have an opportunity to learn and to demonstrate their skills/knowledge – two significant drivers of developer morale. In fact, when I'm talking to a CxO about this idea, I go so far as to say that for developers especially, three of their major virtues are sloth*, pride** and a thirst for knowledge. This forum allows the expression of the last two of these.

Requirements

Of course, a group like this doesn't just happen, there are a few things that you need to have in place to make it a lasting success

Exec Sponsor is Key

The first requirement is sponsorship at a senior executive level, preferably CIO/CTO. There must be an acceptance of the concept and a willingness to mandate that developers get are allowed to make the group a priority. It's all too easy to say "we're too busy, we'll can the meeting for this month", but for the group to survive, let alone prosper, it needs to happen on a regular, predictable basis. The sponsor must buy into vision of COE and be prepared to fight at highest level to keep budget and time allocations available. There may be a need to incorporate COE meetings into utilisation targets. There needs to be a decree from on high that developers are to be released to attend. There should be a succession plan in case the Executive Sponsor moves on. You might also engage with Training Coordinator

User Group Leader

This is the same kind of person you have running Community User Groups outside the firewall. They are an enthusiastic advocate of development tools, technologies and processes. Often, this person isn't a manager but an experienced Individual Contributor. It's a great position for someone who wants to be noticed doing an important job by people at a high level, but that should never be the only reason to give that person the job. Of course, the work this person does needs to be recognised in their goals for this role. You also need a succession plan in case the Group Leader moves on, and in some cases an assistant or co-leader is a good idea.

Location and Timing

This needs to be immovable and recurring. This means that it goes into people’s diaries as a “do not miss” event and they get there almost on remote control. COE must be a habit.

Content

A key driver of satisfaction with COE is quality content well delivered. Having 6 months content at the start means that the Group Leader can work with the content delivery people to make sure their content is spot-on. 3 months lead time is generally sufficient once the habit is established. This is the main task of the GL.

We (MS) can help by providing content to the GL for redelivery within the org (e.g. TechEd DVDs with pptx decks and recordings of the sessions for the presenters to learn from). A meeting might look something like this:

Time Topic Presenter
2:00-2:15 Welcome, Q&A Group Leader
2:15-3:15 Technical Presentation
(e.g. "Using Windows Communication Foundation to Interface with SAP")
Developer/Architect from within organisation
3:15-3:30 Break All
3:30-4:00 Project Presentation
(e.g. "Project Blackcombe: Challenges, Solutions and Status")
Project Blackcombe lead developer
4:00-5:00 Drinks/Networking All

Optional Extras

I love the idea of giving people in your organisation incentives for contributing to the group. I'd recommend catering the meeting (lunch or end of day generally works well, although I've known breakfast to be a winner too in some organisations). It's also worth considering providing speakers with a small gift. A shirt works well (company logo, a user group logo etc) as does some kind of geek gadget.

Cost

Setting up and running a group like this is not expensive, in fact for about $6.50 a meeting plus a time contribution you get a lot of return. Here's how I arrived at that number:

Item Cost
Speaker Shirts - 25@ $20 ea (2/meeting + 3 spare)> $500.00
Catering - $5/attendee (11 meetings, 30 attendees) $1,650.00
Total $2,150.00

That's $6.50/mo/attendee. In addition, you should allow 3 hr/mo/attendee, 10 hr/mo speaker prep, 8 hr/mo group leader prep.

How can we help?

We've got some resources available to help make your group a success. Firstly, I (or someone like me) am available to present this to a potential executive sponsor. Next, there's a MOSS template that was developed by some of the US evangelism team to help you run the group. We've got a bunch of content available (for example the TechEd DVDs for the past few years) with PowerPoint decks and videos of the sessions being delivered and finally, we can organise the occasional guest speaker from Microsoft to present at your group.

If this is something you'd like to make work in your organisation, then drop me a note.


* Sloth - the kind of laziness that would rather spend 4 hours writing a generic text import module than 1 hour re-keying data.

** Pride - but only showing off to other geeks professionals who actually understand what they're talking about.

Posted by acoat | 1 Comments

Unable to customise context menus in PowerPoint 2007?

I got this question from one of our partners yesterday.

The application developed by my client is an add-in for PowerPoint. One of the features it provides involves adding custom items to the context menu of shapes and pictures using the Office object model. This add-in works perfectly well in 2003, but not at all in 2007.

So far, what I’ve discovered is that the only context menu I can add items to is the Frames CommandBar. Some other CommandBar interfaces in the Application.CommandBars collection allow me to add without throwing an exception (e.g. Pictures Context Menu), but they don’t actually show when the application is running.

I’ve read on a couple of forum posts that you simply can’t do this anymore. Is this true? Or is this a problem with either Office or the way we are attempting to customise the context menu?

If you can’t add items to the context menu anymore, then what is the recommended method of displaying context information for such objects? I have played with the idea of displaying a tab in the Ribbon bar when an item is selected, but it just doesn’t jump out at users like the context menu...

I couldn't see a way of doing what was required either, so I kicked the question up to one of our internal tech aliases. Unfortunately, the answer is not what you’re probably hoping for (bug rejected – feature deprecated):

Unfortunately, the PPT 2007 OM does not allow adding context menu items for all objects (like shapes), the suggested way is to use Ribbon UI customization. Have a look at the following bug that contains a detailed explanation on this (and an internal link)

The explanation in the bug record was in the form of a letter to the original (external) raiser of the bug:

The Microsoft PowerPoint and User Experience Team have investigated the "PPT2007: Needs ability to Customize Right Click menus in PowerPoint” feature request and determined that this is not a feature that is feasible to implement outside of a full product cycle due to the extensive redesign and integration of core menu and object model functionality that would be required. For this reason, and because an explicit goal of the Office 2007 product’s design was to expand Ribbon functionality and deprecate classic menu functionality, we recommend that xxx design this portion of its solution around the new Ribbon feature, given that PowerPoint 2007 no longer provides legacy right-click menu customization.

We understand that the intention is for you to customize the right-click menus with custom actions to navigate through the application and perform various tasks, however, right-click menu creation and functionality is not a feature in Power Point 2007. There is currently no upgrade path for previous Power Point solutions that have customized right click menu functionality. All previous Power Point solutions using this functionality will need to implement the Ribbon into their solution to drive user choices.

In reviewing the proposal of adding in legacy right-click menu customization functionality, the Microsoft User Experience Team found several areas that pushed a potential solution beyond the scope of a Hotfix or CDCR.

1. The sheer scope of designing and adding the right-click menu customization feature and full legacy functionality exceeds the risk capacity for post-release changes. Design changes of this scope typically require a full product cycle in order to ensure end-to-end quality.

2. Office 2007 has a new object rendering engine, which could cause inconsistencies if the submenu feature were implemented. A new solution would have to handle all changes between the two code bases.

3. PowerPoint 2007 does not provide the same high-fidelity representation of legacy Main Menu functionality that was available in PowerPoint 2003. The layout of the controls in the Ribbon's Add-ins Tab is sub-optimal with a highly complex add-in such as yours. To fully maximize the end-user experience, the add-In would need to be upgraded to fully utilize the Ribbon UI, as part of moving to Office 2007.

Our recommendation is for you to combine the redesign of both the legacy Main Menu and right click menu issues together. This will provide the opportunity for your users to move to the Ribbon in both areas and utilize the new Ribbon functionality.

In summary, Microsoft recommends that you model your UI on Office’s own built-in Ribbon UI, specifically around the use of Contextual Tabs as the mechanism for displaying contextually relevant content. For each object type that the add-in supports, a tab could be added to the appropriate contextual tab set that would contain the Add-In-specific tools for working with that object. With this type of design, the UI would better match the UI of Office 2007, and the end-users could potentially not require much extra training on top of the training for Office 2007 itself. For more information, please check out the Office Fluent UI Style Guide at the Office Fluent Ribbon Developer Portal.

I guess that it makes sense in the long term to continue to leverage the great work the Office UI team have done with the Ribbon and the Fluent UI generally, but I do feel for the team who are looking to implement equivalent functionality in the new version of their Add-In as already runs in the current version.

Backwards compatibility is a perennial problem.

Deploying VSTO 3 solutions

While the default mechanism for deploying VSTO v3 Add-Ins is ClickOnce, there there's now also a documented way to deliver VSTO solutions via an MSI installer. By extension, this should mean you can push it out via group policy (or SMS or whatever).

Mary Lee's done a good post on this: http://blogs.msdn.com/vsto/archive/2008/04/10/deploying-an-office-solution-using-windows-installer-mary-lee.aspx.

The code and steps outlining creating a setup project are available here: http://code.msdn.microsoft.com/VSTO3MSI.

Misha Schneerson has done a 3-part blog post on deploying your VSTO Add-in to all users (using HKLM instead of HKCU):

http://blogs.msdn.com/mshneer/archive/2007/09/04/deploying-your-vsto-add-in-to-all-users-part-i.aspx

http://blogs.msdn.com/mshneer/archive/2007/09/05/deploying-your-vsto-add-in-to-all-users-part-ii.aspx

http://blogs.msdn.com/mshneer/archive/2008/04/24/deploying-your-vsto-add-in-to-all-users-part-iii.aspx

More Office Developer Documentation

She's indefatigable! Erika Ehrli keeps posting these gems. Hot on the heels of my post about Office Object Model References, I discovered two great posts from her.

The interactive developer map is a WPF application that

"... helps developers visualize the different programs, servers, services, and tools that will help them build solutions. It allows them to drill down to each product and technology and learn about new features, objects, Web services, namespaces, and schemas required to extend Microsoft Office and build custom Office Business Applications (OBAs). This application also includes links and pointers to online resources available on Office Online, MSDN, TechNet, Channel 9, Channel 10, and OBA Central."

Screen shots

The OpenXML Format SDK Class Diagram Explorer is a very cool Silverlight 2 app that uses DeepZoom to drill down into the detail of the class diagram. Think of it as a zoomable poster.

Check them out.

Microsoft launches RoboChamps, a worldwide simulated robotics competition platform built on .NET

It's seems like competitions are the flavour of the month. A couple of weeks ago we launched a world-wide competition for people building simulated robots.

clip_image001

This is "... a simulated robotics league that is open to academics, hobbyists and developers from around the world, that demonstrates the power of the Microsoft platform to enable a broad range of developers to explore new ways to use .NET for robotics programming. "

More information:

Website – www.RoboChamps.com

Channel 9 video – http://channel9.msdn.com/Showpost.aspx?postid=399952

.NET Rocks Podcast – http://perseus.franklins.net/dotnetrocks_0336_marc_mercuri.wma

On10.net video – http://www.on10.net/blogs/tina/Robo-Champs-My-robot-is-bigger-then-your-robot/

Open XML Links - catching up.

I'm catching up with a bunch of Open XML blogging from ages ago, so apologies if some of these are old news to you.

Binary Format Documentation Released Under the OSP and Binary to OOXML Translator Project

Brian Jones has blogged about the great news that we've made the binary office document formats freely available under the OSP (of course, they were already available for people to use if they agreed to honour a license agreement). In the same post he talks about the open source project for translating binary documents to Open XML.

As promised last month, the binary documentation (.doc, .xls, .ppt) is now live. In addition to this, the project to create an open source translator (binary -> Open XML) has now been formed on sourceforge, and the development roadmap has been published. Read my earlier post for more background on this: http://blogs.msdn.com/brian_jones/archive/2008/01/16/mapping-documents-in-the-binary-format-doc-xls-ppt-to-the-open-xml-format.aspx

Another great surprise in all of this is that we've made the documentation for a few other supporting technologies available as it may be of use to folks implementing the binary formats: http://www.microsoft.com/interop/docs/supportingtechnologies.mspx

The technologies included are:

  • Windows Compound Binary File Format Specification PDF | XPS
  • Windows Metafile Format (.wmf) Specification PDF | XPS
  • Ink Serialized Format (ISF) Specification PDF | XPS

OpenXML Developer Resources

Erika Ehrli has a great set of links for OpenXML Developers in categories including "Getting Started with OpenXML Development" and "OpenXML Format SDK"

OpenXML Format SDK

Open XML SDK roadmap: timeline

On the topic of the OpenXML Format SDK, both Erika and Doug have blogged about it in some detail.

DAISY Translator Released!

Gray Knowlton's blogged about the availability of the Open XML to DAISY Translator. DAISY is a specification that allows markup enabling text to be easily processed by a reader application making it accessible to people with problems reading printed or electronic text, and the translator facilitates the creation of DAISY-compliant documents from OpenXML.

Office Object Model References on MSDN

Sample Object Model Map

On an internal alias, I recently got asked a question that had come from a customer:

"I wouldn't have harassed you like this, except that I've done heaps of searching and can't locate what I need.
My company has a new CIO, a consequence of which is the need to now embrace all things Microsoft.  We are currently doing some investigation on .NET stuff and Office 2007, but I'm having difficulty finding some concise documentation on Object Models.  I've trawled through MSDN and managed to find a few things out, but what I was really wondering was if there are any one or two page Object Model posters, similar to the ones you use to get in Notes?  I can't see anything useful on MSDN and was wondering if you had access to anything."

I wasn't able to find any posters, but there is a great set of hyperlinked object model diagrams available. Here are a few:

In general, I started at the Office Developer Centre and clicked on the Library tab. I navigated using the treeview to get to the 2007 Microsoft Office System node and then chose the various products, the Developer Reference and then the Object Model reference.

VSTO/VSTA Power Tools and Submitting Feedback on MS Products

Anyone who's been to any of my recent presentations knows that I'm a passionate advocate of developing on the Office platform. The release of VSTO v3 with VS2008 was a big step forward in making Office development a truly first-class .NET development experience with its support for customising the Ribbon, Outlook form regions and (probably most importantly) true click-once support for deployment and updating. Of course, for all the goodness that was included with the official VSTO v3 release, the team had other things they wanted to ship but couldn't given the time and dependency constraints. In the interim, they've shipped a suite of these extras as the Microsoft Visual Studio Tools for the Office System Power Tools v1.0.0.0 (catchy name, huh?).

From the docs:

The Power Tools v1.0 Toolset

There are nine tools in the first release of the VSTO Power Tools, including two runtime tools and seven design-time tools:

Tool Description Type of Tool
Open XML Package Editor A graphical treeview-based editor for examining and editing Open XML Package files (including Word, Excel and PowerPoint documents). Add-in to Visual Studio.
Ribbon IDs Tool Window A custom tool window that displays all re-usable built-in Office Ribbon IDs. Add-in to Visual Studio.
Office Custom UI Manager A set of classes for coordinating multiple instances of Ribbon, custom task pane, and custom form region objects. Runtime class library and sample source code.
Office Interop API Extensions A set of C# classes for handling parameterized properties and optional/named parameters, as well as for LINQ-enabling Office collection objects. Runtime class library.
SharePoint Feature Sweeper A GUI tool that cleans up unwanted SharePoint features from the developer's environment. Standalone Windows Forms application.
SharePoint Workflow Package Generator A tool to package a SharePoint workflow project so that it can be deployed. Scriptable command-line tool.
VSTO/VSTA Pipeline Verifier A GUI tool that reflects over custom pipeline assemblies to validate the complete VSTA pipeline. Standalone Windows Forms application.
VSTO Developer Cleaner A GUI tool that removes leftover build artifacts from the developer's computer. Standalone Windows Forms application.
VSTO Troubleshooter A diagnostic tool that examines a computer for the necessary prerequisites for running VSTO solutions. Standalone Windows Forms application.

Andrew Whitechappel has blogged about these tools here and here, and in particular talks about how to submit feedback on them via Microsoft Connect:

  1. Go to Microsoft Connect at http://connect.microsoft.com/default.aspx.
  2. Sign up or log in to the site.
  3. On the left menu, click Available Connections.
  4. On the next page, click Visual Studio and .NET Framework.
  5. On the next page, choose one of the following:
    To see if your issue already exists, click Start Here. In the Search Feedback box, search for the issue. If the issue does not exist, click Submit Feedback. On the next page, click Bug Submission Form or Suggestion Submission Form.
    -OR-
    To submit a bug or suggestion, click Submit a Bug or Submit a Suggestion.
  6. On the submission form, enter the required information. In the Description box, specify “VSTO/VSTA Power Tools”.
  7. When you are finished, click Submit.

This is great advice for submitting feedback/bugs/suggestions on all Microsoft products and technologies in general. Submissions from this tool go directly into the appropriate product teams' databases for triage and action. It's the best way to get your voice heard.

Starting the conversation at Tech.Ed

image

The three themes of Tech.Ed this year are Learn, Explore and Connect. For me, at least, much of the value of attending a technical conference is to get to meet and interact with like-minded geeks and subject matter experts. I was having a chat with Dr Neil this afternoon and we were chucking around ideas to make this connect thing a reality. Neil had a suggestion that I've really taken to and I'd like some feedback from you folks too. What if we were to make the first session after the keynote on Wednesday a panel discussion and "track kick-off" (one for each track). We'd have most of the speakers from that track on the podium and a moderator. The agenda would look something like this:

10 min: Introduction from the track owner - what's this track about, what will we cover, where are there cross-over sessions with other tracks etc.
20 min: 2 minutes (max) from each speaker on what they're presenting on, what else they're passionate about, why you should come to their session(s) and where they'll be hanging out during Tech.Ed
30 min: Moderated discussion with the panel and audience on a topic/topics relevant to the track

Of course, this wouldn't be the only opportunity to initiate and continue the conversation. There'll be a discussion board on CommNet, a connect tool to help you to find those like-minded geeks, lounges in the expo hall, round tables for meals, an Ask the Experts evening, speaker 1:1s and lots more.

What do you think?

Registrations open for Tech.Ed Australia

It's alive! The registration site for Tech.Ed Australia is live. Don't miss out on the great Early Bird special offer. There's a couple of great features of this Silverlight-enabled page. There are testimonials from Tech.Ed alumni and two consolidated blog feeds from the TechEd team and from the Track Owners.

Meanwhile, our Kiwi cousins have stolen a march on us with 25% of their tickets gone already. Onya Darryl!

Visual Studio 2008 certifications demystified

Still catching up on my blogging, so this one's a little old. The irrepressible Trika blogged about the VS2008 series of certifications and included a bunch of different paths through the tracks based on your current certification status. There's also a link to a Live Meeting webcast about all this stuff. Check it out. Of course, if you can wait, you'll be able to take these certifications at TechEd in September at a significant discount.

Machinations

dgii Just trying out a new look. After my plan comes to fruition, I should be ready to subsume the brand.

Posted by acoat | 4 Comments
Filed under:

MS Press Online Store now open in Australia with discounts for UG members until the end of May

I got this note from Tania Netterfield, our partner manager for CPLS and the local MS Press representative.

Hello all,

I’m delighted to advise you that our press distributor Woodslane in conjunction with MS has developed an Microsoft Online Press Store which is now LIVE!

www.mspress.com.au

To help us launch the Store during the month of May we’ve created a special User Group Members offer of 50% discount on all books on the site. We’d love your help to promote the store to your community by blogging about the site and including the URL in your newsletters and other communication to your User Group Members.

Some of the great advantages of www.mspress.com.au include:

  • Express delivery
  • Competitive pricing
  • Easy Keyword Search facility
  • Latest titles and Books of the Month
  • Large inventory
  • Newsletter sign-up

And until the end of May on www.mspress.com.au

  • All User Group Members will receive a 50% discount by using this Code at Checkout <purged>
  • Plus go in the draw for a chance to win an XBOX by providing feedback on the site

We are planning to keep improving the site in the future and I’ll keep you updated as these improvements are made.

Thank you for your support

If you want to know the code I <purged> above, you'll have to get along to your local User Group (or contact your User Group leader)

US Tech.Ed Session Catalogues Live

As I said, I'm off to Tech.Ed Developers in Orlando at the beginning of next month (and our event manager, Fran Barlow, is off to Tech.Ed IT Professionals the following week). I also noted that the track owners for Tech.Ed New Zealand and Australia are in the process of sorting out sessions for this year's events down under.

The US have introduced a sensational new session rating technology allowing you to rate each of the session abstracts before the event to help with capacity planning and tweaking the content. We're hoping to use the same system for our events later in the year, but for now, check out the

Have a browse through the sessions, rate them if you like and if you see one or more you think we simply have to have down under, contact the appropriate track owner and let him/her know.

Sneak Peak ...

I'm not sure Kleefy had the first part right ...

IMAG0040 IMAG0041

Posted by acoat | 9 Comments
Filed under: ,
More Posts Next page »
 
Page view tracker