Erika Ehrli - Adventures with Office Products & Technologies
MSDN & TechNet: Releasing Office, SharePoint, Exchange & Lync Centers and content for developers and IT professionals.
 

October, 2006

  • Erika Ehrli - Adventures with Office Products & Technologies

    Developer Map for the 2007 Microsoft Office System: Download your poster today!

    • 29 Comments

    A couple of weeks ago I blogged about the treasure map for Office developers that we were building and I am glad to announce that we finished two weeks ago the poster version and it's ready to download! This is the third poster of the 2007 Office System Document: Developer Posters download family.

    The Developer Map for the 2007 Microsoft Office system helps developers visualize the different programs, servers, services and tools that will help them build solutions. You can drill down to each product and technology and learn about new features, objects, Web services, namespaces and schemas requiered to extend Office. There are more than 50 persons who worked to make this possible with the motivation of building a cool tool to evangelize Office. Based on the fact that Office 2007 is more than you think, we thought this was a great way to help developers understand the bigger picture and learn how Office products and technologies relate to each other.

    The goals of this poster are:

    1. Provide a roadmap that shows all Office products and technologies that have an interesting developer story.
    2. Categorize all extensibility technologies (green bars) and visually demonstrate how you can use them to extend specific products. For example, you can use Ribbon UI extensibility for Word 2007, Excel 2007, PowerPoint 2007, Outlook 2007 and Access 2007, but not for InfoPath 2007, Visio 2007, Project 2007, Groove 2007 or Communicator 2007.
    3. List most relevant developer features (blue text) added to Office (2007) programs.
    4. Make a clear distinction between all Office products and technologies (programs, servers, tools and services).
    5. Make a clear distinction between features and services offered by WSS 3.0 and Office SharePoint Server 2007.
    6. Highlight the programs you can extend and customize using VSTO and VSTA (you will see a logo where VSTO or VSTA applies).
    7. Explain the Add-in story by making a clear distinction between Shared Add-Ins, VSTO 2005 SE Application Level Add-Ins and COM Add-Ins.
    8. Provide the names of specific namespaces, Web services, interfaces or schemas (gray text) required to extend functionality of different Office products and technologies.
    9. Provide a list of most relevant objects (green text) used to extend Office programs, servers and WSS 3.0.
    10. Finally, the most challenging goal, summarize the most relevant facts and make it all fit on a limited rectangular space.

    BTW, if you have plans to attend Dev Connections in Las Vegas or Tech Ed Barcelona, you should visit the Office booths. We are sending nicely printed copies of this poster. I encourage you to get one (or more) b/c there's a lot of text and it looks better if you print it on a bigger piece of paper.

    I can't describe how happy I am because of this poster. I enjoyed working with all the people who made this possible, but what makes me happier is that I know this will help other developers understand quickly what took me months to figure out. 

    Cheers to Office and the whole galaxy of developer technologies it represents!

  • Erika Ehrli - Adventures with Office Products & Technologies

    Office Business Applications: What is it, and how can I get started?

    • 9 Comments

    I’ve had this topic in my blog wish-list for a while and today is the day to talk about this. I have been listening the term “OBA” so I decided to research a bit on the topic to understand what is it and put together a list of resources that can help developers and architects get started. I realize some of you might already know about this, but I know some people are not familiar with this technology, so here goes a quick intro for all of you who want to know what is it and how to get started.

    What is it?
    Office Business Applications are a new category of business applications that connect line-of-business systems and processes with the people that use them through a familiar user interface: Microsoft Office. Basically, you have back-end systems (data access layer) and you can build a middle-tier of business logic to connect into business processes in line-of-business applications such as Enterprise Resource Planning (ERP), Customer Relationship Management (CRM), and Supply Chain Management (SCM), this is your business-logic layer. We are still missing the presentation layer. Instead of building a Web application, Windows client application, or use a specialized CRM UI, you use Microsoft Office programs as the presentation layer and let users interact and run business processes while using the programs that are already running. Finally, you can also integrate to SharePoint sites that use Web Parts to report data.

     

    I stole this little diagram from an MSDN article and I recommend reading Atanu's article: Building Better Business Applications Using the 2007 Microsoft Office System if you are interested in learning more about the architecture of OBA solutions.

    So why use Office as your presentation layer? One of the advantages of using Microsoft Office as a front-end to work on business processes is that it’s easier for users to work with an application that is already open. No need to have a context-switch between Office and a specialized CRM UI. Anyway, you have an open window running Outlook all day…

    Customers are building OBAs using Office 2003, SharePoint Portal Server 2003, and Visual Studio Tools for Office, so technically, you don’t have to use Office 2007 for an OBA. However, the 2007 Microsoft Office system, Office SharePoint Server 2007 and VSTO 2005 SE provide built-in features (such as workflow, Excel services, Ribbon extensibility, InfoPath Web forms, the Business Data Catalog, the Office Open XML File Formats and more) that help you get there with less code. Let’s just say it’s easier to build.

    How to get started?
    A good thing to know is that we released a couple of weeks ago the Reference Application Pack for Supply Change Management that will help you ramp-up.

    The OBA RAP for Supply Chain Management includes a reference application with scenarios for collaboration between the different levels of a multi-tier supply chain starting with a retailer, and then extending back through a manufacturer and a tier-1 supplier.  In addition to the application and associated templates and scripts, it includes a white paper outlining the architecture and implementation, and screen-capture demos.   The OBA RAP for Supply Chain Management is available for download at http://www.microsoft.com/downloads/details.aspx?familyid=35409d4f-6d3d-4c1c-9390-cc0d70422ad6&displaylang=en
     

    What are the pre-requisites?  What do I need to run the reference app?
    To use the OBA RAP for SCM, you need to have the following:
    • Windows Server 2003
    • Microsoft Office SharePoint Server 2007
    • Microsoft Office 2007
    • WinFX runtime June CTP
    • Visual Studio 2005
    • WinFX SDK June CTP
    • Visual Studio extensions for WF 2.2 & WinFX
    • VSTO “3”
    • SQL Server 2005
    • Active Directory
     

    The package includes:
    • A reference solution and a reference implementation for building Office Business Applications using Office 2007
    • An OBA for Supply Chain Management, with scenarios for collaboration between the different levels of a multi-tier supply chain starting with a retailer, and then extending back through a manufacturer and a tier-1 supplier
    • Downloadable bits, including:
    • Demo websites and site templates
    • Supporting documents (.doc, .xls) for reference scenarios
    • .NET Assemblies (workflows, utilities, activity libraries)
    • Web services (.asmx)
    • Reference data
    • XSLT files
    • BDC XML files
    • Scripts
    • White paper on how to architect and build a supply chain OBA
    • Screen-capture demos

    OBA: useful resources...

    • Channel 9: Javed Sikander: Office 2007- Office Business Application
    • Javed Sikander: OBA blog: Talk to Javed if you want to learn more about OBA.
    • OBA RAP for Supply Chain Management
    • Office Business Applications Developer Portal

    Enjoy!
    ~Erika

  • Erika Ehrli - Adventures with Office Products & Technologies

    NEW must-read book for Microsoft Office Project VBA programmers!

    • 6 Comments

    Some time ago I blogged about Project Developer Resources and I want to add a new resource to my list.

    Rod Gill (Project MVP) just contacted me to let me know about his new book! He compiled a lot of VBA code samples for working with Project (98-2007), so if you are a Project developer, you might consider getting this book:

    VBA Programming for Microsoft Office Project 1998-200X applies to all Micrsoft Project versions through Microsoft Office Project 2007 professional and standard editions with an introduction to new features in the 2007 version. MVP author Rod Gill brings his years of expertise into this first of a kind offering focusing exclusively on VBA programming for Project. Not only is this a must have for users who hope to maximize their Project client value through VBA programming and macros, it's a wonderful get started guide for Office VBA programming in general. Learn from one of the world's most reknown experts on Project VBA!

    You can find more information about this book here:

    http://www.projectvbabook.com/

  • Erika Ehrli - Adventures with Office Products & Technologies

    Want a video blog?

    • 16 Comments

    Videos are great eye candy for Web sites and blogs are the latest .com most popular content. So now imagine having them together. According to WIKIPEDIA, a blog that includes video is better known as Vlog and vlogging is the latest trend in blogging.

    The reason is simple: a lot of people love videos. It's a pleasure watching something funny or learning tricks while watching and listening to a demo. You are seeing and listening to the world and it's just taking what you can read somewhere a step further.

    Watching Webcasts, trying out Virtual Labs or downloading Screencasts will help you to reduce your learning curve for new technologies and MSDN is on top of it. The same happens with blogs. If you post code samples to your blog, you might consider trying to record a demo as a video and post it. Readers will get a better experience because they will get to see what the code is doing.

    I have been doing some research and here are some tips I want to share in case you are interested in exploring the concept.

    To start creating my own videos and I needed two things:

    1. The tools:

      I just got my license for Camtasia (and I promise nobody is paying me for the free marketing). I did my benchmark exercise to evaluate this software along with some others, and Camtasia offered the features I needed. You can consider it as a good option if you are planning to start recording demos. Of course once you record the video, you need to post it to a server so everyone can watch it.

    2. The code for embedding the videos:

      So here's the deal. You can have different video formats, such as:

    • AVI video files
    • Macromedia Flash (SWF) movie files
    • Windows Media (WMV) streaming media file
    • QuickTime (MOV) movie files
    • Custom production files

     

    I am interested in working with WMV files and using Windows Media Player client to embed videos into Web pages. Fortunately, there's and ActiveX control (WMPlayer.OCX) that you can use through script. Bad news is some blog sites will not allow you to run scripts and you will be limited to use HTML. One thing you can do is create an html page, host it in a different server (a lot of bloggers do the same with images) and use an IFrame to pull the video page to your blog. Here is some sample code that you can use to embed videos into HTML pages:

    <html>
    <head>
        
    <title>Render Video</title>
    </head>
    <body>
        
    <!-- This is the code you need. -->

        
    <script language="JavaScript">

    var WMP7;

    if
    (window.ActiveXObject)
    {
        WMP7 
    = new ActiveXObject("WMPlayer.OCX.7");
    }
    else if (window.GeckoActiveXObject)
    {
         WMP7 
    = new GeckoActiveXObject("WMPlayer.OCX.7");
    }

    // Windows Media Player 7 Code
    if ( WMP7 )
    {
         
    document.write ('<OBJECT ID=MediaPlayer ');
         document
    .write (' CLASSID=CLSID:6BF52A52-394A-11D3-B153-00C04F79FAA6');
         document
    .write (' standby="Loading Microsoft Windows Media Player components..."');
         document
    .write (' TYPE="application/x-oleobject" width="400" height="400">');
         document
    .write ('<PARAM NAME="url" VALUE="http://download.microsoft.com/download/5/7/1/57139364-d7af-4c18-9ce3-5149a3a727ca/EC304_Friend.wmv">');
         document
    .write ('<PARAM NAME="AutoStart" VALUE="false">');
         document
    .write ('<PARAM NAME="ShowControls" VALUE="1">');
         document
    .write ('<PARAM NAME="uiMode" VALUE="mini">');
         document
    .write ('</OBJECT>');
    }

    // Windows Media Player 6.4 Code
    else
    {
         
    //IE Code
         
    document.write ('<OBJECT ID=MediaPlayer ');
         document
    .write ('CLASSID=CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95 ');
         document
    .write ('CODEBASE=http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,5,715 ');
         document
    .write ('standby="Loading Microsoft Windows Media Player components..." ');
         document
    .write ('TYPE="application/x-oleobject" width="400" height="400">');
         document
    .write ('<PARAM NAME="FileName" VALUE="http://download.microsoft.com/download/5/7/1/57139364-d7af-4c18-9ce3-5149a3a727ca/EC304_Friend.wmv">');
         document
    .write ('<PARAM NAME="AutoStart" VALUE="false">');
         document
    .write ('<PARAM NAME="ShowControls" VALUE="1">');

         
    //Netscape code
         
    document.write ('    <Embed type="application/x-mplayer2"');
         document
    .write ('        pluginspage="http://www.microsoft.com/windows/windowsmedia/"');
         document
    .write ('        filename="http://go.microsoft.com/?linkid=5519355"');
         document
    .write ('        src="http://download.microsoft.com/download/5/7/1/57139364-d7af-4c18-9ce3-5149a3a727ca/EC304_Friend.wmv"');
         document
    .write ('        Name=MediaPlayer');
         document
    .write ('        ShowControls=1');
         document
    .write ('        ShowDisplay=1');
         document
    .write ('        ShowStatusBar=1');
         document
    .write ('        width=400');
         document
    .write ('        height=400>');
         document
    .write ('    </embed>');

         document
    .write ('</OBJECT>');
    }

        
    </script>

    </body>
    </html>

    If you use the previous code and an IFrame, videos in your blog can look like this:

    This KB article has code samples to embed videos using VBScript or Jscript and here are some useful resources for working with the Windows Media Player object model and downloading the latest version:

    Happy Vlogging!

    ~Erika

  • Erika Ehrli - Adventures with Office Products & Technologies

    Comments are welcome

    • 3 Comments

    I didn't realize until yesterday that I accidentally blocked everyone to add comments to my blog for a while. I was trying to reply to some comments and even when comments were enabled, the Submit button was not doing a postback. At first I thought it was because I changed my template and added a bunch of CSS overrides, but that was not the problem.

    The problem (in case this is happening to you) is that I added a Technorati script to my blog. The script contains another form, so when the blog is rendered you have a form inside a form, and that's why a Submit button can't do postback.

    Everything started working when I removed the script, so if you want to leave comments, you can do it now.

    I apologize for the inconvenience,

    -Erika

  • Erika Ehrli - Adventures with Office Products & Technologies

    Developing Add-ins (XLLs) in Excel 2007

    • 13 Comments

    If you are interested in learning about Microsoft Office Excel 2007 features that affect XLL add-ins and enable new XLL functionality, as well as changes to the XLL C API itself, we just published a great article by Steve Dalton that will help you get started.

    The intended audience for this article consists of Microsoft Visual C and Microsoft Visual C++ developers who already have experience developing Microsoft Office Excel add-ins, or XLLs. This article is not an introduction to XLL development although a brief overview is included. To make the most of this article, readers should be familiar with:

    • C and C++ language concepts and constructs. Code examples are written in C++.
    • Building DLLs that export functions.
    • The XLOPER data structure and other Excel data types, such as the floating point matrix structure (FP).
    • The add-in manager interface functions, such as xlAutoOpen and xlAutoClose.
    • XLOPER memory management (xlAutoFree, xlFree, and the use of xlbitDLLFree and xlbitXLFree).

    Read the article here: http://msdn2.microsoft.com/en-us/library/aa730920.aspx

    Enjoy!
    ~Erika

  • Erika Ehrli - Adventures with Office Products & Technologies

    Developer Map for the 2007 Microsoft Office System - Image Map (draft)

    • 14 Comments

    We have been saying everywhere that "the Microsoft Office System is a complete set of client applications, servers, and services that provide organizations with the means to create, manage, and enhance business solutions." We have also published a full load of content for every product since Beta 2. Yet, we realize that as a developer, sometimes it's hard to understand the big picture and how all the little pieces (features and product specifics) can work together to help you build a real-world solution.

    Office is a huge family of products and technologies and we have been working with all product teams to create an overall map that helps developers to visually understand how all the pieces of the puzzle relate to each other, but more important, provide information of where on MSDN you can find technical documentation related to specific features. We want to go deep to namespaces, class members, and schemas for each product to list them all together on a single place.

    As you can imagine, space is a huge limitation. While trying to put all this together, I happen to agree with the "Microsoft 2007 Office system – It's more than you think" slogan. Office is HUGE and there's limited space to place all PIA objects, namespaces, web services, product features, schemas, names, descriptions and relationships for more than 25 products and technologies. However, we have found a great way to summarize the most relevant ideas and make it fit all together.

    I can share with you that I have found the exercise to be fascinating. Just imagine how much fun we've had having on a single meeting room PMs for all product teams + Developer Platform Evangelism + Marketing + Office Developer Documentation group and work together as a team to build the treasure map.

    We are about to conclude this project, but in the meantime, I just couldn't wait to share with you a small version of our treasure map. I built this conceptual diagram using PowerPoint 2007 and then generated an image map that provides links to places on MSDN and Microsoft.com. You can hover the map and drill-down to find detailed information for each product and technology. Of course, this is a petite version, but soon, you'll get the complete treasure map.

    So here goes...

     

    Enjoy!
Page 1 of 1 (7 items)