John R. Durant's WebLog

Office and a short, bald man

  • Office 2003 to 2007 UI Guides Reminder & “If All Goes Wrong” by the Smashing Pumpkins

    So, I just bought 5 copies of Office 2007 for a friend of mine in the good land of Minnesota. He’s upgrading all of his home computers and those for his kids scattered about the country. One of the first things he’ll notice is the new Office Fluent UI, and he’ll likely need some help finding his way around the new way we display the commands. No more “File | New” etc. in some of the applications. Sure, Office 2007 has been out for a while now, but there are still many thousands of people moving to the new version as the weeks pass. And, it’s good to learn one’s way around the apps even when the old menu structure has been mostly unchanged.

    So, I am pushing the reference guides and how to customize the UI to the top of everyone’s inbox:

    Access -- http://www.microsoft.com/downloads/details.aspx?FamilyID=b9574c72-657f-438c-9de9-f8f70dd2d40d&DisplayLang=en

    Excel -- http://www.microsoft.com/downloads/details.aspx?familyid=89718ABD-2758-47B3-9F90-93788112B985&displaylang=en

    Outlook -- http://www.microsoft.com/downloads/details.aspx?familyid=CC37CC1E-028D-4D30-9093-96CC6513ECA1&displaylang=en

    PowerPoint -- http://www.microsoft.com/downloads/details.aspx?familyid=BEF41DC3-8E28-4282-82D4-CEC2F416CD40&displaylang=en

    Word -- http://www.microsoft.com/downloads/details.aspx?FamilyID=9044790b-4e24-4277-b714-66d7b18d0aa1&DisplayLang=en

    Here’s the location on the MSDN Office Developer Center where you can find developer info about how to customize the UI:

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

    One of the things that is encouraging is how many non-Microsoft applications are revisiting their UI layout and adopting a similar approach to what we introduced in Office 2007. Over the coming years you’ll see more applications (from us and others) going this direction mainly because how people work in the applications is so very different from what it was in the 90’s. I also fee persuaded that we have barely scratched the “Surface” (pun intended) in exploring new ways to make it easier for people to interact with the systems upon which they depend.

    Rock Thought of the Day:

    What if a hugely famous band decided to let the fans be part of the process of making new music? How would that work? What are the logistics? How would they react? How would the band adjust to the reaction? What would (ugh) critics think? Would it matter? Well, only a few bands in history have really taken up such a project in earnest, and one is, of course, The Smashing Pumpkins back in 2007. And, they packaged up the journey in a compelling documentary called “If All Goes Wrong”. It’s honest, revealing, and irresistibly insightful. I own my own, but I’ve been buying copies for friends. What is best is the focus on the music. It’s all about snatching songs out of the universe, playing them, recording them, and seeing what happens. Get a copy.

     

    Rock On

  • Office 2010 for Developers: Conference moving to SharePoint Conference 2009

    As I spent a ton of time at Tech Ed, I was super impressed by the immense amount of interest in Office 2010. I know the excitement will only grow, and one of the best ways for you, the devoted Office Developer, to get inside, in-depth, in-person exposure to all things Office 2010 and SharePoint is at the show dedicated just to these technologies! Today, Gray Knowlton announced how the Office Developer Conference will not take place and the content will be part of the SharePoint Conference. If you are an attendee of Office Developer Conference in the past, we strongly recommend you come see us at the SharePoint Conference in October, where we’ll cover Office client development in depth. Be sure to sign up for the Technical Preview as well!

    I will be there (as I am every year) talking about what’s new for developers, how to build business productivity solutions on the Microsoft stack, and more. There’s a lot to be excited about in this release, and you’ll hear more about those things in the months to come, putting a bow on it all at the SharePoint Conference.

    Join me there!!

    Rock Thought of the Day:

    My 43rd birthday is coming up, and I’m working with my sons on a set list for the little show we’ll play at my birthday party. We’ve got our own songs as well as a few covers. Take a look at the set list, and you’ll notice the covers. These are great songs because they hold up over time. We give ‘em a slightly harder edge, and that makes them more our own. But, there are great songs out there that have unfortunately been forgotten:

    1) Freedom (written by our band, Atlas Falling)

    2) Fire (by the Bloodhound Gang…without the profanity :))

    3) Say It Ain’t So (by Weezer)

    4) Call  Me in the Morning (written by our band, Atlas Falling)

    5) Tell Me Something Good (by Rufus)

    6) Mess of the Blues (by Elvis/Led Zep)

  • TechEd 2009 Is History!

    TechEd 2009 is a done deal. I wanted to toss out a few observations from the event. Here’s what really stood out:

    1) The overall mood was pleasantly up-beat and the attendance was solid.

    The economic times have hit every budget everywhere, but the tempo was not sagging at TechEd. I heard a number of people say that they were lucky that their organization had bugeted for the event as early as last summer. The people there were really excited about technologies across the spectrum. No single thing stood out to me anecdotally more than another.

    2) The interest in Office 2010 was extremely high

    We announced a technical preview available to attendees at the show if they signed up while at TechEd. This was the #1 question at the booth: “How can I sign up for the Technical Preview?!”

    I was really pleased to see so many people interested in the next version of our Office program. As I fielded many developer questions at the booth I was regretting that it is not yet time to discuss the next version and what’s in store for the developer crowd. Oh well… that time will come!

    3) Many people really “get” our Microsoft value proposition

    In some circles, it’s “chic” to bash on Microsoft. I understand all that for whatever reason. All the same, it’s really great when a customer walks up and just gushes with excitement about the products he or she is deploying and the solutions that are being built on top. It really stokes my engines when I hear a customer sharing how he built a whole system in Word that radically simplifies how they write contracts in their organization. Another customer talked about how they use PowePoint for all of their training and repair manuals for complex equipment. They use code to generate the PowerPoint decks from other data sources.

    4) We’ve got a lot of work to do to help SharePoint developers get up to speed on what Office client application programmability can do for them

    As I chatted with SharePoint developers who passed by, they were eager to let me show them what Office programmability means and what it can do. They, for the most part, had no idea that Office could be programmed so easily and that it had so much hidden power. This tells me that they probably came to SharePoint development from the Web dev space. This is a strong trend, and we are going to be doing a lot to help them get into the Office side of things as it will strengthen their solutions considerably.

    On the lighter side—I add these observations:

    1) The food was not as plentiful. Yeah—I know it’s wrong to complain about food when we have it so abundantly compared to many in the world. But, the spoiled, selfish part of me wanted to see the coolers full of Dove and Hagen Dasz bars return! I loved eating the desserts and so on that crowded the halls outside of the session rooms.

    2) The TV in my hotel room was an old-school 20 inch non-flatscreen thing sitting on a stand 15 feet from my bed. Watching NatGeo was pretty lame on that set.

    3) My rental car was a Nissan 350Z (free upgrade, baby!). It was really, really fun to drive. Would have preferred a Corvette ZR1 however :)

    4) Having dinner with my colleagues, Charles Maxson and Michael Kiselman were highlights of the week for me.

    5) Traffic in LA is worse than the hideous reputation that precedes it.

    6) Seeing my old contacts Ty Anderson, Robert Bogue, Matt Nunn, Rob Tiffany, Mary Chipman, Brian Randell, and dozens and dozens of others is always satisfying. I was also really pleased to see many customers that I have met in previous years and know that they remember me. People are cool!

    7) Missing my wife and sons is not so great.

    8) Walking around the streets of LA in the late evening by myself listening to Smashing Pumpkins on my Zune while singing out loud was refreshing and peaceful.

    9) The weather in LA is just hard to beat. I love heat.

    10) Visiting one of the temples for my church in Redlands was also a highlight. It’s a beautiful and peaceful place.

     Rock Thought of the Day:

    I’ve often blogged about The Smashing Pumpkins among the many bands I have discussed in my Rock Thought. One of the more intriguing ideas to recently appear in the music industry comes from Billy Corgan. He has proposed a way for his legions of devoted fans to gain unprecedented access to how he conceives, writes, and records his songs. It’s a novel concept and I predict that other artists will explore similar terrain as they try to connect with their audiences in new and creative ways. As Billy noted in one of his posts, it’s not really about trying to find a new product that can be peddled to fans. Everyone who has worked in the music industry, which I have, knows that touring is THE money printer for music artists. The primary way to earn loads of money is by touring. It’s hard work, lonely, and grueling, but it is usually very lucrative. But, I think that artists are exploring new ways of connecting with fans for different reasons at least initially. Check out what Billy has proposed and sign up for the newsletter so you can get involved!

    Rock On

    Follow me: http://www.twitter.com/johnrdurant

  • Unleash your inner-VBA (Plus a review of the new Silversun Pickups CD)

    I’m have been a fan of VBA since its inception. I instantly saw how powerful the Office applications could be because they came with an impressively rich set of APIs, tools, and capabilities. Along with my buddies, Chris Kunicki and Charles Maxson, I started dong things with Office that I am sure even the original Office/VBA creators had not anticipated.

    We weren’t alone.

    There emerged an incredibly vibrant, loyal, and passionate community of Office VBA developers. I eventually started doing database development, Web development, fully-compiled language development, Exchange development, ActiveDirectory development, SQL-DMO, and the list grew. VBA was definitely my gateway drug.

    OfficeABU[1]

    That community still exists. There are still many, many, many thousands who develop in VBA every day. Today, on Office Online we have begun featuring pages to help connect with VBA devotees. The primary location of all developer content is, of course, MSDN. But, there are many VBA coders who may not consider themselves full-blown professional developers. These Office Online pages are a new way to reach out to you and help you connect with the content that can help you “skill up” and do more.

     OfficePalooza[1]

    Also, we have way for you to show off and potentially win a little prize. Our “Office Palooza” effort is a sweepstakes-based initiative that is meant to be a bit of fun. Who care’s if you’ll never win American Idol! Showing off your VBA skills could be the kind of street-cred you really need.

    Rock Thought of the Day:

    I had been excited about Silversun Pickup’s new album “Swoon” ever since I played their previous two albums until I had reach the saturation point. I recall seeing them live at a local club here in Seattle, and I was blown away. It was one of the most exciting live shows I have ever seen. Great vibe. Great music. Great crowd. Great club. Great weather. It was serendipity. The new album, however, is not. I’m sorry to say that while it starts out strong, it fizzles about midway. It just doesn’t carry the intensity and strength of their previous albums. Yes—there is some level of invention here, but it doesn’t take enough risks in any category—not lyrically or vocally. Not in Brian’s guitar work, not in the keyboards (their too often overlooked aspect that makes them truly special), not in the bass lines or the percussion. My recommendation is to pass on this record and hopefully enough people will do the same. That way, they’ll come back stronger with the next album, take more chances, and ultimately reach the heights that I think are their possible destiny.

    Rock On

  • Microsoft Excel and Twitter via Smart Tags in a VS 2008 Solution

    I recent wrote (“Twitter from Excel 2007”) about how Chandoo (Plus JP) caught my attention with their quirky take on updating Twitter from Excel. In there, I said I would lay down an expanded, more useful version. In so doing, I believe I have also provided a raison d’être for the thing in the first place!

    Here’s the shakedown (keeping in mind that These postings are provided "AS IS" with no warranties, and confer no rights.”:

    I wrote the VS 2008 Add-in for Excel 2007 with a smart tag. The smart tag recognizes phrases or keywords that you have typed into Excel and then, with one click, let’s you post the cell (containing the keyword[s]) or List to Twitter.

    You can change what/how the smart tag recognizes (for example using regular expressions), and I have personally written much on this topic already on MSDN (see list of resources at the end of this post). You can also change how the smart tag action handler works of which I have also written a fair amount (see resources again).

    Gilding the lily even further, when I post a dialog for your Twitter credentials I encrypt the username and password and store the hashes statefully so that the next time you do the one-click Twitter post you don’t need to re-enter your credentials. I just decrypt them and use the stored ones. This is not mega-industrial strength security practice, but it sure beats putting passwords in the code or storing them as plain-text. At the same, it also provides a superior user experience, because the user does not have to repeatedly provide credentials which would be, at the very least, annoying.

    Making this work inside of Word is a snap—very, very trivial. Again, look at the documentation on creating smart tags, and you’ll see how easy that is.

    In the near future, I am going to figure out how to do this for Facebook.

    Obviously, you’ll need a Twitter account to test this. So, sit back with your bag of M&M’s and strap in for the technical detail!

    1) For the password encryption/decryption I used the Microsoft Patterns & Practices Application Blocks 4.1. I strongly recommend working through one of the samples before attempting to go it alone. I’ve done a lot with these blocks over the years, and they are never as ‘plug-and-go’ as one hopes. Anyway, in those blocks is a Security.Cryptographer building block. I use it, and I show you everything I do in this post.

    2) Create a VS 2008 Excel 2007 Add-in using VB.NET

    3) In the new project, add a form called “TwitterLogin”. Configure it to look like this:

       

    4) Your control names should be the following:

    Control Type Name/Caption
    Label Username:
    Label Password:
    TextBox txtUserName
    TextBox txtPassword
    Button cmdLogin, caption is “Login”
    TwitterLogin (form) Twitter Login

    5) Add references so that they look like this:

    6) Add a new class called HashHelper.

    7) Add a new app.config file

    8) Your overall project contents should look like this (you see a key file in here also, and you’ll be adding it in another step or two):

      

    9) Configure the app.config file to use a new symmetric provider for the encryption/description by right-clicking on app.config in VS. Open the file in the configuration editor by selecting Edit Enterprise Library Configuration on the context menu.

    10) In the editor, right click on the Application (the path with your app.config file name) and select New | Cryptography Application Block.

    11) Select Symmetric Providers in the new block just added and choose New. Then, select Symmetric Algorithm Provider.

    12) In the resulting dialog, select RijndaelManaged as the type, and press the Generate button to automatically generate a key, click OK. You’ll want the name/path of the key to be in the directory of your application (could be anywhere but it’s easier to manager this way) as shown in the previous solution explorer image.

    13) Name your new provider “symmProvider”. Verify that it look like this one:

    14) Close the app.config file and save your changes.

    15) Return to your TwitterLogin form and double-click the button to bring up the cmdLogin_click event handler. Add this to that handler:

           Dim UserNameEncrypt As String
            Dim PasswordEncrypt As String
    
            UserNameEncrypt = HashHelper.EncryptText(txtUsername.Text)
            PasswordEncrypt = HashHelper.EncryptText(txtPassword.Text)
    
            My.Settings.Username = UserNameEncrypt
            My.Settings.Password = PasswordEncrypt

    16) Make sure you have included the following Imports statements at the top of the class for that form:

    Imports System.Security.Cryptography
    Imports Microsoft.Practices.EnterpriseLibrary.Security.Cryptography

    17) Close and save the form.

    18) Open the HashHelper.vb file

    19) Add the following definition code to that file. Your login form and add-in code will be calling into this code to encrypt and decrypt the password as well as store their hashes.

    Imports Microsoft.Practices.EnterpriseLibrary.Security.Cryptography
    Imports System.Text
    
    Friend Class HashHelper
    
        Private Sub New()
        End Sub
    
        ' Hash provider name must match app.config
        Private Const Provider As String = "symmProvider"
    
        Public Shared Function EncryptText(ByVal plainText As String) As String
            Dim returnText As String
            returnText = Cryptographer.EncryptSymmetric(Provider, plainText)
            Return returnText
        End Function
    
        Public Shared Function DecryptText(ByVal HashString As String) As String
            Dim DecryptedString As String
            DecryptedString = Cryptographer.DecryptSymmetric(Provider, HashString)
            Return DecryptedString
        End Function
    
    End Class

    20) Open your ThisAddIn.vb code file and add these Imports statements:

    Imports Microsoft.Office.Tools.Excel
    Imports System.Windows.Forms
    Imports Microsoft.Office.Interop.SmartTag
    Imports System.Net
    Imports System.IO
    Imports Microsoft.Practices.EnterpriseLibrary.Security.Cryptography
    

     

    21) Add the following global variable to your ThisAddIn Class:

        Private TwitterTag As TwitterSmartTag
    

    22) Add this to your ThisAddIn_Startup method:

            TwitterTag = New TwitterSmartTag()
            Me.VstoSmartTags.Add(TwitterTag)
       
    

    23) Add a new class called TwitterSmartTag and add code so it looks like this:

    Public Class TwitterSmartTag
        Inherits SmartTag
    
        ' Declare Actions for this SmartTag
        WithEvents Action1 As New Action("")
        WithEvents Action2 As New Action("whatever")
    
        Public Sub New()
            MyBase.New("http://painjunkie.spaces.live.com/jrd#TwitterTag", _
                "Excel-to-Twitter Smart Tag")
            Me.Terms.AddRange(New String() {"Soulfly", "Motorhead", "Judas Priest", "Tool", "Pantera"})
            Actions = New Action() {Action1}
        End Sub
    
        Protected Overrides Sub Recognize(ByVal text As String, _
            ByVal site As ISmartTagRecognizerSite, _
            ByVal tokenList As ISmartTagTokenList)
    
            ' Determine whether each smart tag term exists in 
            ' the document text.
            Dim Term As String
            For Each Term In Me.Terms
    
                ' Search the cell text for the first instance of 
                ' the current smart tag term.
                Dim index As Integer = Me.CellText.IndexOf(Term, 0)
    
                If (index >= 0) Then
    
                    ' Create a smart tag token and a property bag for the 
                    ' recognized term.
                    Dim propertyBag As ISmartTagProperties = _
                        site.GetNewPropertyBag()
    
                    ' Write a new property value.
                    Dim key As String = "Key1"
                    propertyBag.Write(key, DateTime.Now)
    
                    ' Attach the smart tag to the term in the document
                    Me.PersistTag(propertyBag)
    
                    ' This implementation only finds the first instance
                    ' of a smart tag term in the cell. 
                    Exit For
                End If
            Next
        End Sub
    
        Private Sub Action1_BeforeCaptionShow(ByVal sender As Object, ByVal e As Microsoft.Office.Tools.Excel.ActionEventArgs) Handles Action1.BeforeCaptionShow
            Dim ClickedAction As Action = sender
            If e.Range.ListObject Is Nothing Then
                sender.Caption = "Tweet this cell"
            Else
                sender.Caption = "Tweet this list"
            End If
        End Sub
    
        ' This action displays the property value for the term.
        Private Sub Action1_Click(ByVal sender As Object, _
            ByVal e As ActionEventArgs) Handles Action1.Click
    
            Dim propertyBag As ISmartTagProperties = e.Properties
            Dim key As String = "Key1"
            Dim Tweeter As New TweetThis()
            Try
                If My.Settings.Username.Length = 0 Or My.Settings.Password.Length = 0 Then
                    Dim LoginForm As New TwitterLogin()
                    LoginForm.ShowDialog()
                End If
                If Tweeter.TweetIt(e.Range.Text).Length > 0 Then
                Else
                    MessageBox.Show("Twitter successfully updated!", "Twitter Status", MessageBoxButtons.OK)
                    Exit Try
                End If
                Throw New Exception
            Catch ex As Exception
                MessageBox.Show(ex.Message, "Twitter Update Error", MessageBoxButtons.OK)
            End Try
    
        End Sub
    End Class

    24) Lastly, add this class, TweetThis, which actually does the work of posting to your Twitter account:

    Public Class TweetThis
        Public Function TweetIt(ByVal msg As String) As String
            Dim username, password As String
            Try
    
                username = HashHelper.DecryptText(My.Settings.Username)
                password = HashHelper.DecryptText(My.Settings.Password)
    
                System.Net.ServicePointManager.Expect100Continue = False
    
                Dim bytes() As Byte = System.Text.Encoding.ASCII.GetBytes("status=" & msg)
    
                Dim request As HttpWebRequest = CType(WebRequest.Create("http://twitter.com/statuses/update.xml"), HttpWebRequest)
                request.Credentials = New System.Net.NetworkCredential(username, password)
                request.Method = "POST"
                request.ContentType = "application/x-www-form-urlencoded"
                request.ContentLength = bytes.Length
    
                Dim reqStream As Stream = request.GetRequestStream()
                reqStream.Write(bytes, 0, bytes.Length)
                reqStream.Close()
    
                Dim response As HttpWebResponse = request.GetResponse
                Dim reader As New System.IO.StreamReader(response.GetResponseStream)
    
                Dim retValue As String = reader.ReadToEnd()
                reader.Close()
    
                Return ""
            Catch ex As Exception
                Return "error"
            End Try
        End Function
    End Class

    25) That about does it. Build the solution and make sure things look good there. Then, run it and see what happens.

    BTW: Follow me:

    http://painjunkie.spaces.live.com/

    http://twitter.com/johnrdurant

    Smart Tags Development Resources:

    Content I have written

    Office Developer Center (just search for ‘Smart Tags’ there and you’ll see pretty good links)

  • Saving Money in IT: Maximizing Value is Key (+ review of new U2 album)

    In a recent post to a blog, a writer, Guy Creese, writes that the key to saving money in IT is ‘granularity’. In short- he suggests that the IT cost-saving key is to figure out what the basic use experiences are for people and match them to the cheapest software that suits those needs. I respect his view, and I hope he doesn’t mind if I politely disagree.

    Regarding Microsoft Office he says:

    “Somebody needs a productivity suite? Give them Microsoft Office. It does everything and then some. In many cases, it does more than the employee needs; but there's no easy way to get Microsoft Office lite from Microsoft.”

    Granted, there is such a thing as overkill. You see it happen all of the time in the business you are in. And, IT has certainly been guilty of excess. I recall in the 90’s when there was comparatively low oversight for IT budgets, and the largesse that many IT departments passed off as ‘essential needs’ was embarrassing. Custom applications were the rage, and many of them were essentially killing gnats with cannons. This, and a number of other factors, contributed to the ‘giant popping sound’ that was the .com bubble in 2001.

    Given the current economic conditions and the budget stress that many companies are feeling, the importance of extracting the maximum value from any investment could not be overstated. I liken this value maximization to how I pack for one of the backpacking trips I take each year with my sons. When I pack for a multi-day trip in the mountains, I can only take things that serve more than one function. The proverbial ‘swiss army knife’ is a great example. It makes much more sense taking a sturdy, battle-proven, multi-functioned utility like that than carry around a tackle-box full of separate items. Sure, I may never use the corkscrew, but this doesn’t cause me to lose any sleep, and, like Bear Grylls (Man vs. Wild) would probably say, that corkscrew may do more than pull corks when a need arises.

    Microsoft Office, as a suite of applications and technologies serves a very large audience with varying needs. The applications appear comparatively simple and easy-to-use for the beginner, but they have the chops to match the needs of the demanding expert as the need arises. It  is a testament to the amazing usability and flexibility of the applications that a loving grandmother in Tokyo can comfortably use Word to type letters to her family while a legal firm uses the same application as the basis for a complex business solution that helps them manage the workflow of legal matters from induction through trial and resolution. The number of ways that the Office applications are used among the hundreds of millions of people who employ them is impressive.

    Further, Microsoft Office is positioned in the marketplace as a high-value play. Consider that some other business applications have only one application in the package and cost around $1000.00 (USD) where as the Microsoft Office suite has multiple applications with industry-leading:

    • UI design
    • Help system
    • Web integration (Outlook Web Access, Excel Services, Project Server,. . .)
    • Data loss prevention
    • Support
    • Customizability

    Overall, Microsoft Office delivers an enormous amount of value for a comparatively low price. It serves a vast and heterogeneous population of users and yet what people don’t need in a given applications doesn’t get in the way. I would say that the more accurate challenge Microsoft Office has is not that it does too much but that we have not done the best job in helping people understand all that it can do and how it can save people time, money, and resources. Time after time, when people learn about features and abilities in Microsoft Office, they have an epiphany and get very excited about using them.

    And, it makes sense that Office has such rich power and capability: Our customers have demanded it! At Microsoft, we didn’t whimsically add features to the applications! The applications, features, and designs are the result of a nearly incalculable amount of due-diligence. We listen intently to our customers and invest heavily in focus groups, and research. The various feature priorities are further vetted through a very demanding process often including test-runs with customers before they ever make it into the product. Do we sometimes still miss the mark a little? In my opinion—sure. I think that is true. I’ve never been part of a perfect anything. But, overall, I think we do a pretty good job, and there is lots of evidence that this is so.

    So, returning to the original thesis: The key to saving money in IT is not figuring out what the least common denominator is and then fetching an application or technology to match it. The real key is to figure out what the variety of needs one has in the business and determine which application or technology delivers the best value. This is an arena where Microsoft Office does and can continue to win.

    But, what about that part where “there’s no easy way to get a [lite version of Office] from Microsoft”? Well, it’s not so hard actually. We do have ‘lite’ and ‘beefy’ (colloquially speaking) versions of Microsoft Office. In fact, we are more nuanced than that. Fortunately, they’re available at a lot of stores, and I’ve never heard of huge difficulties finding them.

    Finally, it would be a mistake to not include in this value proposition how Microsoft Office works with other software and technologies—both Microsoft and non-Microsoft. Microsoft Office has built-in power to connect to all sorts of systems, data sources, and applications. Coupled with our SharePoint technologies and our Microsoft Exchange and Unified communications platform and you are looking at incredible value. Moreover, beneath all of these applications and technologies is extensibility and programmability power that lets you surface disparate systems and data sources through custom applications served up in the familiar Office UI. Yeah, I may sound a little too ‘market-y’ here, but I’ve been saying these same things for years.

    My perspective on the things comes from many years as a consultant/architect/author/ and now Microsoft employee. I’ve seen the innards of many companies and their systems. I’ve seen lots of mistakes made in IT (and contributed to enough of them to learn better), and the value-driven approach is one that I have observed stand the test of time.

    OK—I need to get home and help my kids with (the granularity of their) homework . . .

    Rock Thought of the Day:

    I have the new U2 album, “No Line on the Horizon”. As always, there are some new things happening here while remaining a clearly U2 offering. Bono pushes his vocals in some new and interesting ways. The rhythm section has never sounded better, and it is just exciting to hear that side of things. The Edge continues to explore new ways of using delay and evoking landscapes of sound in that medium. On the whole, I would summarize the sounds (doing violence to the detail here) that this is the best learnings of Achtung Baby and everything since then plus some new magic that is the wellspring of U2. Only two songs irked me, but I won’t tell you which ones. All of this said, I would add that I want this band to go further, to take bigger risks. I am one of those who really liked the ‘Pop’ album/phase of U2. They took big risks and let their creativity soar. They took us along for the ride. Of course, I can see why some fans just couldn’t go that far. But, if one wants to claim the title of ‘biggest band in the world’, then you need to push the boundaries out in a way no one else can—just as if there were no line on the horizon.

    Rock On

    Follow me: Twitter, Spaces

     
  • www.iheartonenote.com

    I truly enjoy being enthusiastic about OneNote. I’m not ashamed of my unguarded devotion to this application (share the love via the new site: www.iheartonenote.com). Here at Microsoft, new ideas spring up every day, and those ideas/prototypes/proofs-of-concept fight for attention. They scramble, they hustle, prove their value, and if they are lucky—they survive and make it to big show: They become part of the Microsoft Office brand. OneNote is one such idea, and during the past few years it has radically altered my entire Windows experience.

    I record, store, share, search, and surf meaningful information in very different ways since I started using this application. I have heard similar experiences from many other people.

    When I was in college I used a manual typewriter (not even electric!). I used that for my bachelors and one of my master’s degrees. Later, for my other two degree programs, I was able to get a small PowerBook with Word 6.0 and Excel. But, all of my notes were on paper. If I had been able to use OneNote I would have been much more productive.

    OneNote has a modest little developer story, but, if OneNote can only have one developer angle—it is the right one: It exposes a little import method so that other applications can export their content to OneNote (eg: Internet Explorer, Outlook, Word, a non-MS application, whatever).

    Here are two little articles that explain how:

    http://msdn.microsoft.com/en-us/library/ms788684.aspx

    http://msdn.microsoft.com/en-us/library/aa286798.aspx

    Rock Thought of the Day:

    Purchased the new DVD of the Who, live at Kilburn 1977. It’s footage that has never been seen before (the film cans were nearly thrown out in the trash). It contains the penultimate performance of Keith Moon, and it shows the band at their zenith of power. Go get it, and prepare to not be able to pull yourself away from the screen until it’s over.

    Rock On

    BuzzNet Tags: ,
  • Twitter from Excel 2007

    I cannot think of any compelling reason for sending a tweet from a form in Excel other than it's kind of cool to know it can be done. Nevertheless, the little add-in for Excel has its charm as an odd little novelty:

    How to write your own Twitter client in Excel (Userform version is here)

    You can see my little tweet sent from Excel here:

    http://twitter.com/johnrdurant

    I tip my cap to Chandoo (and JP for the form version) on this one.

    Stay tuned for my addition to the app tomorrow--- I intend to add a little mix of technology in there that will make the application more relevant.

    Rock Thought of the Day: 

    The Black Crowes 'Warpaint' LP is fantastic

    Warpaint

    Listened to their new CD and it has some of their very best work. Granted, the two previous records were a little bit of a strain in my view. But, this one proves that they have not lost their touch, and they are reaching farther, producing better material than ever. Give it a listen, and make sure you have already set aside the $$ to buy a copy, or it will make waiting much harder.

    ROCK ON!

  • Adding and Binding XML in Office Documents

    I am frequently asked about how to do some of the basics with XML parts in Office documents. There are excellent blogs and content out there to guide you in working with Office Open XML such as Brian Jones, Doug Mahugh, MSDN, and the Office Open XML SDK. I have also blogged extensively about OOXML and co-authored a major book on XML. But, the need to help more and more people get into the game of XML and Office is ever present.

    So, here are a couple of routines you'll find useful. The first routine adds two XML parts to a Microsoft Word document. The second removes the first XML part.

     

    Private Sub AddToDataStore()
      Dim pCustomPart As CustomXMLPart
      Set pCustomPart = ThisDocument. _
        CustomXMLParts.Add
      pCustomPart.Load "C:\XMLPart1.xml"
      pCustomPart.Load "C:\XMLSchema1.xsd"
    End Sub


    Private Sub RemoveFromDataStore()
      Dim pCustomPart As CustomXMLPart
      Dim pCustomParts As CustomXMLParts
      Set pCustomParts = ThisDocument.CustomXMLParts
      pCustomParts.Item(1).Delete
    End Sub

    It's essential to create copies of documents before you start messing around with their content and composition via code.

    Now, you can add whatever XML you want. In this case, the XML contains data for a memo and it is in the document. The document contains places for the memo data. Up to this point, the memo data are unseen to the user. To surface the data in the document's editable area you place content controls, one for each memo property (To, From, etc.) in the document and bind the content controls to the XML source in the following way:

    Private Sub AddControlMap()
      Dim cControls As ContentControls

      Set cControls = ThisDocument.ContentControls
      cControls.Item(1).XMLMapping.SetMapping "/ns:memo/ns:to", _
      "xmlns:ns='
    http://painjunkie.spaces.live.com'"
      cControls.Item(2).XMLMapping.SetMapping "/ns:memo/ns:from", _
      "xmlns:ns='
    http://painjunkie.spaces.live.com'"
      cControls.Item(3).XMLMapping.SetMapping "/ns:memo/ns:date", _
      "xmlns:ns='
    http://painjunkie.spaces.live.com'"
      cControls.Item(4).XMLMapping.SetMapping "/ns:memo/ns:topics", _
      "xmlns:ns='
    http://painjunkie.spaces.live.com'"
      cControls.Item(5).XMLMapping.SetMapping "/ns:memo/ns:body", _
      "xmlns:ns='
    http://painjunkie.spaces.live.com'"
    End Sub

     

    What is so slick about all of this is that Office does the work of gluing it all together for you if your XML data conforms to the XML schema you added in the AddToDataStore procedure! By mapping a content control to a specific node in the schema will cause the data (also mapped to the schema) to load into the content control.

    Try it out, and tell me how it goes.

     

    Rock Thought of the Day: Lovin' the blues-soaked song "Bridge of Sighs" from Robin Trower off of his 2007 release by the same name. Check it out! 

    ROCK ON!

  • Office 2007 (and beyond) Developer Resources: Looking ahead

    Many of the investments developers make in Office 2007 are version-durable (read: they are likely to endure into the next version of Office). Some of the Office 2007 technologies that are so appealing for business productivity solutions are the new Office document format, Word content controls, and the Office Fluent UI (eg: Ribbon).

    There are some great resources to help you get into these. I recommend:

    It is too early to comment yet on Office 14 specifically, so I will not disclose product details at this time. Nevertheless, there are some things worth investing in now and in looking ahead. The XML file formats, Office Fluent UI, and Word content controls remain exciting technologies and excellent opportunities to extend Office to meet business needs.

    Rock Thought of the Day: Here's a raw dump of the awesome Rock and Roll I have listened to in the past 24 hours! 

    ROCK ON!

    Posted Monday

  • SharePoint Developer Tools: Announcing Public CTP Release of VSeWSS 1.3

    SharePoint development is a special skill, so special that if you want to make a decent living, are tired of your current job, and can learn quickly, then get going with how to build solutions on SharePoint technologies. Equally lucrative is managing SharePoint servers. Many companies are moving to SharePoint as quickly as they can.

    Now-- if you decide to get into SharePoint development, then you'll quickly realize that there are not a lot of comprehensive toolsets out there for working on the platform. One of the most useful things Microsoft has released for SharePoint has been the Visual Studio Extensions for Windows SharePoint Services or VSeWSS. And, version 1.3 was just released. Here's what's in the new release according to the SharePoint blog:

    • The extensions now install on x64 bit OS. Visual Studio 2008 and SharePoint must be already installed.
    • Command Line Build option for TFS and MSBuild integration
    • Separate WSP Package and Retract commands. You can now build the WSP without deploying it
    • SPSolGen to Support Exporting from Content Management Publishing Sites
    • New Item Template for RootFiles Deployment
    • Automatically Remove conflicting existing features on development SharePoint server
    • WSP View New Feature Dialog Improvements: scope, receiver checkbox, element checkbox
    • WSP View can now be used to merge features and it blocks site features being merged into web features
    • Allow adding separate binary files such as Workflow assemblies
    • Some refactoring allowing for Web Part renaming and removing lines from feature.xml Item Removed
    • Allow selection of GAC or BIN deployment for Web Part Project not including CAS generation
    • Increase visibility of hidden features that VSeWSS creates
    • Add fast update deploy for DLL only or file only changes to solutions
    • Numerous Bug Fixes and improvements to error messages

    Everyone of these features demonstrates how closely the team listened to their customers. Being able to build WSP's but not deploy them is a nice touch. Working with 64 bit is key, and allowing for GAC or BIN deployment removes a notable frustration. All of them are wins for SharePoint developers using VS 2008.

    Rock Thought of the Day: I really like "California Songs" by Local H, another great Chicago band. Just another great straight-up rock and roll tune. Give it a listen.

    ROCK ON!

  • Job Change: Bring back the blog

    I used to blog a lot, and a lot of people used to read my blog. Some people still look at the old archived entries. That's great, and I'm glad people find what I have put there useful.

    Nearly 4 years ago I moved from the Office division here at Microsoft to the Visual Studio product team. It was a good move for me at the time. The Office development tools in Visual Studio were at a point of really taking off, and my lengthy experience in Office development made it a good fit.

    But, one of the casualties of the job change was the loss of time to continue my blog. I tried many ways of setting aside time to do it, but the demands of my job were exceedingly taxing.

    Now, I have changed roles and moved back to the Office division once again. I truly miss my friends on the Visual Studio team. That was the difficult part of changing roles. My friends, Reza, Jing, Lubo, Art, Roger, Ian, Philo, Nikhil, Lily, Eric, and so many others became quite important to me there.

    So, now I am a senior product manager of Office developer marketing in Office, and I'm making new acquaintances while treasuring existing ones.

    In my new role, I have more flexibility in my days and weeks, and it is easier for me to carve out time to blog, to experiment with new technologies, to read what others are saying in the community, and to stay current with trends.

    So, if you have given up on my blog in the past-- I hope you'll come back! I will have new samples, snippets, tips, and tricks. I have so many things stored up in my brain and in a folder I have continually maintained called "BlogIt" that I will have plenty to post.

    True to tradition, here's my...

     Rock Thought of the Day: My favorite band (other than my own band with my sons, "Atlas Fallling") the Smashing Pumpkins have put out a two disc DVD set called "If All Goes Wrong". It features a disc with interviews--- very insightful stuff and a disc with concert footage. The concert footage has excellent audio quality. Get this DVD, and...

    ROCK ON!

  • Release of Visual Studio 2008 Tools for Office Case Studies

    What are customers doing with VSTO and Microsoft technologies generally? We have recently published case studies that show how and what companies are doing with our tools Below are two prominent studies with the list of products and technologies used. I have also included links to the case studies. Here is the link to the overall customer evidence for VS: http://www.microsoft.com/casestudies/search.aspx?ProTaxID=3197

    CME Group Link to Case Study

    • Microsoft Visual Studio
      • Microsoft Visual Studio Team System 2008 Team Suite
      • Microsoft Visual Studio 2005 Team Foundation Server
    • Microsoft Server Product Portfolio
      • Windows Server 2003 Enterprise Edition
      • Microsoft SQL Server 2005 Enterprise Edition
      • Microsoft SQL Server 2005 Express Edition
    • Microsoft Office
      • Microsoft Office Excel 2007
      • Microsoft Office Word 2007
    • Solutions
      • Office Business Applications
      • Technologies
      • ClickOnce application deployment technology
      • Language Integrated Query
      • Microsoft .NET Framework 3.5
      • Microsoft SQL Server 2005 Replication Services
      • Microsoft Visual Studio Tools for the Microsoft Office system
      • Windows Forms
      • Windows SharePoint Services

    Dell   Link to Case Study

    • Microsoft Visual Studio
      • Microsoft Visual Studio Team System 2008 Team Suite
      • Microsoft Visual Studio 2005 Team Foundation Server
    • Microsoft Office
      • Microsoft Office Word 2007
      • Microsoft Office SharePoint Server 2007
    • Microsoft Server Product Portfolio
      • Windows Server 2008
    • Services
      • Microsoft Technology Center
    • Solutions
      • Office Business Applications
    • Technologies
      • C# 3.0
      • Internet Information Services (IIS) 7.0
      • Microsoft .NET Framework 3.5
      • Visual Studio Tools for Office
      • Windows Presentation Foundation

     

    Second Rock Thought for the Day: I recall when I first heard the song MIssissippi Queen by Mountain as a kid. The guitar riff and weathered vocals really stuck with me. It's been covered by Zakk Wylde and others. This  is a sure-fire hit from about 1970. I just gotta rock!

    Rock On!

  • Announcing the Microsoft Office Interactive Developer Map Version 2!

    We just released the Microsoft Office Interactive Developer Map Version 2!

    The Microsoft Office Interactive Developer Map is a Windows Presentation Foundation (WPF) application that helps you see the different programs, servers, services, and tools for building productivity solutions. It  With this you can 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.

    What’s New in the Microsoft Office Interactive Developer Map Version 2?

    1. Update to more than 200 links to MSDN portal pages, MSDN articles, MSDN reference documentation, blog posts, RSS feeds, and community resources.

    2. New products and technologies such as:

    • Office Development in Visual Studio 2008
    • PerformancePoint Server 2007
    • Unified Communications
    • User interface improvements
      • Top 2007 Office system Web sites toolbar
    • Scaling and scrolling to varying resolutions
    • Crisp graphics

    Here's the download link:

    http://msdn.microsoft.com/office/devmap

     

    Rock Thought for the Day: A few years ago one of my colleagues, Mark Iverson, recommended that I check out this band: High Rise, from Japan. I heard a clip, and I liked it. But, now, after a few years of stupid waiting, I finally have their 3rd CD in hand. It is called "Live". If you like fuzzed out rock/metal riffs, then you will like this band. Check them out: http://www.forcedexposure.com/artists/high.rise.html

     

    Rock On!

  • Visual Studio Tools for Office Power Tools v1.0!

    Here were are nearly on the eve of our Visual Studio 2008 Launch event and we are already releasing more goodness!! We are announcing the release of some Office Power Tools for Visual Studio 2008. These are extra little projects, often done on the side requiring extra hours and effort from our team. They are also things that we were eager to get into the hands of our customers. I am really excited to see these hit the Web, and I look forward to hearing what your think!

    Here’s the download page: http://www.microsoft.com/downloads/details.aspx?FamilyId=46B6BF86-E35D-4870-B214-4D7B72B02BF9&displaylang=en

    There are 9 tools are packaged in 3 exe's (3 different EULAs), plus an overview doc:

    • VSTO_PTRibbonIDs.exe installs the Ribbon IDs Tool Window
    • VSTO_PTExtLibs.exe installs the Office Interop API Extensions and Custom UI Manager
    • VSTO_PT.exe installs all other power tools
    • VSTOA Power Tools.docx – overview document

    Office Custom UI Manager

    A set of classes for coordinating multiple instances of Ribbon, custom task pane and custom form region.

    Office Interop API Extensions

    A set of C# classes for handling parameterized properties, optional/named parameters, and for LINQ-enabling Office collection objects.

    Open XML Package Editor

    A graphical treeview-based editor for examining and editing Open XML Package files (including Word, Excel and PowerPoint documents).

    Ribbon IDs ToolWindow

    A custom tool window that displays all re-usable built-in Office Ribbon IDs.

    SharePoint Feature Sweeper

    A GUI tool that cleans up unwanted SharePoint workflow features from the target server.

    SharePoint Workflow Package Generator

    A build tool to package a SharePoint workflow project so that the developer can hand the workflow to the admin for deployment.

    VSTO/VSTA Pipeline Verifier

    A GUI tool that reflects over custom pipeline assemblies to validate the complete VSTA pipeline.

    VSTO Developer Cleaner

    A GUI tool that cleans up the developer's machine from leftover build artifacts in the registry and certificate store.

    VSTO Troubleshooter

    A diagnostic tool that examines a machine for the necessary pre-requisites for running VSTO solutions.

    Rock Thought for the Day:

More Posts Next page »

© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Microsoft
Page view tracker