web metrics
Gray Matter - Site Home - TechNet Blogs

Gray Matter

Gray Knowlton's blog on Microsoft Office

  • Gray Matter

    Word 2007 and DOCX Compatibility

    • 0 Comments

    Yesterday an issue related to Word 2007 surfaced online that is worth a closer look. A Microsoft Answers forum post discussed a defect in Word 2007 pertaining to DOCX files exchanged between Word 2010 and users of Word 2007. It had been reported that some Word 2007 users were experiencing a situation where spaces were “disappearing” when viewing or printing documents sent to them from users of Word 2010.

    This is an issue related to how Word 2007 opened files. In other words, the issue is not with Word 2010, it was a defect in the file / open code of Word 2007 that caused the problem. Reports that Open XML caused this issue are not accurate.


    We discovered and fixed the issue in Word 2007 as part of
    a release that first appeared on September 25, 2008, well before shipping Office 2010. It was important enough for us to push the fix through the Automatic Update channel to reach the maximum number of users as quickly as possible. At Microsoft we were able to reproduce the problem on machines which did not have the patch installed for Word 2007, and we are unable to reproduce the problem on machines that have the patch installed.  It had also been suggested that Print Spooling services in Windows or the lack of an installed print driver in Word was the cause of the problem. In our testing, turning spooling services on and off did not affect the problem and the presence (or not) of a specific printer driver did not solve or cause the problem.


    The easiest way to obtain the fix is to install
    Office 2007 Service Pack 2.


    Make sure Word 2007 users who will receive your documents have this important update for Office, either by installing the patch referenced in the link above or by turning on Automatic Updates.


    Yesterday we re-tested this problem based on the information being reported in the forums and on various blogs. There are a few details worth noting:

    ·         If you have already saved the document in an un-patched version of Word 2007 and spaces are missing, unfortunately there is no way to recover them

    ·         Unpatched users who edit the document may cause the spaces to disappear.


    We certainly regret any inconvenience this issue may have caused, and encourage all customers to enable Automatic Updates for Office.


    We did a double-take upon seeing these reports because this is the type of issue that would normally surface prominently In this case we did not have a high volume of customer concerns. This is likely due the majority of Office users that enable Automatic Update, have installed SP2 or work in a managed IT environment where our updates are pushed to their desktops. People who are current on updates should not experience this problem. In any case, we wanted to take the time to communicate on this issue in hopes that folks who have not updated can do so.


    If you patch your 2007 installation to the current update level, and you are authoring documents on patched versions of Word 2007 (or 2010), and you still experience this problem, please don't hesitate to contact us.


    This is our Twitter stream:
    http://twitter.com/officeUpdates


    You can send feedback or requests for help regarding files that submit this behavior (for patched versions of Word) via the email link on my blog
    :
    http://blogs.technet.com/gray_knowlton. We are very interested to know if users are still experiencing this problem after systems are patched.

     

  • Gray Matter

    RSA: What Motivates Us

    • 0 Comments

    This is a great video for aspiring managers. Excellent production as well.

     

  • Gray Matter

    Migrating to Online: Identity

    • 0 Comments

    These posts are targeted at Novice users or those who are not familiar with online and “the cloud.” I hope to provide a lot of jumping off points for folks who are technically inclined and want to learn more as well.

    I don’t know if it’s the first thing people think about when they move to storing stuff online, but identity seems like a good place to start in describing key aspects of the transition. In my last post I expressed my preference for migrating content online using a single identity. Online ID is a topic that has a rich and interesting history. I’ll spend some time on this today.

    What I use: Windows Live ID.

    I’ll make two admissions up front: Prior to writing this post, I didn’t think much about what provider to use, I work for Microsoft so I chose ours. Even today I am more interested in the benefits the ID provides than the machinery behind the ID itself, but the research I’ve done for this post has piqued my interest.

    What is LiveID?

    (Source) | Marketing buzzwords omitted for clarity: Windows Live ID is the identity and authentication system provided by Windows Live. More than 380 million users have credentials that work with Windows Live ID. Microsoft offers two software development kits (SDKs) that make it possible for developers to use this service.

    By creating Web sites and applications that combine user authentication with other Windows Live services, providers can offer users online experiences that include the following:

    • Transfer of the user’s authenticated state between various Windows Live services
    • “Anytime, anywhere” scenarios for Web-based applications
    • Computer-independent personalization
    • Transfer of the user’s authenticated state between client-based and Web-based applications

    As indicated by the copy above, LiveID has hooks for developers building applications to integrate LiveID into their apps or services. This includes other identity providers. Part of what differentiates LiveID from prior Microsoft sign-on services is that LiveID encapsulates a strategy of Microsoft as part of an “Identity Metasystem” – this dates back to 2005. Indeed, like a well-executed handoff, LiveID can manage authentication across a large number of products and services. Sadly, it has done little to improve Seattle’s running game.

     

    People may recall Microsoft Passport might not recognize the mission as it had been defined previously. Passport was more oriented (not totally) toward being the concept of a “Digital Wallet” and less a part of a universal (and multi-platform) authentication system.

    Here are some more details if you want to dig into the history of LiveID & Passport. A great blog lives here.

    What does it get me?

    By hanging my hat on LiveID, I’ll get to use the following services. This list is by no means exhaustive, but reflects the ones I’m most likely to use first:

    • Hotmail. My LiveID is actually my Hotmail address
    • SkyDrive, including 25GB of online storage and 5GB of synced storage (between cloud & PC)
    • Spaces, but I think this is being retired in favor of WordPress – either way is fine for me. I keep a personal blog which I don’t mind migrating.
    • Calendar
    • Contacts
    • “Devices” – which is a service to keep the various PC’s in my life in sync (I use at least 6 on a regular basis.)
    • Family Safety
    • Groups
    • Mobile (for my device) – lots of exciting developments here with Win 7 Mobile
    • Office – clearly I spend much time here
    • Photos – I spend a lot of time here as well
    • Profile

    That represents probably around 80% of what I’d want to share online. (Note this does not reflect 80% of what I do online). But at least it is a suitable basis for a hub of activity. For some of those things, Live also provides a way to share / link my profile to many things:

    • XBox Live – when I lay a 243-0 beating on Michigan (again) everyone can see it.
    • Zune – so that I can share songs with my Zune friends.
    • A bunch of Bing services, and a bunch of MSN services

    This is a pretty “robust” set of activities that encapsulates a large portion of what I upload.

    Some additional benefits – if you use some of the client software like Windows Live Photo Gallery, Windows Live Writer, etc., you can authenticate to Live from the client – making a very convenient experience when I want to push content online. I write my blog in Live Writer. Windows Live Essentials would be the place to start.

    But now that I have my Windows Live ID, these services know who I am, and this is a good starting point for figuring out how I want to set things up and start to share.

    I’ll put the wraps on the post here and now. In short, if you haven’t done so, get a Windows Live ID. I’m certain it will only be more useful in the future.

    Next Post: Mesh, Online Libraries and keeping 6 PC’s in sync at the same time.

  • Gray Matter

    Making Sense of my Favorite Services

    • 1 Comments

    This morning I watched a video of my cousin bench pressing 515 lbs, in support of his Strength Ministry. Apparently this is some kind of record for people who only weigh 308 lbs. He is also 6’ 8”. I must admit there is a little security in knowing the incredible Hulk is a family member.

    I guess I just have to believe that I got all the brains… sadly I’m not sure that is the case either. He sets a high bar (so to speak). I can only hope to do as much for the world. I’m not sure it is as entertaining as rolling up a frying pan, but I think I can add some value from my blog.

    Like most people I learn by doing. I spend a lot of time on the bleeding edge of betas (or alphas) for our products, I like to think of myself as a bit of a “tryer” when it comes to software. Until recently, however, my willingness to try new products stopped when it required me to join, subscribe, log in or establish an account. I spent enough time around advertising (including being a designer of it) that I am very suspicious of leaving breadcrumbs around for marketers to follow. I might be a “tryer,” but I am not really a “joiner.”

    Contrary to perception, I am not a techno-gadget nut wanting every new experience out there. I am obsessed with a few of them, but not nearly all of them. Someone recently handed me their brand new Widget-Rich 2.3.4.0 phone to show me how cool it was. I checked it for a dial tone and handed it back.. saying “yeah. Pretty cool.”

    imageI may listen to Autechre, but on some topics I am very much a laggard or at best a vocal member of the late majority. This is the case when it comes to online services. I have had a yahoo mail account for 13 years, retired one on Excite, etc. I also suffered their early iterations of a portal. I didn’t care that much for the concept because it always felt like advertisers got the best of that relationship.

    Recently I have been much more aggressive with connecting my desktop to relevant services. There is enough good stuff out there (and with the promise of much more on the horizon) that makes this a good time to think through how I plan to service myself with content using “the cloud.”

    I could recite a lot of messaging and benefits statements, but because this affects my basic productivity level, I’d like approach my sharing of the experience differently. I would like to share my personal experience migrating to online services for the things I do at work.

    My next sequence of posts will be about the migration to online. My goal by the end of the exercise is as follows:

    • To move to online as my primary means of document storage. This allows me to be more portable and to save drive space.
    • To do so securely. I deal with much pre-release data, and obviously storing those documents in a library that is search-engine indexed by default won’t do. Mixing my personal data with my private data needs to be managed.
    • To do so with a single identity. I have a presence online today. I have this blog, my personal blog, I use LinkedIn, Twitter and Facebook. I’d like to have (at a minimum) a single tool to present me a view of that activity.
    • I’d like to use client software as the UI. It’s a personal preference, but (especially for work), clients are better than browsers most of the time. Not always, but mostly.

    I am here-and-there on this effort today. I already have some of this working, but I don’t use it yet. We’ll see what it takes to get me from here to “there,” where I am using online as a method of managing my work content and schedules. I’m open to your suggestions, but I’m going to blog about what I use most: Microsoft Products & Services.

    Off we go.

  • Gray Matter

    A Company of One

    • 1 Comments

    I may have hit a chord with the management theme last week, lots of offline feedback on that post. I’ll post on the topic again to see if I can turn a data point into a trend.

    At Microsoft we have a competency called “Cross-group Collaboration” which is used to illustrate the degree to which one is successful in employing tactics like “managing without authority,” “holding others accountable,” “creating win-win situations” and all that. Even in writing that sentence I cannot help but surface some of the cynicism I have for those concepts.

    The adult definitions are strikingly similar to the concepts we’re taught in pre-school:

    Adult Definition

    Childhood Definition

    Facilitates "win-win" situations; works with others to achieve positive outcomes. Establishes working relationships with others to capitalize on ideas and resources for mutual benefit.

    “When someone asks to use your things, you can't simply say, "no." Nor do you have to say, "yes". But if you decline to share, respect the other enough to either give a reason or suggest an alternative, such as "Let's take turns," "You can play with it, but only inside," or "That's my very favorite, but you can play with any of these."”

    Read more: http://www.drgreene.com/qa/learning-share#ixzz111ynSn9n

    This isn’t to say that I think we manage people like 3-year-olds. What I am saying that many of the competencies used in assessing our performance at work are basic life lessons in a specific context.

    These principles are defined in so many places by so many people that their application takes on an artificial quality that separates the behavior from the intent. In the worst examples, these cross-group collaboration competencies are forged into instruments of career torture. Events in one’s day to day life evolve into context-free samples of how one is failing the basic rules of “don’t hit,” “be nice,” and “share your toys.”

    Desire for excellent collaboration among individuals at work is not the problem. Defining attributes of successful workgroup collaboration isn’t the problem either; <recruiting commercial> Microsoft does well in defining what this looks like in our company. Microsoft spends a lot of time on Career development for employees. The model we use for career development (and the tools available for employees to use in doing it) is something you have to see to understand. If it is not unique in the industry, I’m certain that few companies can come close to matching what we use here. </recruiting commercial>

    The problem arises when the definitions for Cross-group collaboration become untethered from the purpose of doing it well. This post is about the purpose of cross-group collaboration.

     

    What is the root of collaboration in the corporate environment?

    (I’m sharing my own thoughts here, but here are some obligatory resources: http://www.creativityatwork.com/CWStore/OCAWe-book.htm, http://www.ami-communities.eu/wiki/Collaboration%40Work, http://tucsoncitizen.com/wise-work/)

    My mental model for the problem is as follows:

    If Microsoft was a company of one, this would all be so easy. I would go ask a bunch of people what they wanted in a software package, write some code to meet their requirements, test it myself, ask them to help me test it, figure out how to package and price it, spend some time on the road selling it, and eventually get back on the treadmill and do it all over again.

    Because I would always have all the data all the time, and my ability to relate business functions is dependent only on my memory, I would have little need for anything beyond a day planner and a notebook to record notes for future reference.

    Because I have two young children at home, I am unable to sustain this life. I need help. Much like cell division, I need to produce more people to do the work. For each cell division capacity is increased by 2 and/or workload is halved. The largest tradeoff I consider in adding people is the degree to which work is divided into autonomous functions vs. roles where information must be shared between the parties. Where I now depend on the second person for information, I create a potential communication problem.

    Unfortunately humans aren’t perfect communicators, and adding people introduces inefficiency that accumulates with each cell division. Capacity falls somewhat short of doubling with each cell division, and workload absorbs that impact. Each cell division might separate half of the existing work, but the burden that collaboration places on people adds new work. I could introduce some cute mathematics and limit equations here to illustrate the example, but the concept is simple and doesn’t require that.

    At some point after a large number of cell divisions, 1,2,4,16,256, the burden of collaboration on each cell’s workload, combined with the cumulative productivity loss across all these functions requires some solution. Welcome our new “management” team; people who are put in place to reduce the efficiency drain and to reduce the net workload effect collaboration places on individual cells. They do by organizing, filtering and sharing the relevant details across different functions in the organization. This solution is a shortcut, because we’re taking a bet that we can’t make people perfect communicators, we have practical needs which force us to do something.

    For those who have a pessimistic view of the role of management, take note. I’ve encountered many folks who view the role of managers as reducing vibration within a system. I see it differently. The essential role of management is to reduce the efficiency drag and workload burden inherent in organizations where the role scope is narrow and dependent on the output of others. (The role of ‘leadership’ is different, and perhaps the subject of a future post.)

    This is also why “the smartest person in the room” is often the last person you’d want managing a team. People who don’t feel like they should depend on others generally won’t. They make poor facilitators of collaboration. Subject matter expertise can aid one’s ability to communicate and to close gaps, but toy sharing and subject matter expertise are different skill sets. Effective managers are ones who can facilitate productive interactions. Subject matter IQ helps, but if nobody likes working with you it won’t matter. This reminds me of an old saying, “If you want to go fast, go alone. If you want to go far, take a group.” I don’t know who said it, but it makes sense.

    We are not a company of one. I believe we have more than 75k employees (estimating conservatively because I’m too lazy to look up the actual number). At a company of this size, there are many, many layers of management. We use complex systems to facilitate information sharing and the collaboration that is required to keep so many cells functioning as a unit. It is imperfect.

    For all the models, systems, SharePoint, and other things we use, nothing is more important than the ability of people to connect with each other. This is why we care so much, and this is why it looms large in performance discussions. We value the ability to collaborate and to work well within our organization, regardless of how the imperative is encoded. Whether you learn it in Kindergarten or on the job, cooperation matters because it reduces drag.

    Employees and managers are cogs in a functioning system; they are not independent agents acting in each other’s (presumed) best interest. Collaborating well in the corporate environment comes down to your ability to identify mutual goals, move quickly through the ‘who does what’ parts, and to use that framework to measure and communicate progress. And it requires you to be nice to your neighbor. For all the explanation, the strategy is basic and easy to employ.

    Sadly, another lesson I had to learn the hard way.

  • Gray Matter

    Office Round-up

    • 1 Comments

    Tossing up a few useful links and a few random comments to go along with it.

  • Gray Matter

    How to present to an executive

    • 3 Comments

    Taking a left turn for a moment on the software talk.

    I’m at a point where I have to vent on a topic, and no better place to do it than to the anonymous reader. For some reason I’ve been in a lot of these lately (usually the presenter or I am needed for some reason; not as the presentee), and I’m at a point where I just have to empty the chamber on the reviews that are failing for lack of experience / guidance on how to do them well.

    With this and so many other things in my management career, I am compelled to teach people to avoid the same mistakes that I make / made. With my enthusiasm for developing people is combined a new perspective of "the other side of the table." I understand now what I could not understand before.

    I used to be so bad at this. (Maybe I am still not very good at it.) At some point by design or by intervention, a meeting shows up on the calendar titled "business review" or something similar. These are the dreaded "tell me what you think is important enough for me to know" type meetings, they are common in large companies, where high-level managers don’t have great visibility into the daily lives of people in their organizations. I’m in my 11th year of practice, it took me quite a few to figure this stuff out.

    I thought I would share my thoughts on what makes a good review. Having seen enough of them go the wrong way, and being on a streak of reviews that have been moderately successful, I can summarize what I believe the formula to be.

    What you should do

    Admit to yourself up front that it matters to your career, because it does matter. There’s no shame in wanting your exec reviews to go well, there is no shame in preparing. For most of us, interactions with your manager's manager and their manager are defining moments that are often repeated in your performance review.

    Realize that your (executive) cares most about current/future problems and your role in solving them. One of the most common failures of exec reviews is the glorified "status report" where a person recounts recent history, particularly when it feels like a pose-down.

    Demonstrate mastery by understanding the most important challenges in your area as your executive understands them. What makes you interesting to them is how you are helping address the larger challenges they face in running the business. There are many pivots here, many pitfalls. Not everything has a bottom-line impact, it's fine if your problems don’t; try not to force the connection. Most executives see through it and check out of those types of discussions. It is worth recognizing that most executives have span of control over much more than the P&L, including operational issues, budget, headcount, IT, etc. Not everything in a business is about bearing new revenue streams.

    Know what you want to get from the meeting. Have a point. Steer the conversation to a specific outcome. If you weren’t given a specific question to answer or topic to discuss, then you have been blessed with the gift of trust in setting the agenda yourself. Even if you’re only seeking a nod of approval for your approach to solving problems relevant to your business, knowing that up front makes a huge difference. Not knowing, or (especially in our culture) pestering everybody with questions/statements in the vein of "you scheduled the meeting, what did you want?" questions only shows that you are not enough in command of your subject area to a) predict what is needed, b) structure a meaningful dialog around it. I have said on many occasions where I am the presenter that "My objective for this meeting is to get (X) to say (Y) so that the entire team can hear it." I have structured some exec reviews around my intent to have everyone in the room hear a VP say a specific thing. It is a good idea to be precise about what you want.

    Structure the conversation around your progress on these problems and the things that are preventing you from solving them. In the end the formula is simple. A brief introduction, followed by a sequential discussion of key themes / topics, presented in a simple pattern (and ratio):

    • Situation (20%)
    • Progress we’re making/have made, (10%)
    • What we have left to do, (60%)
    • Where we have challenges (and may / may not need assistance). (10%)

    Unless you’re building circuits or designing aircraft, you can fit all of that information onto a single slide for each topic.

    What you should not do

    Recite your recent history of achievements. Companies have performance reviews for a reason. Executive reviews are not performance reviews; it is not a time to recount past events. They don’t matter that much to solving present problems. It may also send a signal to your exec that you don’t view those issues as fully resolved (why else would you continue to talk about the past?)

    Obsess over the "who owns what" questions (unless you’re talking about org planning). This is great evidence of the degree to which one has matured in their work approach. There is much written about the difference between managers and leaders. Managers obsess over rule-making and ownership. Leaders champion causes. Managers have subordinates. Leaders have followers. Dwelling on ownership (particularly in matrix-heavy organizations) is a pretty good sign that you’re not driving toward a result.

    Overload with details; most of them don’t matter. This is related to a point below about how much information you choose to surface during the conversation. The more detail you add the more vectors you create for the conversation to go sideways. To the best that you can, keep the details constrained to those that are necessary to illustrate progress you’ve made, illustrate your plan to complete the rest of the work or to explain where you are blocked. Nothing else matters.

    Speak of principles or topics with arbitrary labels. Ambiguity kills, be clear and precise. I was very bad about this one. I’d have super-detailed plans that I couldn’t easily reflect in a bullet point, so I’d give them a vague, cute label and get killed for it during the review. Admittedly I learned this more through teaching it than through doing it. In preparing my leads for meetings with my bosses I found myself asking them "what is that?" when I saw bullet points were I didn’t recognize the work. I kept pressing until a hyperlink to a plan / spec started appearing in its place. This turns out to be a good rule of thumb; if you can’t link to its description it might not be real enough to surface for a conversation. Having to decode concepts in meetings like this is a poor use of time.

    Some hidden truths worth recognizing

    Every bullet point in your deck can absorb the entire meeting. Be careful about what bullet points you put there. You have little control over the direction of the conversation, but you do have the power to influence the direction through the topics you raise. Bullet points are topics. Use them carefully and be prepared to defend each one as if it were the only topic on the agenda. Know your business.

    Your executive is probably evaluating your long-term potential as they listen to you. The trick is in understanding how you are being evaluated. Rarely is the evaluation about the subject matter; the evaluation is how you explain the subject matter, how well you understand its relationship to broader business challenges or how well you can influence the thinking of people around the table by what you are discussing.

    The advice feels a little basic, but it is wise to share the deck with everyone in the meeting before you get there. Know where you have agreement and where you don’t, and know what conversations will surface disagreement. Personally I don’t think it is necessary to avoid conflict in these conversations, most executives I have seen lament the anxiety over people having arguments in front of them. Executives like to be asked for their opinion on topics and to mediate tough topics from time to time. It’s what they are paid to do. I wouldn’t make a habit of starting fights in a forum like this, but it’s ok if everything isn’t perfectly aligned on your way in the door. Where it becomes a problem is when you don’t anticipate those disconnects.

    In the end, knowing your business and knowing what you want the outcome of the meeting to look like will guide you to the right meeting agenda most of the time. You could bury yourself in the good advice of how to run a meeting, smelling good, dressing neatly and all that. But in the end this is all advice on how to get clear on your message, and to seek a specific outcome.

    It isn’t that hard, right?

    </rant>

    Zombies coming up the hill to get me? -- the view from my office (via my (not an i-Phone) mobile phone) this foggy morning:

  • Gray Matter

    Updating the Custom XML Scanning Tool

    • 0 Comments

    A while back I posted a scanning tool to detect the presense of Custom XML Markup in Open XML documents.

    I wanted to provide an update for this tool to reflect the new Open XML SDK 2.0. The scanning tool has been recompiled against the new version of the SDK and should work a little better. Apart from that, I think the tool is the same. I don't think this one is lighting up the hit / download counts on my blog, but I wanted to post the update just in case. The attachment is a ZIP of an MSI. The tool is provided with no support or warranty, as is.

     

  • Gray Matter

    Welcome Back

    • 0 Comments

    Resurfacing,

    It has been several months since I last posted. I have spent that time transitioning to a new role in Office sustaining engineering. I am the proud owner of a new title, I changed my office, my boss, my commitments, bought a mini-van and played 30,000 more songs on my Zune.

    My new team is responsible for Office updates (in many, many different forms.) Comparing this to my prior role, which was more about developer audience management (or "marketing" if you prefer a poorly descriptive shorthand), there are interesting similarities.

    As an audience manager we typically address problems at a segment level, enabling communities of people to be successful in more or less a programmatic fashion. We learn a lot about communities by engaging their members; you learn a lot in conversation with customers, as I did in engaging Office developers and by engaging executives in our customer briefing center.

    In my new role there is little difference; we are engaged frequently by our customers with feedback. Some of those discussions are about bugs, some of those discussions are about product changes, some of them are about support policy needs, etc. In the end, both the marketing discussion and the sustaining engineering discussion serve the same end – ensuring our customers have the best experience possible with our products.

    And it is for this purpose that I re-direct my comments on this blog. The quality of software should improve over time. This is an interesting aspect of our industry which separates us from manufacturing durable goods or textiles, and makes us more like health care or financial services. We are a service, we take pride in the work, and we’re here to ensure that our customers can utilize the service to their maximum advantage.

    I’m still me, and I reserve the right to point out things, but I probably won’t dedicate too much time to the file format conversation in the future. I'll also confess to not being in love with the look and feel of the new blog. The platform changed while I was away, and I haven't caught up enough to update the site template. I'll get to that soon enough, I care enough about typeface/color/layout to do it in my spare time between diaper changes.

    I look forward to sharing some of the more interesting tales about providing service to our customers. I am enjoying my new role, I have a great team and a worthy charter.

    QWest Field 12th Man

  • Gray Matter

    A New Challenge

    • 2 Comments

    A great thing about Microsoft as an employee is the ability to manage one's own career and to invest in one's own development by seeking new opportunities and experiences. Role changes at Microsoft are common, part of the unique cultural fabric that exists within our company.

    Today I find myself in this situation. I have accepted a new role as Group Program Manager in our Customer and Partner Engineering Services team. In layperson's terms this means transitioning to the engineering org out of "marketing," and taking on a new team that manages (among other things) in-market products. I am thrilled to make the move, there are many areas of work on this team for which I have great passion.

    In departing the Office Product Management group I leave behind a great team and many outstanding colleagues. I will certainly treasure the experiences I have gained in this organization. I'm not going that far, my new role will still have a strong customer focus, I will still work on Office and MBD products, and I'll still work in the same building.

    As I ramp on the new role, I am going to shut down the blog for a while. There are many things to consume to prepare for my new role, so I need to go into a cave for a bit and study up. At some point I plan to return to blogging, but for now, I'm going to be a good student and concentrate on collecting input rather than generating output.

    Here's where to go if you want to read blogs similar to mine:

    http://blogs.msdn.com/johnrdurant

    http://blogs.msdn.com/brian_jones

    http://blogs.technet.com/office_sustained_engineering/

     

    Thank you to the readers who have followed my posts and participated in them. I shall return Smile.

  • Gray Matter

    Open XML SDK 2.0 Released

    • 0 Comments

    On February 21, 2008, I posted on Microsoft Interoperability Principles, which are designed to make our products more open and more available to the broader software community. Since that day, Microsoft has made several strides in this area, too many to recount here and now, but largely explained by the Interoperability@Microsoft team.

    Today we are making an important advance in the area of document format interoperability for Office, as part of our ongoing commitment to these interoperability principles.

    After four successful Technology Previews, today we are releasing the 2.0 version of the Open XML SDK for Microsoft Office. Among its benefits, this release of the Open XML SDK is a significant step forward because of the amount and quality of functionality it provides to developers seeking to build document processing solutions without the use of Microsoft Office applications.

    Today Visual Studio is the primary developer tool for Office 2010, and Visual Basic for Applications (VBA) is also widely used to extend and automate our Office client software. Traditionally Visual Studio developers build add-ins, integrations with SharePoint and other solutions that exist within Office products. In the past, one of the common developer tasks with Visual Studio and Visual Basic for VBA was processing of Office documents. This was typically accomplished with macros and scripts running inside client applications. This is sub-optimal for many reasons. Client applications are not optimized for large-scale automation, and in-client document processing solutions are error-prone as a result.

    Document processing is spreading to mainstream development because of advances in more transparent XML-based formats and the associated tooling to modify documents represented in those formats.

    The Open XML SDK improves the ability to process Office documents. Automation operations no longer require a client environment that was never really designed to support bulk processing solutions. With the SDK developers now have direct (element-level) access to a document's content. It is great for enabling solutions to extract, examine or modify a document's contents.

    The SDK also improves developer choice and platform-neutral document interoperability. By freeing documents from their dependence on a particular application or platform, government agencies and other entities gain greater access to the information they store in their documents.

    Many people will comment on the capabilities of the SDK. If I might recommend some resources to get started, I would point readers to the following posts:

    Download the SDK

    clip_image002

    Download the Open XML SDK 2.0 for Microsoft Office
    This download provides strongly typed part and content classes for use with Office 2007 & Office 2010 Open XML documents. http://www.microsoft.com/downloads/details.aspx?FamilyID=c6e744e5-36e9-45f5-8d8c-331df206e0d0

     

    http://msdn.microsoft.com/en-us/office/ee441239.aspx

    http://msdn.microsoft.com/en-us/office/bb265236.aspx

    http://www.openxmldeveloper.org

    http://blogs.msdn.com/brian_jones

    http://blogs.msdn.com/johnrdurant/archive/2010/03/15/open-xml-sdk-2-0-for-microsoft-office-is-live.aspx

    http://blogs.msdn.com/erikaehrli/archive/2010/03/15/open-xml-sdk-2-0-rtm-articles-videos-code-snippets-and-resources-on-msdn.aspx

    http://blogs.msdn.com/ericwhite/archive/2010/03/15/release-of-the-open-xml-sdk-2-0-for-microsoft-office.aspx

     

    I am very excited for the release of the Open XML SDK, and I hope that the Open XML Development community will be as well.

  • Gray Matter

    Office Developer Atlas

    • 3 Comments

    If you are new to Office development, or are if you are looking to learn more about what's new in Office 2010 for Developers, we have a new tool available for you. Today we are publishing the Office Developer Atlas, a tool for self-training on Office 2010 development. This is a great resource for you to learn about Office 2010 Development.

    image  image

    Hosted by John Durant, the Developer Atlas takes a modular approach toward understanding solution development with Office, and is complete with videos, screen shots, samples and so on. I encourage you to have a look at the Atlas and give it a test drive.

    Happy Coding!

  • Gray Matter

    Office 2010 Application Compatibility Tools Bug Hunt

    • 9 Comments

    Hello, this is Michael Kiselman again with exciting news related to the Office 2010 compatibility program and tools.

    We have many participants using and testing the Application Compatibility tools for Office 2010. Thus far we have received much feedback from the community and are making improvements to the tools as a result of that feedback. As it goes with many pre-release programs, particularly ones which have no real precedent, the questions and feedback we are receiving is generating more questions and the need for even more feedback. As we near the launch of Office 2010, we want to double-down on our beta program for the tools and content. We're going to put some skin in the game to increase the rate of feedback we're getting on the materials.

    Among the areas where we are seeking feedback are bugs in the OEAT and Code Compatibility Inspector Tools. We are going to conduct a public bug hunt, and we are going to offer prizes for those who can help us find defects in our tools.

    For our bug hunters we are offering 2 prizes – XBOX360 Elite and 8GB Zune.

    To win the prizes, all you need to do is to download beta of the Office Environment Assessment Tool (OEAT) and beta of the Office 2010 Code Compatibility Inspector, run them and report any bugs you discover to ofappcpt@microsoft.com before April 9th. If we are able to reproduce your bug or you can help us identify a defect in the tools, that becomes your sweepstakes entry. From the submitted and approved bugs, we will randomly select winners after April 9th.

    We are looking forward to your feedback! Happy Hunting!

    The Official Rules for the Sweepstakes are located here.

  • Gray Matter

    Open XML SDK Code behind the Custom XML Markup Detection Tool

    • 0 Comments

    On Brian Jones' blog today, Zeyad Rajabi has posted the source code for the Custom XML Markup Detection tool from my last post. This should give readers a bit more insight into what it is looking for to identify affected documents.

    image

    The source is provided to you as an example of the Open XML SDK's incredible utility and power, but also for you to customize the tool for the purpose of scanning other areas of documents or to implement the scanning or reporting activities differently.

  • Gray Matter

    Scanning Tool to Detect Custom XML Markup in .DOCX and .DOCM files

    • 3 Comments

    Quick Start
    The Installer is located here. (update: A new version of the installer is here: http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Components-PostAttachments/00-03-35-69-65/Custom-XML-Markup-Detection-Tool-Setup.zip)

    Background reading
    What is Custom XML- ... and the impact of the i4i judgment on Word,
    Regarding Custom XML Patch distribution and availability,
    Associating Data with Content Controls,
    Using Content Controls vs. Custom XML Elements,


    After we made a patch available for Word related to the recent court ruling, we were asked by a handful of customers if there is a way to identify document files or solutions which may be affected. One way to identify solutions within an organization that may be affected is to scan your existing XML format based Word files (.docx and .docm) for the presence of the markup in question.

    On my blog today I am posting a no-cost, unsupported tool to help you scan repositories for documents which may contain markup that would be affected by the patch. We are also providing the source code for the tool in case you would want to modify it to scan for specific directories, or to add additional functionality to the tool. It is written in C#.

    Results provided by the tool can help you to identify possible areas of impact for your specific IT environment.

    The documents identified by the tool as containing custom XML markup are themselves not affected by the ruling, and require no action on your part. What positive scan results will indicate are documents that will behave differently when opened in patched and unpatched versions of Office.

    Positive results concentrated on a single machine or set of machines may also indicate the presence of a solution or template generating the affected markup, and may indicate the presence of a solution that will perform differently when opened by a patched or unpatched version of Word.

    The scanning tool will work when run by a local user on a local machine. For SharePoint and other systems whose directories are identifiable by a UNC path, the scanning tool can be used on a server to examine documents stored within those systems.

     

    How to Use the Software

    IT Administrators can configure a login or startup script for computers in their domain to copy the .exe file to a local machine, and to execute the command line tool. Alternatively, a startup or login script can be created to run the installer locally, and execute the command line tool. For more information on login and startup scripts, visit http://www.technet.microsoft.com, or http://technet.microsoft.com/en-us/magazine/dd630947.aspx.

    1. Run a command prompt window (Run as Administrator)

    2. Go to the directory where you have installed the Custom XML Markup Detection Tool
        a. By default, this directory is "C:\Program Files\Microsoft\Custom XML Markup Detection Tool\"

    3. Run the tool with the following command: DetectCustomXMLMarkup.exe [directory path]
        a. For example DetectCustomXMLMarkup.exe c:\temp

    4. At this point, the tool will tell you how many files it is scanning and how many files it detected with Custom XML markup

    clip_image002

    5. An "output.log" file will be created, in the same directory the tool was run, that summarizes the findings of the tool. This log file includes information on files that include Custom XML markup and/or files that the tool encountered errors while scanning. This log file is a tab delimited text file, which can be opened in Notepad or Excel. Here is an example log file opened in Excel:

    clip_image004

    Notes: The tool works with directories and UNC file paths.

    The Installer is located here

  • Gray Matter

    Off Topic: Check out the Office Ribbon Hero

    • 0 Comments

    Taking a break from Custom XML for a moment. more posts on the topic are imminent.

    Jennifer Michelstein announced the Office Ribbon Hero today, a fun thing you can install with Office 2007 or the 2010 beta to test your depth of usage of Office.

    image

    The challenge, of course, is for you to beat me. :) Good luck with that.

    Really, this is a tool that will help you become more proficient in using some of the capability in Office applications. And let's face it, there's nothing that says "I'm smarter than you" like being the best on your block at using Excel.

    You can get it here: http://www.officelabs.com/ribbonhero 

  • Gray Matter

    Associating Data with Content Controls

    • 5 Comments

    Background reading
    What is Custom XML- ... and the impact of the i4i judgment on Word,
    Regarding Custom XML Patch distribution and availability,
    Using Content Controls vs. Custom XML Elements,
    Scanning tool to detect documents with custom XML

    By popular demand, Eric White has returned to provide more guidance regarding the use of Content Controls. Eric's guest post today outlines more of how you can use Content Controls in your environment.

    ......

    In a previous post on Gray's blog, I discussed an approach for building a content publishing system using styles and content controls. This is only one of the scenarios where content controls are useful. Another scenario is where you have a sophisticated document generation system where content controls are replaced with automatically generated text. The replacement instructions could be fairly elaborate - perhaps including the database server name, table name, filter, and column name, for example. In a different scenario, you may have a system that automates testing of code listings that are contained in documents, and you may have build instructions for each snippet in the document. I blogged about this approach in OpenXmlCodeTester: Validating Code in Open XML Documents.

    Note: I co-wrote this post with Anil Kumar. Many thanks to Anil for writing the managed add-in code.

    In all of the above scenarios, you may have the need to associate arbitrary amounts of data with each content control. You may also have the requirement that the document author can create and edit this auxiliary information. Content controls don't directly have a facility for storing and maintaining such information, but there is a fairly easy approach to solving this problem.

    Note: In this post, I refer to 'custom XML parts'. Open XML documents are stored using the Open Packaging Conventions. They are essentially zip files (packages) that contain multiple XML and other types of files (parts) within them. These parts are related to each other by a very specific mechanism called relationships. A custom XML part is a part (a file in XML format) of your own design stored in the package. You can design your own XML vocabulary for this part. I've written an MSDN article, The Essentials of Open Packaging Conventions, which explains what you need to know to work with packages and parts. 'Custom XML parts' in this sense are not affected by January 2010 update  for Office Word that Gray has blogged about previously.   Custom XML parts will continue to be supported in Word.

    The gist of the technique for associating data with content controls is as follows:

    You create a custom XML part that contains some XML that looks something like this:

     

    image

    If you need to maintain more than one value for each content control, you can have as many child elements of the Content element as necessary.

    Each content control contains a unique ID that is assigned by Word upon creation of the content control. The data in the custom XML part is related to the content control using this ID. Following is the markup for one of the content controls that is related to the above XML:

    image

    You can make it easy for users to edit this auxiliary information in a custom task pane. To create this functionality, you create an Office managed add-in. When the focus is in a content control, the task pane is updated with information from the custom XML part, and when the user updates the data, the managed add-in updates the custom XML part. The following screen shot shows the task pane that is created by the example presented in this post:

    image

    As the user moves from content control to content control, the example updates the contents of the task pane. If the user moves to text in the document that is not in a content control, the example clears the text box in the task pane, and disables the "Update CustomXml Part" button. Another approach that you can take is to hide and show the task pane as the selection moves into and out of content controls. The example contains commented-out code that shows how to do this.

    This example relies on the user pressing the "Update CustomXml Part" button. You may want to take another approach of updating the custom XML part data when the user changes any data in the task pane.

    Custom Task Panes Overview provides a detailed explanation of custom task panes, and how to create them. Deploying a Visual Studio Tools for the Office System 3.0 Solution for the 2007 Microsoft Office System Using Windows Installer provides what you need to know to deploy an add-in.

    There are three source files for this example:

    ContentControlInfoAddIn.cs

    Implements the add-in, registers various event handlers, and creates and updates the custom XML part.

    ContentControlInfo.cs

    Contains the event handlers for the user control that is placed on the task pane.

    ContentControlInfo.Designer.cs

    Contains the designer generated code for the user control.

    You can download the code, along with a Visual Studio solution here.

     

     

  • Gray Matter

    Regarding Custom XML Patch distribution and availability

    • 6 Comments

    Background reading
    What is Custom XML- ... and the impact of the i4i judgment on Word,
    Associating Data with Content Controls,
    Using Content Controls vs. Custom XML Elements,
    Scanning tool to detect documents with custom XML 

    A few questions have popped up about the patch for Custom XML and I thought I'd take a moment to address those. First, please see the patch posted on the public download site.

    This patch will be not "pushed" through our update channels , because existing customers are not required to install it.

    Will the patch be "pushed" to my system? Is this an automatic update?
    No. The patch will not be made available from Microsoft Update or Office Update, and will not be "pushed" to any user's machine by Microsoft services.

    What about future Office updates such as hotfixes or Security patches? Will the patched version of Word require different updates?
    We will continue to provide security updates and hotfixes that work with both patched and unpatched versions of Word.

    How can I tell if a document uses CustomXML markup?
    The easiest way to know is by opening the document in an unpatched version of Word and to look for the "pink tags" that typically delineate CustomXML markup. Alternatively, for large volumes of documents, we will make a document scanning tool available which will evaluate .DOCX and .DOCM files for the presence of CustomXML markup. My next blog post will offer more information regarding this tool, which we plan to make available at no charge. Because .DOC files are not affected, we do not plan to offer a scanning tool for them.

     

     

  • Gray Matter

    Using Content Controls vs. Custom XML Elements

    • 2 Comments

    Background Reading
    What is Custom XML- ... and the impact of the i4i judgment on Word,
    Regarding Custom XML Patch distribution and availability,
    Associating Data with Content Controls,
    Scanning tool to detect documents with custom XML 

    In my last post, What is "Custom XML" . . . and the impact of the i4i judgment on Word, I took some steps to identify the areas of Word that are affected by the ruling. This generated a handful of questions from people seeking to understand how they should consider moving forward with solutions in Word.

    It is important to understand that using custom XML markup isn't the only way to supply semantic meaning to rich markup. Content controls provide an excellent user experience for this.

    The following is a guest post by Eric White, explaining an approach for using styles and content controls for implementing an authoring environment for a publishing system. If you haven't read Eric's blog before, I highly recommend it as a source for learning Open XML and Word development. Eric is among the most knowledgeable about development using Open XML.

    ..........

    I've seen publishing systems that use styles as a means for supplying semantic meaning to content, but this is problematic in some scenarios (but the problems are solvable by content controls). You could format the above document to look like this:

    clip_image002

    The above screen clipping uses an option in Word that allows you to display the style name for every paragraph to the left of the paragraph.

    You could then write a transform from this to the desired format. This approach is problematic because the approach for extracting content involves grouping together adjacent paragraphs of a particular style, and this can lead to an idiosyncratic experience for content writers. For example, I've seen a system where the writer needed to supply a specially formatted line for a code block that would indicate the language for the code. If you needed to supply code snippets for multiple languages, you *needed* to supply a blank line formatted as normal between the code snippets:

    clip_image004

    This is, of course, problematic. If the writer did not supply this blank line, then the transform would conjoin the two code blocks. I suppose that the developers writing the transform could watch for the magic lines that contain [c#] or [vb], but writing code that looks for magic values is never a good idea. What if there is some valid code that contains that exact string on a line as part of a multi-line string? The transform would be broken, and worse, the writer would need to hack the code in some way to make the transform work properly.

    If I were designing a content publishing system that needed to allow writers to work in Word and then transform the document to another format upon publishing, I would design it to use content controls. It is far better to use content controls to group multiple lines together, and to supply appropriate metadata about those lines.

    clip_image002[5]

    The transform can then extract the contents of each code block in a deterministic fashion.

    Here are the characteristics that I would give to a publishing system:

    · If there is a direct transform from a single paragraph in a source document to a corresponding construct in the transformed document, then use paragraph styles. You can alter the user experience in Word to allow only valid styles.

    · If there is a direct transform from runs in a paragraph to desired constructs in the transformed document, then use character styles.

    · Using styles gives the writer a great user experience. The Word user interface is optimized to allow writers to select paragraphs, apply styles, specify what the style for the paragraph following should be, and so on.

    · If you need to select multiple paragraphs for transform to some construct in the transformed document, then use content controls to group those paragraphs. This also gives a great experience. The metadata about grouped paragraphs (the code block in the above example) is clearly specified, and not through some magically formatted line or some other questionable technique. If you are the developer for this system, you can supply macros for easy insertion of content controls, although it is super easy to insert content controls using the stock user interface.

    Using styles and content controls gives a user experience that is quite different from editing XML. Instead of inserting elements that surround content, you use styles to supply semantic meaning to paragraphs. If you need to associate groups of paragraphs together, you surround them with a content control.

    Here are some additional resources to help you work with content controls:

    Using LINQ to XML to Retrieve the Contents of Content Controls

    Using DocumentBuilder with Content Controls for Document Assembly

    Creating Data-Bound Content Controls using the Open XML SDK and LINQ to XML

  • Gray Matter

    What is "Custom XML?" ... and the impact of the i4i judgment on Word

    • 56 Comments

    I recall saying recently that "this is my last post for 2009." Whoops... I don't think I was anticipating this. I watched with interest yesterday the coverage and reaction to the i4i judgment. I am not keen to share my own thoughts about the case here, but I would like to offer clarity around the specific area of Word in question, and suggestions for what people can do about it if they are using that functionality today. There is much confusion about the part of Word that is actually affected.

    First, some things to understand:

    We do not anticipate any interruption in the availability of Word or Office 2007. Additionally this ruling has no impact on the scheduled availability of the 2010 Office version which is planned for the first half of CY2010.

    Current users are not affected. If you are using the custom XML tags in Word 2003 or 2007 (these show up in Word as Pink Tags around tagged content), you are free to continue doing so with the products you have already purchased.

    Open XML standards (all ECMA and ISO versions) are not affected. Even if Word's specific implementation of custom XML support does infringe the i4i patent (which Microsoft does not believe to be the case), i4i has never claimed that its patent is essential to the OXML standard.

    Content Controls of Word (screen shot below) are not affected. In Word 2007 and Word 2010, this is a common method of binding document content to data stored in a custom-defined schema within a document.

    image

    The functionality that is in question is indicated by the screen shot below. Custom XML Tags in Word documents are visible in the Word user interface as Pink Tags surrounding tagged content in a document.

    image

    What you can do if you have questions about your solutions that use Custom XML Tags:

    First, download the Office 2010 beta and test your solution. If your solution works in Office 2010, it does not depend on the functionality in question. If your solution does utilize Custom XML Tags, consider re-implementing the solution using Content Controls. Detailed guidance on the use of Content Controls in Word 2007 can be found here. Also note the Word Content Controls Toolkit on CodePlex. The Open XML SDK, of course, is quite useful for getting people up to speed on developing solutions for Word and Open XML.

    Update: Additional Detail

    In response to several inquiries on the topic, I have included additional text describing the feature area that is affected vs. what is not affected, including links to KB articles which illustrate the capabilities in more detail. 

    Affected:

    Word 2003 and Word 2007 distributed prior to 1/11/2010 can read files that contain XML markup (ref: “Understanding Word's XML Markup [Word 2003 XML Reference]”, http://msdn.microsoft.com/en-us/library/aa212889(office.11).aspx. When custom XML markup is present, Word delineates this content in a Word document which allows it to later save the file to .DOCX, .DOCM, or .XML with that content marked up.

    The Word 2007 product distributed by Microsoft after 1/10/2010 will no longer read the Custom XML markup contained within .DOCX, .DOCM, or .XML files.  These files will continue to open, but the Custom XML markup tags will be removed. Custom XML markup stored within .DOC files will not be affected by these changes.  Word 2003 and existing installations of Word 2007 will not be affected by this change.

     Not Affected:

    Word 2007 also added features allowing Content Controls to map to XML data stored in a DOCX or DOCM file (ref: “Mapping Word 2007 Content Controls to Custom XML Using the XML Mapping Object”, http://msdn.microsoft.com/en-us/library/bb510135.aspx). Content Controls and XML data stored within DOCX or DOCM files will not be affected by this change. 

     

     

  • Gray Matter

    2010 New Year's Resolutions & Beer Selection, Simplified + 2009 blog in review

    • 2 Comments

    On December 15, 1999, I was sitting in my home in England (near Reading), having just wrapped up a trip to Salzburg to fix a huge problem related to classified pagination. This work was sandwiched between several Y2k conversions (in reality it was more like "2004-proofing" due to the size of the field containing the count of seconds from the system's base date). I was exhausted, done with traveling, in dire need of Mexican food (I defy anyone to find great Mexican food in Europe), and very much over the novelty of bitter-tasting, motor-oil thick beer. The beer thing was a big deal, growing up in an area where the beer selection typically included "both kinds," (as in Bud AND Bud Light).

    Fast-forward to December 15, 2009. The Y2k problem is rarely mentioned, I get all the great Mexican food I want. Classified pagination (i.e., printed page layout for thousands of newspaper classifieds) has more or less vanished as a technology category. And I have stopped caring about the beer that I drink (although there is a minimum quality standard. Sorry, Lucky Lager). Life is better all the way around, and not hoping for my favorite beer saves me much disappointment at NFL games and folk music festivals.

    Today I find myself elbow-deep in my 2010 plan for Office developer. We've been spending a lot of time during the launch phase getting oriented to the pressing needs of coders working on Office applications. Our readiness material (and information channels like my blog) reflect those needs (hopefully.) 2010 is a great release for a lot of reasons. We have a rich new set of capabilities, spanning across PC, Phone and Browser.

    But I thought I'd offer some thoughts about my 2010 plan, to set an agenda for the upcoming year.

    Educate on VBA in Office 2010. (Start here) Maybe I say it too much, but VBA is supported in Office 2010, we like VBA, and we are encouraging people to continue using VBA. Despite rumors to the contrary, VBA remains an important part of Office. In 2010, we will continue to evangelize VBA in Office in various forums. These activities will include various sponsorships, contests, etc.

    Drive Adoption of Visual Studio 2010, VSTO and Office 2010. (Start here) Feedback on the combination of these two beta products is very positive. Particularly with .NET 4.0 and PIA-less deployment, VS 2010 offers Office developers lots to work with and should make life much easier.

    Educate on the use of the Open XML SDK. (Start here, http://www.openxmldeveloper.org) While the format debate lingers on, development on Open XML is growing very quickly. We're now well past 10k members on OpenXMLDeveloper.org, (12k, to be more precise) with site traffic growing to match. the Open XML SDK is the fastest way to get started with Open XML Development, and (again), we're seeing download counts for the SDK which illustrate the traction that the format is gaining. FWIW we're still not getting any questions about ODF solution development in Office.

    Continue building awareness for the Application Compatibility Tools for Office 2010. We're off to a very strong start on this program, and the next few months are about landing these tools and documents into the various service provider channels we offer at Microsoft, like DDPS, MDT and others.

    Office 2010 readiness for Office Business Applications (OBA). (see it here: http://www.obacentral.com) In building some of the lower-level building blocks for the Office 2010 launch (see above), we put the topic of OBA off until the second half when we could give it due attention and rigor. Building business applications or front-ending LOB solution in Office is a primary investment area for us, based on the feedback we're getting from the community at large. In 2010 we'll turn the crank on readiness for OBA for Office 2010. With the recently announced DUET updates, we've got a great starting point. But there's lots to share with BCS, SharePoint integration and several other topics.

     

    I always enjoy spending time recapping the year gone by, although I'll spare folks the keyword lists (and a lot of copy paste), by re-treading some of the events about which I was compelled to comment during the year.

    The most popular post on my blog: Office 2007 Service Pack 2. I posted 3 times on SP2, and those posts were easily the busiest. 1, 2, 3 if you're interested. SP2 was important for a few reasons. We introduced Save as ODF & PDF into the mainstream products, unfolded a bunch of Outlook perf improvements, and a handful of other things. I recall that being a super busy time.

    The most commented: "Rethinking ODF Leadership" and "Clearing up a few matters with respect to ODF and SP2." 102 comments published on that post, it's quite a few. Definitely started a discussion with that post :). Although 6 months later, I observe that this discussion has quieted considerably, and really feels like "internal business" when it comes to reading about the evolution of ODF. I understand the 1.2 draft is up for some vote / approval, and there is dissention among ODF supporters about whether or not 1.1 should be standardized and so on. Because I don't hear much (anything) about ODF from the Office developer community, I don't get that involved any more.

    As always, though, I will be interested to see if ODF 1.2 passes the same evaluation criteria to which Open XML was subjected. As we saw with SP2 and ODF in Office, Open XML was sharply criticized for being "application dependent", whereas ODF and aligning to another vendor's implementation of the NON-standard 1.2 was upheld as something that Microsoft should have done. Very confusing. it was felt that Open XML should not be a standard because it had alleged dependences on Microsoft Office, but the only way to really get interoperable ODF was to base that on a product's implementation, and we were being positioned as "incompetent" for not doing that. I don't pretend to understand that contradiction, but I eventually just let it go. My focus for the Office developer audience are the technologies and tools that our developers use. The truth, explained here, (docx), (odt),  is quite clear. Open XML is more widely adopted, and that is reflected in the inquiries we get for developers building productivity solutions.20_195611_0377 (2)

    Posts that were most surprising in terms of traffic: SharePoint Conference. I posted on the relocation of Office Developer Conference to SharePoint conference as a courtesy, surprised to learn of the anticipation of ODC. I'll take a little credit, then in the outstanding turnout for  SharePoint conference, that show was probably the most surprising event for me in 2009. It was a huge show, easily the biggest I attended this year. InfoPath was booming with traffic, as was Access. That was a very exciting week. Not to mention that I made a new friend. And yes, it is hip to be square.

    Posts I enjoyed writing the most: When a thing that you're directly responsible for is downloaded 100,000,000 times, you tend to get pretty excited about that. During the Open XML and ODF "debate", it became very tough to separate conversations about readiness for a new file format (a very mechanical, basic thing). Especially considering the original goal (prior to any discussion about standardization) - getting our apps out of the binary formats onto more sustainable XML-based formats. This post was a fun one for me, I took about 5 minutes after I hit the publish button in Word and thought about how large 100,000,000 is as a number. FWIW, with 100 million being a fairly good illustration of its utility, I stopped counting closely after that post. I haven't looked at the number in quite a while. I suspect it has slowed a bit with the (now) widespread deployment of Office 2007.

    A close second to that post is my post about 5 years at Microsoft. I got a lot of great feedback about that post from people across the company. I was already feeling very good about my role here, but that post definitely gave me a boost, and to the folks who took time to contact me offline, thank you for the feedback.

     

    This will be my last post for 2009. As always, I thank you for your readership, and I'll see you on the other side of the new year.

     

     

     

     

     

     

     

     

  • Gray Matter

    Office 2010 Questions Answered for new Office developers

    • 1 Comments

    Continuing on the theme of Q & A for Office 2010, I thought I'd add a few questions, answers and pointers to get you oriented to some key topics relevant to 2010. We get a lot of interest from folks who are just starting to code on Office, I thought it worthwhile to run down the list of FAQ's as a shortcut.

     

    Q. Are you supporting VBA in Office 2010?
    A. Yes. http://msdn.microsoft.com/en-us/library/ee814735(office.14).aspx will get you started. Office 2010 VBA is a live and well.

    Q: What is the best way to get started with Open XML?
    A: I strongly recommend using the Open XML SDK for real-world Open XML development. This short video clip from Zeyad has a pretty good explanation of why that is the case.

    Q: What is PowerPivot and where can I learn more about it?
    A: Start here for PowerPivot: http://www.powerpivot.com/index.aspx. Lots of promises out there for managing the bulk of data in global analysis type problems, but very few jaw-dropping experiences like this one. Best to just install it and try it for yourself. Where other products are struggling to create a connection to live data (rather than snapshotting it in a workbook), Excel and PowerPivot put BI in the hands of the masses like nothing before it has done.

     

    Q: What is the most common way to build a solution for Office?
    A: Hopefully this answer is only news to new developers, but Visual Studio with VSTO (Visual Studio Tools for Office) is the best, most commonly used and easiest way to build add-ins and solutions. VS & VSTO allow you create managed-code solutions for Office. For all new Office developers, I would recommend starting in VSTO to get you up to speed. VSTO is great at addressing many of the small issues that are involved with building and deploying add-ins to our products.

     

    Q: What is OBA?
    A: Office Business Applications (OBA) refers to the concept of Office being used as a front-end for line of business data and solutions. Increasingly this is the mode of Office development, beyond the VBA automation and add-in development that we've had in the past. Because users are familiar with Office, developers can code apps within an environment that has a very short learning curve. Analyzing data in Excel is natural for users of Excel. Scheduling meetings in Outlook is the same, whether that meeting is booked in SAP, on Exchange or to your Live calendar. There are tremendous advantages to surfacing LOB Data and process to users in Office, one of which is masking business process complexity for novice users inside of easy tools that they already know how to use. To see some examples of OBA's in action, visit http://www.obacentral.com. Two good books on building OBA's that I can recommend: http://www.microsoft.com/learning/en/us/book.aspx?ID=9471&locale=en-us, and http://www.amazon.com/Pro-SharePoint-Solution-Development-Sharepoint/dp/1590598083.

     

    Q: What's playing on your Zune right now?
    A: That would be "Music from the North" by the Jayhawks. Album that is great from top to bottom.

    image

     

    Q: What are the best web sites for learning Office development?
    A: Off the top of my head, here's a list:

    - http://msdn.microsoft.com/en-gb/office/default.aspx
    - http://msdn.microsoft.com/en-gb/office/aa905363.aspx
    - http://msdn.microsoft.com/en-us/office/aa905371.aspx
    - http://www.openxmldeveloper.org


    And some non-Microsoft sites that are worthwhile:

    - http://pptfaq.com/FAQ00032.htm
    - http://www.codeforexcelandoutlook.com/
    - http://word.mvps.org/index.html
    - http://www.infopathdev.com/
    - http://www.powells.com/biblio?show=TRADE%20PAPER:NEW:9781430210726:49.99 (I am a frequent visitor to Portland and I do love Powell's)

    - http://officedeveloper.net/ (I forgot the link that caused me to put this section into the post from Ty Anderson.)

    He has a good book as well. http://www.powells.com/biblio?show=TRADE%20PAPER:NEW:9781430210726:49.99

     

    I'll point at more links when I get started, but I hope that this helps newer Office developers get started.

  • Gray Matter

    Office 2010 System Requirements

    • 0 Comments

    Customers have many questions about Office 2010, so may decisions related to Office deployment depend on their answers. I am creating a post to address the ones that come up most frequently on the technical side for Office 2010. I will keep adding FAQ' type posts with links in hopes that I can help search engines get people to the right places on key topics. Sysreq's are a big one, here's what I've got for you.

    Q: What are the System Requirements for Office 2010?

    A: With the caveat that this pertains to BETA software as of today, here's where we are at now with system requirements. Differences between 2007 and 2010 are highlighted in Red. Please understand that the 2010 requirements are subject to change, and will likely add additional detail as we move closer to general availability. The disk footprint is what has changed most significantly, but for the most part, the sysreq's are quite similar between the two versions. Recall that back when we shipped Office 2007 SP2, we made investments in performance, particularly with Outlook. We're hopeful that the release version of 2010 will continue improving performance, so that the experience with 2010 will improve across the board.

    Office 2010 Office 2007 (Enterprise Edition)

    Processor

    500 MHz processor; 1 GHz required for Outlook with Business Contact Manager

    500 megahertz (MHz) processor or higher. 2 gigahertz (GHz) processor or higher and 1 GB RAM or higher recommended for OneNote Audio Search. Close-talking microphone required. Audio Search not available in all languages.

    Memory

    256 MB RAM; 512 MB recommended for graphics features, Outlook Instant Search, Outlook with Business Contact Manager, and certain advanced functionality.

    256 megabyte (MB) RAM or higher. 512 MB RAM or higher recommended for Outlook Instant Search. Grammar and contextual spelling in Word is not turned on unless the machine has 1 GB memory.

    Hard disk

    3.5 GB available disk space

    2 gigabyte (GB); a portion of this disk space will be freed after installation if the original download package is removed from the hard drive.

    Display

    1024x768 or higher resolution monitor

    1024x768 or higher resolution monitor

    Operating system

    Windows XP with Service Pack (SP) 3 (32-bit operating system (OS) only) or Windows Vista with SP1, Windows 7, Windows Server 2003 R2 with MSXML 6.0, Windows Server 2008, or later 32- or 64-bit OS.

    Microsoft Windows XP with Service Pack (SP) 2, Windows Server 2003 with SP1, or later operating system (note that Office 2007 SP2 is the minimum version supported for Windows 7).

    Graphics

    Graphics hardware acceleration requires a DirectX 9.0c graphics card with 64 MB or more video memory.

    (not listed)

    Internet

    Windows® Internet Explorer® 7.0 or later, 32 bit browser only.
    Internet functionality requires an Internet connection.

    Internet Explorer 6.0 or later, 32 bit browser only. Internet functionality requires Internet access (fees may apply).

     

    FAQ: I have 64-bit hardware. Should I install Office 2010 64-bit or Office 2010 32-bit?

    a: With the 64-bit version, advanced users will benefit from increased memory utilization of 64-bit hardware. The transition to 64-Bit version will require 32-bit applications and add-ins to be recompiled to 64-bit, however, the leap will offer advanced users exponentially larger memory addresses required for large datasets and intensive computations. For the best compatibility I would recommend 32-bit Office 2010 for both 32-bit and 64-bit Operating Systems. Office 64-bit is optimized for advanced data analysis scenarios that most users don't require.

  • Gray Matter

    Office 2010 Application Compatibility Tools Beta Now Available

    • 0 Comments

    Update: URL's in the post were not functioning properly, and have now been fixed. 

    Today we are please to announce that a public beta of Office Environment Assessment Tool, a beta of Office Code Compatibility Inspector and a draft of the Assessment and Remediation Guide are now available for download at the new Office 2010 Application Compatibility resource page on MSDN. These tools and documentation are made available to you as per our announcement of the Office 2010 Application Compatibility program at SPC09 in October. Please use the links below to navigate and get the tools and the documentation. We encourage you to send us your feedback, comments and suggestions by either using Office 2010 Application Compatibility Forum on TechNet or by just sending a direct mail to ofappcpt@microsoft.com.

    Tools and Guidance

    Office 2010 Code Compatibility Inspector

    The Office Code Compatibility Inspector for VBA and the Office Code Compatibility Inspector for Visual Studio are add-ins that you install with Office 2010 or Visual Studio. The tools scan VBA, VB.NET, and C# code for object model usage that is incompatible with Office 2010.

    Office Code Compatibility Inspector Documentation
    Office Environment Assessment Tool (OEAT)

    This tool helps you determine the kinds of add-ins that are installed on users' computers and the extent to which the add-ins are used. OEAT collects and reports add-in information about Office 2000, Office XP, Office 2003, and the 2007 Office system.

    Office Environment Assessment Tool Quick Start Guide
    Office Environment Assessment Tool User Manual

    Application Compatibility Assessment and Remediation Guide

    The Application Compatibility Assessment and Remediation Guide for Office 2010 describes the overall assessment and remediation process, including planning, testing, piloting, and deployment.

    Send us feedback on the Code Compatibility Inspector and OEAT via e-mail

  • Gray Matter

    5 Years at Microsoft

    • 9 Comments

    It's a small thing, but fun. Today I was given my 5-year service award for Microsoft. With a brief ceremony and a few jokes about how much more gray hair I have these days, I am now the proud owner of a new conversation piece. Just like Star Trek, I have a crystal that is seemingly capable of recording my memories and replaying them at will.

    Unfortunately I don't have the glamorous history of so many people at Microsoft have. I do not have an expensive MBA, nor was I a catch in the college recruiting net. I do not wear the badge of having managed a failed startup / VC-backed thing. I was / am an "industry hire" with a surprisingly boring history of working on very successful products and services. I worked on Adobe Acrobat and PDF for a long period of time. I worked for a company named System, Integrators, Inc. Once a leader in the monolithic newspaper publishing automation space. I was a System Engineer there, working on Tandem hardware, installing systems, doing Y2K conversions, and writing routines in languages like TACL, RGEN, FGEN, FUP and a few other favorites.

    I chose to work for Microsoft expecting to find great people building great products. I expected a highly competitive, smart work environment. I expected that the talent level at Microsoft would be the highest that I would have ever seen. In joining the Office team and one of the largest and most significant franchises in the brief history of software, I expected to find a caliber of leadership that exists in very few places.

    I must say that my expectations have been exceeded in almost every instance. The IQ of each individual in this company is amazing. The per-capita talent level at Microsoft is something that one must witness in person to truly understand. It can work against you on occasion, when you have too many smart people asking hard questions. But on the whole, I will continue to bet on Microsoft long after I am gone because of the discipline the company has for finding, selecting, cultivating and utilizing talent.

    Things I have worked on / with or Titles I have held:

    - Sr. Product Manager, Microsoft Word
    - Sr. Product Manager, Microsoft InfoPath
    - Sr. Product Manager, Open XML
    - Group Product Manager, Office Technical Product Management
    - Group Product Manager, Office for IT Professionals
    - Group Product Manager, Office for Developers

    Most of my role at Microsoft (despite the numerous titles) really revolves around doing more with data, and improving portability of information between our applications and other systems. Data portability is a concept that I learned and practiced building newspaper production automation systems (that were invented in the mid-1980's). For all the hubub about XML, SOA, Services-based computing, etc., this central idea really has not evolved much. Certainly the technology has changed a lot, but the end goal is still the same - enabling information exchange between systems and applications to enable better information exchange between people. (There's a famous saying at Microsoft about "Solving any problem through abstraction" - sorry for "abstracting" a bit here. In truth the problem is complex, nuanced and fiercely competitive among software vendors.)

    I'll end the ramble here with a thought - for the readers from other software companies, a bit of a challenge to you.

    Microsoft is great as an employer for many reasons, but one in particular that is worth highlighting is the competitive fire and spirit that burns in the core of so many individuals here.

    I once worked for an employer who regarded competitors in a very unhealthy way. I won't quote some of the statements that were particularly offensive, to avoid internet searches that might reveal the identity of those people. But I'll just summarize it by saying that when issues / publicity about competitive products surfaced, the general mentality set by leadership (and therefore employees) was "how dare you?" As if they were viewing other companies who dared build similar products as a personal affront. Part of my reason for leaving the job was this mentality. competitors were innovating, and the company was responding by sending MBA's into business strategy reviews to "Fix" it.

    Microsoft is quite different. A very important moment from early in my Microsoft career was when I watched Steve Ballmer on stage at a meeting talking about competition. I'll spare the context, but I have a very vivid impression of him standing there, rolling up the sleeves of his powder blue button-down shirt, saying "Bring it on." - Never was there a more concise encapsulation of the mentality of this company. It isn't about MBA's in a strat review for us - it is about engineers writing code and innovating. We focus on the product, and we are strongly committed to our customers and their success.

    It is for this reason that I stay at Microsoft. We're not always perfect, there is definitely a "bleeding edge" to brining new products and technologies to market. As we stand on the front end of the Office 2010 launch, though, one can't help but have a very good feeling. When we get it right, the impact on how people interact with computers is profound and long-lasting.

    Here's to hoping the next 5 years are as gratifying as the last.

Page 1 of 5 (110 items) 12345