Some time ago I blogged about How to: Uploading a File to a SharePoint Library Site from a Local Folder and How to: Magic with SharePoint 2003, uploading files using a Web service. Some people found these samples useful and some people asked if I could provide sample code that works with SharePoint Server 2007.
For some time I asked around and realized that there are multiple possible ways to accomplish this task in SharePoint 2007. Here are some popular approaches I’ve learned about and some great possibilities and drawbacks for each:
For this last approach, Joel Krist has created a new Office Visual How-to that shows how to use the HTTP PUT method to programmatically upload files from an ASP.NET Web application to a Microsoft Office SharePoint Server 2007 site: Uploading Files to SharePoint Server 2007 from ASP.NET Web Applications by Using the HTTP PUT Method. This article provides code samples in both VB and C# and a video that shows how to this.
Here’s a preview of the video from that same article.
Zeyad Rajabi announced this week the availability of the new Open XML SDK 2.0 August CTP. As mentioned by Zeyad, changes to this CTP include:
If you are into Open XML Development, you will also be interested in a few more videos and code samples.
We have released some videos, walkthroughs, and code sample downloads in the last couple weeks:
More to come soon.
I am also glad to announce that yesterday we published 50+ Open XML code samples packaged as Visual Studio code snippets. The code samples were created by Ken Getz as an update to the previous Open XML Visual Studio 2005 code snippets released a couple years ago. The previous snippets provided samples on manipulating document parts and packages using the System.IO.Packaging namespace. This new set provides more code samples that show how to manipulate document parts and packages using the Open XML SDK 2.0. The snippets were tested and work well with the August CTP released this week.
You can download the snippets here:
The snippets in this download use the Open XML SDK 2.0 to accomplish many tasks involving Microsoft Excel 2007, Microsoft PowerPoint 2007, and Microsoft Word 2007 documents.
You can use the enclosed code snippets with the Microsoft Visual Studio® 2008 Code Snippet Manager. Each snippet provides unique functionality that you can reuse within an application. This download provides snippets written in Microsoft Visual Basic.NET® and Microsoft C#® development languages.
Here’s a list of all the snippets included in this package:
Excel: Add custom UI
Add custom ribbon markup to a specified workbook.
Excel: Delete comments by user
Delete comments from a workbook, given an author name. Pass an empty author name to delete all comments.
Excel: Delete row
Given a document name, a worksheet name, and a one-based row index, delete a row from the worksheet.
Excel: Delete worksheet
Delete the specified sheet from within the specified workbook.
Excel: Delete XL4 macro sheets
Given a document name delete all the XL4 macro sheets.
Excel: Export chart
Given a workbook and the name of a chart, export the chart to an XML file.
Excel: Get all sheets
Retrieve a List of all the sheets in a workbook.
Excel: Get cell for reading
Given a document name, a worksheet name, and a cell name, retrieve a reference to the cell for reading. Raise an exception of the cell doesn't exist.
Excel: Get cell for writing
Given a spreadsheet document, a sheet name and an address, return a reference to a cell ready to accept a value. Create the cell if necessary.
Excel: Get cell format
Given a document name, a worksheet name, and a cell name, return the CellFormat instance associated with the cell.
Excel: Get cell value
Given a document name, a worksheet name, and a cell name, get the value of the cell.
Excel: Get cell value given row and column
Rertrieve a cell value given its row and column numbers, or a row number and column name.
Excel: Get column header
Given a document name, a worksheet name, and a cell name, get the column of the cell and return the content of the first cell in that column.
Excel: Get defined names
Given a document name, return a dictionary of defined names.
Excel: Get hidden rows or columns
Given a document name, and a worksheet name, return a list of either hidden rows or columns.
Excel: Get hidden worksheets
Retrieve a list of all the hidden worksheets in a workbook.
Excel: Get style border
Retrieve information about a cell's border.
Excel: Get style border info
Get style border information.
Excel: Get style fill
Retrieve information about a cell's fill style.
Excel: Get style fill information
Retrieve specific font formatting information about a cell.
Excel: Get style font information
Excel: Insert Custom XML
Insert a custom XML part into a workbook.
Excel: Insert header or footer
Insert a header or footer into a workbook.
Excel: Insert number into cell
Given a file, a sheet, and a cell, insert a specified numeric value.
Excel: Insert string into cell
Given a document name, a worksheet name, a cell name, and a value, insert the text into the specified cell.
Insert a string into a specified cell.
Excel: Set recalc option
Given a file name, set the recalculation behavior of the workbook. Return the previous calc mode.
Excel: Worksheet part by name
Retrieve an entire worksheet part, given its name.
PowerPoint: Add comment
Add a comment to the first slide in a presentation.
PowerPoint: Delete all comments, by author
Delete all comments in a PowerPoint presentation for a specific author. Pass an empty string for the author name to delete all comments.
PowerPoint: Delete slide by title
Given a presentation and a slide title, delete the slide.
PowerPoint: Get List of Slide Titles
Given a presentation file, retrieve a generic list of strings containing the slide titles. Some slide titles might be empty strings.
PowerPoint: Get slide count
Given a file name, retrieve the number of slides in the presentation.
PowerPoint: Get slide index, by title
Find the zero-based index of a slide within a presentation, given its title.
PowerPoint: Reorder slides
Given a PPT deck, an original position, and a new position, attempt to place the slide in the original position into the new position within the deck.
PowerPoint: Replace image on slide
Given a presentation, a slide title, and an image file, replace the first image on the selected slide with the new image.
PowerPoint: Replace slide title
Given a presentation, a slide title, and a new slide title, find the slide, and modify its title.
Word: Accept all revisions
Given a document name and an author name, accept all revisions by the specified author. Pass an empty string for the author to accept all revisions.
Word: Add Table
Add a table, including text from an array, to the end of a document.
Word: Convert DOCM to DOCX
Convert a macro-enabled document to a standard document.
Word: Delete all comments
Given a document name and an author name, delete all comments by the specified author. Pass an empty string for the author to accept all revisions.
Word: Delete headers and footers
Delete headers and footers from a document.
Word: Delete hidden text
Delete hidden text from a document.
Word: Extract Styles
Extract the Styles part from a document, so you can insert it into another document.
Word: Get application property
Retrieve the value of an application property from a document.
Word: Get Content Control
Retrieve the markup for a specific content control.
Word: Get core property
Retrieve the value of a core property from a document.
Word: Get custom property
Retrieve a custom property for a document.
Word: Replace the styles part
Replace the entire styles part with a styles part extracted from another document.
Word: Retrieve comments
Retrieve all the comments from a document in an XDocument instance.
Word: Retrieve Table of Contents
Retrieve the table of contents markup, if it exists.
Word: Set application property
Given a document name, a property to set, and a value, update the document.
Word: Set core property
Set a core Word property (like Version, or LastModifiedBy).
Word: Set custom property
Given a document name, a property name/value, and the property type, add a custom property to a document.
Word: Set print orientation
Set the print orientation for each section in a document.
I was reading today an internal distribution list and I saw an interesting thread about autonumbered lists using WordML (2003):
"I embarked on a journey to try and transform InfoPath rich text (xhtml) to WordML. I encounter a problem when I try to transform a rich text node that contains multiple numbered lists: in the rich text they both number from 1-3, but in Word the result is 1,2,3 and 4,5,6."
Zander Westendarp provides a great workaround: If you increment the value of the w:listDefId elements for each element, you can get autonumbered lists that always restart the numbering.
When I work with WordML or SpreadsheetML, I always build a template of the document/spreadsheet that I want to generate and save it as XML. It's the best way to get started with the code that you want to generate. I made an experiment to test this approach and explore the resulting WordML. Follow these simple steps...
Once you create the XML Document file, you can open the file using a text editor program to explore the content of the file. Find all the w:listDef elements and you will see how the w:listDefId attribute is always incremented.
Tip: If you want to see a nice and readable indented XML file, see this blog entry.I know that WordML is a big topic and every document is a separate story. Newsgroups, forums, and DLs are always full of different questions. Taking about lists is just a single topic - that by the way is huge and complex by itself. Fortunately there are documents, articles, books, and cool bloggers who share their knowledge.
Here are some WordML resources that I use when I am stuck with WordML:
If you want to learn more about lists and WordML, read Oleg Tkachenko's blog entry: Generating WordprocessingML using XSLT: Lists. Also read John Durant's blog entry: WordProcessingML, XML, and Lists.
Finally, to learn WordML, divide and conquer, that's my strategy...
As a developer, I was quite excited to learn that Office "12" will allow you to save documents as PDF/XPS. Since that moment, I have been quite surprised to see excitement around that feature. I am now happy to learn more about XPS. You should read Jeff Bell's blog and Andy Simonds's blog to learn more about this.
For those of you who have been asking through my blog and email if this functionality (Save As PDF) is going to be exposed in the API the answer is YES! Office PIAs will have methods that expose this functionality. The details and sample code will be available after we ship Beta 2.
I didn't know about that, but Office Online receives over 120,000 queries per month requesting the ability to "save as PDF" in Office! Microsoft has LISTENED to customers and has an answer for a common need. Steven Sinofsky announced this weekend at the MVP Summit another great feature provided by Office "12:"
"Office Word, Excel, PowerPoint, Access, InfoPath, Publisher, Visio, Project, and OneNote – will provide the capability to save documents in the PDF format, which will include a fixed layout representation of the document. PDF documents created by Office “12” may contain live hyperlinks, cross-document links and bookmarks and will support accessibility. PDF documents produced from Microsoft Office Publisher “12” will also include additional support for pre-press specific functionality such as CMYK color models and printing page marks. The PDF format has been developed by Adobe and the specifications are available for developers like Microsoft to use."
I know that lots of customers and developers worldwide will be more than excited about this. Lots of Microsoft Consulting Services customers required to integrate "save as PDF" functionality to their solutions; I would love to be back with them and tell them: You can!
Today, a big set of managed applications generate Word documents, and Excel spreadsheets, and now, without using third-party PDF libraries, you will be able to change some lines of code to save the files using PDF format. Even outside managed applications, you can now save your legal contracts, requests for proposals, work orders, finance budgets and more!
The best part is that Office "12" still has more surprises to announce, so keep close to Office Developer Center and be the first to know the future of Microsoft Office.
You never know what surprises each day will bring to you. Two days ago I didn't know today was the day when we were finally sharing with the world our new learning tool for Office developers: The Microsoft Office Interactive Developer Map.
It all started with a nice drawing in a blackboard. Next it became a poster. Then we thought it was a great idea to build an online version of the poster and find the best available online resource for every single namespace, object, Web service, and feature related to a Office product or technology. Today, after lots of months of work we have a cool Windows Presentation Foundation (WPF) application built using Microsoft Expression. We host the map in MSDN Labs and it is available as a free download.
The Microsoft Office Interactive Developer Map helps developers visualize the different programs, servers, services, and tools that will help you build solutions. It allows you to drill down to each product and technology and learn about new features, objects, Web services, namespaces, and schemas required to extend Microsoft Office and build custom Office Business Applications (OBAs). This map provides links to MSDN portal pages, technical articles, and key pointers to SDK and reference documentation topics.
When you download the map you can see an overview of the Office developer roadmap. You can click a product or technology to drill down and find resources related to the product you selected:
Each time you drill down to a product or technology you will find links to:
Some regions of the map don't have a resource page. For example, all the platform boxes at the bottom and some technologies under the Tools region. However, if you click a platform box, the maps opens a new browser window that displays the best available MS site. For example, if you click IIS, we take you to http://www.iis.net.
The map is a living document that provides links to MSDN Library reference documentation, MSDN portal pages, and RSS feeds that describe how developers can use the 2007 Microsoft Office system and associated tools and technologies to develop solutions that meet their needs.
It stores all links in an XML file that we will update when we publish new content or find better online resources. Once you install it, the map pulls the latest version of the resource file. You can find the map at Start Menu > 2007 Office System Developer Resources > Microsoft Office Interactive Developer Map. Then, each time you launch the application, it looks for updates pulls them from the server when available. No need to reinstall because you are using ClickOnce technology. This application is like a news reader that you can open every now and then to find out what's happening out there.
We think this is a great way to help developers understand the Office development roadmap and learn how Office products and technologies relate to each other. This is a new type of learning tool that can help you find the best available content and save you time doing research.
The goals of the Microsoft Office Interactive Developer Map are to help developers to:
So many people that if I start listing them I would never finish and will probably forget to name someone. Rob Barker and I helped drive this for months, but truth is it was real teamwork done by the Office Developer Documentation Group, the Office Business Application team, the MSDN Labs team, the Office + SharePoint + VSTO product teams, the Office Developer Platform Evangelism team, and Lux Worldwide. This baby has lots of moms and dads.
You can find download links, instructions, contact information, and everything there is to know about the map here: http://msdn2.microsoft.com/en-us/office/bb497969.aspx
We all hope you have fun playing with the map, that you learn a lot more about Office development, and that soon it becomes a new item in your list of favorite online toys.
We'd love to hear what you think.
Lucky me! I had the great opportunity to meet several of the Open XML developers at the Open XML workshop in Redmond last week.
The workshop was quite interesting in terms of content and delivery. Tons of advanced samples related with WordProcessingML, SpreadsheetML, PresentationML, and more. The code for the labs was awesome and of course the best part was having to opportunity to watch Doug + Wouter, Brian, Tristan, and Sanjay showing lots of practical demos. After the workshop, Doug recorded some Channel 9 interviews with some of them. You will be able to watch a Linux/Java interoperability with Open XML (Sonata Software) demo, an Open-source Open XML API for Java (Julien Chable) demo, and the Package Explorer for Open XML (Wouter Van Vugt) demo. Pretty neat stuff you can do with the Office Open XML Formats.
While all this happened, I had my own Office Open XML Formats + MSDN stuff going on.
Last week we published the first two PowerPoint 2007 + Office Open XML Formats code samples + articles + videos on MSDN. Yes! We have two more Office Visual How-tos by Mr. Ken Getz:
I think it's great that we finally have two samples available. Curious minds want to learn how to manipulate PPT slide decks using the System.IO.Packaging library, XML, and the PowerPoint Open XML Format. These samples come quite handy when you are considering server-side PPT manipulation.
Just a little follow-up blog entry to let you know that the following developer references are now live on MSDN!
This is so exciting!
I am very excited to be here in San Jose, CA attending the Office Developer Conference 2008. We had a keynote this morning with Bill Gates where he showed a video with his plans for retirement and where he talked about the value proposition of the 2007 Office system as a development platform. Bill talked about many of the different products and technologies that you can use to build Office Business Applications (OBAs), including the Open XML formats!
Open XML is an open standard for word-processing documents, presentations, and spreadsheets that can be freely implemented by multiple applications on different platforms. Open XML is designed to faithfully represent existing word-processing documents, presentations, and spreadsheets that are encoded in binary formats defined by Microsoft Office applications. The reason for the need for Open XML is simple: billions of documents now exist but, unfortunately, the information in those documents is tightly coupled with the programs that created them. The purpose of the Open XML standard is to decouple documents created by Microsoft Office applications so that they can be manipulated by other applications independent of proprietary formats and without the loss of data.
You can find more detailed documentation about Open XML at the Open XML Formats Resource Center and at OpenXMLDeveloper.org.
If you are attending the Microsoft Office Developer Conference 2008, and want to learn more about Open XML, here's some information that you may find useful:
What's Up, DOC? Open XML Formats, OpenDocument Format, and the Revolutionary Implications of XML in Productivity Applications: Industry debate about the relative merits of Open XML Formats and OpenDocument Format highlights the significance of the productivity application market shift from binary and propriety file formats to vendor- and product-independent XML models. The competitive stakes are huge, and the related political posturing is sometimes perplexing. In this overview, Burton Group Research Director Peter O'Kelly introduces Open XML Formats, OpenDocument Format, and related World Wide Web Consortium (W3C) standards, and projects their implications for the future of productivity application-bases information management.
Track: Executive Session: EXE104 (Feb 12 – 10:45 am to noon) Presenter : Peter O'Kelly (Burton Group Research Director)
Developing document centric solutions using Open XML and VSTO "v3": The coming of the 2007 Office System introduced the Open XML File Formats, an XML based file format allowing deep integration of documents in your business processes. No longer is a document a black-box containing data, instead the document is the data. In this session you will learn about solution capabilities of Open XML, how to work with data and documents on the server and how to enable Informa tion Workers on the client side using Visual Studio Tools for Office ""v3"".
Track: Client Session: CLI304 Presenter: Wouter van Vugt
Using LINQ to XML to query and transform Open XML documents: Learn how to use the powerful .NET language-integrated query (LINQ) to process Open XML documents. See how these concepts are applied to build the Open XML Power Tools which are a set of Windows Powershell cmdlets that help you build Open XML document workflows quickly and easily.
Track: Client Session: CLI306 Presenter : Eric White (Microsoft) , Johann Granados (StaffDotNet)
Generating Enterprise Content using InfoPath 2007, SharePoint and the Microsoft SDK for Open XML Formats: Be introduced to the Microsoft SDK for Open XML formats and show how developers can use the SDK and InfoPath 2007 to generate Microsoft Office documents on the server from data stored in SharePoint form libraries.
Track: Client Session: CLI307 Presenter : John Holiday
Office Business Application that Supports Microsoft's Top Executives: Discover how Office Open XML file format allows developers to manipulate server side workbooks to provide end users with secure scorecard viewing experience in the browser and not sacrifice Microsoft Excel 2007 rich client functionality while meeting the requirement of no client side code install.
Track: Real World Session: RLW302 Presenter: Sergei Gundorov, Mike Reese
Use the Open XML SDK and LINQ to XML to Program the Open XML File Formats: Although the packaging API makes it possible to manipulate the Open XML Formats directly, it doesn't make it easy. The Open XML SDK provides a consistent and neat wrapper around the API, making it far easier to get to the parts you need. Once you get to the part, however, you're still simply working with XML content. To make this easier, LINQ to XML provides a superb tool. Both C# and Visual Basic provide support for LINQ to XML, but Visual Basic adds specific features that make the process far easier. In this session, you'll see how to use the Open XML SDK, LINQ to XML, and Visual Basic's superb support for XML handling to manipulate Open XML File Formats. Special attention will be paid to the issues involved in handling namespace resolution, a tricky issue in any situation.
Track: Client Session: CLI314 Presenter : Ken Getz
Exploring the New, Flexible XML Programmability in Microsoft® Office Word 2007: Be introduced to the concepts of the XML data store and XML binding features of Microsoft Office Word 2007. Program against a sample document while learning how to work with structured information in Office Word 2007 that is stored independently of the presentation surface. Explore the capabilities of the new data store and XML binding and allow you to gain insight on how these features enable the creation of document-based Office Word 2007 solutions.
Understanding the Structure and Solution Capabilities of the Open XML Formats: Become familiar with the new 2007 Microsoft Office programs file formats. Examine sample documents for each of the 2007 Office programs that implement the Open XML Format. Learn how to edit documents by directly manipulating files without the use of the Microsoft Office programs. Explore the new default Microsoft Office programs file formats and gain insights on the new solution possibilities they enable for creating solutions.
Ken Getz, Wouter Van Vugt, Sanjay Kumar Madhva, and I will be at the Open XML booth. If you are attending the conference, come talk to us! We are all glad to share our experiences with developing solutions with Open XML and to help you find answers related to this exciting technology. Here's our schedule:
MONDAY, FEB. 11
12:30pm - 2:00pm
Wouter Van Vugt/Ken Getz
2:00pm - 3:00pm
3:00pm - 4:00pm
6:00pm - 8:00pm Expo Hall Reception
Erika Ehrli Cabral/Sanjaykumar M.
TUESDAY, FEB. 12
10:30am - 12:00noon
12:00noon - 2:00pm
2:00pm - 3:30pm
3:30pm - 5:00pm
WEDNESDAY, FEB 13
10:00am - 11:30am
11:30am - 12:30pm
Doug Mahugh, Frank Rice, and I created a new poster to help you discover the different components, markup languages, and vocabularies you can use to create Open XML solutions.
You can find the poster at the Open XML booth and if you are not attending the conference, you can download a copy of this poster from:
Some other great news. We updated a couple Office developer posters.
This version includes new information related to:
If you are currently attending Tech Ed, you can stop by at the following TLC Green OFC section booths to get a printed version of the poster:
For those of you that are not attending Tech Ed, we will be publishing an online version soon. I'll update this blog entry as soon as I have the download url.
This version includes updated information related to:
If you are currently attending Tech Ed, you can stop by at the TLC Green OFC - Open XML station to get a printed version of the poster. Doug Mahugh and Stephen Peront will be there!
You can find the poster downloads here:
The release of PerformancePoint Server 2007 should be of special interest for those of you who are passionate about business intelligence (BI), dashboard, and scorecard solutions.
Enterprises gather data related to line-of-business (LOB) operations. Data as-is is not useful. You need to transform it into information so you can understand your business and make decisions. PerformancePoint Server 2007 is a product that can help you to build a performance management application. It integrates with Microsoft SQL Server 2005 and helps you define a set of rules to monitor, analyze, and report information in dashboards or scorecards to help users with planning, budgeting, and forecasting. Optionally, you can use the PerformancePoint Server 2007 APIs and extend reporting to Excel, PowerPoint, and MOSS 2007. PPS is a new platform for a new set of BI Office Business Applications (OBAs).
While reading about PPS, I discovered some cool things that developers can do to extend its functionality:
Here's a list of resources that can help you to learn more about the product…
Last week we published the new PerformancePoint Server Developer Portal on MSDN. This page compiles pointers to the new PerformancePoint Monitoring SDK, the PerformancePoint Planning Business Rules Development Guide, and useful links to data sheets for planning, analytics, monitoring, and management reporting.
If you want to see an online demo, you can watch the Performance Management 101 Webcast, the TechNet Webcast: Business Intelligence with Office PerformancePoint Server 2007, and the PerformancePoint Server 2007 Interactive Product Introduction.
For blogs, visit the The Microsoft PerformancePoint Team Blog, Ben Tamblyn's blog, and Bruno Aziza's blog.
For other related-sites check-out…
Finally, if you want to get your hands on PPS, here are the links to the evaluation downloads…
It's been about 10 months since we started publishing Office Visual How-tos (VHTs), which is a compound content type, mixing a short how-to article, code samples, and a video of that code sample in action. The wealth of this content type is that you can watch a quick video to visualize how a feature works and then you can read conceptual information and grab a code sample. We also provide a list of related resources for further reading and learning.
Here's a sample VHT: Setting Conditional Formatting in Excel 2007 and here's a pointer to a blog entry where I explained the project in detail. I am happy to share that we have published more than 100 VHTs. We have been lucky to have well-known MVPs and experts collaborate with us and contribute with some VHT. A few names come to mind: David Gerhardt, John Peltonen, Ken Getz, Patrick Tisseghem, Ted Pattison, Joel Krist, Steven Hansen, and many other Microsoft programmer writers and product team members.
Another interesting fact is that the VHT content plan attempted to cover most relevant developer features of the different 2007 Microsoft Office system products, servers, services, tools, and technologies. We worked very hard to cover as many MOSS, WSS, Office Core, Office Client, and VSTO code samples. I pulled some numbers from our editorial calendar this morning to track the distribution of available VHTs by product and here's how content looks like today:
The Office Developer How To Center provides a list of available VHT by title. Because we have so many articles to promote, it's getting hard to list all on the MSDN Office Developer Center. To help a bit with discoverability, I built a quick html image map to help you find VHTs by product. Just use the image below and click the product name to go to the MSDN Library node where we list all VHTs by product.
We are interested in getting your feedback and comments. You can rate the articles and send comments using the Click to Rate and Give Feedback link located at the top right corner of the MSDN Library. We have a system that helps us track comments and ratings for every technical article and content asset living under the Office Development node of the MSDN Library. We hope you find this content useful and if you find errors in code or broken links, please let us know so we can fix them! Feedback is always appreciated. In fact, here's a few nice comments for VHT content that we pulled last week:
Finally, some people would like to have the videos available in Zune and IPod format, so we will start looking into this soon.
We are glad to announce the release of the Microsoft Office Interactive Developer Map Version 2!
The Microsoft Office Interactive Developer Map is a Windows Presentation Foundation (WPF) application that helps developers visualize the different programs, servers, services, and tools that will help them build solutions. It allows them to drill down to each product and technology and learn about new features, objects, Web services, namespaces, and schemas required to extend Microsoft Office and build custom Office Business Applications (OBAs). This application also includes links and pointers to online resources available on Office Online, MSDN, TechNet, Channel 9, Channel 10, and OBA Central.
We released this version at the Office Developer Conference 2008 held last week in San Jose, CA. The application was showcased in different booths and all attendees received a poster version of the Office Developer Roadmap that includes links to download the application.
Download the updated version from the MSDN Office Developer Center and blog about it!
We will also publish a video demo that shows how to use the app. Link to video coming soon.
Erika Ehrli and Rob Barker
Many of you may have already heard that Office Open XML was approved as an ISO standard! This is great news for all of us who have been developing solutions using Open XML. You can find all the details in Brian's blog. Also, Doug Mahugh provides great pointers to other bloggers that talk about this.
For those of you who are interested in creating solutions using Open XML, you should know that we have plenty of articles, videos, and code samples available on MSDN that can help you get started. If I knew nothing about Open XML today, here's the top ten list of resources I would start with:
You can find additional resources here:
Also, Joanna Bichsel and Doug Mahugh have compiled great lists of tips, resources, and pointers to Open XML developer documentation. You should check out their blogs!
Just as we speak, the Office Developer Documentation group (aka MSDN Office group) is busy building a new CTP for the Open XML Format SDK. While I was at the Office Developer Conference this year, many people asked about the future of this SDK and wanted to know if we were to release a Go Live license soon. The answer is yes! Based on customer feedback, the product team improved the June CTP version of the Open XML API. This release also includes support for cool C# 3.0 and VB.NET 9.0 features, such as LINQ Annotations. Watch Zeyad's and Eric's interview for more details.
So this month, not only we got the happy news that the Office Open XML was approved as an ISO standard, developers will also get a new release of the Open XML Format SDK. As soon as we publish the new SDK, I'll be blogging about what's new with the SDK and I'll be sharing more code samples so you can play with this new release.
Last but not least, for those of you who are eager to get started with Open XML, here's a cool video where Brian Jones shows how to build Word 2007 document using the Office Open XML Formats.
I guess that it should be no great surpise that my first blog post on Erika's behalf is to announce the birth of Sofia - certainly what will be her project with the most long-lasting influence.
It's with great pleasure that I get to announce that Erika's baby, Sofia was born on Friday at 2:53 PM. Mom and baby are doing great. Sofia weighs 8.1 pounds and measures 19 inches long.
I was flattered that Erika asked me to help out. I look forward to telling you more about the new content coming up over the next few months.
It's our lucky day! This was supposed to happen later this week, but some of the launch surprises arrived ahead of time.
I am glad to announce that the following developer references are now live on MSDN:
By the end of this week we will publish the following ones:
We will publish the last two in the subsequent weeks:
I will be updating this blog entry as soon as we take them live.
The new Microsoft Office Fluent UI replaces the previous system of layered menus, toolbars, and task panes with a simpler system optimized for efficiency and discoverability. The new UI, including the Office Fluent Ribbon, provides improved context menus, enhanced screen tips, a Mini toolbar, and keyboard shortcuts that help to improve user efficiency and productivity. The new Office Fluent UI is implemented in several applications in the 2007 Microsoft Office suite, including Access, Excel, Outlook, PowerPoint, and Word.
You can extend the Ribbon using XML and one of several conventional programming languages to manipulate the components that make up the Ribbon UI. To extend the Ribbon you use different callback signatures depending on the control types. We have seen a lot of questions related to this subject. For instance, onAction for a gallery may be different from onAction for a button.
We wanted to provide a complete set of Ribbon XML snippets for every control/callback combination, and the corresponding function definitions, so Frank Rice built over 100 snippets divided between C# and VB .NET for Excel, PowerPoint, and Word. You can combine the snippets with your VSTO project if you want to and you can find the snippets here:
Frank is currently working on a new set of Office Visual How-tos where he shows how to customize the 2007 Office Fluent User interface programmatically. You can find the first Visual How-To of the series here:
I will update this blog entry to list more as we publish them.
Frank has done a fantastic job teaching all of us how to customize the 2007 Office Fluent User interface. Make sure you visit his blog and the Office Fluent Ribbon Developer Portal.
I am back at Redmond and before I continue with my after-trip duties, I want to share with you the Office & SharePoint PDC slides:
Have a peek and enjoy!
I was dying to blog since I woke up this morning and finally I got a chance to sit down and share some Office "12" news with the community.
The day started with Steven Sinfosky's Keynote, where he announced some of the coolest enhancements for Office "12" and Windows SharePoint Services "v3." Steven started his presentation by talking about how the Office System has evolved to a results-oriented developer platform that allows extensibility thanks to the integration to XML and Web Services, Visual Studio .NET and managed code, a results oriented user interface, and the XML File Formats. Steven concluded his keynote with some great demos for InfoPath, Access, SharePoint, Excel, and Outllook. I really enjoyed to experience the joy and surprise shown by the audience as Steven presented some of the new features added to Office "12."
We also had eight sessions today that are related to Office "12' or Windows SharePoint Services "v3". In a nutshell, I can share with you some of the new enhancements that were announced today and yesterday at PDC and that are related to Office "12" and Windows SharePoint Services "v3":
Introducing and extending the Ribbon User Interface
Office "12" has a new look for client applications that replaces menus and toolbars with a Ribbon UI that organizes buttons, galleries, menus, and toolbars into tabs organized by categories. If you created special toolbars and CommandBars, the UI displays a special tab for your custom functionality. You can also extend the Ribbon UI by creating COM or managed Add-Ins or by using a text-based XML markup definition to create and customize the UI. The following picture shows a peek of the Ribbon UI:
Open XML File Formats
Office "12" provides a new XML based file format that allows interoperability and collaboration between other Microsoft Office System and third-party applications. The new XML file format replaces the previous Word, Excel, PowerPoint, Access, and Project file extensions to an open XML file format that is integrated with ZIP compressions to reduce the file size up to 75 percent. Office "12" client applications still allow you to save documents in the previous file format for backward compatibility. The files generated by Office "12" client applications are not only raw documents, now, you can use these files as a repository for data used by other applications.
InfoPath Forms services
InfoPath Forms services provide a Web browser form-filling experience for users that need to complete InfoPath forms from Web-based applications. This Web experience is built as a feature on top of the Microsoft Windows SharePoint Services "v3" platform. This feature is really cool because now you can add InfoPath forms to your ASP.NET applications.
Some Web-based applications require to host Excel and interact with spreadsheets to explore and pivot on data, calculate and set values, or analyze PivotTable reports and charts using the browser. To obtain this functionality, Microsoft introduces Excel services. Excel spreadsheet services provide you with the ability to view and interact with spreadsheets in a browser. You can calculate, create snapshots, and extract values from the workbooks. You can also programmatically generate, manage, and distribute customized Excel spreadsheets by using Excel spreadsheet services. When I knew about this I almost cried! This one was a great need that lots of customers demanded and I am happy that we have something like this now and into the future.
Access, InfoPath, Windows SharePoint Services, and Outlook integration and collaboration
Believe it or not, you can create business workflows where you can define for example and InfoPath form that is filled inside Outlook, when sent back, a WorkFlow is updated inside Windows SharePoint Services, and the data stored inside Access. Today, writing and application that accomplishes this set of tasks is a bit complex and requires many lines of code. With Office "12" and Windows SharePoint Services "v3" ease of use, collaboration, and productivity have a real meaning.
I close the day with a picture of the great Office "12" stairs at PDC: "Step Up to the Future" - Microsoft Office "12"
Last week we published a new Office Talk column: Generating Active Directory Diagrams with Visio 2003 and Visual Studio .NET 2003. I am very happy about this and I have to say that I had a lot of fun writing this article and code.
Everything started back in September at PDC when I met with a customer who asked how to build custom Active Directory Diagrams with Visio 2003. We talked about the possibilities and in general I explained how he could build an Active Directory diagram. Active Directory is one of my favorite topics :). When I came back to Redmond I met with my friend and peer Saul Candib, who is the programmer writer for Visio. We talked about the scenario and we decided to work together to build a code sample and a technical article that would help Office developers to learn how to:
One important note for developers who are already working with Visual Studio 2005. The Visio 2003 SDK Add-in/Add-on wizard was designed for Visual Studio 2003, and that approach will not work with Visual Studio 2005. However, you can build a Shared Add-in (instead of using the Visio 2003 SDK Add-in/Add-on wizard) and everything will work just fine. Bill Morein, who is a Program Manager for Visio wrote this interesting blog entry where he explains how to create Visio COM Add-ins with Visual Studio 2005.
I hope that you enjoy this article and find it useful if you are one of those developers who are currently looking for options to build custom Visio 2003 solutions. I can say that Saul and I were really happy to put this together and we would be quite pleased to know if you liked it :-).
I have seen some great articles about the 2007 Microsoft Office System, but if you are an architect or solution developer, this is one you don't want to miss: Compliance Features in the 2007 Microsoft Office System. This paper talks about business opportunities and technical aspects of extending the 2007 Microsoft Office system features to facilitate compliance.
Joanna Bichsel wrote this paper. She is a subject matter expert and she is doing an excellent job to help customers understand how to build Office Business Applications. She runs demos in developer conferences and her blog is a must stop. She will be posting a lot of short walkthroughs for developers and architects.
I loved this paper piece of art, and the two things I liked the most are:
I know there are tons of papers, documentation, webcasts, and technical articles. But this is one you should definitely send to the printer and enjoy.
I am here at Tech ED at Boston and I am having a lot of fun talking to developers and IT professionals who want to learn more about Office 2007, Office SharePoint Server 2007, and Visual Studio Tools for Office.
We have an Office System booth area where you can find experts for different Office and SharePoint products and technologies. I am at the Visual Studio 2005 Tools for the Microsoft Office System booth and we are running demos to show some of the coolest things you can do with VSTO. We are also answering questions about the Open XML File Formats (people are quite interested in that and are asking and asking).
If you are here at Tech ED visit the Office booth, I love to talk to people and listen to the approaches used to solve business needs using different Office products and technologies. Also we are providing some handouts that you might interested in such as...
For people who are not here I will write another blog entry tomorrow with some pictures and a list of available resources on the MSDN Office Developer Center where you can find developer information covered at most of the current Tech Ed Office sessions, chalk talks, and hands on labs.
We are getting ready for Beta 2 and we have been working hard to produce articles, videos, interviews, code samples, and more content that dives into the details of how-to develop solutions using the 2007 Office System. The past months everything was about what you can do with 2007 Office System, now, we are getting ready to show you how you can do it. Behind the scenes, we have been quietly working with the product teams to provide a great amount of content that will allow you to learn how to develop 2007 Office solutions.
I find quite fascinating how we all have a different style to learn something new. Some people enjoy a long article (more than 10 pages) with some code that they can possibly reuse in a development project. Some other people enjoy more a short how-to video that they can watch while drinking a coffee. Some other people like to download SDKs and read about every class member inside an object model. Some other people love to see a diagram or poster where you represent an abstract concept. Some other people are fascinated to watch the human being behind the feature/product talking about the cool enhancements of the new version. The same information can be represented from different angles, and we are committed to deliver different content types so that we can satisfy your learning style.
Another project that has kept us kind of busy is a site redesign project that we started some months ago. The team who developed the current site information architecture did something great at the time when Office 2003 was launched. The world changes and everything needs to evolve from time to time. Since the current version of the site was launched, lots of things have changed. The developer community has grown significantly, the blog boom came, the product teams are out to show their face and talk about their feature, and the developer story for Office has more to offer than any time before. The Office product and technologies family has grown and now they need a bigger house, so we are doing a massive site redesign to organize all the content we have in a better way.
The following months, you will see how the site starts changing and growing. We have new 2007 Office System content and a site with a better organization that will help you find your way through the search of the content that best fits your learning style.
For those of you who have been asking if MSDN will continue to publish and highlight the Office 2003 developer story, the answer is YES. We are quite excited about the new 2007 Office System, but we know that there are lots of developers who want to continue learning about the development possibilities offered by Office 2003.
I would love to open a document that I have in my desktop and share with you the great list of content that we will publish after Beta 2, but for now, the only thing I can share with you is some content that we got published ahead of time and that we will headline on MSDN shortly.
We have been working close to MSDN TV to publish a set of Office shows that provide you with good insight and pointers to developer opportunities with 2007 Office System. So for those of you who love to see Mike Fitz and Clint Covington in action, we have something for you.
The Microsoft Office System Developers Conference 2006 will be held in Redmond, WA next week; so expect to see more buzz related to the 2007 Office System in blogs.
Office has evolved a lot as a development platform and the best part is that you will be able to watch it with your own eyes. No matter where you are, you can watch and listen to Bill Gates and Kurt DelBene showing investments done to Office programs, servers, services, and tools. Bill and Kurt will deliver keynotes next week that you should not miss, so here is all the information that you need to get ready:
When?Start Time: Tuesday, March 21, 2006 9:00 AM (GMT-08:00) Pacific Time (US & Canada) End Time: Tuesday, March 21, 2006 11:00 AM (GMT-08:00) Pacific Time (US & Canada)
How can I sign-up for the Live MSDN Webcast?Go to: http://go.microsoft.com/fwlink/?LinkId=63190 and register.
This keynotes are for developers, so don’t miss the opportunity to learn about new development opportunities and potential ideas to build tools and business solutions using the 2007 Office System.
Another hint, some great cool “things” will be announced next week, so stay in touch...
Have you seen the .NET Framework posters for developers? I love them! There are tons of marketing posters, of course, but the ones I find quite useful are roadmap and object model posters. The roadmap posters organize different technologies in a way that helps you understand how everything works together. Object model posters on the other hand, provide a graphic view of top level namespaces and key objects and are great in-the-wall reference documentation. If you have a bad memory (like me) and you just can’t find a way to memorize methods, properties, and events for each namespace of the .NET framework, you might need one of this posters.
Office development is a huge story, we have lots of products and inside each product, tons of objects and namespaces. We have been working on three posters that cover some key technologies related to Office development and we published last week the first two posters.
I think posters are a great option to help you get started and understand the overall picture of a new technology, they are also good elements for decorating your walls. If you have feedback related to the posters, please let me know. We are still working on the last one, so feedback is quite valuable at this point.