[UPDATE: 05/24/2010, Two open source projects to facilitate interoperability with Outlook .pst data files][UPDATE: 02/20/2010, New Office Documentation Now Publicly Available ]
Data portability has become an increasing need for our customers and partners as more information is stored and shared in digital formats. One scenario that has come up recently is how to further improve platform-independent access to email, calendar, contacts, and other data generated by Microsoft Outlook.
On desktops, this data is stored in Outlook Personal Folders, in a format called a .pst file. Developers can already access the data stored in the .pst file, using Messaging API (MAPI) and the Outlook Object Model—a rich set of connections to all of the data stored by Outlook and Exchange Server—but only if Outlook is installed on the desktop.
In order to facilitate interoperability and enable customers and vendors to access the data in .pst files on a variety of platforms, we will be releasing documentation for the .pst file format. This will allow developers to read, create, and interoperate with the data in .pst files in server and client scenarios using the programming language and platform of their choice. The technical documentation will detail how the data is stored, along with guidance for accessing that data from other software applications. It also will highlight the structure of the .pst file, provide details like how to navigate the folder hierarchy, and explain how to access the individual data objects and properties.
This documentation is still in its early stages and work is ongoing. We are engaging directly with industry experts and interested customers to gather feedback on the quality of the technical documentation to ensure that it is clear and useful. When it is complete, it will be released under our Open Specification Promise, which will allow anyone to implement the .pst file format on any platform and in any tool, without concerns about patents, and without the need to contact Microsoft in any way.
Designing our high volume products to enable such data portability is a key commitment under our Interoperability Principles, which we announced in early 2008. We support this commitment through our product features, documented formats, and implementation of standards. The move to open up the portability of data in .pst files is another step in putting these principles in action.
Over the past year, Microsoft Office has taken several steps toward increased openness and document interoperability. We’re proud of the work we’ve done around document interoperability, offering customers a choice of file formats and embracing a comprehensive approach that includes transparency into our engineering methods, collaboration with industry stakeholders, and shared stewardship of industry standards.
We’re excited about the possibilities created for our customers and partners by this kind of effort, and we look forward to continued collaboration with the industry in our pursuit of improved interoperability with Microsoft Office. Stay tuned.
Paul Lorimer, Group Manager, Microsoft Office Interoperability.
I’m very happy about today’s announcements at the Eclipse Summit in Ludwigsburg, Germany. Microsoft,Tasktop and Soyatec announced a series of projects to help developers using the Eclipse platform do two things: take advantage of new features in Microsoft® Windows 7 and Window Server 2008 R2 and reinforce Java and PHP interoperability with Windows® Azure and Microsoft® Silverlight.
In the first of the four projects, Microsoft is partnering with Tasktop Technologies, a leading Eclipse-based solutions provider from Canada, to create an Eclipse “next-generation experience” on Windows 7 and Windows Server 2008 R2, which shares the same user interface improvements. Tasktop Technologies will contribute enhancements to the Eclipse IDE, which will be available under the Eclipse Public License in Q1 of 2010.
In addition, Microsoft has collaborated with Soyatec, a France-based IT solutions provider, to develop three solutions:
Microsoft is providing funding and architectural guidance for all four of the projects. Let’s take a look at some of the details.
Eclipse “next-generation experience” on Windows 7
Microsoft and Tasktop will collaborate to extend the Eclipse Rich Client Platform (RCP), and in particular the Standard Widget Toolkit (SWT), to include the mapping of new features offered by Windows 7. This will allow Eclipse developers to take advantage of the new user interface features offered by Windows 7, directly from the Eclipse IDE and from any desktop applications built on top of the Eclipse platform.
Here are a couple of sample features that illustrate what I’m talking about:
Of course, these features and screenshots are the result of early prototyping, so they may not precisely duplicate the features that will be delivered during the first phase of the project. Microsoft and Tasktop Technologies are working together to establish the following list features, which are currently entered as bugs in the Eclipse bugzilla:
These goals mark the beginning of a momentous journey for us. We expect to complete the first phase in Q1 2010.
As always, feedback from the developer community about “most wanted” features is very important to us. So if you have ideas, don’t be shy about speaking up—we would love to hear them. I also encourage you to read Mik Kersten’s blog post (Mik is Tasktop’s CEO and project lead of Mylyn) to get his perspective on the project.
Windows Azure Tools for Eclipse for PHP developers
Microsoft worked with Soyatec on Windows Azure Tools for Eclipse, a project to produce an open source plug-in that enables PHP developers using Eclipse to create web applications that target Windows Azure. Windows Azure Tools for Eclipse provides a series of wizards and utilities that allow developers to write, debug, and configure for and deploy PHP applications to Windows Azure. It is available for download at www.windowsazure4e.org
Architecturally speaking, the plug-in leverages the PHP Development Tools (PDT) framework for enabling PHP developers with integrated developer experiences.
The plug-in also bundles the existing Windows Azure SDK for PHP, which we introduced a few months ago. In a nutshell, this SDK provides a speed dial for PHP developers who use the Windows Azure storage component, making it very easy to use the blob, queue and table data storage features. If you need more details about this SDK, just visit the project site at http://phpazure.codeplex.com/.
In the coming months, we’ll detail many of the additional features you’ll find in the Windows Azure Tools for Eclipse plug-in. For now, you can get a quick overview by watching a video we just recorded with Robert Hess for Channel9:
Windows Azure SDK for Java developers
First let me say that the Storage Explorer is really one of the coolest features of Windows Azure Tools for Eclipse—it allows developers to browse data contained in the Windows Azure storage component, including blobs, tables, and queues. Storage Explorer was developed in Java (like any Eclipse extension), and we realized during the Windows Azure Tools for Eclipse development with Soyatec that abstracting the RESTful communication aspect between the Storage Explorer user interface and the Azure storage component made a lot of sense. So this led us to package the Windows Azure SDK for Java developers as open source, which is available at www.windowsazure4j.org.
The Windows Azure SDK for Java enables developers to easily leverage Azure storage service in their Java applications. The logical architecture is very simple:
The Windows Azure Storage Explorer feature that is part of Windows Azure Tools for Eclipse illustrates perfectly a Java application using the SDK:
Eclipse Tools for Silverlight
The Eclipse Tools for Silverlight (Eclipse4SL) plug-in is an open source, cross-platform plug-in for the Eclipse development environment that enables Eclipse developers to build Silverlight Rich Internet Applications (RIAs).
We have developed subsequent beta versions, including the Mac version, since announcing the Eclipse4SL project in October 2008. So, I’m very excited to announce that Microsoft and Soyatec have released version 1.0 of the Eclipse Tools for Silverlight plug-in, which can be downloaded here: http://www.eclipse4sl.org/
Version 1.0 of Eclipse4SL targets Silverlight 2.0. We are working with Soyatec to add support for subsequent releases of Silverlight (Silverlight 3.0 was released in July). You can find a roadmap of the milestones that we have projected on the project site: http://www.eclipse4sl.org/#roadmap . Video demo walkthrough of the plug-in are available here and here (Mac version).
We are always working hard to find new ways to provide more choice and opportunity for developers in our ongoing journey to foster interoperability between Microsoft products and other technologies. We are hoping that today’s announcements give developers the additional choices and opportunities they’re looking for, and that they amount to yet another reason why choosing Microsoft platforms means keeping all the options open.
Today, Microsoft announced a new XMPP Gateway for Office Communications Server 2007 R2 that enables interoperability with Cisco Jabber/XMPP and Google Talk, along with new licensing options for Office Communications Server customers to connect with AOL and Windows Live (read the details of the announcement).
I had a chance to seat down with Ashima Singhal (Senior Product Manager) and Albert Kooiman (Senior Product Manager) from the Communication Server team to discuss the news focusing on Instant Messaging (IM) interoperability between different networks. Here's what they have to say about how all of this works:
This video is posted on the Channel9 Interoperability topic area: Instant Messaging Interoperability extended through XMPP (Jabber)
Jean-Christophe Cimetiere, Sr. Technical Evangelist
I have just returned from a busy two days in the Washington DC area for XML-in-Practice 2009. The event was held in the Arlington VA Hilton on September 30 and October 1. The conference’s purpose is to showcase real world applications and solutions that XML has enabled, enhanced and or made possible. The event was put together by the IDEAlliance and in tradition with the XML Conference, the tracks covered a number of different topics with technical depth and explored issues beyond the fundamentals. The tracks included the Electronic Medical Records Summit covering President Obama’s Economic Plan, eGovernment Program , Publishing & Media Program , Applications, Foundations and Interoperability Program, and a Tools Summit. You can also find the Conference Program.
I wore a few hats at the event, I was a member of the Program Advisory Committee, was a co-chair/track leader of the Applications, Foundations and Interoperability Program with G. Ken Holman from Crane Softwrights Ltd. and co-presented a session on Open Government and Interoperability with Dan Kasun who leads our US Developer and Platform Evangelism Public Sector team. The session gave us an opportunity to start a discussion about how Microsoft is participating, sharing our thoughts and work in engaging with Recovery.gov which is built on SharePoint and consumes multiple disparate data sources, interoperates with a number of other technologies, and to share our Open Government Data Initiative (OGDI) which complements Data.gov
Keith Hurwitz, our State and Local Government Evangelism Manager on Dan’s team, also participated in the Demo Jam at the reception hosted by one of our InteropVendorAlliance.org partners Mark Logic using OGDI. He dived deeper into OGDI in a session the next day titled Microsoft’s eGovernment Solutions: Government Transparency and Cloud Computing: Publishing government data in Windows Azure with Microsoft’s Open Government Data Initiative open source toolkit. Keith shared some of the thinking on how it can be used, it’s architecture and demonstrating some good examples, including the OGDI sample site and a visualization by a partner IDV Solutions called Visual Fusion that utilizes the OGDI data. OGDI is a great cloud solution for Government hosted on Windows Azure. It supports calling from a number of different languages including Flash, Java, Silverlight, Google Maps and Bing Maps. It also utilizes some of the Technical Bridges that have been highlighted on this blog including the Toolkit for PHP with ADO.NET Data Services, Open XML Daisy Translator. OGDI has also been used as a demo in our latest technical bridge published, Restlet Extension for ADO.NET Data Services.
I had a great opportunity to learn a bunch of new stuff and I would like to thank the organizers, IDEAlliance, it’s board, the track leaders and members of the advisory committee, our great speakers and to the attendees for the interaction and stimulating conversation. Special thanks to Joy Donat and Ken Holman for cat herding. I look forward to working with you all again at the next event.
Jas Sandhu Senior Technical Evangelist, Interop Vendor Alliance Manager, Interoperability Strategy Team Twitter@jassand, FriendFeed@jassand
ZendCon 2009 just wrapped up on Thursday. It was held at the San Jose McEnery conference center from the 19-22 October 2009. The conference is a great opportunity to catch up on PHP development and deployment. There are intensive tutorials and crash courses where developers can get up to speed quickly and get certified. An Un-Conference runs alongside the main sessions in an informal setting and is mostly presented by the attendees themselves. An exhibit hall has a few partners on display including our Microsoft Website Spark team. There was something for those new to the technology, and plenty to chew on for experts, with plenty of opportunities to network and get to know one another.
ZendCon is put together by Zend Technologies Inc. They are also is known as ‘the PHP Company’ in the industry. The founders, Andi Gutmans (CEO) and Zeev Suraski (CTO) are key contributors to PHP and the creators of the core PHP scripting engine, the Zend Engine as well as the Zend Framework. The company provides important leadership for PHP and other open source communities, and plays a central role in the explosive growth of PHP.The conference also serves as an opportunity for the rest of the contributor community to have a real-world venue to connect, which is an important thing in itself as they usually interact virtually. You get to hear about some of the key developments and trends right from the source and not just as the sessions.
Microsoft has been participating in ZendCon since 2006 and so we weren’t exactly strangers to this community. At this conference however we had some key information that we wanted to share with the community. These projects can be found on our Interoperability Bridges page and are also on this blog. Featuring …
PHP on Windows has come a long way on Windows! At first it was a framework you had to compile from source and run on a web server, it is now installable from many popular ftp/websites like windows.php.net. You can easily get PHP downloaded along with the rest of your favorite apps and tools on your web development stack by using the Microsoft Web Platform Installer. It’s tiny and free! The install for PHP happens in minutes once you pull it down from the web. More and more applications that are frequently being adopted can be found on the Windows Web App Gallery. For example applications such as Drupal, a popular Content Management System and Wordpress, a popular Blog engine are available on there.
Getting PHP on Windows easily installed for development and deployment was one of the most frequently asked question by most PHP developers and administrators I have talked to. Many are shocked when they first download the installer and in a few check boxes have a fully configured PHP environment and application running. You can also modify and create custom deployments of your applications fairly easily and have the same environment running in your staging and production environments in a few mouse clicks too.
The keynotes are a big draw at the event … Andi Gutmans in his kickoff and state of the union keynote, ‘PHP at the Heart of Mainstream IT’, spent some time on the partnership with Microsoft. You can read a little more about what was said on Information Week and Visual Studio Magazine. We were also on a special Keynote Panel, Developing on the Cloud. Vijay Rajagopalan, Principal Architect on the team and a person who is very instrumental in developing some of the technical bridges mentioned in this post participated on behalf of Microsoft. He was joined by a few other cloud players including Wil Sinclair (Zend), Doug Tidwell (IBM), Thorsten von Eicken (RightScale) and Dave Nielsen (CloudCamp). Stephen O'Grady (RedMonk) was the moderator. Most of the panels participants are from the Simple Cloud effort. The questions were mostly taken from the #ZendCon Twitterstream in real-time and that gave a bit of a dynamic feel to the panel and allowed observers to provide live and, most of the time, candid commentary. There was a range of discussion from developer tools and frameworks, to management and security, and to more abstract discussions about the offerings from different vendors in the industry.
Some notable sessions that covered Microsoft and Interoperability topics,
Neat thing about this community of web experts, they share their slides online! You can find them at the ZendCon 2009 and Unconference Joind.in event page.
There was a lot to learn! I had a very pleasant experience at the conference and I’m very glad that I attended. I even bumped into some old friends and made many new ones too. I would like to thank all the folks at Zend Technologies & S+S media for putting the conference together and to the PHP community for the great discussion on technology, the web, PHP and all sorts of geekdom … y’all rulz!
My last post, Microsoft, Interoperability at XML-in-Practice 2009 mentioned a project called Open Government Data Initiative (OGDI) which complements Data.gov by providing an SDK that allows you to easily access publicly available government data. It’s a pretty useful tool to quickly build applications on top of the datasets. I had a couple of questions on this project and how to interact with the PHP language and I wanted to highlight some simple ways on how you can do so.
The most interesting way you can do so is by using PHP via our Toolkit for PHP with ADO.NET Data Services. This project makes it easier for PHP developer to take advantage of the ADO.NET Data Services, a set of features now available in the .NET framework. It simply exposes data in a RESTful way via proxy classes that are generated by the toolkit at design time by using the metadata that is exposed. Your code at runtime uses these classes to work with the .NET based service over http. You can easily adapt the example given in the toolkit also described by Claudio here, to use the OGDI service.
You will want to install the toolkit as per instructions (/docs folder has a good Users Guide, it’s also available here) by copying all the files and folders into an accessible folder with the proper include_path reference in your php.ini file, as well creating the proper variables and enabling the proper extensions such as php_curl an php_xsl. This stumped quite a few folks as generating proxy classes using the PHPDataSvcUtil.php client will not work otherwise and neither will the proxy, editor or the entity you generate. With that done, you should be able to point to the uri, you want on the OGDI data service (e.g. http://ogdi.cloudapp.net/v1/dc/ ) and with that you can generate your proxy classes or Entity Container. You can find a working example that has a full browser for the data at http://ogdiphpsample.cloudapp.net/ , with source code available that you can reference. There is also an ADO.NET Data Services Client Library that can be found here in which you can build using Visual Studio 2008, Service Pack 1 or later and create a svc proxy using the above method.
There is also the ability to return your data in Geospatial form by using the Keyhole Markup Language (KML) which is compatible with popular mapping tools including Bing Maps and services from Google and yahoo. All you need to do is to append format=kml to your query just like the filters and you will be able to visualize the data that is returned. You will find some good examples of usage in the data catalog mentined earlier. That should add some interesting color to your application along with the other methods mentioned above if the data lends itself to the solution you create.