• Interoperability @ Microsoft

    More guidance and tool for porting iPhone & Android apps to Windows Phone

    • 0 Comments

    [Cross-posted on the Windows Phone Developer Blog]

    Windows Phone 7.5 “Mango” is just out of the door, smoothly going to users’ phones. So, if you or your friends haven’t started to look at Windows Phone, this is great timing.

    Today I’m excited to announce new guidance based on migration samples and a SQLite to SQL Server Compact database conversion tool. We hope that these new items combined with our previous extensive guides (for Android, iPhone, and Symbian Qt) will accelerate your ramp up time and improve your experience in porting apps to Windows Phone from iPhone and Android. Read below to see what we’ve got for you.

    Learn by example, from what you know

    First we have built a series of samples to aid you in the process of migrating your iPhone & Android applications over to Windows Phone by providing a look at the differences and similarities of each platform. Through analysis, you'll see how to implement the same functionality on Windows Phone as you have within your iPhone and Android application. We’ve started with 3 samples:

    • In-App Advertisements
    • Geo-Location
    • Group Messaging

    And for each sample, you’ll find the source code on Android/iPhone, the Windows Phone ported version and the porting notes. The content is available here for Android, and here for iPhone. And since we had a little bit of extra time, we added a bonus track for Android developers, with a “10 simple tasks: tips & tricks” article, where we explain how common simple tasks performed during Android development can be done when doing Windows Phone development.

    Finally, we also included a sample “Notification Service”, which shows how to build a multiplatform push-notification services supporting the different providers used by Android, iPhone and Windows Phone. Documentation is available here and sample code is here.

    SQLite to SQL Server Compact database conversion tool

    Windows Phone 7.5 “Mango” includes relational database support by way of Microsoft SQL Server Compact (SQLCE). So we thought it might be handy to create a tool to aid developers in getting their database (data, schemas and views) ported over to Windows Phone without too much trouble. Differences in data types between various database platforms can make the manual migration of your data a daunting task. SQLite2SQLCE is a tool developed to make the conversion process simple by converting a SQLite database into SQLCE while simultaneously creating the default classes needed to incorporate the new database into your Windows Phone application.

    clip_image002

    With the database conversion tool, we’ve also included a nifty tool designed to aid developers in converting their SQL queries to LINQ while simultaneously helping them to learn the new query language. LINQ (Language-Integrated Query) is a native data querying toolset integrated into the .NET Framework and use on Windows Phone.

    clip_image004

    Documentation and a simple migration sample are available here. And by the way, the source code of these utilities is available on CodePlex.

    Updated API Mapping tool

    The API Mapping tool has been expanded: it now covers a few more features like sensors (Camera, Compass & Gyro), multitasking (notification, app switching & background agents) , data access (SQL, file access), launchers/choosers.
    The API Mapping tool is available here: http://wp7mapping.interoperabilitybridges.com/

    Porting apps to Windows Phone: we’re here to help!

    Finally, once you’ve be through all our “Porting” guidance, I recommend that you follow at your own pace the “Window Phone Mango Jump Start” online video training.

    We encourage developers to leave comments and questions on any article. We are watching and we are open to feedback. If you see something missing or want to suggest new API mapping or porting topic to include just go to http://wp7mapping.uservoice.com.

    Jean-Christophe Cimetiere-@jccim

  • Interoperability @ Microsoft

    OpenNebula Clouds on Windows Server Hyper-V

    • 0 Comments

    More good news on Microsoft's commitment to Interoperability in the cloud: last week Sandy Gupta, the General Manager for Microsoft's Open Solutions Group, announced that Windows Server Hyper-V is now an officially supported hypervisor for OpenNebula.

    This open source project is working on a prototype for release next month and it will soon be possible for customers to build and manage OpenNebula clouds on a Hyper-V based virtualization platform.

    "Windows Server Hyper-V is an enterprise class virtualization platform that is getting rapidly and widely deployed in the industry. Given the highly heterogeneous environments in today’s data centers and clouds, we are seeing enablement of various Linux distributions including SUSE, CentOS, Red Hat, and CS2C on Windows Server Hyper-V, as well as emerging open source cloud projects like OpenStack -- and now OpenNebula," Gupta said in a blog post.

  • Interoperability @ Microsoft

    Nokia Developers: learn Windows Phone even faster

    • 0 Comments

    It’s my great pleasure to announce today a comprehensive package to leverage your development skills while learning to build applications for Windows Phone. The Microsoft & Nokia agreement has been described at length over the past few months and, like Matt Bencke highlighted, one of our goals has been to make it easy for Nokia Symbian developers to learn Windows Phone.

    So, folks from Microsoft and Nokia worked together to build a great package to help you get started. This helpful package contains the following tools and documentation to help you along the path to learning Windows Phone development:

    These complement the similar iOS/Android guidance & mapping work we released a couple months ago.

    The “Windows Phone Guide for Symbian Qt Application Developers” white paper is about 100 pages organized in 8 chapters.

    • clip_image002Chapter 1: Introducing Windows Phone Platform
      to Symbian^3 Qt Application Developers
    • Chapter 2: Windows Phone Application Design Guidelines
    • Chapter 3: Windows Phone Developer and Designer Tools
    • Chapter 4: C# programming
    • Chapter 5: Introducing Windows Phone Application Life Cycle
    • Chapter 6: Porting Applications to Windows Phone
    • Chapter 7: Windows Phone Example Applications
    • Chapter 8: Using the API Mapping Tool

    The white paper is available in different formats (HTML, DOCX & PDF). Feel free to leave comments, suggestions, and/or corrections on the online version.

    Chapter 6 introduces porting tutorials, in which you will find practical examples and tips on how to port your applications, like the RSS Reader applications or the “Diner” example, a catalog-type restaurant information application. From design consideration to data binding, the porting story addresses many aspects of the process that will be useful to you; the developer.

    clip_image004

    The full list of samples and source code is available to you.

    The addition of Symbian Qt to the Windows Phone API mapping tool is another perk we wanted to deliver in order to speed up the learning curve to Windows Phone. For this first iteration of the mapping, we’ve focused on the core libraries for Qt 4.7 for Symbian (QtCore, QtGui, QtLocation, QtNetwork, QtSensors, QtSql, QtXml, QtWebKit, QML Elements, QML Components ). We invite you to offer up ideas about what additional mapping you feel would make sense and would like to see included in the tool.

    clip_image006

    Finally, keep an eye on the “Nokia Windows Phone Training” roadshow, starting today in Paris, France. During this one day training event, you’ll learn how to take your ideas and get them running on the Windows Phone platform. Upcoming dates and locations for the roadshow are as follows: Milan, Italy (Sept 26), Madrid, Spain (Sept 29), Berlin, Germany (Oct 4) , London, United Kingdom (Oct 10) and Silicon Valley, USA - date & details coming soon!
    Similar events are also happening in Australia: Sydney (Sept 24-25[SOLD OUT], Oct 8-9), Melbourne (Oct 8-9[SOLD OUT, wait list]) and Brisbane (Oct 8-9).
    We realize this is only a few dates and locations, so for all the developers who want to learn Windows Phone, I recommend that you follow at your own pace the EXCELLENT “Window Phone Mango Jump Start” online video training. And stay tuned, there’s more to come!

    Start Today!

    We’re all eager to see the Nokia hardware running Windows Phone. Windows Phone Mango is just out of the door, so don’t wait, go get your copy of the “Windows Phone Guide for Symbian Qt Application Developers white paper and take advantage of its guidance!

    Jean-Christophe Cimetiere, Sr. Technical Evangelist
    @jccim - blogs.msdn.com/interoperability

    [Cross-posted on the Windows Phone Developer blog]

  • Interoperability @ Microsoft

    Community Participation

    • 1 Comments

    I'm heading off to Paris this weekend to participate in the annual Open Source Think Tank and Open World Forum events held in that wonderful city next week.

    I'm really looking forward to chatting with all those folk interested in this space, from enthusiasts to developers and end users.

    I will be joined at these events by my colleague and Technical Ambassador Craig Kitterman, as well as by our local market interoperability program lead Alfonso Castro.

    We will present technical sessions and participate in a number of panel discussions, ranging from what Open Source, Open Standards and Open Systems mean today to Open Source as an agent of change.

    Our participation in these Paris events complements our existing broad engagement with OSS communities, and we look forward to meeting our friends from the PhP, Node.js, Drupal, Joomla, and WordPress.communities as well as to making a lot of new ones.

    You can read more about our participation in Paris here, and we look forward to meeting those of you lucky enough to be attending in person.

  • Interoperability @ Microsoft

    Site Ready WebSockets

    • 0 Comments

    Today the Internet Explorer blog has a post on site ready Web Sockets, which talks about how WebSockets technology has made significant progress over the last nine months and how the Web gets richer and developers are more creative when sites and services can communicate and send notifications in real-time.

    As Brian Raymor, Microsoft's Program Manager for WebSockets notes in the blog, the standards around WebSockets have converged substantially, to the point that developers and consumers can now take advantage of them across different implementations, including IE10 in Windows 8.

    You can read the full post here.

  • Interoperability @ Microsoft

    The OData Producer Library for PHP is here

    • 3 Comments

    clip_image001

    I’m pleased to announce that today we released the OData Producer Library for PHP. In case you missed it, we released last year a client library that allows PHP applications to consume an OData feed, and with this new library it now easy for PHP Applications to generate OData Feeds. PHP developers can now add OData support to their applications so it can be consumed by all clients and libraries that support OData.

    The library is designed to be used with a wide range of data sources (from databases such as SQL Server and MySQL to data structures that are at the application level for applications such as CMS systems). The library is available for download under the open source BSD license: http://odataphpproducer.codeplex.com/
    In order to make the library generic so it can be used on a wide range of scenarios we didn’t take any dependency to specific data structures or data sources. Instead the library is based on 3 main interfaces that, when implemented by the developers for the specific data source, allow the library to retrieve the appropriate data and serialize it for the client. The library takes care of handling metadata, query processing and serialization/deserialization of the data streams.

    Two examples are included that show how a full OData service can be built using the library: the Northwind DB example uses an SQL Express DB as data source and the WordPress example that uses the WordPress’s MySQL DB Schema to expose a feed for Posts, Comments and Users.

    Quick Introduction to OData

    Open Data Protocol is an open protocol for sharing data. It is built upon AtomPub (RFC 5023) and JSON. OData is a REST (Representational State Transfer) protocol, therefore a simple web browser can view the data exposed through an OData service.

    The basic idea behind OData is to use a well-known data format (Atom feed or JSON) to expose a list of entities.

    The OData technology has two main parts:

    • The OData data model, which provides a generic way to organize and describe data. OData uses the Entity Data Model (EDM).The EDM models data as entities and associations among those entities. Thus OData work with pretty much any kind of data.
    • The OData protocol, which lets a client make requests to and get responses from an OData service. Data sent by an OData service can be represented on the wire today either in the XML-based format defined by Atom/AtomPub or in JavaScript Object Notation (JSON).

    An OData client accesses data provided by an OData service using standard HTTP. The OData protocol largely follows the conventions defined by REST, which define how HTTP verbs are used. The most important of these verbs are:

    • GET : Reads data from one or more entities.
    • PUT : Updates an existing entity, replacing all of its properties.
    • MERGE : Updates an existing entity, but replaces only specified properties.
    • POST : Creates a new entity.
    • DELETE : Removes an entity.

    Each HTTP request is sent to a specific URI, identifying some resource in the target OData service's data model.

    The OData Producer Library for PHP

    The OData Producer Library for PHP is a server library that allows to exposes data sources by using the OData Protocol.

    The OData Producer supports all Read-Only operations specified in the Protocol version 2.0:

    • It provides two formats for representing resources, the XML-based Atom format and the JSON format.
    • Servers expose a metadata document that describes the structure of the service and its resources.
    • Clients can retrieve a feed, Entry or service document by issuing an HTTP GET request against its URI.
    • Servers support retrieval of individual properties within Entries.
    • It supports pagination, query validation and system query options like $format, $top, $linecount, $filter, $select, $expand, $orderby, $skip .
    • User can access the binary stream data (i.e. allows an OData server to give access to media content such as photos or documents in addition to all the structured data)

    How to use the OData Producer Library for PHP

    Data is mapped to the OData Producer through three interfaces into an application. From there the data is converted to the OData structure and sent to the client.

    The 3 interfaces required are:

    • IDataServiceMetadataProvider: this is the interface used to map the data source structure to the Metadata format that is defined in the OData Protocol. Usually an OData service exposes a $metadata endpoint that can be used by the clients to figure out how the service exposes the data and what structures and data types they should expect.
    • IDataServiceQueryProvider: this is the interface used to map a client query to the data source. The library has the code to parse the incoming queries but in order to query the correct data from the data source the developer has to specify how the incoming OData queries are mapped to specific data in the data source.
    • IServiceProvider: this is the interface that deals with the service endpoint and allows defining features such as Page size for the OData Server paging feature, access rules to the service, OData protocol version(s) accepted and so on.
    • IDataServiceStreamProvider: This is an optional interface that can be used to enable streaming of content such as Images or other binary formats. The interface is called by the OData Service if the DataType defined in the metadata is EDM.Binary.

    If you want to learn more about the OData Producer Library for PHP, the User Guide included with the code provides detailed information on how to install and configure the library, it also show how to implement the interfaces in order to build a fully functional OData service.

    The library is built using only PHP and it runs on both Windows and Linux.

    This is the first release of a Producer library, future versions may add Write support to be used for scenarios where the OData Service needs to provide the ability to update data. We will also keep it up to date with future versions of the OData Protocol.

    Claudio Caldato, Principal Program Manager, Interoperability Strategy Team

  • Interoperability @ Microsoft

    PhoneGap mobile HTML5 framework adding support for Windows Phone Mango

    • 0 Comments

    [Cross posted from the Windows Phone Developer Blog]

    We’re very excited to join Nitobi to announce availability of a PhoneGap beta supporting Windows Phone Mango. This new option to build applications targeting Windows Phone gives more choices to developers. In particular, Web developers will be able to easily leverage their HTML5 skills to target Windows Phone.

    The beta version of the PhoneGap libraries can be downloaded from: https://github.com/phonegap/phonegap-wp7

    PhoneGapWindows Phone MangoIn case you’ve been so busy writing code for months and you’ve never heard about PhoneGap, it’s an open source mobile framework that enables developers to build applications targeting multiple platforms, by using standard web technologies (HTML5, CSS and JavaScript). On Windows Phone Mango PhoneGap leverages the new HTML5 support provided by IE9.

    We have been in touch with André Charland and Brian Leroux (Co-Founders of Nitobi the creator of PhoneGap), who are seeing a growing interest from the PhoneGap developer community to target Windows Phone. So we’ve started working with Nitobi, helping to speed up the development of Windows Phone Mango support in PhoneGap by providing engineering resources and technical support.

    The current beta version includes most of the basic features, and includes JavaScript APIs to use Windows Phone Mango features like:

    • Access Device Information (UDDI and stuff)
    • Add and search Contacts
    • Connection status (network / wifi connection status)
    • Alerts/Notification (alert and confirm)
    • Media Capture (Image and Audio)
    • Camera
    • Accelerometer
    • Geolocation

    Here’s a screen shot of the PhoneGap Unit Test application running on the Windows Phone emulator:

    PhoneGapTestApp

    I encourage you to read Nitobi’s blog post to get more details on how the whole process works.

    This is the first step toward having full PhoneGap support for Windows Phone Mango. Stay tuned, we will provide updates and more extensive demos as progress is made. With Windows Phone Mango Released to Manufacturing and developer tools hitting “Release Candidate”, it’s the perfect time to start testing, give feedback and join the PhoneGap open source project.

    Jean-Christophe Cimetiere, Sr. Technical Evangelist – Interoperability
    @jccim - blogs.msdn.com/interoperability

  • Interoperability @ Microsoft

    W3C Announces Process Innovations Making it More Authoritative And More Agile

    • 0 Comments

    The JTC1 and W3C jointly announced this week that the international vote of 8 web services specifications was successful, and that these Recommendations are now ISO/IEC JTC1 International Standards.

    Last year, the W3C applied to ISO/IEC JTC1 to become a “Publicly Available Specification (PAS) Submitter”, which would allow selected W3C Recommendations to be  voted on to become international standards.

    After ISO/IEC JTC1’s approval, W3C submitted the package of 8 web services specifications that was recently approved. With this approval, the W3C is now using successfully another process innovation, the second this month.

    So why is this announcement important? The best answer comes from the W3C press release, which says: "To many national bodies, the ISO and IEC brands will be more familiar than the W3C brand. In some cases, such as procurement, a country may be required to use ISO/IEC standards. For these reasons and others, W3C believes that formal approval by JTC 1 of W3C standards as International Standards will increase deployment, reduce fragmentation, and provide all users with greater interoperability."

    Microsoft already implements these ISO/IEC standards in several ways, especially in .NET Framework which uses all their major features. Thus, products which layer on top of the .NET Framework can also use these standards. Microsoft General Manager Bob Dimpsey notes this in his testimonial, while also pointing to the fact that this announcement validates W3C’s ability to build authoritative standards.

    “Web Services specifications are an important part of the interoperability surface for Microsoft’s enterprise and cloud products.  For example, while Web Services specifications are used to enable a Single-Sign-On experience using Access Control Services (ACS), they are also one key way for connectivity with Windows Azure applications through Windows Communication Foundation. We are very pleased that national bodies around the world have agreed to advance these specifications to become ISO/IEC Standards.  Microsoft strongly endorses this vote of confidence in W3C’s ability to build consensus across diverse communities and produce stable, interoperable, and useful standards,” he says.

    This is the second important announcement from W3C in recent weeks about process innovations.  As you may remember, on August 16 Community Groups launched to provide an open forum where developers can work with other stakeholders to develop, analyze, test, and promote specifications using a lightweight process with sound legal underpinnings. This announcement was well received, with 15 groups (as of this writing) already up and running, while 9 more have been proposed and are looking for supporters. 

    Press reaction has also been very favorable.  I particularly like Webmonkey’s summary: "Well, now is your chance to do something more than whine about the slow pace of standards on your blog. The W3C’s new community groups are designed so that anyone can contribute to the development of HTML. Just head over to the site and join a group that interests you. …  With the new community groups you don’t need to be a Google or Apple employee to catch the attention of the W3C’s members, you just need to sign up and post your ideas for everyone to read."

    Together, the Community Group and PAS Submission announcements add up to a compelling story: The W3C Recommendation process now has an “on ramp” allowing open and agile development of community specifications that can feed specifications into traditional Working Groups, and it has an “off ramp” that allows provably useful and interoperable Recommendations to become ISO/IEC JTC1 international standards. 

    Not all specs will travel the full route from informal brainstorming in a Community Group to formal standardization by ISO/IEC JTC1, but it’s good to have that full development path available. Not only can individuals get together and jumpstart potential new web standards but there is a full path to ISO/IEC JTC1 standardization. 

    Michael Champion, Sr. Program Manager

    Member of W3C Advisory Committee and Advisory Board

  • Interoperability @ Microsoft

    From DrupalCon London: Drupal and Microsoft – It’s Jolly Good!

    • 0 Comments

    imageIt’s been a busy week here in Croydon (just outside of central London), and Microsoft is very proud to be participating in our 5th DrupalCon. The most exciting bit is the clear progress that’s been made as a result of our engagements with the Drupal community. Last month also marked the 1 year anniversary with the work set out by The Commerce Guys on the Drupal 7 Driver for SQL Server and SQL Azure, a solid piece of work that is starting to see great uptake in the Drupal Community.

    There’s been solid progress, but the journey continues. Over the past 8 months we have received a great deal of feedback on Drupal on Windows and Windows Azure as well as tools/features that would create value to the community and their customers. We took these things to heart and once again engaged the community to help close the gaps in these areas.

    drush on Windows

    ProPeople has independently developed and released drush for Windows with the help of a comaintainer of Drush. From Drupal.org: “drush is a command line shell and scripting interface for Drupal, a veritable Swiss Army knife designed to make life easier for those of us who spend some of our working hours hacking away at the command prompt.”. For the Drupal power user, drush is a must and we are proud to have sponsored this initial release. Bringing this capability to Windows unlocks new scenarios for these users and we are really excited to see what next here!

    Windows Azure Integration

    There has been steady progress on the journey to delivering a great offering for Windows Azure and I would like to share with you the status of making this a reality.

    First, with version 4.0 of the PHP SDK for Windows Azure, the team at Real Dolmen released a new tool that provides the capability to “scaffold” Windows Azure projects based on templates. What this means is that for any project type or application, one can easily create a template that ensures the proper file structure, as well as automatic configuration of the application components. To help those who wish to run Drupal today on Windows Azure, the Microsoft Interop Team has released a simple scaffold template and instructions which provide a shortcut to getting up and running quickly with an instance of Drupal that will scale on Windows Azure. This solution is not going to work for everyone and we are continuing to invest on building an even simpler and more streamlined solution that will be truly ready for the masses – stay tuned for more info on this in the coming months.

    And second, The Commerce Guys have released a Windows Azure Integration module. This provides an easy method to offload media storage for your Drupal site to Windows Azure blob storage. There are a number of benefits to using the power of the cloud to store this type of data, regardless of where your application is actually hosted. By leveraging this module along with the Windows Azure Content Delivery Network (CDN), you can with just a few clicks have geo-distributed edge caching of all your Drupal site media assets across 24 CDN nodes worldwide – getting that content closer to the user providing greater performance and lower server loads on your web server(s).

    Finally, with continuous improvement of the Drupal 7 Driver for SQL Server and SQL Azure mentioned earlier, SQL Azure support is getting even better giving Drupal users the ability to have an auto-scale, fault tolerant database at their disposal with a couple of clicks without any of the headaches of configuration or management (all handled by Microsoft).

    We look forward to continued engagements and discussions with the Drupal community on these great Open Source projects and are really excited about the progress that has been made to date. Together we will have more great news to share in the coming months!

    Cheers!
    Craig Kitterman
    Sr. Technical Ambassador
    @craigkitterman

  • Interoperability @ Microsoft

    Try the June CTP of Windows Azure AppFabric Service Bus REST API from Java, PHP

    • 0 Comments

    Good news for all the PHP and Java developers out there: today we are publishing some Windows Azure AppFabric Service Bus samples just for you.

    Since the AppFabric Service Bus REST API can be used from almost all programming languages and operating systems, it makes it very easy for applications written on any platform to interoperate with each another through Windows Azure.

    To illustrate the point, we took the chat application that is already available as part of the Silverlight samples and made sample clients in PHP and Java that can all work seamlessly together.

    You can download the new PHP and Java samples, as well as all others for all other supported environments, from CodePlex.

    The Java application is implemented as a stand-alone client application and these are the steps you need to follow to build it:

    1. Edit the src\config\appfabric.properties file and add your Service Namespace, Issuer Name and Issuer Secret Key (obtained here).
    2. Compile the source using Apache Ant: navigate to the application directory in a command prompt and run “ant”.
    3. Once the build is complete, cd to the new “dist” directory and run the jar file: “java –jar AppFabricChat.jar”.

    To use the PHP app, you need to:

    1. Add your Service Namespace, Issuer Name and Issuer Secret Key to application\configs\appfabric.ini (obtained here). 
    2. Then point your webserver at the “public” directory and browse to the site.

    To set up a new site in IIS:

    1. Open “Internet Information Services (IIS) Manager”
    2. Click “View Sites”, then “Add Web Site…”
    3. Give the site a name such as AppFabricChat and point “Physical path” to the “public” directory of the PHP application.
    4. Pick port and hostname information, and click OK.
    5. Click the link under “Browse Web Site” to see the application.

    Note: If PHP isn’t enabled on your web server, use WebPI to install it.

    We would really like to get your feedback on these Java and PHP samples, so please feel free to ask questions and provide feedback on this at the Windows Azure AppFabric CTP Forum.

    Thanks!

    Alessandro Catorcini
    Principal Group Program Manager
    Interoperability Strategy Team

  • Interoperability @ Microsoft

    Microsoft @ OSCON 2011: We have become more open, let’s work together!

    • 0 Comments

    Gianugo Rabellino, Microsoft’s Senior Director for Open Source Communities, just finished delivering his keynote at OSCON in Portland.
    As Gianugo is now wandering around the OSCON session and expo floor, I thought it would we useful to give you a quick recap of what he just presented.

    During his keynote, Gianugo discussed how both the world and Microsoft are changing, saying that “at Microsoft we continue to evolve our focus to meet the challenging needs on the industry: we are open, more open than you may think.”

    Gianugo explained that the frontiers between open source, proprietary and commercial software are becoming more and more of a blur. The point is not about whether you run your IT on an Open Source stack or a commercial stack, the important thing is how you can assemble software components and build solutions on top of them using APIs, protocols and standards.  And the reality is that most IT systems are using heterogeneous components, he said.

    Looking at the cloud, the blur is even more opaque. What does Open Source or Commercial mean in the cloud?

    Gianugo put it this way: “In the cloud, we see just a continuous, uninterrupted shade of grey, which makes me believe it's probably time to upgrade our vision gear. If we do that, we may understand that we have a challenge ahead of us, and it's a big one: we need to define the new cornerstones of openness in the cloud. And we actually gave it a shot on this very same stage one year ago, when we came up with four interoperability elements of a cloud platform: data portability, standards, ease of migration & deployment, and developer choice.”

    Finally, Gianugo talked about how Microsoft’s participation in Open Source communities is real, and he used his keynote as an opportunity to announce a few new projects and updates.

    Gianugo Rabellino

    One way we interact with open source software is by building technical bridges, Gianugo said, giving an example on the virtualization front: announcing support for the Red Hat Enterprise Linux 6.0 and CentOS 6.0 guest operating systems on Windows Server Hyper-V (which follows this Linux Interoperability  announcement at OSBC a few weeks ago. )

    On the cloud development front, we are continuing to improve support for open source languages and runtimes, Gianugo said, announcing the availability of a new version of the Windows Azure SDK for PHP, an open source project which is led by Maarten Balliauw from RealDolmen, where Microsoft is providing funding and technical assistance.

    Maarten has all the details on the new features and link to the open source code of the SDK. This announcement also includes a set of cloud rules for the popular PHP_CodeSniffer tool that Microsoft has developed to facilitate the transition of existing PHP applications to Windows Azure. The new set of rules is available on Github.

    An on demand Webcast of Gianugo’s keynote will soon be available, and I’ll post the link to it here.

    Thanks!

  • Interoperability @ Microsoft

    Neo4j, the open source Java graph database, and Windows Azure

    • 0 Comments

    clip_image003[4]clip_image005[4] Recently I was travelling in Europe. I alwasy find it a pleasure to see a mixture of varied things nicely co-mingling together. Old and new, design and technology, function and form all blend so well together and there is no better place to see this than in Malmö Sweden at the offices of Diversify Inc., situated in a building built in the 1500’s with a new savvy workstyle. This also echoed at the office of Neo Technology in a slick and fancy incubator, Minc, situated next to the famous Turning Torso building and Malmö University in the new modern development of the city.

    My new good friends, Diversify's Magnus Mårtensson, Micael Carlstedt, Björn Ekengren, Martin Stenlund and Neo Technology's Peter Neubauer hosted my colleague Anders Wendt from Microsoft Sweden, and me. The topic of this meeting was about Neo Technology’s Neo4j, open source graph database, and Windows Azure. Neo4j is written in Java, but also has a RESTful API and supports multiple languages. The database works as an object-oriented, flexible network structure rather than as strict and static tables. Neo4j is also based on graph theory and it has the ability to digest and work with lots of data and scale is well suited to the cloud. Diversify has been doing some great work getting Java to work with Windows Azure and has given us on the Interoperability team a lot of great feedback on the tools Microsoft is building for Java. They have also been working with some live customers and have released a new case study published in Swedish and an English version made available by Diversify on their blog.

    I took the opportunity to take a video where we discuss the project, getting up on the cloud with Windows Azure and what's coming up on InteropBridges.tv,


    Video Interview on Channel9: Neo4j the Open Source Java graph database and Windows Azure

    Related to this effort and getting Java on Windows Azure there are a few more goodies to check out …

    Video of the presentation (skip ahead to ~12 mins) by Magnus (blog post) and Björn (blog post) at the Norwegian Developer Conference (NDC) on hosting a Java application on Windows Azure and their experiences using them together.

    clip_image009

    Magnus and Björn also got to do a radio interview on  .NET Rocks (mp3)  on Windows Azure and Java.

    image

    I want to thank the guys for taking the time to do the interview, meet with customers, getting some business out of the way and also being fabulous hosts and showing me around town. I am grateful for your Swedish hospitality!

    Resources:

    http://java.interoperabilitybridges.com/cloud

    http://www.windowsazure4j.org

    http://neo4j.org

    Jas Sandhu, Technical Evangelist, @jassand @openatmicrosoft

  • Interoperability @ Microsoft

    Windows Azure Supports NIST Use Cases using Java

    • 1 Comments

    clip_image001

    We've been participating in creating a roadmap for adoption of cloud computing throughout the federal government, with the National Institute for Standards and Technology (NIST) , an agency of the U.S. Department of Commerce, and the United States first federal physical science research laboratory. NIST is also known for publishing the often-quoted Definition of Cloud Computing, used by many organizations and vendors in the cloud space.

    Microsoft is participating in the NIST initiative to jumpstart the adoption of cloud computing standards called Standards Acceleration to Jumpstart the Adoption of Cloud Computing, (SAJACC).The goal is to formulate a roadmap for adoption of high-quality cloud computing standards. One way they do this is by providing working examples to show how key cloud computing use cases can be supported by interfaces implemented by various cloud services available today. Microsoft worked with NIST and our partner, Soyatec, to demonstrate how Windows Azure can support some of the key use cases defined by SAJACC using our publicly documented and openly available cloud APIs.

    NIST works with industry, government agencies and academia. They use an open and ongoing process of collecting and generating cloud system specifications. The hope is to have these resources serve to both accelerate the development of standards and reduce technical uncertainty during the interim adoption period before many cloud computing standards are formalized.

    By using the Windows Azure Service Management REST APIs we are able to manage services and run simple operations including simple CRUD operations, solve simple authentication and authorizations using certificates. Our Service management components are built with RESTful principles and support multiple languages and runtimes including Java, PHP and .NET as well as IDEs including Eclipse and Visual Studio.

    It also provides rich interfaces and functionality that provide scalable access to public, private and hosted clouds. All of the SDKs are available as open source too. With the Windows Azure Storage Service REST APIs we can use 3 sets of APIs that provide storage management support for Tables, Blobs and Queues with the same RESTful principles using the same set of languages. These APIs as well are available as open source.

    We also have an example that we have created called SAJACC use case drivers to demonstrate this code in action. In this demonstration written in Java we show the basic functionality demonstrated for the NIST Sample. We created the following scenarios and corresponding code …

    1. Copying Data Objects into a Cloud, the user is able to copy items on their local machine (client) and copy to the Windows Azure Storage without any change in the file; the assumptions are to have credential with a pair of account name and key. The scenario involves generating a container with a random name in each test execution to avoid possible name conflicts. The container uses the Windows Azure API. With the credential previously created the user prepares the Windows Azure Storage execution context. Then a blob container is created, with optional custom network connection timeout and retry policy, you are able to easily recover from network failure. Then we will create a block blob and transfer a local file to it. We will then compute a MD5 hash for the local file, get one for the blob and compare it to show there are equivalent and no data was lost

    2. Copying Data Objects Out of a Cloud, repeats what we do from the first use case, Copying Data Objects into a Cloud. Additionally we will include another scenario, where set public access to the blob container and get its public URL; we will then as an un-identified (public) user retrieve the blob using an http GET request and save it to the local file system. We will then generate a MD5 hash for this file and compare it to the originals we used previously

    3. Erasing Data Objects in a Cloud erases a data object on behalf of a user. With the credentials and data you created in the previous examples we will use the public URL of the blob and delete it by using its blob name. We will verify by using an http GET request to confirm that it has been erased.

    4. VM Control: Allocating VM Instance, the user is able to create a VM image to compute on that is secure and performs well. The scenario involves creating a Java Keystore and Truststore from a user certificate to support SSL transport (described below). We will also create Windows Azure management execution context to issue commands from and create a hosted service using it. We will then prepare a Windows Azure service package and copy it to the blob we created in the first use case. We will then deploy in the hosted service using its name and service configuration information including the URL of the blob and the number of instances. We can then change the instance count to as many roles we want to execute using what we deploy and verify the change by getting status information from it.

    5. VM Control: Managing Virtual Machine Instance State, the user is able to stop, terminate, reboot, and start the state of a virtual instance. We will first prepare an app to run as the Web Role in Windows Azure. The program will add a Windows Azure Drive to keep some files persistent when the VM is killed or rebooted. We will have two web pages, one where a random file is created inside the mounted drive, and another to list all the files on the drive. Then we will build and package the program and deploy the Web Role create as a hosted service on Window Azure using the portal. We will then create another program to manage the VM instance state similar to what we had done before in the previous use case, VM Control: Allocating VM Instance. We will use http GET requests to visit the first web page to create a random file on the Windows Azure Drive and the second web page to lists the files to show that they are not empty. We will then use the management execution context to stop the VM and disassociate the IP address and confirm this by visiting the second web page which will not be available. We will then use the same management execution context to restart the VM and confirm that the files in the drive are persistent between the restarts of the VM.

    6. Copying Data Objects between Cloud-Providers, the user is able to copy data objects from one Windows Azure Storage account to another. This example involves creating a program to run as a worker role where a storage execution context is created. We will use the container as per the first use case, Copying Data Objects into a Cloud. We will download the blob to a local file system. We will then then create a second storage execution context and transfer the downloaded file to this new storage execution context. Then as per the first use case we will create a new program and deploy it to retrieve the two blobs and compare and verify the contents MD5 hashes are the same.

    clip_image003[1]

    Java code to test the Service Management API

    clip_image005[1]

    Test Results

    clip_image006[1]

    Managing API Certificates

    For the Java examples (use cases 4-6), we need to have key credentials. In our download we demonstrate the Service Management API being called with an IIS certificate. We will take you through generating an X509 certificate for the Windows Azure Management API. We show the management console for IIS7 and certificate manager in Windows. Creating the self-signed server certificates and exporting them to the Windows Azure portal and generate a JKS format key store for the Java Azure SDK. We will then upload it to the Azure account and converting the keys for use in the Java Keystore and for calling the Service Management API from Java
    We then demonstrate the Service Management API using the Java Key tool Certificates. We will use the Java Keystore and export an X.509 certificate to the Windows Azure Management API. Then we upload certificate to an Azure account. We will then construct a new Service Management Rest object with the specific parameters and end by testing the Services Management API from Java

    To get more information, the Windows Azure Storage Services REST API Reference and the Windows Azure SDK for PHP Developers are useful resources to have. You may also want to explore more with the following tutorials:

    • Table Storage service, offers structured storage in the form of tables. The Table service API is a REST API for working with tables and the data that they contain.
    •  Blob Storage service, stores text and binary data. The Blob service offers the following three resources: the storage account, containers, and blobs
    • Queue Service, stores messages that may be read by any client who has access to the storage account. A queue can contain an unlimited number of messages, each of which can be up to 8 KB in size

    With the above tools and Azure cloud services, you can implement most of the Use Cases listed by NIST for use in SAJACC. We hope you find these demonstrations and resources useful, and please send feedback!

    Resources:

    Jas Sandhu, Technical Evangelist, @jassand

  • Interoperability @ Microsoft

    Jumpstarting Potential new Web standards Just got Easier and Faster

    • 0 Comments


    W3C has announced they are beta testing a W3C Community Process that allows groups to develop specifications and other useful documents under the W3C umbrella, but using a more lightweight process than the one used to create formal Recommendations.

    This means that jumpstarting potential new Web standards is becoming easier and faster at the W3C and that anyone, including non W3C members, will be able to participate. As Microsoft’s representative to the W3C Advisory Committee and an elected member of the Advisory Board, I’ve been involved in planning this for more than a year now.  We think that W3C is the right organization to host this new venue for collaboration on Web challenges, because they have experience in helping communities build real consensus and have a strong reputation as the most credible source of guidance on Web specifications.

    At Microsoft we, like many others, have been struggling with a challenge that has motivated us to participate in these planning discussions. Take the scenario where a group of web developers wish to get together to propose a new API that solves a particular problem they’re facing, but isn’t handled by Web standards today.  They work for different companies, large, and small, and whose employers participate in different standards organizations (or none at all). They know there are a bunch of legal details that might come back to haunt them, but don’t have the time or legal resources to identify them or craft a legal framework for the collaboration.  What can they do? 

    None of the options available right now are probably all that great for the group:

    • They could collaborate informally or via some established mailing list …. But this ignores questions such as “what happens if this idea takes off and one of us patents the ideas, or copyrights the document?”
    • They could work in an existing organization with a clear IPR policy for such matters… But these often charge membership dues, and / or make it difficult for non-members to participate.
    • Those who work for W3C members could start a group to address the problem and get the non-members “invited expert” status … but this is a time consuming process, and is overkill for just brainstorming possible approaches to a problem as opposed to standardizing a well-understood solution.  

    The W3C Community Process adds a new option for W3C members and non-members to work together to brainstorm specifications that could eventually become open web standards.  An earlier W3C blog post explains how:

    A Community Group is an open forum for developing specifications, holding discussions, developing test suites, and otherwise building communities around innovation. There are no fees, no charters, no end dates, and a lightweight set of participation agreements to make them fast to launch and open to all. Some Community Groups may produce results that are subsequently carried forward on the standards track, but others may not. That will be for the communities themselves to decide ...
    So, here’s how the process will work: to start a Community Group, you will pick a topic, write a short scope statement (for communications purposes), and get four other parties to support the creation of the group. Once you have enough support, the system we plan to have in place at launch will create the tooling (wiki, spam-controlled mailing lists, microblog, and other infrastructure) to support the group's activities.

    Community Groups will operate under a simple legal agreement intended to balance the concerns of implementers and potential IPR holders, and designed to provide a smooth transition to the W3C Patent Policy if a group ultimately decides to go in that direction.

    So, in summary, we are excited about this innovation and the opportunities it brings – both for us and for you. Jumpstarting potential new Web standards is becoming easier and faster at the W3C and all interested parties, including non W3C members, will now be able to participate.  We are also excited about the opportunity this brings to start working with you to propose new ideas in W3C Communities.

    Thanks,

    Michael Champion, Senior Program Manager, Interoperability Strategy Team

     

  • Interoperability @ Microsoft

    Microsoft working with Joyent and the Node community to bring Node.js to Windows

    • 1 Comments

    I am pleased to announce that Microsoft has joined Joyent and Ryan Dahl in their effort to make Windows a supported platform in Node.

    Our first goal is to add a high-performance IOCP API to Node to give developers the same high-performance/scalability on Windows that Node is known for, given that the IOCP API performs multiple simultaneous asynchronous input/output operations.

     At the end of this initial phase of the project, we will have official binary node.exe releases on nodejs.org, meaning that Node.js will run on Windows Azure, Windows 2008 R2, Windows 2008 and Windows 2003.

    You can read more about all this on nodejs.org as well as on Joyeur.com.

    While this is just the beginning of the journey to make Node.js on Windows a great platform for Node developers, I’m really excited about making this happen.

    So, stay tuned, as there’s a lot more to come!

    Claudio Caldato,

    Principal Program Manager, Interoperability Strategy Team

  • Interoperability @ Microsoft

    Building Java applications on Windows Azure gets easier with the new version of the Eclipse plugin

    • 0 Comments

    I’m pleased to announce that the June 2011 CTP (Community Technology Preview) of the Windows Azure Plugin for Eclipse with Java is now available for download. As the project manager and designer behind our Java tooling efforts for Windows Azure,  I invite you to take a look at our latest release and share your feedback to help us make further progress in helping Java developers take advantage of the Windows Azure cloud. At the time this blog goes live, I'll be sleeping, but my colleague Gianugo Rabellino would have announced the new CTP during his keynote "Behind the scenes: Microsoft and Open Source" at the Jazoon conference in Zurich.

    This plugin is intended to help Eclipse users create and configure deployment packages of their Java applications for the Windows Azure cloud. Its key features include:

    • Windows Azure project creation wizard
    • Helpful project structure
    • Sample utility scripts for downloading or unzipping files, or logging errors in the startup script when running in the cloud
    • Shortcuts to test your deployment in the Windows Azure compute emulator
    • Ant-based builder
    • Project properties UI for configuring Windows Azure roles (instance count, size, endpoints, names, etc)
    • [New in this CTP] UI for easy remote access configuration for troubleshooting purposes, including ability to create self-signed certificates
    • [New in this CTP] Schema validation and auto-complete for *.cscfg and *.csdef files

    To install, just point Eclipse’s “Install New Software…” feature at http://webdownload.persistent.co.in/windowsazureplugin4ej/. Also make sure to install al the prerequisites, as explained in detail here or here. For those who have already been playing around with our Ant-based command-line tools called Windows Azure Starter Kit for Java, note that your Starter Kit projects are compatible with this plugin, in fact the plugin builds on top of the Starter Kit.

    We’re continuously working on new tutorials and feature additions in our Windows Azure tooling for Java developers, so keep checking back with our main portal at http://java.interopbridges.com/cloud for further updates.

    Martin Sawicki, Senior Program Manager, Interoperability Strategy team

  • Interoperability @ Microsoft

    The WebSockets Prototype Gets Another Update

    • 8 Comments

    We have just updated the WebSockets prototype on our HTML5 Labs site, bringing the implementation in line with the recently released IETF WebSockets 09 Protocol Specification.

    This latest release updates both the server and client prototype implementations based on the IETF 09 specification, and brings no  significant feature changes.

    We will release additional HTML5 labs prototypes if there are further changes to the specification.

    Thanks!

    Claudio Caldato,

    Principal Program Manager, Interoperability Strategy Team

  • Interoperability @ Microsoft

    Being a polyglot developer II: learning Windows Phone from an Android perspective

    • 0 Comments

    As I wrote in this post “Being a polyglot developer: tools & guidance to help iPhone developers learn Windows Phone 7” about a few weeks ago, I think it is essential to be a “polyglot” developer. And although you might have a preferred language, opening your mind to others will bring considerable value to your abilities and your resume. It’s true that jumping from one platform or language to another can break your habits, but change can be stimulating and will ultimately expand your opportunities.

    Today we have released a comprehensive package for Android developers to easily learn Windows Phone and port their app to Microsoft’s phone platform. There’s no magic wand that will do the work for you, but we have put together a great package to help you get started.
    The package consists of:

    All the details are explained on the Windows Phone Developer blog.

    clip_image003I just want to point a few things. Mapping is tedious on-going work. Don’t expect a mapping for all of the APIs, simply because the platforms are built upon different architectures and user interfaces. We’re working on expanding the coverage of the API Mapping tool for both iOS and Android, but there will be some situations where you might be stuck, not knowing what way to port your feature over from iOS or Android to Windows Phone.

    We’re willing to help! We have hired the “App Guy” who crawls developer forums aggregating discussions from different locations to answer questions related to porting iOS and Android applications to Windows Phone, but hey, that’s just one guy for now, anybody can help out. Tell us if we’ve missed something and tag your questions/answers so that we can find them (see guidance) and show them off.

    Open for feedback

    When we opened the API mapping tool, we invited developers to offer up their ideas (http://wp7mapping.uservoice.com) about what mapping we should cover. With this new version including Android, we’ve also introduced the possibility to add comments directly on the existing mapping. So if you want to provide additional details or if you spot something inaccurate, just add a comment, we’re listening!

    Jean-Christophe Cimetiere, Sr. Technical Evangelist – Interoperability
    @jccim - blogs.msdn.com/interoperability

  • Interoperability @ Microsoft

    New Media Capture Audio Prototype Released

    • 0 Comments

    As we announced in April, we have been working hard on developing a prototype to cover the Media Capture API, a draft specification that defines HTML form enhancements to provide access to the audio, image and video capture capabilities of a device.

    As such, I am delighted to be able to announce that today we have the first release of the prototype, which includes Audio capabilities only, but we do plan to add image and video support over the next month or so.

    This first version of the Media Capture prototype implements the Audio portion of this W3C specification. We have also included a sample that demonstrates how to properly utilize the APIs that the IE9 plugin exposes.

    Once a user has connected their microphone and the drivers are properly installed, they can click on the microphone iconand  the web page will capture the sound until it either hears silence or it is stopped (the captured sequence is preserved), or cancelled (captured sequence is discarded). When the Play button is pressed, the sounds just captured will play back.

    A screenshot of the Audio Capture Demo that lets you record and play back captured sounds

    Our next prototype will support Speech recognition and will implement the Microsoft proposal available on the W3C website here and here. It will also include two implementations of the sample apps that are described in sections 5.1 and 5.2 of the draft.

    Then, after that, we will deliver another update to the Media Capture prototype that will add video capabilities. We are very excited about the ability of these extensions to the existing IE9 capabilities to showcase how everybody will be able to interact in an ever more natural way with the Web going forward.

    Again, my thanks to you for helping Microsoft and the Internet Explorer team build a better and more interoperable Web, and I encourage you to continue participating in the appropriate standards bodies to help finalize the specifications.

    So stay tuned for all this goodness!

    Thanks,

    Claudio Caldato,

    Principal Program Manager, Interoperability Strategy Team

  • Interoperability @ Microsoft

    Microsoft + Joomla at J and Beyond 2011, Trip & Videos

    • 0 Comments

    JAB_2011_728x90

    On May 6-8, 2011 we took part in a major Joomla! event, J and Beyond, that took place in Rolduc Abbey in the Netherlands. It was indeed an exciting opportunity to connect with the community and in an extraordinary venue. Not only was it a medieval spiritual place for worship but it was also a school and beyond theology they covered quite a few subjects. This time we had a bunch of geeks wandering the halls of this unique institution and at certain point it felt like a Harry Potter movie with a different kind of “wizard”ing going on Smile 
    JandBeyond Abbey Scene

    We presented some sessions  at the event …

    “IE6 RIP - send flowers” where we talked about moving to a modern browser.  We talked about what to look for in a web browser today. The features and standards that are presently available and updates that are close in HTML5. We also covered the work that we are doing with Internet Explorer moving forward including a discussion of what is here today with IE9 and our IE10 Platform Previews and what will be coming in our HTML5 labs to help create a better and more interoperable web. image
    IE6 RIP...Send flowers!

    “Microsoft and the Joomla! Community” we talked about our role working with open source communities and some of the activities Microsoft is involved in to make the Joomla experience great on our platform. We discuss what we have done to help make Joomla! accessible to more users on Windows, IIS, WebMatrix and the work around multi-db support.
    image
    Microsoft and the Joomla! community

    We also had Sudhi Seschala, our partner from Hooduku join us, and who delivered a session on “Joomla 1.6 support multiple databases” covering the work he’s been doing to give the Joomla community more db options including the integration work that he’s been doing for Joomla 1.6 and SQL server and with Joomla 1.6 and SQL Azure.
    image
    Joomla! 1.6 support multiple databases

    We also had the opportunity to be interviewed by our friends at JoomStew Radio, Alice Grevet  and Dianne Henning and a guest interviewer, Henrik Hussfelthad who dragged us over there and I was joined by Fernanda Badano, also for Microsoft, Hagen Graf from Cocoate and Toni Marie and Victor Drover from Anything Digital join us for a round of discussions. The podcast is available at JoomStew at J and Beyond 2011 - Part 4 MP3 Download.

    JoomStew at Jab11 - Part 4 - Anything Digital and Microsoft

    I also got a chance to interview many friends from the Joomla! community including Ryan Ozimiek, Sudhi Seshachala, Louis Landry and many more which will be coming online at our InteropBridges.tv on Channel9 or by clicking at the images below …

    Joomla! Community and Microsoft, Interview with Ryan Ozimek @ J and Beyond 2011
    Jas Sandhu @jassand chats with Ryan Ozimek @cozimek, President of Open Source Matters (OSM), the non-profit organization that provides organizational, legal and financial support for the Joomla! open-source project, at the J and Beyond 2011 conference in Kerkrade, Netherlands. We talk about what Ryan does at OSM, the conference and Microsoft’s participation with the community including the work on mutli-db work supporting SQL Server and SQL Azure , Joomla in WebMatrix and more.
    clip_image001

     

    Joomla! Community and Microsoft, Interview with Sudhi Seshachala @ J and Beyond 2011
    Jas Sandhu @jassand chats with Sudhi Seshachala, Founder & CTO at Hooduku at the J and Beyond 2011 conference in Kerkrade, Netherlands. We talk about what Sudhi’s involvement with the  Joomla! community, the conference, his work on mutli-db work supporting SQL Server and SQL Azure  and working with Microsoft.clip_image002

     

    Joomla! Community and Microsoft, Interview with Louis Landry @ J and Beyond 2011
    Jas Sandhu @jassand chats with Louis Landry @louislandry, a core developer and leadership team member for the Joomla! open-source project, at the J and Beyond 2011 conference in Kerkrade, Netherlands. We talk about what Louis role today is, the conference, where the project is heading in the future, the work on mutli-db work supporting SQL Server and SQL Azure and Microsoft’s participation with the community.
    clip_image003

    We’ll be publishing more videos on InteropBridges.tv with more community members soon.

    We had a great time there especially with connecting the diverse set of folks who represented the community.  I would like to thank the organizers of J and Beyond 2011, Ryan, Sudhi, Louis and all our friends who joined us from the Joomla! community. I look forward to seeing you all again at soon.

    Jas Sandhu, Technical Evangelist, @jassand 

  • Interoperability @ Microsoft

    New SDK and Sample Kit demonstrates how to leverage the scalability of Windows Azure with PHP

    • 0 Comments

    From the floor of the PHP Tek Conference in Chicago, with my colleague Peter Laudati, we’re excited to announce the availability of the Windows Azure SDK for PHP version 3.0. This Open Source SDK gives PHP developers a “speed dial” library to take full advantage of Windows Azure’s coolest features. On top of many improvements and bug fixes for this version (see the list from Maarten Balliauw’s preview), we’re particularly excited about the new service management possibilities and the new logging infrastructure.

    Beyond the new features, we also feel that version 3.0 of this SDK marks an important milestone because we’re not only starting to witness real world deployment, but also we’re seeing more people joining the project and contributing. We’ve been talking a lot to Maarten Balliauw from RealDolmen who is the lead developer on this open source project and he also shares the same sentiment: “It’s interesting to see the Windows Azure SDK for PHP mature: people are willing to contribute to it and incorporate their experience with the SDK and the platform.

    The most compute intensive part of Facebook app www.hotelpeeps.com is powered by PHP on Windows Azure

    clip_image001My colleague Todi Pruteanu from Microsoft Romania worked with Lucian Daia and Alexandru Lapusan from Zitec to help them get started with PHP on Windows Azure. The result is impressive.  The most compute intensive part of the Hotel Peeps Facebook application is now running on Windows Azure, using the SDK for PHP, as well as SQL Azure. Read the interview of Alexandru to get the details on what and how they did it (you can also check out the case study here). I like this quote from the interview: “HotelPeeps Trends running on the Windows Azure platform is the epitome of interoperability. Some people think that a PHP application running on Microsoft infrastructure is science fiction, but that’s not the case.
    Another interesting aspect is also the subsequent contribution by Zitec of an advanced “logging” component to the Windows Azure SDK for PHP. This new component provides the possibility of storing logs from multiple instances in a centralized location, namely Azure Tables.

    More contributions from the community

    As the SDK gets more widely adopted, there is an exciting trend toward more community involvement. For example, Damien Tournoud from the CommerceGuys who is working on developing the Drupal integration module for Windows Azure, recently contributed a patch fixing bugs related to inconsistencies in URL-encoding of parameters in the HTTP_Client library.  As we continue to improve the SDK to ensure great interoperability with popular applications like WordPress, Drupal and Joomla! we look forward to engagement more deeply with those communities to make the experience even better.

    New! Windows Azure Sample Kit for PHP

    Today we are also announcing the Windows Azure Sample Kit for PHP.  It is a new project hosted on github that will be the primary repository for all sample php code / apps that developers can use to learn how to take advantage of the various features of Windows Azure in php.  Today we are releasing two samples to the repository: the Guestbook application (example of how to use the Windows Azure storage objects – blobs, queues and tables as well as a simple web/worker pattern) and “Deal of the Day” (more on this one later).  We look forward to feedback on the samples and I am also hoping to see some forks and new samples coming from the community!

    New features to easily manage auto-scaling of applications on Windows Azure

    As I mentioned the version 3.0 of the Windows Azure SDK for PHP includes a new “service management” library, which provides easy ways to monitor the activity of your running instances (Windows Azure web roles & workers roles virtual machines), and to start/stop automatically instances based on usage. Then it becomes easy for you to decide which parameters (CPU, bandwidth, # of connections, etc.) and thresholds to use to scale up and down, and maintain the optimum quality of service for your web applications.

    The scenario is simple: let’s say you are running an e-commerce site and you want to run daily promotions to get rid of overstocked items. So you’re going to offer crazy deals every day starting at 8am, each deal being advertised to your subscribers by an email blast. You will have to be ready ready to absorb a major spike in traffic, but the exact time is difficult to predict as the news of the deal may take some time to travel through twitter.  When the traffic does materialize, you want the site to run & scale independently – providing service assurance but also minimizing your costs (by shutting down unnecessary capacity as loads go down).  This is the scenario for the “Deal of the Day” sample application.

    What’s the “Deal of the Day” (DotD) sample app and what to expect?

    dotdscreenDeal of the Day (DotD) is a sample application written in PHP to show how to utilize Windows Azure’s scalability features from within PHP. We’ve kept is simple and built it in a way that’s easy to deconstruct and learn from.

    As a sample application, DotD did not undergo extensive testing, nor does the code include all the required error catching, security verifications and so on, that an application designed for real production would require. So, do expect glitches. And if you do witness issues, send us a screenshot showing error messages with a description. I’ll get a prize to the first 100 bug trackers!

    However, to give you an opportunity to see the sample application working, we’ve decided to deploy a live version on Windows Azure to let you test it for real and give the chance to win actual fun prizes! (and sorry for our friends outside of USA, but prizes can be shipped only to a US address Sad smile)

    Wanna play? Just go this way: http://dealoftheday.cloudapp.net/
    Looking for the code, just get it on GitHub here: https://github.com/Interop-Bridges/Windows-Azure-Sample-Kit-4-PHP/tree/master/dealoftheday_sample

    Architecture of the DotD sample app

    fh_diagram2The DotD sample app is comprised of several pieces which fit together to create the overall experience:

    • Storage –responsible for containing all business data (product information & images, comments) and monitoring data (diagnostic information). All data is stored in Windows Azure Tables, Queues, and Blobs.
    • Web Roles – Point of interaction of the application with visitors. Number of active Web Roles varies depending on the load. They are all the same, running the core of the applications logic, producing the user interface (HTML) and handling user inputs. All Web Roles share the storage elements described above.
    • Worker Roles – Worker roles sit in the background processing events, managing data, and provide load balancing for scale out. The diagram shows two Worker Roles, one for managing the applications “scalability” (adding/removing Web roles) and one for asynchronously processing some of the applications tasks in the background (another way to achieve scalability)
    • Content Delivery Network (CDN) – Global content distribution that provides fast content delivery based on visitor location.

    Each of these parts is essential to the performance and scalability of DotD and for more details I invite you to read this introduction article, and then to dig deeper by reading part I (Performance Metrics) and Part II (Role Management) of our “Scaling PHP applications on Windows Azure” series. We will expand the series with additional in depth articles, the next one will be around monitoring the performance of your app.

    We look forward to your feedback on the SDK and the Sample Kit.  Once again the URL is https://github.com/Interop-Bridges/Windows-Azure-Sample-Kit-4-PHP

    Cheers!

    Craig Kitterman
    Twitter:
    Web: http://craig.kitterman.net

  • Interoperability @ Microsoft

    HTML5 Spec Hits Last Call Status

    • 0 Comments

    Late yesterday the W3C’s HTML Working Group announced that the HTML5 specification has reached Last Call status.

    Last Call is the point at which W3C thinks the group’s work has reached a point of reasonable stability. Last Call is also essentially a call for all communities to confirm the technical soundness of the specification, after which the group will shift focus to gathering implementation experience and building a comprehensive test suite.

    Microsoft staffers, along with many other individuals and 194 participants from 54 organizations - including Adobe, Google, Mozilla, Apple and Opera Software - all participate in the Working Group developing the specification for HTML5, the next version of the platform-neutral HyperText Markup Language standard used worldwide for rendering Web pages.

    HTML5 is the first new revision since HTML 4.01 was released in 1999, and will include built-in video and audio, a "canvas" element for two-dimensional graphics, new structural labels such as "article" to smooth programming, and a codified process to consistently interpret the hodgepodge styles of real-world Web pages, even when improperly coded.

    In a press statement the W3C called for broad review of HTML5 and five related specifications published by the W3C HTML Working Group, which constitute the foundation of W3C's Open Web Platform. The W3C also reconfirmed that, as previously announced, these specifications are on track to become stable standards in 2014.

    While feedback is expected on how the current draft specification implements the HTML5 features, W3C expects that the specification is largely feature complete and that any additional features will be limited to those necessary to resolve issues raised during the Last Call period, which will be open for the next 10 weeks until August 3. After that, feedback will be taken only from implementers and through trials of the test suite.

    Tim Berners-Lee, the W3C Director, invited additional comment. "We invite new voices to let us know whether the specification addresses their needs. This process for resolving dependencies with other groups inside and outside W3C is a central part of our mission of ensuring the Web is available to all. W3C staff will provide the HTML Working Group Chairs the support they need to move forward, and to ensure that the specification meets W3C's commitments in areas including accessibility, internationalization, security, and privacy," he said.

    The Last Call milestone is all the more important given the difficult decision made by the W3C several years ago to undertake a collaboration with a wider group of invited experts to bring the HTML5 innovations into a formal Recommendation. This collaboration has had many challenges, but reaching last call shows that it is working.

    The W3C HTML Working Group also set an ambitious timeline almost a year ago, and this announcement of Last Call meets that timeline.

    Getting to this point has required compromise and good will from all participants, and we are very pleased to see the degree of consensus across several sub-communities that came to agreement.

    However, this does not mean that the HTML5 specs are “done,” just that the Working Group has found solutions that reached some level of consensus for the open issues. It is now time for a wider audience of stakeholders to review these documents and give their feedback.

    Rigorous testing of the specification against implementations in browsers and other products will help drive disciplined and technical discussions of issues that come up during the Last Call period.

    As Philippe Le Hégaret, the W3C manager responsible for HTML5, notes: “reaching agreements in this large a community is a tremendous achievement. There remain some important issues, but I am confident that the broader community will help us resolve them."

    Looking ahead, we are extremely hopeful that the final HTML5 Recommendation can be completed by 2014 as per the current timeline. But, to be clear, developers can already use HTML5 now and the W3C is encouraging them to do so.

    Because HTML5 anchors the Open Web Platform, the W3C has also started work on a comprehensive test suite to ensure the high levels of interoperability that diverse industries demand. Microsoft has already donated test cases to the current test suite. While it's the most comprehensive test suite of HTML5 so far, it is far from complete. But the test suite is an important step as it identifies differences in implementation and encourages implementers to fix deviations from the specification.

    The W3C has invited test suite contributions from the community and, earlier this year, dedicated new staff to drive development of an HTML5 test suite. Its first task is to expand the existing test framework by mid-2011, which will encourage browser vendors and the community to create test cases.

    Microsoft is pleased that this Last Call milestone has been reached. We regard it as a great step forward and look forward to continuing to work with the hundreds of other members of the HTML Working Group to advance the specification.

    Thanks!

    Paul Cotton

    Co-Chair: HTML Working Group

  • Interoperability @ Microsoft

    New WebSockets Update Continues to Interoperate with Firefox, Eclipse's Jetty

    • 0 Comments

    The WebSockets prototype has been updated on our HTML5 Labs site, bringing the implementation in line with the recently released WebSockets 07 Protocol Specification.

    This latest release updates both the server and client prototype implementations based on 07 specification. The majority of the changes in this update are around client-to-server masking. 

    In the WebSockets 06 Protocol Specification, the entire frame was masked using the 32-bit masking-key, which appeared before the frame. Now,  in the 07 protocol spec, only data following opcode and length are masked, again using the 32-bit masking-key that appears after opcode and length.

    We are also hosting a WebSocket endpoint, which implements the proposed IETF interop tests, which are defined here.  You can find the WebSocket endpoint here: ws://html5labs.cloudapp.net:4502/interoptests.

    In addition, our client and server implementations continue to be interoperable with Firefox and Jetty (an open source project providing an HTTP server, HTTP client, and javax.servlet container, developed by the Eclipse community.)

    This prototype forms part of our HTML5 Labs Web site, a place where we prototype early and not yet fully stable drafts of specifications developed by the W3C and other standard organizations. The WebSocket API is currently being standardized by the W3C and the WebSocket protocol is being standardized by the IETF.

    Building these prototypes in a timely manner will also help us have informed discussions with developer communities, and give implementation experience with the draft specifications that will generate feedback to improve the eventual standards.

    This is the fourth update to our WebSockets prototype since it was released on the HTML5 Labs site in December, the IndexedDB prototype has been updated to bring it in line with the latest version of the specification, and we recently added a new WebSockets demo.

    We anticipate further HTML5 Labs prototypes of WebSockets when the current Last Call review is completed and an updated draft comes out.  We will also update the prototype when the W3C Web Applications Working Group updates the API specification to reflect the resolution of a currently open bug.  There appears to be an emerging consensus in the discussion and we expect an update of the editor’s draft soon.

    Coming next is the Media Capture API prototype, a draft specification that defines HTML form enhancements to provide access to the audio, image and video capture capabilities of a device.

    The first release of the prototype includes Audio capabilities only, but we plan to add video support shortly after the release of the first version.

    So, stay tuned for the Media Capture  prototype and other new ones that we are working on right now.

    Thanks!

    Claudio Caldato,

    Principal Program Manager, Interoperability Strategy Team

  • Interoperability @ Microsoft

    Podcast: HTML5 Labs on Developer Smackdown

    • 0 Comments

    I had the opportunity to participate in the Developer Smackdown podcast a few weeks ago at MIX Last Vegas.  We chatted about HTML5 labs: what it is and what it means for web developers are are interested in the bleeding edge of web technologies.

    Listen here:

    Download here.

    And don’t forget to subscribe to Developer Smackdown here.

    Enjoy!

    Craig Kitterman
    Twitter: @craigkitterman
    Web: http://craig.kitterman.net

  • Interoperability @ Microsoft

    The FileAPI Prototype Gets Updated

    • 0 Comments

    I am happy to let you know that today we have made available an update to the FileAPI prototype we released on HTML5 Labs last month.

    The Interoperability team at Microsoft developed the File API prototype, which is based on the evolving  W3C specification that provides an API for representing file objects in web applications.

    This update implements  the changed behavior in File.slice explained by a note in the latest version of the w3c spec:

    The slice method previously had different semantics, which differed from both Array.prototype.slice and String.prototype.slice [ECMA-262]. This difference was an oversight which has been corrected in this edition of the specification. Some user agents implemented the previous semantics, notably Firefox 4, Chrome 10, and Opera 11. These user agents have agreed to vendor-prefix their slice implementations in subsequent releases.

    We also included a minor update to the existing features by adding support for selecting and reading multiple files sequentially via the FileList Interface.

    The prototype includes a simple demo that shows how FileAPIs can be used to select images on the local machines, preview them on the browsers, and it can easily extended to add the ability to upload the images on the server.

    As you may know, HTML5 Labs is the place where Microsoft prototypes early and unstable specifications from web standards bodies such as W3C. Sharing these prototypes helps us have informed discussions with developer communities, and enables us to provide better feedback on draft specifications based on this implementation experience.

    So far, we have released three updates to our WebSockets prototype since it was released on the HTML5 Labs site in December, the IndexedDB prototype has been updated to bring it in line with the latest version of the specification, and we recently added a new WebSockets demo.

    Coming next is the Media Capture API prototype, a draft specification that defines HTML form enhancements to provide access to the audio, image and video capture capabilities of a device. The first release of the prototype includes Audio capabilities only, but we plan to add video support shortly after the release of the first version. So, stay tuned for the Media Capture  prototype and other new ones that we are working on right now.

    Thanks,

    Claudio Caldato,

    Principal Program Manager, Interoperability Strategy Team

  • Interoperability @ Microsoft

    Being a polyglot developer: tools & guidance to help iPhone developers learn Windows Phone 7

    • 0 Comments

    To be honest, I used to be a developer coding for a living, and now I’d say I’m a savvy hobbyist. I’m surrounded at work by brilliant developers, and even if I write very little code, I’m still very passionate about it. So, assuming you are like me a happy coder, the joy of developing software all comes down to a few things:  

    • Building something cool that users will enjoy
    • Getting rewards from users and recognition from peers
    • Learning how to solve new challenges and build novel features.

    Even if you have a solid expertise on a particular platform/language, I think it is essential to be a “polyglot” developer. In other words, you might have a native or preferred language, but opening your mind to others can be very stimulating and will bring considerable value to your abilities and your resume.

    Jumping from one platform or language to another can introduce breaking changes in your habits, but ultimately I believe change is very healthy for any individual and as a side effect it will expand your opportunities.

    If you are a .NET developer, learning Windows Phone development is not really “change.” Instead, it is more of a continuum, where you just add new features to what you already know. If you are an iPhone developer, new to Windows Phone (and .NET), yes this is different. But don’t worry. The learning curve is not as steep as you would imagine.

    So you may ask: “how can I leverage my iPhone development expertise to build Windows Phone 7 applications?”

    imageI’d just tell you: there’s no magic wand that will do the work for you, but we have put together a great package to help you get started. It’s available at http://windowsphone.interoperabilitybridges.com/, and I’ve just posted the announcement on the Windows Phone Developer blog:
    Leveraging your iPhone development expertise to build Windows Phone 7 applications

    Feel free to pass along to your friends Smile

    Jean-Christophe Cimetiere, Sr. Technical Evangelist – Interoperability
    @jccim - blogs.msdn.com/interoperability

  • Interoperability @ Microsoft

    Microsoft + Joomla! at J and Beyond 2011

    • 0 Comments

    imageIt is not that often that we have the chance to visit a medieval abbey in Europe…but that is exactly what we are doing this May: we are sponsoring and attending J and Beyond, a major Joomla! event that will take place on the Rolduc Abbey in the Netherlands on May 6-8 2011.  Besides being thrilled about the event venue we are also excited and looking forward to the opportunity to interact, engage and listen to the Joomla! community. At Microsoft we’ve put a lot of effort in making Joomla! work really well on our platform and created an integrated development and deployment experience through WebMatrix to make it even simpler for developers. 

    We’ve got a couple of fun sessions planned and we’re looking forward to continuing the conversation and engagements with the Joomla! community at our booth as well:

    • “IE6 RIP - send flowers” with Jas Sandhu (@jassand). Join us in moving users to a modern browser and be free of Internet Explorer 6! Jas will talk about what to look for in a web browser today. The features and standards that are presently available and updates that are close in HTML5. We’ll be covering the work we are doing with Internet Explorer moving forward including a discussion of what is here today with IE9 and our IE10 Platform Previews and what will be coming in our HTML5 labs to help create a better and more interoperable web.
    • “Microsoft and the Joomla! Community” with Grace Francisco (@gracefr, the liason for the Joomla community within Microsoft). Grace will talk about your role working with open source communities and some of the activities Microsoft is involved in to make the Joomla experience great on our platform.

    We want to give a shout out to our friend Sudhi Seschala from Hooduku who is delivering a session on “Joomla 1.6 support multiple databases” covering the work he’s been doing to give the Joomla community more db options including the integration work that he’s been doing for Joomla 1.6 and SQL server and with Joomla 1.6 and SQL Azure.

    Looking forward to being at J and Beyond soon. Hope to see you there,

    Jas Sandhu, Technical Evangelist, @jassand

    Grace Francisco, Sr. Program Manager, @gracefr

  • Interoperability @ Microsoft

    WordPress on Windows Azure: A discussion with Morten Rand-Hendriksen

    • 0 Comments

    I finally had the chance to sit down with Morten at MIX11 in Las Vegas last week to discuss the work he is doing on WordPress with Windows Azure to solve some common challenges with multi-site WordPress installations using traditional hosting.

    In Morten's words: "I am building a garden just for me and my clients...I control it...but the security and management of the garden is run by a very large company...they also will make sure that it works!"

    Read Morten's blog on http://www.designisphilosophy.com and find him on Twitter @Mor10

    Enjoy!

    Craig Kitterman
    Twitter:
    Web: http://craig.kitterman.net

  • Interoperability @ Microsoft

    New features in the April 2011 CTP the Windows Azure Plugin for Eclipse with Java

    • 0 Comments

    In case you missed the previous announcement, the plugin adds to Eclipse a set of wizards and dialogs which guide the Java developer through the configuration of all relevant projects settings when targeting Windows Azure. The plugin builds on top of the Windows Azure Starter Kit for Java, which is primarily a command-line toolset based on a simple Windows Azure project template which includes elements required to package and deploy your Java application to Windows Azure.

    As we said in our previous blog posts this project is evolving quickly. Our goal is to use the stream of community feedback to nail down the correct experience for Java developers. So today, we’re taking the next iteration forward and announcing the April 2011 Community Technology Preview (CTP) of the Windows Azure Plugin for Eclipse with Java. Here’s the list of the features, including the new ones:

    1. Eclipse wizards to create and build new Windows Azure projects in Eclipse,
    2. Shortcuts to deploy and start the project in the Windows Azure Compute Emulator,
    3. Association of *.cscfg and *.csdef files with the Eclipse XML editor for easier XML editing,
    4. New with April CTP: Eclipse wizards to add/remove/configure Windows Azure roles for your project during project creation or project properties editing
    5. New with April CTP: Eclipse wizards to add/remove/configure role endpoints during project creation or project properties editing (ports)

    clip_image002

    The Windows Azure Plugin for Eclipse with Java is an Open Source project released under the Apache 2.0 license, and the source code is available at: http://sourceforge.net/projects/waplugin4ej.
    The best way to get started is to go through the steps explained in our updated tutorial: Deploying a Java application to Windows Azure with Eclipse .

    As always, we look forward to your comments and feedback!

    Craig Kitterman
    Twitter: @craigkitterman
    http://craig.kitterman.net

  • Interoperability @ Microsoft

    WebSockets and HTML5 Labs @ MIX11

    • 0 Comments

    Yesterday at MIX11 in Las Vegas, I had the pleasure of delivering a breakout session titled “Hot from the labs: HTML5 Web Sockets” along with my colleague Paul Batum. As it turns out there are a lot of people interested by WebSockets technology, and there was not a seat to be had, with standing room only. The streaming video of the session just went live, so I thought I would share this with all of you who are interested in WebSockets but were unable to attend our session. Enjoy!

    Don’t forget to stop by http://html5labs.com to experiment with the latest prototypes of emerging HTML5 standards and send us your feedback!

    Cheers,

    Craig Kitterman
    @craigkitterman
    http://craig.kitterman.net

  • Interoperability @ Microsoft

    FileAPI Prototype Added to HTML5 Labs, More Prototypes Coming

    • 0 Comments

    Last December, when we launched HTML5 Labs, the place where Microsoft shares prototypes of early and unstable standards, we committed to regularly update these prototypes and add additional prototypes based on what will most help with the testing of the specifications.

    Ongoing Prototype Updates, Spec Analysis and Investigation

    Since then, we have updated the WebSockets prototype three  times and we have analyzed a number of specifications, with three new areas currently under active investigation. Today I am truly pleased to announce that we have also added a new prototype -  FileAPI  - as well as made an announcement on our plans for the MediaCapture API. 

    We have also been working with, and listening to, the feedback from early users, and have updated the HTML5 Labs site and given it a new look and feel.

    Introducing the FileAPI Prototype

    The Interoperability team at Microsoft developed the File API prototype, which is based on the draft W3C standard that provides an API for representing file objects in web applications. The main goal here is to solve an old problem for web applications that want to allow the user to select some files and, for instance, upload them on the server in a secure manner. The prototype includes a demo that shows how FileAPIs can be used to select some images on the local machines, preview them on the browsers, and then upload them to the server. In order to enable these scenarios today, browser extensions need to be installed in some cases.

    WebSockets has Been Updated 3 Times, New Demo Available

    Last month we released the third update to our WebSockets prototype since we released it on the HTML5 Labs site in December. This update is based on the IETF WebSockets 06 Protocol Specification, and extended interoperability testing with other 06 protocol implementations: LibWebSockets; Jetty, an Eclipse community open-source project which provides an HTTP server,  HTTP client and javax.servlet container; as well as a test Firefox build. We also hosted a chat demo page on Azure, which can be opened in Firefox and will use native browser WebSocket instead of the Silverlight-based one. 

    We also previously updated the IndexedDB prototype to bring it in line with the latest version of the specification, and have just added a new WebSockets demo

      

     Game In Progress: When a player drags a tile, its position is communicated to the other browser

    via WebSockets  and drawn accordingly on the screen, as shown above and below.

     The source code for this game is available on the HTML5 Labs web site.

     Media Capture Prototype is in the Cards

    The next prototype we are already planning for the site will cover Media Capture API, a draft specification that defines HTML form enhancements to provide access to the audio, image and video capture capabilities of a device. The first release of the prototype includes Audio capabilities only, but we plan to add video support shortly after the release of the first version. So, stay tuned for the Media Capture  prototype and other new ones that we are working on right now.

    Microsoft's approach with Internet Explorer as outlined in this blog post by Dean Hachamovitch, the Corporate Vice President for Internet Explorer, is to implement standards as they become site-ready for broader adoption.

    Our Thanks

    I also really want to thank you for helping Microsoft and the Internet Explorer team build a better and more interoperable Web, and encourage you to participate in the appropriate standards bodies to help finalize the specifications.


    Many thanks,

    Claudio Caldato,

    Principal Program Manager, Interoperability Strategy Team

  • Interoperability @ Microsoft

    AppFabric ACS: Single-Sign-On for Active Directory, Google, Yahoo!, Windows Live ID, Facebook & Others

    • 0 Comments

    Until today, you had to build your own custom solutions to accept a mix of enterprise and consumer-oriented Web identities for applications in the cloud or anywhere. We heard you and we have built a service to make it simpler.

    Today at MIX11, we announced a new production version of Windows Azure AppFabric Access Control service, which enables you to build Single-Sign-On experience into applications by integrating with standards-based identity providers, including enterprise directories such as Active Directory, and consumer-oriented web identities such as Windows Live ID, Google, Yahoo! and Facebook.

     The Access Control service enables this experience through commonly used industry standards to facilitate interoperability with other software and services that support the same standards: 

    • OpenID 2.0
    • OAuth WRAP
    • OAuth 2.0 (Draft 13)
    • SAML 1.1, SAML 2.0 and Simple Web Token (SWT) token formats
    • WS-Trust, WS-Federation, WS-Security, XML Digital Signature, WS-Security Policy, WS-Policy and SOAP.

     And, we continue to work with the following industry orgs to develop new standards where existing ones are insufficient for the emerging cloud platform scenarios: 

     Check out the Access Control service! There are plenty of docs and samples available on our CodePlex project to get started.

     Thanks,

    Asir Vedamuthu Selvasingh

    Technical Diplomat, Interoperability

  • Interoperability @ Microsoft

    MIX Session Announcement: “Hot from the Labs: HTML5 WebSockets”

    • 0 Comments

    MIX11_BB_SeeYouAt_1

    Another year, another 72-hour conversation.  MIX is taking place in Las Vegas April 12-15.  If you are not familiar with MIX, it is “…a gathering of developers, designers, UX experts and business professionals creating the most innovative and profitable consumer sites on the web. Sessions range from technical, code-based topics to expert advice on content strategy, usability and design. Explore the future of the standards-based web “.  Check out all the details at http://live.visitmix.com.

    Yesterday Microsoft announced a new set of MIX sessions including my session titled “Hot from the Labs: HTML5 WebSockets”.  WebSockets is an emerging specification being standardized by W3C and IETF that will enable web browsers as well as client applications to open a bi-directional, full-duplex communication channel with a remote host.  The application of this technology is endless as there are many benefits over traditional methods including the “long polling” approach that many applications and services use today.

    This session will take place on Tuesday April 12 at 11:30am. My colleague Paul Batum and I will walk you through the implementation details and source code needed to play with the HTML5 Labs Web Sockets prototype and will share our firsthand experience in working with the new standard.

    Hope to see you there!

    Craig Kitterman
    Sr. Technical Ambassador
    @craigkitterman
    http://craig.kitterman.net

  • Interoperability @ Microsoft

    Open Source + Southern Hospitality

    • 0 Comments

    clip_image002[8]I spent the entire week last week enjoying some good weather and southern hospitality in the Carolinas. On Tuesday Mar 15 I had the pleasure of being invited to present at the Charlotte Enterprise Developers Guild organized by Bill Jones (special thanks to SystemTec for sponsoring the evening). On arrival I found the best dressed group of developers I have seen in a long time and felt compelled to apologize for my jeans and Converse. They sure keep it classy down South – something us Northwesterners could probably stand to learn from.

    The focus of the talk (and subsequent discussion) was Java and PHP on Windows Azure. I was pleased to learn that the group consisted of a healthy mix of developers writing Java code, PHP code, and .NET code. In fact, close to 50% of the folks in the room indicated that they use multiple runtimes in their local data centers and are used to interacting with multiple codebases consisting of different languages. We had a great conversation about what it means to move to the Cloud and the approach Microsoft is taking to building an open an interoperable platform that will provide a robust general purpose platform for languages and runtimes far beyond .NET. I got a lot of great feedback on the Eclipse and ANT tooling that was recently announced and have opened some new discussions on additional work we are exploring enable additional Java developer workflows / build systems including Apache Maven. Stay tuned on this!

    image[6]

    I also had the pleasure of attending the 4th Annual POSSCON (Palmetto Open Source Conference) in Columbia, South Carolina where Microsoft was a sponsor. The speaker lineup was great and there were a number of interesting sessions on the agenda particularly related to open source in mobile applications which seemed to be the hot topic of the event. I was pleased to finally meet such OSS icons as Jim Jagielski of the Apache Software Foundation, and attend a number of great sessions by other well known OSS advocates including William “whurley” Hurley, Bob Sutor of IBM and Jon “maddog” Hall.

    WP_000304 - Copy_thumbMy colleague Gianugo Rabellino had the opportunity to present a keynote at the event and took the opportunity to showcase a lot of open source work that is underway both in Microsoft and the Windows ecosystem. He described the change underway in Microsoft toward greater openness and discussed the future of collaboration between Microsoft and the the many Open Source communities on objectives we all share as technologists.

    My best booth award (from a coolness factor point of view) goes to my new friends at RepRap.org who are working on building self replicating open source 3D printers. This is a sweet mashup of open source software, open hardware design, commodity component architecture and pure geekitude. We had a great debate about the future of self replication and when we were done my head hurt but it was a blast.

    The conference had around 500 attendees and I even somehow became the mayor on Foursquare despite only checking in twice. It was a great time and I look forward to seeing what is in store next year at POSSCON 2012.

    Craig Kitterman
    Sr. Technical Ambassador
    @craigkitterman
    http://craig.kitterman.net

  • Interoperability @ Microsoft

    Microsoft Interoperability at EclipseCon 2011

    • 0 Comments

    imageI've just returned from EclipseCon 2011, in wet and less than usually sunny Santa Clara California, and it's been definitely a jam packed and busy event with a lot of things going on. Interoperability @ Microsoft was a Bronze Sponsor for the event and we also had a session, "Open in the Cloud:- Building, Deploying and Managing Java Applications on Windows Azure Platform using Eclipse” by Vijay Rajagopalan, previously architect on our team, Interoperability Strategy, and now leading the Developer Experience work for the Windows Azure product team.

    The session primarily covers the work we have done on Windows Azure to make it an open and interoperable platform which supports development using many programming languages and tools. In the session, you can learn the primers on building large-scale applications in the cloud using Java, taking advantage of new Windows Azure Platform as a Service features, Windows Azure applications using Java with Eclipse Tools, Eclipse Jetty, Apache Tomcat, and the Windows Azure SDK for Java.

    We have been working on improving the experience for Java developers who use Eclipse to work with Windows Azure. At this session we announced the availability of a new Community Technology Preview (CTP) of a new plugin for Eclipse which provides Java developers with a simple way to build and deploy web applications for Windows Azure. The Windows Azure Plugin for Eclipse with Java, March 2011 CTP, is an open source project released under the Apache 2.0 license, and it is available for download here. This project has been developed by Persistent Systems and Microsoft is providing funding and technical assistance. For more info in this regard please check out the post, “New plugin for Eclipse to get Java developers off the ground with Windows Azure” by Craig Kitterman and the video interview and demo with Martin Sawicki, Senior Program Manager in the Interoperability team.  Please send us feedback on what you like, or don’t like, and how we can improve these tools for you.

    I would like to thank the folks at the Eclipse foundation and the community for welcoming us and I look forward to working with you all in the future and hope to see you at EclipseCon next year!

    Jas Sandhu, Technical Evangelist, @jassand

  • Interoperability @ Microsoft

    .NET Rocks! Chats with Jean Paoli

    • 0 Comments

    For those of you who love .Net and have an interest in Web standards and Interoperability at Microsoft, then listening to the interview with Jean Paoli, the General Manager of Interoperability Strategy at Microsoft, with .NET Rocks!,  is a must.

    .NET Rocks! is an internet audio talk show for those interested in developing on the .Net platform, and the interview with Paoli is part of a six-part series titled, "Ignite Your Coding: Web Development Series."

    In the interview, Paoli draws upon his experience as a co-creator of the XML 1.0 standard to discuss XML, web standards, and the role of interoperability within Microsoft.

    The interview, which can be found here, is hosted by Richard Campbell , Microsoft Regional Director and Carl Franklin, MSDN Regional Director for Connecticut.

    Enjoy!

  • Interoperability @ Microsoft

    New plugin for Eclipse to get Java developers off the ground with Windows Azure

    • 0 Comments

    [3/22/2010 – 5:00pm – Updated – Added Installation instructions]

    As we said a few weeks ago we are hard at work Improving experiences for Java developers with Windows Azure. Today we’re announcing the availability of the fimageirst Community Technology Preview (CTP) of a new plugin for Eclipse, which provides Java developers with a simple way to build and deploy web applications for Windows Azure. Folks attending EclipseCon 2011 had sneak peek at the new plugin during Vijay Rajagopalan's session “Open in the Cloud:- Building, Deploying and Managing Java Applications on Windows Azure Platform using Eclipse”, now it the time for the full story!

    The Windows Azure Plugin for Eclipse with Java, March 2011 CTP, is an open source project released under the Apache 2.0 license, and it is available for download here. This project has been developed by Persistent Systems and Microsoft is providing funding and technical assistance. This CTP is not feature complete, and we’re now collecting feedback to ensure that configuring, packaging and deploying to Windows Azure integrates well with common Java developer scenarios. Give it a try by taking advantage of the Windows Azure free trial (Introductory Special offer ) which includes 750 hours per month (which is one server 24x7) of the Windows Azure extra-small instance, plus one small SQL Azure database.

    What’s in the Windows Azure Plugin for Eclipse with for Java, March 2011 CTP

    The plugin adds to Eclipse a set of wizards and dialogs which guide the Java developer through the configuration of all relevant projects settings. The plugin builds on top of the Windows Azure Starter Kit for Java (released last month), which is a simple template project including the typical files that constitute a Java project, as well as the required elements to package and deploy your application for Windows Azure.

    To install using the Eclipse "Available Software" wizard:

    1. Open Eclipse
    2. Select Help->Install New Software…
    3. In the "Work with" textbox, enter the URL http://webdownload.persistent.co.in/windowsazureplugin4ej/ and press Enter
    4. In the available software list check Windows AzurePlugin for Eclipse with Java and click Next -Tip: If your install process is slow uncheck "Contact allupdate sites during install to find required software"
    5. During the install you may be prompted by a security warningabout unsigned binaries. Accept the warning to continue
    6. Restart Eclipse

    Once installed, the plugin adds a “Windows Azure Project” perspective to Eclipse, and lets you create a Windows Azure project from scratch:

    2-NewProjectWizard

    Once you’ve created your project structure, you’re just a few steps away from deploying your applications in the cloud. Here’s what’s next:

    • Pick the Java server (Apache Tomcat, Jetty, etc.) and the Java runtime you want to use
    • Create or import your Java application
    • Test your application against the Windows Azure Compute Emulator (a “local” version of Windows Azure environment running on your machine for development and test purposes - see Getting the Windows Azure Pre-Requisites for more details)

    To get more details check out my video interview and demo with Martin Sawicki, Senior Program Manager in the Interoperability team:

    Stay tuned

    From the early days, Microsoft has been committed to making Windows Azure open and interoperable, offering choice to developers, including Java users. Delivering on this commitment, Microsoft is building and funding tools & SDKs to enable Java developers to easily take advantage of the Windows Azure cloud platform. So, now is the perfect time to jump in and try these tools out. We will continue to make available regular updates and of course we do appreciate your feedback – without it we can’t make them better! Please visit: http://java.interoperabilitybridges.com/cloud.

    Enjoy!

    Craig Kitterman
    Sr. Technical Ambassador
    @craigkitterman
    http://craig.kitterman.net

  • Interoperability @ Microsoft

    Impressions From My First DrupalCon

    • 1 Comments

    clip_image001Last week I attended DrupalCon Chicago – my first DrupalCon since I started working on Drupal related projects in the Interoperability team.  Overall, my impression of the event was “wow”.  It has been a while since I have seen such a large group (3,000+) of people this passionate about a single piece of software.  It didn’t take long for me to realize why: these weren’t just users of the software – they were part of the software.  Everyone is bought in, everyone has a stake and a say.  This is what Open Source is all about and I must say I dig it.

    I spent several hours working the Microsoft booth which was an excellent way to get the vibe of the community – particularly around where Microsoft can and should play a part.  Most common question?  “What exactly does Microsoft have to do with Drupal?”.  The answer is simple: we are working hard along with many partners in the community to make Drupal shine on Windows / Windows Azure and SQL Server for those who would be interested taking advantage of that capability.  We did not come to sell Windows or SQL Server but rather to explain what is possible, provide choice and last but not least listen to what people actually want Microsoft to do!  I learned a lot about interesting integration scenarios with other Microsoft products and services that I had not even thought about that are of interest to the community.  And the semi-surprising bit: not a single whiff of hostility from a single person through the entire event.  A number folks had no qualms about telling me that they were a LAMP shop and told me why, but more often than not it was followed by “…but I understand why you guys are here and I appreciate your participation in the community.”  This is a classy bunch, and I appreciate the opportunity to have been there.

    I look forward to continuing to engage more with the Drupal community at large alongside my colleagues Grace, Mark, Alessandro and many others who are committed to a long term partnership.  I look forward to your feedback as well on the Drupal projects that we are working on and what we should be working on!

    Craig Kitterman
    Sr. Technical Ambassador
    http://craig.kitterman.net

  • Interoperability @ Microsoft

    Latest WebSockets Release Interoperates with Firefox, Eclipse's Jetty

    • 4 Comments

    We have updated the WebSockets prototype on our HTML5 Labs site, which brings the implementation in line with the recently released WebSockets 06 Protocol Specification.  

    We have extended our interoperability testing so that now, along with LibWebSockets, we tested interoperability with Jetty, an open-source project providing an HTTP server, HTTP client, and javax.servlet container, developed by the Eclipse community, and we accepted the invitation of Patrick @Docksong.com to test our code with a Firefox Mindfield version he built with an implementation of the 06 Protocol Specification.

    We tested the WebSockets interoperability between our HTML5 Labs prototype client and Jetty server, which recently added support for the 06 version of the spec (you can find the Jetty code here.)

    We also tested the WebSockets interoperability with a test Firefox build that supports the 06 protocol specification. We are hosting a chat demo page on Azure, which can be opened in Firefox and will use native browser WebSocket instead of the Silverlight-based one. 

    WebSockets is a technology designed to simplify much of the complexity around bi-directional, full-duplex communications channels, over a single Transmission Control Protocol (TCP) socket. It can be implemented in web browsers, web servers as well as used by any client or server application.

    This fourth update of our WebSocket prototype brings ping-pong support: automatic client to server ping every 50 seconds. It also now supports the binary and fragment frames feature defined in the WebSocket protocol specification, but they are not yet exposed to javascript because the W3C API working group is still working on defining a set of APIs that can work with binary data. 

    Jetty Testing

    Our testing involved setting up Jetty server on Win2K8 server machine, and hosting a chat WebSocket endpoint, which has the same functionality as this chat sample

     We then directed our existing chat client web page to use the Jetty-hosted endpoint (instead of WCF-hosted endpoint), and we confirmed that the chat app was fully functional. 

    This screenshot shows the chat page opening a WebSocket connection to ws://localhost:4502/chat

     

     

    This screenshot shows Jetty server accepting the WebSocket connection from the browser

     

    This screenshot shows the chat page connected to Jetty WebSocket connection

     

    And, as I said earlier, we are hosting the Jetty chat endpoint on Azure, and have updated our existing chat demo to use it. To deploy the Jetty endpoint in Azure, we used the recently released Windows Azure Starter Kit for Java, developed by our Interoperability team.

    Firefox Testing

    Our testing involved hosting a chat WebSocket endpoint using the WCF-based HTML5 Labs prototype.

     We modified our existing chat page to use native browser WebSocket API (instead of the HTML5 Labs WebSocketDraft API), and we confirmed that the chat app was fully functional.  

    This screenshot shows the chat page works in Firefox using native browser WebSocket API 

    This prototype forms part of our HTML5 Labs Web site, a place where we prototype early and not yet fully stable drafts of specifications developed by the W3C and other standard organizations. The WebSocket API is currently being standardized by the W3C and the WebSocket protocol is being standardized by the IETF.

    Building these prototypes in a timely manner will also help us have informed discussions with developer communities, and give implementation experience with the draft specifications that will generate feedback to improve the eventual standards.

    Claudio Caldato,

    Principal Program Manager, Interoperability Strategy Team

  • Interoperability @ Microsoft

    The WebSockets Prototype Gets Another Update

    • 1 Comments

    As we continue to move forward with updating the prototypes on our HTML5 Labs site as quickly as possible, I am happy to tell you that we have once again updated the WebSockets prototype, a move that brings the implementation in line with the recently released WebSockets 05 Protocol Specification.

    The 05 spec introduces some changes to the masking algorithm.  Specifically, the masking key is no longer derived from the information that client and server exchange during the handshake, but is now fully contained within each frame.

    WebSockets is a technology designed to simplify much of the complexity around bi-directional, full-duplex communications channels, over a single Transmission Control Protocol (TCP) socket. It can be implemented in web browsers, web servers as well as used by any client or server application.

    Also, as we strongly believe that interoperability is very important, we have tested our implementation with another 05 WebSockets implementation that uses C++ and runs on Linux: libwebsockets

    In order to verify this, we setup a Fedora Linux machine with libwebsockets in our Interoperability lab.  We also set up another Windows 2008 R2 machine in the lab, and installed our WebSockets 05 prototype bits on it. Libwebsockets already comes with client and server samples, so we decided to use those for testing.

    The configurations we tested are:

    Server: libwebsockets

    Client: html5labs prototype

    In this configuration we ran the test libwebsockets server on Fedora Linux, which accepts a client connection and sends incrementing integer values to the client every 50ms.  The server resets the counter to 0 whenever it receives “reset” from the client. 

    This screenshot shows the libwebsockets test server starting and then confirming the handshake

     This screenshot shows the HTML5 Labs test client starting and then confirming the handshake

    For the client we created a .NET console application, which uses Microsoft.ServiceModel.WebSockets.DesktopClient.dll (the library that we have been releasing with the WebSockets prototypes).  The application creates a WebSocket connection to the Fedora machine, and receives incrementing integers from the server.  When it reaches the count of 200, it sends “reset” to the server.

    Server: html5labs prototype

    Client: libwebsockets

    In this configuration we created an equivalent .NET application, which acts as a server and sends incrementing integers to the client every 50ms.  This application uses Microsoft.ServiceModel.WebSockets.dll (the library that we have been releasing with the WebSockets prototypes).  We ran the client sample on the Fedora machine, which creates a WebSocket connection to the Win2008 server machine, and receives incrementing integers.

     This screenshot shows the HTML5 Labs test server starting and then confirming the handshake

     

     This screenshot shows the libwebsockets test client starting and then confirming the handshake

    This prototype forms part of our HTML5 Labs Web site, a place where we prototype early and not yet fully stable drafts of specifications developed by the W3C and other standard organizations. The WebSocket API is currently being standardized by the W3C and the WebSocket protocol is being standardized by the IETF.

    We believe that the HTML5 Labs approach has advantages over placing unstable specifications directly in the browser. First, developers can build on Internet Explorer 9 without worrying that their site will break as the underlying specs change. Second, we will iterate very quickly in HTML5 Labs and expect the standalone approach with prototypes to be closer to the latest specs. As an example with WebSockets, most browsers are still on the outdated versions of WebSockets-00 or older.

    Building these prototypes in a timely manner will also help us have informed discussions with developer communities, and give implementation experience with the draft specifications that will generate feedback to improve the eventual standards.

    Claudio Caldato,

    Principal Program Manager, Interoperability Strategy Team

  • Interoperability @ Microsoft

    W3C Accepts Microsoft’s Tracking Protection Standard Submission

    • 0 Comments

    The W3C announced today that they have formally accepted Microsoft's proposal on a common W3C standard for Web Tracking Protection, which means that the standardization process can now begin. 

    An important part of our work with W3C is being an active part of existing working groups as well as identifying important new areas where users and the industry can benefit from a common approach. 

    Clearly, privacy is a great candidate for standardization, given the concern that consumers, academics and governments worldwide have expressed, as highlighted in today's blog by Dean Hachamovitch, the Corporate Vice President for Internet Explorer.  

    A common question has been what exactly has been submitted for standardization and how does that process work. Essentially, the Web Tracking Protection specification is designed to help users block content associated with online tracking.  

     The proposal has two parts:

    • Filter lists, which can enforce user privacy preferences by preventing the user agent from making unwanted requests to Web servers that track users.
    • A user preference, which is conveyed by a DOM property and an HTTP header, to be used by Websites and pages to respect the user's privacy.

    Together these technologies can be used to enhance privacy protection for users, and provide access to content and services that respect user privacy preferences.  

     As to how the standardization process works, this is pretty much the flow:

    • The W3C receives many proposals for new standards, and it filters these proposals based on whether the standard will have broad interest across its members before accepting. This is where this proposal is now.
    • The W3C may hold a workshop to build consensus across stakeholders about how to build a standard technology. In this case the workshop is to seek consensus on the scope of the work to be done on the Recommendation Track.  
    • W3C and wider community members then express their interest in W3C taking up work on a standard. Assuming there is enough interest and enough resources, a Working Group is approved and work starts.

    Working group participants come from three places: W3C member companies, outside experts, and W3C employees.  

    A specification can go through many revisions, is open to broad feedback, and there is also a requirement that the actual implementations are interoperable before the specification finally becomes a W3C Recommendation or standard.

     We are currently implementing Tracking Protection Lists in IE9 RC, which expresses both user intent as well as a way to enforce this by the user. 

    We look forward to working with the other members of the W3C on a common standard for tracking protection and improving privacy for users on the web.

     Jean Paoli

    GM: Interoperability Strategy

  • Interoperability @ Microsoft

    Improving experience for Java developers with Windows Azure

    • 1 Comments

    From the early days, Windows Azure has offered choices to developers. It allows use of multiple languages (like .NET, PHP, Ruby or Java) and development tools (like Visual Studio, Eclipse) to build applications that run on Windows Azure or consume any of the Windows Azure platform services from any other cloud or on-premises platform. Java developers have had a few options to leverage Windows Azure, like the Windows Azure SDK for Java or the Tomcat Solution Accelerator.

    At PDC10, we introduced our plan to improve the experience for Java developers with Windows Azure. Today, we’re excited to release a Community Technology Preview (CTP) of the Windows Azure Starter Kit for Java, which enables Java developers to simply configure, package and deploy their web applications to Windows Azure. The goal for this CTP is to get feedback from Java developers, and to nail down the correct experience for Java developers, particularly to make sure that configuring, packaging and deploying to Windows Azure integrates well with common practices.

    What’s the Windows Azure Starter Kit for Java?

    This Starter Kit was designed to work as a simple command line build tool or in the Eclipse integrated development environment (IDE). It uses Apache Ant as part of the build process, and includes an Ant extension that’s capable of understanding Window Azure configuration options.

    The Windows Azure Starter Kit for Java is an open source project released under the Apache 2.0 license, and it is available for download at: http://wastarterkit4java.codeplex.com/

    What’s inside the Windows Azure Starter Kit for Java?

    The Windows Azure Starter Kit for Java is a Zip file that contains a template project and the Ant extension. If you look inside this archive you will find the typical files that constitute a Java project, as well as several files we built that will help you test, package and deploy your application to Windows Azure.

    clip_image002[4]

    The main elements of the template are:

    • .cspack.jar: This contains that java implementation of windowsazurepackage ant task.
    • ServiceConfiguration.cscfg: This is the Windows Azure service configuration file.
    • ServiceDefinition.csdef: This is the Windows Azure service definition file.
    • Helloworld.zip: This Zip is a placeholder for your Java application.
    • startup.cmd: This script is run each time your Windows Azure Worker Role starts.

    Check the tutorial listed below for more details.

    Using the Windows Azure Starter Kit for Java

    As mentioned above, you can use the Starter Kit from a simple command line or within Eclipse. In both case the steps are similar:

    1. Download and unzip the Starter Kit
    2. Copy your Java application into the approot folder
    3. Copy the Java Runtime Environment and server distribution (like Tomcat or Jetty) ZIPs into the approot folder
    4. Configure the Startup commands in startup.cmd (specific to the server distribution)
    5. Configure the Windows Azure configuration in ServiceDefinition.cscfg
    6. Run the build and deploy commands

    For detailed instructions, refer to the following tutorials, which show how to deploy a Java web application running with Tomcat and Jetty:

    What’s next?

    Yesterday, Microsoft announced an Introductory Special offer that includes 750 hours per month (which is one server 24x7) of the Windows Azure extra-small instance, plus one small SQL Azure database and other platform capabilities - all free until June 30, 2011.  This is a great opportunity for all developers to see what the cloud can do - without any up-front investment!

     You can also expect continued updates to the development tools and SDK, but the experience of Java developers is critical. Now is the perfect time to provide your feedback, so join us on the forum at: http://wastarterkit4java.codeplex.com/

    -- Jean-Christophe Cimetiere, Sr. Technical Evangelist, @openatmicrosoft

  • Interoperability @ Microsoft

    HTML5 Moves Forward

    • 0 Comments

    In case you missed it earlier this week, the W3C announced that it had extended the charter of the HTML Working Group, including clear milestones for HTML5, the next version of the platform-neutral HyperText Markup Language standard used worldwide for rendering Web pages, and the cornerstone of W3C's Open Web Platform for application development.

    There has been a lot of online discussion about all this, positive and negative, as well as a number of media reports on the move, which is great as we at Microsoft strongly believe in an open discussion. I have referenced some of those reports in this blog, which is my synopsis of some of the issues.

    Under the milestone timetable announced this week, the W3C said the Working Group will advance HTML5 to "Last Call," the point at which the W3C thinks the standard's features are set. Last Call is also essentially a call for all communities to confirm the technical soundness of the specification, after which the group will then shift focus to gathering implementation experience and building a comprehensive test suite.

    As Joab Jackson reported in ComputerWorld and other online publications, the W3C expects no new features to be added after the Last Call. After Last Call is completed the group will take feedback only from implementers and through trials of the test suite, Philippe Le Hégaret, lead for the W3C Interaction Domain, which oversees the development of HTML, CSS (Cascading Style Sheets), SVG (Scalable Vector Graphics) and other Web standards, told Jackson.

    Microsoft is pleased with this time table, especially with Last Call in just three months. The HTML Working Group chairs set the Last Call schedule last year, and it's encouraging to see that the Working Group has stepped up to meet that schedule. This is a great step forward and we look forward to continuing to work with the hundreds of other members of the HTML Working Group to advance the specification.

    And, as Jeff Jaffe, the W3C CEO, said in a statement earlier this week, even as innovation continues, advancing HTML5 to Recommendation provides the entire Web ecosystem with a stable, tested, interoperable standard. "The decision to schedule the HTML5 Last Call for May 2011 was an important step in setting industry expectations. Today we take the next step, announcing 2014 as the target for Recommendation," he said.

    As CNet's Stephen Shankland correctly points out in his report on the news, the latest timetable doesn't mean interested parties won't be able to employ the new technology until 2014. "On the contrary, key phases of the coming years' development involve getting feedback from real-world use that's already well under way and ironing out wrinkles that may arise implementing the standard in Web browsers," he says.

    To quote Ian Jacobs, the head of W3C marketing as told to Scott Gilbertson at Webmonkey, "developers can use HTML5 now and we encourage them to do so."

    Because HTML5 anchors the Open Web Platform, the W3C has also started work on a comprehensive test suite to ensure the high levels of interoperability that diverse industries demand. Microsoft has already donated test cases to the current test suite. While it's the most comprehensive test suite of HTML5 so far, it is far from complete. But the test suite is an important step as it identifies differences in implementation and encourages implementers to fix deviations from the specification.

    The W3C has invited test suite contributions from the community and, starting in March, will also dedicate new staff to drive development of an HTML5 test suite. Its first task is to expand the existing test framework by the mid-2011, which will encourage browser vendors and the community to create test cases.

    CNet's Shankland also points out that HTML5 will become the first new revision since HTML 4.01 was released in 1999, noting the features in this next-generation Web page description language include built-in video and audio, a "canvas" element for two-dimensional graphics, new structural labels such as "article" to smooth programming, and a codified process to consistently interpret the hodgepodge styles of real-world Web pages, even when improperly coded.

     And, after the W3C releases the first last call working draft in May, it plans to begin tackling the early stages of what it's currently referring to as HTML.next. So stay tuned and follow along as the momentum around HTML5 keeps growing.

    Peter Galli

    Senior Community Manager

  • Interoperability @ Microsoft

    Relationships … It’s Complicated!

    • 0 Comments

    Isn't Valentine's Day a perfect occasion to think about relationships? Other than my family, the relationship I care most about nowadays is the one between Microsoft and the Open Source communities which, to put it mildly, have been interesting in the past. As I'm learning my way through this new adventure, I have been considering our track record from the early stages and, more importantly, thinking about the future.

    Make no mistake. Relationships are hard and high in maintenance – especially when there is some history to them. Entering the state where water is really under the bridge is tough, and the one and only remedy I can think of is to build those bridges one stone at a time, and show that you really care. I firmly believe Microsoft is on the right track here: first as an outsider, then as a partner, and finally as an employee. For the past few years I saw the tide turning, and Microsoft becoming increasingly more open. We are building those bridges, and we are doing it in the one and only way Open Source communities care: by showing commitment, and contributing code.

    We understand that we are far from being done, which is why I have started looking outside of Microsoft and reaching out to communities to continue the ongoing conversation, and to show the world how much we have changed and become more open. But showing the whats and the hows is notenough: we want to get to the next step, and delve into the reasons leading us to steer the ship towards open water. As the story unfolds and I start touring the world to meet as many communities as I can and gather the feedback we need so much to move forward and have a productive relationship.

    Speaking of travel, I just came back from my European tour, where I visited Italy, Germany, the UK and Belgium. This was my first “toe in the water”, and it was a priceless learning experience, where I managed to reconnect with old friends and meet new people from the Open Source world. In Italy I had a chance to see how HTML5 is going to play a huge part in the future of the Web (you don’t want to lose the upcoming “HTML, ci siamo” event). In Germany I walked away with a miniature model of the “we love developers” double decker Microsoft bus that is making the rounds to show all the efforts Microsoft is doing in enrolling developers. In the UK, I was blown away by the amount of information, tutorials, interviews and other good stuff the www.ubelly.com fine folks are doing. And in Belgium I had a great meeting with some of the most well respected PHP developers who are constructively having a discussion on how to improve their experience on Azure, and helping to plug on the community creativity with a very contest (if you live in Europe, and grok PHP, you should definitely sign up!).

    On top of that, I spent my last day in Europe visiting and attending FOSDEM, the largest Free Software event in Europe. There, I had the pleasant surprise of a day packed with casual encounters in the hallways which turned into extremely practical conversations on how Microsoft and the FLOSS communities can move on and work together on real problems, real projects and real code.

    And code does definitely matter, so let me finish by announcing some new released projects, freshly baked and wrapped in a proper Valentine's day chocolate box. Today we announced the availability of four new extensions for Joomla! that allow Joomla! administrators/developers to provide users with the following integrated features: Bing Maps, Windows Live ID, OData and the Silverlight Pivot Viewer. These extensions are developed and contributed by Schakra and MindTree, with funding provided by Microsoft. Here’s a quick overview of the extensions:

    Bing Maps extension (http://joomlacode.org/gf/project/bingmaps/):
    With this extension, Joomla! users can easily include customized Bing Maps into the content they are publishing, and administrator can preconfigure how the map should look, and where it can be added.
    clip_image002 clip_image004

    Silverlight Pivot viewer extension (http://joomlacode.org/gf/project/pivotviewer/):
    With this extension Joomla! users can visually navigate with the Silverlight Pivot viewer through large amount of data. Administrators define what is the data source using a set of preconfigured options like OData, RSS, media files, etc, .

    clip_image006 clip_image008

    Windows Live ID extensions(http://joomlacode.org/gf/project/windowsliveid/):
    With this extension Joomla! users can associate their Joomla! account to their Windows Live ID, and then to login on Joomla! with Windows Live ID.
    clip_image010

    OData extension (http://joomlacode.org/gf/project/odata/):
    With this extension Joomla! administrator can provide users with quick access to any OData source, like the Netflix catalog (check the list of live OData services), and let them include these in any content type (such as articles). The generic extension includes a basic OData query builder and renders data in a simple HTML Table.

    clip_image012 clip_image014

    Code speaks, content matters. To close on Joomla!, we’ve also just published a new tutorial explaining how to get Joomla! up and running on Windows Azure using the Windows Azure Companion. And by the way we will be at J-and-Beyond conference May 6th-8th, to showcase more Joomla! and Microsoft technologies interop.

    As always I look forward to your comments and feedback.

    Gianugo Rabellino, Senior Director of Open Source Communities

  • Interoperability @ Microsoft

    The Updated WebSockets Prototype

    • 1 Comments

    Following hot on the heels of last week’s update to the IndexedDB prototype, I am pleased to announce that we have also updated the WebSockets prototype, a move that brings the implementation in line with the WebSockets 04 Protocol Specification.

    In short, we added a new type of masking in the protocol that is consistent with the 04 protocol specification. We also increased the maximum size for messages from the 125 character limit in the previous implementation.

    However, it’s important to note that the spec is still evolving, with the 03 version released in December, the 04 version last month and the 05 spec which just shipped yesterday. The plan is to continue to rev the code going forward and to bring the implementation in line with the just released WebSockets 05 Protocol Specification.

    WebSockets is a technology designed to simplify much of the complexity around bi-directional, full-duplex communications channels, over a single Transmission Control Protocol (TCP) socket. It can be implemented in web browsers, web servers as well as used by any client or server application.

    The WebSocket API is currently being standardized by the W3C and the WebSocket protocol is being standardized by the IETF.

    For this early WebSockets prototype we are using a Silverlight plug-in on the client and a WCF service on the server. In the future, you may see HTML5 Labs using a variety of other technologies.

    Updating the prototype is a great way to continue to test the spec as well as let users play with new features to make sure they work the way they are supposed to and to provide feedback.

    As part of the update, we are posting new demos, including a casual game that shows users how WebSockets can enable new scenarios.

    This prototype forms part of our HTML5 Labs Web site, a place where we prototype early and not yet fully stable drafts of specifications developed by the W3C and other standard organizations. We believe that the HTML5 Labs approach has advantages over placing unstable specifications directly in browser. First, developers can build on Internet Explorer 9 without worrying that their site will break as the underlying specs change. Second, we will iterate very quickly in HTML5 Labs and expect the standalone approach with prototypes to be closer to the latest specs. As an example with WebSockets, most browsers are still on the outdated versions of WebSockets-00 or older.

    Building these prototypes in a timely manner will help us have informed discussions with developer communities, and give implementation experience with the draft specifications that will generate feedback to improve the eventual standards.

    Claudio Caldato,

    Principal Program Manager, Interoperability Strategy Team

  • Interoperability @ Microsoft

    Windows Phone Interoperability site

    • 0 Comments

    The announcement of the Windows Phone Developer Tools Update is the opportunity for us to say a few words about the Windows Phone Interoperability site. We opened the site last December with the focus on helping developers who have been creating phone applications on various platforms ramp up quickly on the Windows Phone 7 platform. The site initially includes content designed for iPhone developers and we will add resources for Android developers.

    The site has a wealth of information for the new and experienced developer, with more content arriving in the next weeks.

    Resources are organized into chapters, where developers can find the following detailed guides for Windows Phone development:

    clip_image002

    The first 4 chapters are now available for download (DOCX or PDF).

    The Windows Phone Interoperability site also includes several videos of developers explaining how they transitioned from other platforms to Windows Phone 7, and revealing their secrets for successfully designing and building applications.

    clip_image004Groundspeak testimonial: experience developing the Geocaching phone application for Windows Phone 7

    At Microsoft, we’re committed to ensuring phone developers have the necessary tools for building applications on the Windows Phone platform. The goal of the Windows Phone Interoperability site is to make it easy for developers with experience on other platforms to learn as quickly as possible. The site will also provide tools and guidance to help developers building applications for multiple platforms.

    -- Jean-Christophe Cimetiere, Sr. Technical Evangelist, @openatmicrosoft

  • Interoperability @ Microsoft

    The IndexedDB Prototype Gets an Update

    • 3 Comments

    I'm happy to be able to give you an update today on the IndexedDB prototype, which we released late last year.

    The version 1.0 prototype that we released in December was based on an editor's draft specification from November 2, 2010. I'm happy to announce that this new version includes some of the changes that were added to the specification since then, and which bring it in-line with the latest version of the spec that is available on the W3C web site. However, it is important to note that while this prototype is very close to the latest spec, it is not 100 percent compliant.

    The protoype forms part of our HTML5 Labs Web site, a place where we prototype early and not yet fully stable drafts of specifications developed by the W3C and other standard organizations.  These prototypes will help us have informed discussions with developer communities, and give implementation experience with the draft specifications that will generate feedback to improve the eventual standards. It also lets us give the community some visibility on those specifications we consider interesting from a scenario point of view, but which are still not at the stage where we can consider them ready for official product support.

    The goal of IndexedDB is to introduce a relatively low-level API that allows applications to store data locally and retrieve it efficiently, even if there is a large amount of it. The API is low-level to keep it really simple and to enable higher-level libraries to be built in JavaScript and follow whatever patterns Web developers think are useful as things change over time.

    Folks from various browser vendors have been working together on this for a while now, and Microsoft has been working closely with the teams at Mozilla, Google and other W3C members that are involved in this to design the API together.

    If you notice that this prototype of IndexedDB behaves differently and doesn't work with code you have written, it may be due to some of the following changes:

    • VERSION_CHANGE transaction as described in the spec is implemented except for one feature. The feature NOT implemented is the versionchange event to notify other open database connections, as in the specification. The workaround for this is to not launch two Internet Explorer tabs to open the same database.
    • The createObjectStore() method of the asynchronous database object is now a synchronous operation as described in the specification. Also, this method can only be called from within the onsuccess() handler of the IDBVersionChangeRequest object returned by the setVersion() method. See the samples in the CodeSnippets folder for the exact syntax.
    • The deleteObjectStore() method of the asynchronous database object can only be called from within the onsuccess() handler of the IDBVersionChangeRequest object returned by the setVersion() method. See the samples in CodeSnippets folder for examples.
    • The transaction method of the asynchronous database object now accepts parameters as described in the specification. See the sample in the CodeSnippets folder for examples.
    • The asynchronous transaction object now implements auto-commit. The Javascript code needs to have the close() method on the asynchronous database object for auto-commit to work. See the samples in the CodeSnippets folder for examples.

    The goal of the prototypes is to enable early access to the API and get feedback from Web developers, as well as to keep it up to date with the latest changes in the specifications as they are published. But, since these are early days, remember that there is still time to change and adjust things as needed.

    You can find out more about this experimental release and download the binaries from this archive, which contains the actual API implementation plus samples to get you started.

    Claudio Caldato,

    Principal Program Manager, Interoperability Strategy Team

  • Interoperability @ Microsoft

    Greater Interoperability for Windows Customers With HTML5 Video

    • 94 Comments

    Google recently announced that its Chrome web browser will stop supporting the H.264 video format. At Microsoft we respect that Windows customers want the best experience of the web including the ability to enjoy the widest range of content available on the Internet in H.264 format.

    Today, as part of the interoperability bridges work we do on this team, we are making available the Windows Media Player HTML5 Extension for Chrome, which is an extension for Google Chrome to enable Windows 7 customers who use Chrome to continue to play H.264 video.

    We believe that Windows customers should be able to play mainstream HTML5 video and, as we’ve described in previous posts, Internet Explorer 9 will support playback of H.264 video as well as VP8 video when the user has installed a VP8 codec.

    We are committed to ensuring that Windows customers have the best Web experience, and we have been offering for several years now the extremely popular Windows Media Player plug-in for Firefox, which is downloaded by millions of people a month who want to watch Windows Media content.

    We also recently provided an add-on for Windows 7 customers who choose Firefox to play H.264 video so as to enable interoperability across IE, Firefox and Chrome using HTML5 video on Windows.

    For many reasons - which you can read about on other blog posts here and here - H.264 is an excellent and widely-used video format that serves the web very well today. As such, we will continue to ensure that developers and customers continue to have an optimal Web experience.

    Claudio Caldato,

    Principal Program Manager, Interoperability Strategy Team

  • Interoperability @ Microsoft

    Using Drupal on Windows Azure: Hands-On with 4 new Drupal Modules

    • 5 Comments

    Since the launch of Windows Azure a couple years ago, we’ve been working on driving Interoperability scenarios that enable various developers to harness the power of the Windows Azure cloud platform. In parallel, we’ve supported interoperability projects, in particular on PHP and Drupal, in which the focus is showing how to simply bridge different technologies, mash them up and ultimately offer new features and options to the developers (azurephp.interoperabilitybridges.com).

    Today, I’d like to show you the result of some hands-on work with Drupal on Windows Azure: We are announcing today the availability 4 new Drupal Modules, Bing Maps, Windows Live ID, OData and the Silverlight Pivot Viewer that can be used with Drupal running on Windows Azure. The modules are developed by Schakra and MindTree.

    To showcase this work, the new Drupal 7was deployed on Windows Azure with the Windows Azure Companion: Check out the Drupal & Windows Azure Companion tutorial
    [
    IMPORTANT NOTE - July 13, 2011
    The Windows Azure Companion was an experimental tool to provide a simple experience installing and configuring platform-elements (PHP runtime, extensions) and web applications on Windows Azure.  Based the feedback and results Microsoft has decided to stop any further development of the Windows Azure Companion and instead we recommend using the new  tools available at http://azurephp.interoperabilitybridges.com/downloads to deploy applications to Windows Azure.
    ]

    On top of this Drupal instance running on Windows Azure, are deployed the four NEW generic modules that allow Drupal administrators/developers to provide their users with new features:

    The Bing Maps Module for Drupal provides for easy & flexible embedding of Bing Map in Drupal content types, such as a technical article or story.

    clip_image004

    clip_image006

    The Windows Live ID Module for Drupal allows Drupal user to associate their Drupal account to their Windows Live ID, and then to login on Drupal with their Windows Live ID.

    clip_image008

    clip_image010clip_image012

    The OData Module for Drupal allows developers to include data sources based on OData in Drupal content types. The generic module includes a basic OData query builder and renders data in a simple HTML Table. In this case, we are taking the Netflix OData catalog and using a simple visual query engine, generating a filtered query to display on our Drupal “Article” page.

    clip_image014

    clip_image016

    The Silverlight Pivot viewer Module for Drupal enables enables easy & flexible embedding of Silverlight PivotViewer in Drupal content types, using a set of preconfigured data sources like oData producers or existing Pivot collections

    image

    In this example, we are using the wedding venues pivot collection exposed on http://beta.hitched.co.uk to render the interactive Silverlight PivotViewer of that collection with deep zoom image support and a complete visual query experience.

    image

    These modules are independently developed and contributed by Schakra and MindTree, with funding provided by Microsoft. The modules have all been made available on GitHub, and we hope to see them moved to the Drupal module gallery in the near future. As always I look forward to your comments and feedback.

    Enjoy!

    Craig Kitterman, Sr. Interoperability Evangelist, Microsoft

  • Interoperability @ Microsoft

    Welcome Drupal 7, a new version with greater interoperability with the Microsoft platform

    • 0 Comments

    The new version of Drupal 7 was released a couple weeks ago, and now that people have finally recovered from the many Drupal release parties around the world (like in London), we, at Microsoft, want to formally welcome this new version. From our point of view, Drupal version 7 marks an important milestone because it includes great improvements, some of which are the result of efforts from Microsoft and the Drupal community to bring users greater interoperability and more choices/options.

    Let’s review our favorite improvements:

    imageIt shouldn’t be too surprising that our favorite addition is support for Microsoft SQL Server (version 2005 or later), which we announced last year at DrupalCon when we shipped the community technology preview (CTP) of the SQL Server Driver for PHP 2.0 with PDO support. The new driver was then released in August. Special thanks to Commerce Guys, who actually developed SQL Server support in Drupal and contributed the code.

    Bryan House - Sr. Director, Marketing, from Acquia commented: “The Drupal 7 release with enhancements for the Microsoft platform is a tremendous milestone giving Drupal developers the freedom to use their existing Microsoft resources to build extraordinary web experiences with Drupal. It expands the set of options Drupal developers have to choose from when building the best solutions for their customers and end-users. We’re also pleased to see Microsoft really participating in the community, providing valuable assistance, and taking a long term approach to supporting Drupal.”

    What I think is interesting about the SQL Server Driver for PHP 2.0 is that it enables PHP applications like Drupal 7 to use the PDO “PHP style” and interoperate smoothly with Microsoft’s SQL Server database. This reduces the complexity of targeting multiple databases and makes it easier for PHP developers to take advantage of SQL Server’s business intelligence & reporting feature (which is also included in the free SQL Server Express edition), as well as SQL Azure features like exposing OData feeds.

    Another neat improvement has to do with Drupal installation packages and modules – those that are current, as well as any that are newly submitted. Previously, they were only available as a TGZ archive but now they’re also available as ZIP archives. This removes the burdens for Windows users trying to install Drupal. Along the same lines, the Drupal 7 Windows package now includes a “web.config” file designed specifically for Microsoft Internet Information Server (IIS), which is now listed in the supported web servers for Drupal 7. For more on the latest Drupal 7 developments, check out this video with Drupal expert Jim Taylor.

    You can get the latest Drupal 7 distribution directly from the community project site, or you can install one of its distributions built by Commerce Guys from the Microsoft Web Platform Installer (Web PI), which lets you install not only Drupal, but our entire Web stack in a breeze. And for developers who want to dive deep into Drupal 7 PHP code and start hacking around to customize it, we recommend taking a look at the newly released WebMatrix tool. In response to the WebMatrix announcement, Damien TOURNOUD, CTO of Commerce Guys, said that ”Microsoft has become a citizen of the Drupal world, and the integration of Drupal 7 in WebMatrix is great news for the Drupal community.” Damien is a key contributor to Drupal 7 and the main developer of Drupal 7/SQL Server integration.

    Of course we think these improvements are great, and we hope they attract even more developers to our platform. But there’s more on our to-do list and today we’re excited to announce four new generic modules developed by Schakra and MindTree that allow Drupal administrators/developers to provide users with new features:

    • Bing Maps Module: enable easy & flexible embedding of Bing Map in Drupal content types (like articles for example)
    • Silverlight Pivot viewer Module: enable easy & flexible embedding of Silverlight Pivot in Drupal content types, using a set of preconfigured data sources (OData, a, b, c).
    • Windows Live ID Module: allow Drupal user to associate their Drupal account to their Windows Live ID, and then to login on Drupal with their Windows Live ID
    • OData Module: allow data sources based on OData to be included in Drupal content types (such as articles). The generic module includes a basic OData query builder and renders data in a simple HTML Table. The package includes a sample module base on an Open Government Data Initiative (OGDI) OData source, showing how to build advanced rendering (with Bing Maps)

    To learn more about these modules, check out the Interoperability Hands-On , which shows off Drupal on Windows Azure using Bing Maps + Windows Live ID + OData + Silverlight Pivot Viewer.

    As for on-going projects, there is also work under way to create demonstrations of how to harness the benefits of the cloud with Windows Azure and PHP (see azurephp.interoperabilitybridges.com). Drupal is among the popular PHP applications we’ve demonstrated on Windows Azure, using the Windows Azure Companion. Now we’re working, for example, on bringing the full elasticity and scalability of Windows Azure cloud to Drupal and other PHP applications.

    Microsoft supports the work of Commerce Guys, MindTree and Schakra , as well as that of the Open Source community, in improving the interoperability of Drupal with Microsoft’s platform. This work is representative of Microsoft’s broader commitment to openness by expanding choice and opportunity for customers, partners and developers. As always, we welcome any feedback, so feel free to leave a comment, or contact us.

    Jean-Paoli, General Manager for Interoperability Strategy

  • Interoperability @ Microsoft

    Celebrating the W3C & HTML5 With a New Logo Program

    • 10 Comments

    W3C is the home of web standards

    The World Wide Web Consortium (W3C) has been the home of web standards since 1994 and is a unique place where every major browser vendor (Apple, Firefox, Google, Microsoft, Opera) participate as one of the 322 W3C members.

    Logo now available

    Today, the W3C is introducing a new logo program for HTML5. A logo with a consistent visual design is an important indication of the growing maturity of many components of HTML5. As developer and site owners see this logo across the web, we hope it will signal that while there is still a lot of work to do until all the HTML5 technologies are ready, real sites are starting to take advantage of them today.

    The logo links back to W3C, the place for authoritative information on HTML5, including specs and test cases. It’s time to tell the world that HTML5 is ready to be adopted. You can find some examples of how real sites are using HTML5 today here.

    Microsoft and the W3C

    Microsoft, as part of its ongoing focus on interoperability, is committed to the W3C and we currently have had some 66 participants in 38 technical groups. We work closely with other members on a range of matters, from drafting early specifications to developing test suites to improve interoperability.

    Parts of HTML5 are ready to be used today

    HTML5 offers tremendous improvements in interactivity, graphics, typography and more. One question we often hear is “When should my site start embracing HTML5?” Our answer is simple. Today. But it’s important to recognize that HTML5 is not just one technology, but rather that it encompasses a broad set of technologies. So, while there are some parts that are very stable and are ready to be used in real sites today, there are also some parts that are still changing rapidly.

    With IE9 and HTML5 Labs - which gives developers a stable foundation to build their experiences on IE9 knowing that their sites will continue to work with build updates - we are making this line clearer to encourage adoption rather than waiting. In IE9, we have put the site-ready parts of HTML5 that can be used today without worrying about the site breaking as the specification changes.

    In the HTML5 Labs environment, we are building prototypes for unstable specifications where we can iterate quickly and freely as we make it clear to developers not to include these in sites as yet. Microsoft’s Interoperability Bridges & Labs Center has started publishing prototype implementations of unstable specifications where significant change is expected.

    Congratulations to the W3C on the new HTML5 logo program!

    Jean Paoli

    GM: Interoperability Strategy

  • Interoperability @ Microsoft

    Offloading work to PHP Worker Roles on Windows Azure

    • 0 Comments

    There are many common scenarios in web development that require processing of information, gathering data, or handling message traffic that can be accomplished asynchronously – meaning in the background while the user is doing other things with the application. A common example of this is sending email or when thousands of users are posting comments on your blog. When you open an account or change your password, often web applications will send you some kind of confirmation email as part of the workflow. This is typically done from the server using SMTP relay. Anytime an application is connecting to an internal service there are times when network issues can cause problems. These problems range from slow bandwidth to high latency to server outages – each having the possibility to cause a connection timeout or just simply take a long, long time.

    When doing this type of processing, you have two options: to “block” and process the message while the user waits on a response from the server, or to allow the user to simply carry on and queue the work for background processing. Windows Azure provides simple tools to make this type of background processing a snap.

    To see how this can be done simply with the Windows Azure SDK for PHP and Eclipse, check out my new tutorial: “Tutorial - Using Worker Roles for Simple Background Processing”.

    That's one more update for this week on the http://azurephp.interoperabilitybridges.com site (see others here).
    I hope this is useful and I look forward to sharing many more tutorials and demos on simple ways to achieve powerful things with PHP and Windows Azure in the coming weeks.

    Cheers!

    Craig Kitterman, Sr. Interop Evangelist, @craigkitterman

  • Interoperability @ Microsoft

    Windows Azure tools for PHP get an update and refreshed content

    • 0 Comments

    The Windows Azure tools for PHP (see the list below) got an update for Christmas (well a little bit before, to be honest ;-), following up with the new version of the Windows Azure SDK 1.3 that was updated in November. As a reminder, here is what these three are doing:

    No big changes or real new features for now, but we wanted to mention as well the new and updated technical content that we are steadily publishing on the http://azurephp.interoperabilitybridges.com/ site. Brian Swan has updated his tutorial, Using the Windows Azure Tools for Eclipse with PHP. And don’t forget, Jas Sandhu’s Quicksteps to get started with PHP on Windows Azure published last week, which will help you quickly set up your machine in a "few clicks" with all the necessary tools and settings you will need.
    Great reading to get you started on Windows Azure with PHP!

    -- Jean-Christophe Cimetiere, Sr. Technical Evangelist, @openatmicrosoft

  • Interoperability @ Microsoft

    Quicksteps to get started with PHP on Windows Azure

    • 0 Comments

    The weather in the northern hemisphere is still a little nippy, and if you're like me, you're spending a lot of time indoors with family and friends enjoying the holiday season. If you're spending some of your time catching up and learning new things in the wonderful world of cloud computing, we have a holiday gift of some visual walkthroughs and tutorials on our new "Windows Azure for PHP" center. We pushed up these articles to help you quickly get set up with developing for Windows Azure

    "Getting the Windows Azure pre-requisites via the Microsoft Web Platform Installer 2.0" will help you quickly set up your machine in a "few clicks" with all the necessary tools and settings you will need to work with PHP on Windows, IIS and SQL Server Express. We’ve included snapshots of the entire process you will need to get a developer working with the tools built by the “Interoperability at Microsoft” team

    "
    Deploying your first PHP application with the Windows Azure Command-line Tools for PHP" will visually walk you through getting the tool, getting familiar with how it's used and packaging up a simple application for deployment to Windows Azure.

    Deploying your first PHP application to Windows Azure” will build on top of the former articles with walk troughs of how to deploy the application using the Windows Azure management console, both the “classic” and present versions.

    I hope this will help you get over the first speed bump of working on Microsoft’s cloud computing platform and we look forward to bringing you more of these based on your feedback and input. So please check them out and let us know how you feel!

    imageHappy Holidays and Happy New Year, 2011!

    jas

  • Interoperability @ Microsoft

    Prototyping Early W3C HTML5 Specifications

    • 3 Comments

    Today we launched the HTML5 Labs Web site, a place where we prototype early and not yet fully stable drafts of specifications developed by the W3C and other standard organizations. 

    These prototypes will help us have informed discussions with developer communities, and give implementation experience with the draft specifications that will generate feedback to improve the eventual standards. It also lets us give the community some visibility on those specifications we consider interesting from a scenario point of view, but which are still not at the stage where we can consider them ready for official product support.

    Microsoft's approach with Internet Explorer as outlined in a blog post by Dean Hachamovitch, the Corporate Vice President for Internet Explorer, is to implement standards as they become site-ready for broader adoption.

    Writing Sites to IE Based on Stable HTML5

    For developers, this means that they can write sites to Internet Explorer and be confident that it is based on stable HTML5 and will work in future browser upgrades.  For users, it means that sites continue to work as they upgrade their browsers and they don't get locked in to older browsers.

    At the same time, Microsoft sees an important need in continuing to drive experimentation and testing of new specifications in the standards organizations. It is part of the process of ensuring that specifications are actually ready for real-world usage.

    This new HTML5 Labs Web site is the place where our Interoperability Labs will publish prototype implementations of certain unstable and in-progress W3C, IETF, ECMA and other standards specifications still undergoing a lot of change. So, developers should expect that code and web pages based on these prototypes will have to be re-written as the specifications mature.

    First Prototypes: WebSockets and IndexedDB

    The first two prototypes we are delivering today are Web Sockets and IndexedDB.

    WebSockets is a technology designed to simplify much of the complexity around bi-directional, full-duplex communications channels, over a single Transmission Control Protocol (TCP) socket. It can be implemented in web browsers, web servers as well as used by any client or server application. The WebSocket API is currently being standardized by the W3C and the WebSocket protocol is being standardized by the IETF.

    For its part, IndexedDB is a developing W3C Web standard for the storage of large amounts of structured data in the browser, as well as for high performance searches on this data using indexes. IndexedDB can be used for browser implemented functions like bookmarks, as well as for web applications like email. IndexedDB also enables offline scenarios where the browser might be disconnected from the Internet or server.

    We chose these two specifications primarily because they are potentially very useful but currently unstable. These are the two specifications we currently believe the community stands to benefit the most from, but both are in flux. 

    The details of the HyBi protocol underlying WebSockets are being hotly debated in IETF right now, and the IndexedDB spec will soon be updated to reflect decisions made at a recent W3C working group meeting.

    A Call to Action

    So please experiment with these prototypes and tell us and other working group participants whether the APIs are usable. We are making them available to help improve the final specifications. 

    Other implementers can use these prototypes to determine whether we have interpreted the specifications in the same way, and a larger audience can get a better sense of what potential will be unlocked when these specifications have stabilized into interoperable implemented standards.

    Also, please participate in the appropriate standards bodies to help finalize the specifications.

    Many thanks,

    Jean Paoli

    GM: Interoperability Strategy

  • Interoperability @ Microsoft

    Introducing the WebSockets Prototype

    • 14 Comments

    As we launch our new HTML5 Labs today, this is one of two guest blogs about the first two HTML5 prototypes. It is written by Tomasz Janczuk, a Principal Development Lead in Microsoft’s Business Platform Division.

    In my blog post from last summer I wrote about a prototype .NET implementation of two drafts of the WebSockets protocol specification - draft-hixie-thewebsocketprotocol-75 and  draft-hixie-thewebsocketprotocol-76 - making their way through the IETF at that time.

    Since then, there have been a number of revisions to the protocol specification, and it is time to revisit the topic. Given the substantial demand for code to experiment with, we are sharing the Windows Communication Foundation server and Silverlight client prototype implementation of one of the latest proposed drafts of the WebSockets protocol: draft-montenegro-hybi-upgrade-hello-handshake-00.

    You can read more about the effort and download the .NET prototype code at the new HTML5 Labs site.

    What is WebSockets?

    WebSockets is one of the HTML 5 working specifications driven by the IETF to define a duplex communication protocol for use between web browsers and servers. The protocol enables applications that exchange messages between the client and the server with communication characteristics that cannot be met with the HTTP protocol.

    In particular, the protocol enables the server to send messages to the client at any time after the WebSockets connection has been established and without the HTTP protocol overhead. This contrasts WebSockets with technologies based on the HTTP long polling mechanism available today.

    For this early WebSockets prototype we are using a Silverlight plug-in on the client and a WCF service on the server. In the future, you may see HTML5 Labs using a variety of other technologies.

    What are we making available?

    Along with the downloadable .NET prototype implementation of the WebSocket proposed draft-montenegro-hybi-upgrade-hello-handshake specification, we are also hosting a sample web chat application based on that prototype in Windows Azure here. The sample web chat application demonstrates the following components of the prototype:  

    1. The server side of the WebSocket protocol implemented using Windows Communication Foundation from .NET Framework 4. The WCF endpoint the sample application communicates with implements the draft WebSocket proposal.
    2. The client side prototype implementation consisting of two components:
      1. A Silverlight 4 application that implements the same draft of the WebSocket protocol specification.
      2. A jQuery extension that dynamically adds the Silverlight 4 application above to the page and creates a set of JavaScript WebSocketDraft APIs that delegate their functionality to the Silverlight application using the HTML bridge feature of Silverlight.

    The downloadable package contains a .NET prototype implementation consisting of the following components:

    1. A WCF 4.0 server side binding implementation of the WebSocket specification draft.
    2. A prototype of the server side WCF programming model for WebSockets.
    3. Silverlight 4 client side implementation of the protocol.
    4. .NET 4.0 client side implementation of the protocol.
    5. A HTML bridge from the Silverlight to JavaScript that enables use of the prototype from JavaScript applications running in browsers that support Silverlight.
    6. Web chat and stock quote samples.

    Given the prototype nature of the implementation, the following restrictions apply:

    1. A Silverlight client (and a JavaScript client, via the HTML bridge) can only communicate using the proposed WebSocket protocol using ports in the range 4502-4534 (this is related to Network Security Access Restrictions applied to all direct use of sockets in the Silverlight platform).
    2. Only text messages under 126 bytes of length (UTF-8 encoded) can be exchanged.
    3. There is no support for web proxies in the client implementation.
    4. There is no support for SSL.
    5. Server side implementation limits the number of concurrent WebSocket connections to 5.

    This implementation has been tested to work on Internet Explorer 8 and 9.

    Why is this important?

    Through access to emerging specifications like WebSockets, the HTML5 Labs sandbox gives you implementation experience with the draft specifications, helps enable faster iterations around Web specifications without getting locked in too early with a specific draft, and gives you the opportunity to provide feedback to improve the specification. This unstable prototype also has the potential to benefit a broad audience.

    We want your feedback

    As you try this implementation we welcome your feedback and we are looking forward to your comments!

    Tomasz

  • Interoperability @ Microsoft

    IndexedDB Prototype Available for Internet Explorer

    • 11 Comments

    As we launch our new HTML5 Labs today, this is one of two guest blogs about the first two HTML5 prototypes. It is written by Pablo Castro, a Principal Architect in Microsoft's Business Platform Division.

    With the HTML5 wave of features, Web applications will have most of the building blocks required to build full-fledged experiences for users, from video and vector graphics to offline capabilities.

    One of the areas that has seen a lot of activity lately is local storage in the browser, captured in the IndexedDB spec, where there is a working draft as well as a more current editor's draft.

    The goal of IndexedDB is to introduce a relatively low-level API that allows applications to store data locally and retrieve it efficiently, even if there is a large amount of it.

    The API is low-level to keep it really simple and to enable higher-level libraries to be built in JavaScript and follow whatever patterns Web developers think are useful as things change over time.

    Folks from various browser vendors have been working together on this for a while now, and Microsoft has been working closely with the teams at Mozilla, Google and other W3C members that are involved in this to design the API together. Yeah, we even had meetings where all of us where in the same room, and no, we didn't spontaneously combust!

    The IE folks approach is to focus IE9 on providing developer site-ready HTML5 that can be used today by web developers without having to worry about what is stable and not stable, or being concerned about the site breaking as the specifications and implementations change. Here at the HTML5 Labs we are letting developers experiment with unstable standards before they are ready to be used in production site.

    In order to enable that, we have just released an experimental implementation of IndexedDB for IE. Since the spec is still changing regularly, we picked a point in time for the spec (early November) and implemented that.

    The goal of this is to enable early access to the API and get feedback from Web developers on it. Since these are early days, remember that there is still time to change and adjust things as needed. And definitely don't deploy any production applications on it :)

    You can find out more about this experimental release and download the binaries from this archive, which contains the actual API implementation plus samples to get you started.

    For those of you who are curious about the details: we wanted to give folks early access to the API without disrupting their setup, so we built the prototype as a plain COM server that you can register in your box.

    That means we don't need to mess with IE configuration or replace files. The only visible effect of this is that you have to start with "new ActiveXObject(...)" instead of the regular windows.indexedDB. That would of course go away if we implement this feature.

    If you have feedback, questions or want to reach out to us for any other reason, please contact us here. We're looking forward to hearing from you.

    As a side note, and since this is a component of IE, if you want to learn more about how IE is making progress in the space of HTML5 and how we think about new features in this context, check out the IE blog here.

    Pablo

  • Interoperability @ Microsoft

    HTML5 Video and Interoperability: Firefox Add-On Provides H.264 Support on Windows

    • 12 Comments

    As you know, Microsoft is committed to interoperability, and the IE team has previously blogged about and provided developer previews and samples showing “Same Markup” – the same HTML, CSS, and script working across browsers – in action.

    Today, as part of the interoperability bridges work we do on this team, we’re making available a new Firefox add-on that enables Firefox users on Windows to play H.264-encoded video on HTML5 by using the built-in capabilities found in Windows 7.

    Microsoft has already been offering for several years now the Windows Media Player plug-in for Firefox, which is downloaded by millions of people a month who want to watch Windows Media content.

    This new plug-in, known as the HTML5 Extension for Windows Media Player Firefox Plug-in, is available for download here at no cost.

    It extends the functionality of the earlier plug-in for Firefox, and enables web pages that that offer video in the H.264 format using standard W3C HTML5 to work in Firefox on Windows. Because H.264 video on the web is so prevalent, this interoperability bridge is important for Firefox users who are Windows customers.

    H.264 is a widely-used industry standard, with broad and strong hardware support. This standardization allows users to easily take what they've recorded on a typical consumer video camera, put it on the web, and have it play in a web browser on any operating system or device with H.264 support, such as on a PC with Windows 7.

    H.264 is also a very well established and widely supported video compression format, developed for use in high definition systems such as HDTV, Blu-ray and HD DVD as well as low resolution portable devices. It also offers better quality at lower file sizes than both MPEG-2 and MPEG-4 ASP (DivX or XviD).

    The HTML5 Extension for Windows Media Player Firefox Plug-in continues to offer our customers value and choice, since those who have Windows 7 and are using Firefox will now be able to watch H.264 content through the plug-in.

    Microsoft is already deeply engaged in the HTML5 process with the W3C as we believe that HTML5 will be important in advancing rich, interactive web applications and site design.

    Enjoy!

    Claudio Caldato,

    Principal Program Manager, Interoperability Strategy Team

  • Interoperability @ Microsoft

    WS-I Completes Web Services Interoperability Standards Work

    • 7 Comments

    imageThe final three Web services profiles developed by the Web Services Interoperability Organization (WS-I) have been approved by WS-I’s membership. Approval of the final materials for Basic Profile (BP) 1.2 and 2.0, and Reliable Secure Profile (RSP) 1.0 marks the completion of the organization’s work. Since 2002, WS-I has developed profiles, sample applications, and testinimageg tools to facilitate Web services interoperability. These building blocks have in turn served as the basis for interoperability in the cloud. As announced today by the WS-I, stewardship over WS-I’s assets, operations and mission will transition to OASIS (Organization for the Advancement of Structured Information Standards).

    It took a lot of work to get real products to fully interoperate using the standards. WS-I members have delivered an impressive body of work supporting deliverables in addition to the profiles (test tools, assertions, etc.). One might ask “why did it take so long, and what exactly did all this hard work entail?”

    When WS-I started up, interoperability of the whole stack of XML standards was fragile, especially of the SOAP and WSDL specifications at the top of the stack. It was possible for a specification to become a recognized standard with relatively little hard data about whether implementations of the specs interoperated. Specs were written in language that could get agreement by committees rather than in terms of rigorous assertions about formats and protocols as they are used in conjunction with one another in realistic scenarios. In other words, the testing that was done before a spec became a standard was largely focused on determining whether the spec could be implemented in an interoperable way, and not on whether actual implementations interoperated.

    At WS-I the web services community learned how to do this better. One of the first tasks was to develop profiles of the core specifications that turned specification language containing “MAY” and “SHOULD” descriptions of what is possible or desirable to “MUST” statements of what is necessary for interoperability, and removing altogether the features that weren’t widely implemented. We learned that it is important to do N-way tests of all features in a profile across multiple implementations, and not just piecewise testing of shared features. Likewise, since the SOAP based specs were designed to compose with one another, it is important to test specs in conjunction and not just in isolation.  During this period of learning and evolving, it was really necessary to go through the profiling process before the market would accept standards as “really done.”

    The underlying reality, especially in the security arena, is quite complex, a fact which also slowed progress. Different products support different underlying security technologies, and adopted the WS-* security-related standards at different rates. Also, there are many different ways to setup secure connections between systems, and it took considerable effort to learn how to configure the various products to interoperate. For example, even when different vendors support the same set of technologies, they often use different defaults, making it necessary to tweak settings in one or both products before they interoperate using the supported standards. The continuous evolution of security technology driven by the ‘arms race’ between security developers and attackers made things even more interesting.

    This work was particularly tedious and unglamorous over the last few years, when the WS-* technologies are no longer hot buzzwords. But now, partly due to the growing popularity of test driven development in the software industry as a whole, but partly due to the hard-won lessons from WS-I, the best practices noted above are commonplace. Later versions of specifications, especially SOAP 1.2, explicitly incorporated the lessons learned in the Basic Profile work at WS-I. Other Standards Development Organization (SDO) such as OASIS and W3C have applied the techniques pioneered at WS-I, and newer standards are more rigorously specified and don’t need to be profiled before they can legitimately be called “done.” Newer versions of the WS-* standard as well as CSS, ECMAScript, and the W3C Web Platform (“HTML5”) APIs are much more tightly specified, better tested, and interoperable “out of the box” than their predecessors were 10 years ago.

    We at Microsoft and the other companies who did the work at WS-I learned a lot more about how to get our mutual customers applications to interoperate across our platforms than could be contained in the WS-I documents that were just released. And to support this effort we are compiling additional guidance under a dedicated website: http://msdn.microsoft.com/webservicesinterop

    image

    This has a set whitepapers that go into much more depth about how to get interoperability between our platform / products and those from other vendors and open source projects.  Available whitepapers include: 

    Finally, it might be tempting to believe that the lessons of the WS-I experience apply only to the Web Services standards stack, and not the REST and Cloud technologies that have gained so much mindshare in the last few years. Please think again: First, the WS-* standards have not in any sense gone away, they’ve been built deep into the infrastructure of many enterprise middleware products from both commercial vendors and open source projects. Likewise, the challenges of WS-I had much more to do with the intrinsic complexity of the problems it addressed than with the WS-* technologies that addressed them. William Vambenepe made this point succinctly in his blog recently:

    But let’s realize that while a lot of the complexity in WS-* was unnecessary, some of it actually was a reflection of the complexity of the task at hand. And that complexity doesn’t go away because you get rid of a SOAP envelope …. The good news is that we’ve made a lot of the mistakes already and we’ve learned some lessons … The bad news is that there are plenty of new mistakes waiting to be made.

    We made some mistakes and learned a LOT of lessons at WS-I, and we can all avoid some new mistakes by a careful consideration of WS-I’s accomplishments.

    -- Michael Champion, Senior Program Manager

  • Interoperability @ Microsoft

    Zend Framework 1.11 Ships

    • 0 Comments

    At the annual ZendCon 2010 in Santa Clara, CA today, Zend Technologies announced general availability of Zend Framework 1.11, the latest release of its PHP application framework. This adds support for mobile application development and includes the open source Simple Cloud API, which allows PHP developers to build portable cloud applications.

    The Zend Framework is a PHP application framework with more than 15 million downloads and over 500 contributors, including Microsoft, Amazon, IBM, Adobe and Google.

    According to Zend's announcement, Zend Framework 1.11 gives developers access to the first deliverables for the Simple Cloud API project, including:

    • Document Service integration, which allows developers to utilize a variety of NoSQL cloud storage solutions including Amazon SimpleDB and Microsoft Windows Azure Table storage.
    • Queue Service integration, which lets developers perform asynchronous operations in order to offload heavy-lifting, pre-cache pages, and more. Queue Service integrations include Amazon Simple Queue System (SQS), Microsoft Windows Azure Queue service, and all adapters supported by the Zend Framework Zend_Queue component.
    • Storage Service integration, which allows developers to push static resources such as images and archives to the cloud. Currently supported services include Amazon Simple Storage Service (S3), Microsoft Windows Azure Blog storage, and Nirvanix.

    Windows Azure access from the Simple Cloud API is made possible by the Windows Azure SDK for PHP, a project sponsored by Microsoft and developed by RealDolmen. This is yet another example of Microsoft's continuous commitment to the openness of Windows Azure Platform by working with larger open source community.

    For its part, Microsoft is pleased to see the role this project is playing in "driving adoption among PHP developers for cloud computing platforms, and hope that many of these developers will be encouraged to use Windows Azure," says Jean Paoli, General Manager of Interoperability Strategy at Microsoft Corp.

    "The Simple Cloud API is an important catalyst for open and interoperable cloud computing, and Microsoft has an ongoing investment in the Simple Cloud API project, together with Zend and other contributors," Paoli says.

    The new mobile device support in Zend Framework 1.11 provides functionality for detecting mobile device types and their capabilities. Developers can choose from the  WURFL database, TeraWurfl, or DeviceAtlas to retrieve device capabilities, or they can write their own classes to leverage additional device databases.

    Zend Framework 1.11 mobile support also includes the Dojo Toolkit 1.5 update, which includes the dojox.mobile subproject. This delivers a flexible, lightweight mobile application framework, including CSS3 and JavaScript widgets optimized for use on mobile devices and for mobile-specific contexts.

  • Interoperability @ Microsoft

    Open in the Cloud: Improving the Java Developer Experience on Windows Azure Platform

    • 1 Comments

    As Microsoft continues to deliver on improving the Java developer experience on Windows Azure, I am happy to tell you that today, at the Professional Developers Conference 2010 (PDC 10) held here in Redmond, we are announcing a new set of tools based on Eclipse and updated client libraries (SDK) for Windows Azure.

    This means that customers can now choose to upload the Java environment of their choice and run it on Windows Azure which, as you know, is an Open Platform that can provide language choice such as C#, PHP or Java. http://www.WindowsAzure.com/interop/

    Windows Azure & Java

    As such, I am happy to announce today the Windows Azure tools for Eclipse/Java, an open source project sponsored by Microsoft and developed by partner Soyatec, an international software company and Eclipse solution provider. We expect Soyatec to be able to release a Community Technology Preview (CTP) of the Windows Azure tools for Eclipse/Java available by the end of 2010.

    These tools allow Java developers to build, test Java applications and deploy these directly to Windows Azure. While these tools have similar features to the Windows Azure Tools for Eclipse/PHP, which we announced earlier this month, these latest tools are designed for Java developers.

    I am also demoing a preview of the Windows Azure tools for Eclipse/Java, during my session: “Open in the cloud: Windows Azure and Java” (Friday from 9:00 AM to 10:00 AM Pacific Time). You can watch the session here http://player.microsoftpdc.com/Session/6ae95ba0-c185-4546-9d66-2604ac6b6cef

    clip_image002

    I am also happy to tell you that today, at PDC 10, we announced that Soyatec is releasing the version 2.0 of the Windows Azure SDK for Java. This SDK enables Java developers easily use Windows Azure storage services in their web applications. I’m really excited about the progress we are making. As you may remember, at PDC 09, we delivered the first version of this Windows Azure SDK for Java (http://blogs.msdn.com/b/interoperability/archive/2009/11/17/windows-azure-sdks-for-php-and-java-and-tools-for-eclipse-version-1-0-released-today.aspx).

    Windows Azure & PHP updates

    I’m also pleased to share with you the news that we are continuing our work on the PHP front, and are also announcing the availability of the new November 2010 CTP of the Windows Azure Tools for Eclipse/PHP as well as a new November 2010 CTP of the Windows Azure Companion, a tool that aims to provide a seamless experience when installing and configuring PHP platform-elements (PHP runtime, extensions) and Web applications running on Windows Azure.

    In addition, we are launching a new online technical/resource website dedicated to Windows Azure and PHP. This site will be a one stop shop for PHP developers to discover, learn and get expertise on Windows Azure. A beta version of the site is available at http://AzurePHP.interoperabilitybridges.com

    And, as always, there are a number of other tools available to developers, including the Windows Azure Command-line Tools for PHP and the Windows Azure SDK for PHP.

    I have also recorded a session, which is available on demand, in which I demo the latest version of the Windows Azure and PHP tools and SDK. The session, titled “Developing PHP Applications on the Windows Azure Platform,” shows how Microsoft’s Windows Azure Platform provides a comprehensive set of services for building and running scalable PHP applications targeting cloud. The recording of the session is here: http://bit.ly/93Jgib.
    In the session I go on a coding tour using open source development tools (Eclipse, Command line), SDKs and show methods to deploy applications (like Drupal) on the Windows Azure platform.

    I’m excited about all that we announced today and look forward to updating you on lots of exciting things moving forward. Stay tuned as we will follow up shortly with more technical articles and tutorials detailing scenarios using Windows Azure with PHP and Java. As always, do give us your feedback at: http://sourceforge.net/tracker/?group_id=266877&atid=1135912

    Vijay Rajagopalan, Principal Architect

  • Interoperability @ Microsoft

    Windows Azure Tools for Eclipse for PHP: new update, new tutorial

    • 1 Comments

    Things are moving pretty fast!
    A few weeks back we announced a series of new and updated Tools/SDKs for PHP developers targeting Windows Azure, which included the Windows Azure Tools for Eclipse/PHP, a comprehensive set of tools that use the Eclipse development environment to create, test and deploy modern cloud applications for the Windows Azure Platform.

    Today we’re releasing the October 2010 Community Technology Preview (CTP). This update is based on your feedback and includes many new features, as well as enhancing the workflow of features for version 2, which should be released by November. Here’s a quick rundown of the features we’re introducing:

    clip_image002[4]

    • One-click deployment of PHP Applications from Eclipse directly to Windows Azure
    • Support for Windows Azure Diagnostics
    • Integration of Open Source AppFabric SDK for PHP Developers for connecting on-premise PHP applications to cloud applications.
    • Support for multiple Web Roles and Worker Roles for large PHP applications
    • Support of Windows Azure Drive to enable ease of migration of legacy PHP applications.

     

    To learn more, take a look at Brian Swan’s complete “Get Started” tutorial called Using the Windows Azure Tools For Eclipse with PHP, in which Brian shows how to get the most out of Windows Azure.

    The Windows Azure Tools for Eclipse/PHP can be downloaded from here: http://www.windowsazure4e.org/download/, and will of course work from auto upgrade functionality in Eclipse.
    As always, do give us your feedback at http://sourceforge.net/tracker/?group_id=266877&atid=1135912

    Vijay Rajagopalan, Principal Architect

  • Interoperability @ Microsoft

    Windows Azure Platform gets easier for PHP developers to write modern cloud applications

    • 2 Comments

    OSIDaysThis week, I’m attending the Open Source India conference, in Chennai, India where I had the chance to participate in the opening keynote. During my talk, I gave a quick overview of the Interoperability Elements of a Cloud Platform, and I illustrated some elements through a series of demos. I used this opportunity to unveil a new set of developer tools and Software Development Kits (SDKs) for PHP developers who want to build modern cloud applications targeting Windows Azure Platform:

    • Windows Azure Companion – September 2010 Community Technology Preview(CTP)– is a new tool that aims to provide a seamless experience when installing and configuring PHP platform-elements (PHP runtime, extensions) and Web applications running on Windows Azure. This first CTP focuses on PHP, but it may be extended to be used for deploying any open source component or application that runs on Windows Azure. Read below for more details.
    • Windows Azure Tools for Eclipse for PHP - September 2010 Update–is a plug-in for PHP developers using the Eclipse development environment, which provides tools to create, test and deploy Web applications targeting Windows Azure.
    • Windows Azure Command-line Tools for PHP – September 2010 Update– is a command-line tool, which offers PHP developers a simple way to package PHP based applications in order to deploy to Windows Azure.
    • Windows Azure SDK for PHP– Version 2.0 – enables PHP developers to easily extend their applications by leveraging Windows Azure services (like blobs, tables and queues) in their Web applications whether they run on Windows Azure or on another cloud platform.

    VijayOSIDaysSmall

    These pragmatic examples are good illustrations demonstrating Windows Azure interoperability . Keep in mind that Microsoft’s investment and participation in these projects is part of our ongoing commitment to openness, which spans the way we build products, collaborate with customers, and work with others in the industry.

    A comprehensive set of tools and building blocks to pick and choose from

    We’ve come a long way since we released the first Windows Azure SDK for PHP in May 2009, by adding complementary solutions with the Eclipse plug-in and the command line tools.

    The Windows Azure SDK for PHP gives PHP developers a speed dial to easily extend their applications by leveraging Windows Azure services (like blobs, tables and queues), whether they run on Windows Azure or on another cloud platform. Maarten Balliauw, from RealDolmen, today released the version 2.0 of the SDK. Check out the new features on the project site: http://phpazure.codeplex.com/.
    An example of how this SDK can be used is the Windows Azure Storage for WordPress, which allows developers running their own instance of WordPress to take advantage of the Windows Azure Storage services, including the Content Delivery Network (CDN) feature. It provides a consistent storage mechanism for WordPress Media in a scale-out architecture where the individual Web servers don't share a disk.

    Today we are also announcing updates on the Windows Azure Tools for Eclipse for PHP and the Windows Azure Command-line Tools for PHP.

    Developed by Soyatec, the Windows Azure Tools for Eclipse plug-in offers PHP developers a series of wizards and utilities that allows them to write, debug, configure, and deploy PHP applications to Windows Azure. For example, the plug-in includes a Window Azure storage explorer that allows developers to browse data contained into the Windows Azure tables, blobs, or queues. The September 2010 Update includes many new features like enabling Windows Azure Drives, providing the PHP runtime of your choice, deploying directly to Windows Azure (without going through the Azure Portal), or the Integration of SQL CRUD for PHP, just to name a few. We will publish detailed information shortly, and in the meantime, check out the project site: http://www.windowsazure4e.org/.

    We know that PHP developers use various developments environments – or none J, so that’s why we built the Windows Azure Command-line Tools, which let you easily package and deploy PHP applications to Windows Azure using a simple command-line tool. The September 2010 Update includes more deployment options, like new support for the Windows Azure Web & Worker roles.

    So you might think that from the PHP developer point of view, you’re covered to write and deploy cloud applications for Windows Azure.” The answer is both yes, and no!
    Yes, because these tools cover most scenarios where developers are building and deploying one application at time. But what if you want to deploy open source PHP SaaS applications on the same Windows Azure service? Or what if you are more of a Web applications administrator, and just want to deploy pre-built applications and simply configure them?

    This is where the Windows Azure Companion comes into the picture.

    A seamless experience when deploying PHP apps to Windows Azure

    ---------------------------------------------------------------------------------------------------------------------

    IMPORTANT NOTE - July 13, 2011

    The Windows Azure Companion was an experimental tool to provide a simple experience installing and configuring platform-elements (PHP runtime, extensions) and web applications on Windows Azure.  Based the feedback and results Microsoft has decided to stop any further development of the Windows Azure Companion and instead we recommend using the new  tools available at http://azurephp.interoperabilitybridges.com/downloads to deploy applications to Windows Azure

    -----------------------------------------------------------------------------------------------------------------------

    The Windows Azure Companion – September 2010 CTP– is a new tool that aims to provide a seamless experience when installing and configuring PHP platform-elements (PHP runtime, extensions) and Web applications running on Windows Azure. This early version focuses on PHP, but it may be extended for deploying any open source component or application that runs on Windows Azure. Read below for more details.

    It is designed for developers and Web application administrators who want to more efficiently “manage” the deployment, configuration and execution of their PHP platform-elements and applications.

    The Windows Azure Companion can be seen as an installation engine that is running on your Windows Azure service. It is fully customizable through a feed which describes what components to install. Getting started is an easy three step process:

    1. Download the Windows Azure Companion package & set your custom feed
    2. Deploy Windows Azure Companion package to your Windows Azure account
    3. Using the Windows Azure Companion and your custom feed, deploy the PHP runtime, frameworks, and applications that you want

    WAcompanionArchitecture

    So, how did we build the Windows Azure Companion? The Windows Azure Companion itself is a Web application built in ASP.NET/C#. Why C#? Why not PHP? The answer is simple: the application is doing some low-level work with the Windows Azure infrastructure. In particular, it spins the Windows Azure Hosted Web Core Worker Role in which the PHP engine and applications are started and then executed. Doing these low level tasks in PHP would be much more difficult, so we chose C# instead. The source and the installable package (.cspkg & config files) are available on the MSDN Code Gallery: http://code.msdn.microsoft.com/azurecompanion. And from a PHP developer perspective, all you need is the installable package, and you don’t have to worry about the rest unless you are interested!

    All you need is in the feed

    The Windows Azure Companion Web application uses an ATOM feed as the data-source to display the platform-elements and Web applications that are available for installation. The feed provides detailed information about the platform element or application, such as production version, download location, and associated dependencies. The feed must be hosted on an Internet accessible location that is available to the Windows Azure Companion Web application. The feed conforms to the standard ATOM schema with one or more product entries as shown below:

    <?xml version="1.0" encoding="utf-8"?>
    <feed xmlns="http://www.w3.org/2005/Atom">
    <version>1.0.1</version>
    <title>Windows Azure platform Companion Applications Feed</title>
    <link href="http://a_server_on_the_internet.com/feed.xml" />
    <updated>2010-08-09T12:00:00Z</updated>
    <author>
    <name>Interoperability @ Microsoft</name>
    <uri>http://www.interoperabilitybridges.com/</uri>
    </author>
    <id>http://a_server_on_the_internet.com/feed.xml </id>
    <entry>
    <productId>OData_SDK_for_PHP</productId>
    <productCategory>SDKs</productCategory>
    <installCategory>Frameworks and SDKs</installCategory>
    <updated>2010-08-09T12:00:00Z</updated>
    <!-- UI elements shown in Windows Azure platform Companion -->
    <title>OData SDK for PHP</title>
    <tabName>Platform</tabName>
    <summary>OData SDK for PHP</summary>
    <licenseURL>http://odataphp.codeplex.com/license</licenseURL>
    <!-- Installation Information -->
    <installerFileChoices>
    <installerFile url="http://download.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=odataphp&amp;DownloadId=111099&amp;FileTime=129145681693270000&amp;Build=17027" version="2.0">
    <installationProperties>
    <installationProperty name="downloadFileName" value="OData_PHP_SDK.zip" />
    <installationProperty name="applicationPath" value="framework" />
    </installationProperties>
    </installerFile>
    </installerFileChoices>
    <!-- Product dependencies -->
    <dependencies>PHP_Runtime</dependencies>
    </entry>
    </feed>

    If you want to see a sample feed in action and the process for building it, I invite you to check Maarten Balliauw’s blog: Introducing Windows Azure Companion Cloud for the masses. He has assembled a custom feed with interesting options to play with. And of course, the goal is to let you design the feed that contains the options and applications you need.

    We are on a journey

    Like I said earlier, we’ve come a long way in the past 18 months, understanding how to best enable various technologies on Windows Azure. We’re on a journey and there’s a lot more to accomplish. But I have to say that I’m very excited by the work we’re doing, and equally eager to hear your feedback.

    Vijay Rajagopalan, Principal Architect

  • Interoperability @ Microsoft

    Bienvenue - Benvenuto - Welcome to Microsoft Gianugo Rabellino, Senior Director, Open Source Communities.

    • 3 Comments

    Fourteen years ago, I relocated from France to join Microsoft, where I expanded my dream to do big things with technology.  As General Manager for Interoperability Strategy at Microsoft today, I have the privilege of leading a talented team of people who draw inspiration from delivering the most value out of technology for the benefit of our customers. As I review the work Microsoft has been doing to support these efforts, I am continually impressed by the company’s commitment to addressing the customer realities of today’s mixed source IT environments. 

    You may know our team accomplishments from our Interoperability Bridges & Lab Center, but we do much more. We strive to take a holistic approach to interoperability and openness,  always exploring new ways to engage and build deeper technology connections.  As part of that effort, I’m extremely pleased to announce a new addition to my team – Gianugo Rabellino, who will be a Senior Director engaged directly with the broader open source world. In his role, Gianugo will work to foster relationships with the open source communities worldwide. I expect he will be a tremendous resource in helping identify ways open source communities and Microsoft can better work together and to help Microsoft product teams with their open source strategies.

    gianugoMany of you may already know Gianugo as he’s been a well-known figure in open source communities for years. Given his previous roles as Founder and Chief Executive Officer of Sourcesense and Vice President of the Apache XML Project Management Committee, Gianugo possess a deep understanding of open source technologies and platforms. When he joins Microsoft this coming month, Gianugo will bring his wealth of experience and knowledge to a group of passionate and committed individuals who share his same enthusiasm for interoperability and openness between Microsoft and non-Microsoft platforms.

    Gianugo will be relocating from Italy to Redmond to do big things with technology.  And he’ll go big with the support of my team, our company and many of you who follow our blog.  Once he’s had time to settle into his new role, you can expect to hear from Gianugo directly about his plans around his new role, and the adventures in moving a young family from Italy to the Seattle area.

    Jean Paoli, General Manager for Interoperability Strategy

  • Interoperability @ Microsoft

    Binary File Format Plugfest

    • 0 Comments

    The Office interoperability team will host a Binary File Format Plugfest on October 19th and 20th in Redmond. The event will target a developer level audience. Microsoft subject matter experts from both the support organization and the product team will be onsite to answer questions about the Binary File Formats.  This Plugfest will be a great opportunity for you to test your BFF implementations and receive immediate feedback and assistance from Microsoft. The event is free, and we will cover the doc, xls, ppt, and pst formats through a combination of presentations, 1:1 discussions, and workshops.

    What to Expect:

    • Presentations on the Binary File Format Open Specifications (Word, Excel, PowerPoint, PST, Graphics, Document Cryptography etc.)
    • 1:1 Sessions with product development team members
    • Access to Office's Binary File Format validation tool for Word, Excel, and PowerPoint
    • Interaction with Microsoft Support
    • Breakfast, lunch, and dinner will be provided on both October 19th and 20th

    Space is limited, so register early. To learn more about the event or to register, please contact Michael Bowman

    Jas Sandhu

  • Interoperability @ Microsoft

    Microsoft Drivers for PHP for SQL Server 2.0 released

    • 1 Comments

    Microsoft is announcing an important interoperability milestone: the release of the Microsoft Drivers for PHP for SQL Server 2.0!!

    The major highlight of this release is the addition of the PDO_SQLSRV driver, which adds support for PHP Data Objects (PDO). Providing the PDO_SQLSRV driver enables popular PHP applications to use the PDO data access “style” to interoperate with Microsoft’s SQL Server database and make it easier for PHP developers to take advantage of SQL Server's proven track record and to leverage features such as SQL Server's Reporting Services and Business Intelligence capabilities. In addition to accessing SQL Server, both drivers (SQLSRV and PDO_SQLSRV) also enable PHP developers to easily connect to and use Microsoft's cloud database offering, SQL Azure, and enjoy the benefits of a reliable and scalable relational database in the cloud, as well as functionality like exposing OData feeds.

    SQL ServerDriverforPHP_PDO

    Ashay Chaudhary (Program Manager at Microsoft) has all the details posted on the SQL Server Driver for PHP team blog:
    http://blogs.msdn.com/b/sqlphp/archive/2010/08/04/microsoft-drivers-for-php-for-sql-server-2-0-released.aspx

    -- Jean-Christophe Cimetiere, Sr. Technical Evangelist, @openatmicrosoft

  • Interoperability @ Microsoft

    Interoperability Elements of a Cloud Platform Outlined at OSCON

    • 0 Comments

    OSCON Keynote Jean Paoli

    This week I’m in Portland, Oregon attending the O’Reilly Open Source Convention (OSCON). It’s exciting to see the great turnout as we look to this event as an opportunity to rub elbows with others and have some frank discussions about what we’re collectively doing to advance collaboration throughout the open source community. I even had the distinct pleasure of giving a keynote this morning at the conference.

    The focus of my presentation, titled “Open Cloud, Open Data” described how interoperability is as an essential component of a cloud computing platform. I personally think it’s critical to acknowledge that the cloud is intrinsically about connectivity. Because of this, interoperability is really the key to successful connectivity.

    We’re facing an inflection point in the industry – where the cloud is still in a nascent state – that we need to focus on removing the barriers for customer adoption and enhancing the value of cloud computing technologies. As a first step, we’ve outlined what we believe are the foundational elements of an open cloud platform.

     

    They include:

    • Data Portability:
      How can I keep control over my data?
      Customers own their own data, whether stored on-premises or in the cloud. Therefore, cloud platforms should facilitate the movement of customers’ data in and out of the cloud.
    • Standards:
      What technology standards are important for cloud platforms?
      Cloud platforms should support commonly used industry standards so as to facilitate interoperability with other software and services that support the same standards. New standards may be developed where existing standards are insufficient for emerging cloud platform scenarios.
    • Ease of Migration and Deployment:
      Will your cloud platforms help me migrate my existing technology investments to the cloud and how do I use private clouds?
      Cloud platforms should provide a secure migration path that preserves existing investments and should enable the co-existence between on-premise software and cloud services. This will enable customers to run “customer clouds” and partners (including hosters) to run “partner clouds” as well as take advantage of public cloud platform services.
    • Developer Choice:
      How can I leverage my developers’ and IT professionals’ skills in the cloud?
      Cloud platforms should offer developers a choice of software development tools, languages and runtimes.

    Through our ongoing engagement in standards and with industry organizations, open source developer communities, and customer and partner forums, we hope to gain additional insight that will help further shape these elements. We’ve also pulled together a set of related technical examples which can be accessed at www.microsoft.com/cloud/interop to support continued discussion with customers, partners and others across the industry.

    Interoperability Elements of a Cloud Platform

    In addition, we continue to work with others in the industry to deliver resources and technical tools to bridge non-Microsoft languages — including PHP and Java — with Microsoft technologies. As a result, we have produced several useful open source tools and SDKs for developers, including the Windows Azure Command-line Tools for PHP, the Windows Azure Tools for Eclipse and the Windows Azure SDK for PHP and for Java. Most recently, Microsoft joined Zend Technologies Ltd., IBM Corp. and others for an open source, cloud interoperability project called Simple API for Cloud Application Services, which will allow developers to write basic cloud applications that work in all of the major cloud platforms.

    Available today is the latest version of the Windows Azure Command Line Tools for PHP to the Microsoft Web Platform Installer (Web PI). The Windows Azure Command Line Tools for PHP enable developers to use a simple command-line tool without an Integrated Development Environment to easily package and deploy new or existing PHP applications to Windows Azure. Microsoft Web PI is a free tool that makes it easy to get the latest components of the Microsoft Web Platform as well as install and run the most popular free web applications.

    On the data portability front, we’re also working with the open source community to support the Open Data Protocol (OData), a REST-based Web protocol for manipulating data across platforms ranging from mobile to server to cloud. You can read more about the recent projects we’ve sponsored (see OData interoperability with .NET, Java, PHP, iPhone and more) to support OData. I’m pleased to announced that we’ve just release a new version of the OData Client for Objective-C (for iOS & MacOS), with the source code posted on CodePlex, joining a growing list of already available open source OData implementations.

    Microsoft’s investment and participation in these projects is part of our ongoing commitment to openness, from the way we build products, collaborate with customers, and work with others in the industry. I’m excited by the work we’re doing , and equally eager to hear your thoughts on what we can collectively be doing to support interoperability in the cloud.

    Jean Paoli, general manager for Interoperability Strategy at Microsoft

  • Interoperability @ Microsoft

    Microsoft at OSCON next week

    • 0 Comments

    OSCONMicrosoft returns to the O’Reilly Open Source Convention (OSCON) in Portland, Oregon next week. For us, OSCON is a great opportunity to meet and interact with developers, programmers, systems engineers and administrators who live and breathe open source every day. We’re excited to participate in this forum, as it gives us a chance to hear and see firsthand what exciting developments are happening and how and what bridges we can build to improve interoperability between platforms.

    Jean Paoli, Microsoft General Manager for Interoperability Strategy, will be keynoting on Thursday, talking about “Open Cloud, Open Data.” Jean has played a pivotal role in Microsoft’s interoperability efforts over the past few years and he continues to explore opportunities to create greater interoperability in new technical areas and with emerging platforms. In his keynote, Jean plans to address how interoperability is at the core of Microsoft’s vision of a cloud that can capture the imaginations of developers, unleash their creativity and enable them to build new breakthrough applications.

    If you won’t be at OSCON in person, you can still watch the keynote presentations through a streaming feed on the O’Reilly OSCON site.

    A crew of Microsoft people will be on the ground and would love to talk all things interop and open source with you. If you have a question, an idea, an observation, just poke us @openatmicrosoft or me @jccim, we’ll see you there. We will also have several speakers presenting track sessions throughout the week and I encourage you to check them out. Links to the session summaries are provided below.

    CoApp: Bringing Open Source Package Management to Windows
    Garrett Serack
    , Software Development Engineer for Microsoft
    Date: Wednesday, July 21
    Location: E143/E144
    Discover the changing landscape of Open Source on Windows, and how the introduction of the Common Opensource Application Publishing Platform is driving performance, stability and quality into OSS applications on Windows.

    Build Mission Critical Cloud Applications on Windows Azure Platform using Open Source Technologies
    Vijay Rajagopalan
    , Principal Architect for Microsoft
    Date: Thursday, July 22
    Location: E143/E144
    The purpose of this session is to demonstrate Microsoft's commitment to openness and interoperability by practical Cloud Application development scenarios on Windows Azure using Open Source Technologies and Languages

    Private Cloud Deployment with Microsoft and Novell: Driving Transformational Architecture in the Enterprise
    Fabio Da Cunha
    , Senior Manager, Interoperability Alliances for Microsoft
    Frank Rego, Senior Product Manager for Novell
    Date: Thursday, July 22
    Location: E143/E144
    The evolution of cloud computing promises significant efficiency gains and cost savings over today’s distributed architecture model. Many IT leaders, however, face tough choices about what to deploy to evolve their data center while, at the same time, leveraging existing assets and managing to a flat or often declining budget.

    Reactive Extensions For JavaScript
    Erik Meijer
    , Architect for Microsoft
    Date: Thursday, July 22
    Location: Portland 255
    The "A" in "AJAX" stands for "Asynchronous" and indeed almost all Web and mobile applications have to be written in an asynchronous and event-driven style. Reactive Extensions for JavaScript is a library for coordinating and orchestrating asynchronous and concurrent computations in a high-level and declarative way.

    Advancing Interoperability, Patient Safety, and Efficiency with the Microsoft Connected Health Platform Open Toolkits
    Teddy Bachour
    , Sr. Technical Strategist for Microsoft
    Date: Friday, July 23
    Location: F151
    The Microsoft Connected Health Platform (CHP) provides open toolkits and guidance for the information and communication technology (ICT) community to help them speed architecture, design and deployment of interoperable, efficient, and scalable e-Health infrastructures and solutions for the health industry.

    See you there!

    -- Jean-Christophe Cimetiere, Sr. Technical Evangelist, @openatmicrosoft

  • Interoperability @ Microsoft

    Apache Stonehenge new M2 release adds claims-based authentication scenarios

    • 0 Comments

    Web Services protocols have been around for ten years now. The specifications around these protocols have moved through major standards bodies and most vendors and open source projects have implementations of these web services protocols in their products. That being said, connecting heterogeneous platforms in an interoperable manner hasn’t always been easy. That’s why Microsoft and other vendors initiated the Apache Stonehenge incubator project, a little more than a year ago, “to develop a set of sample applications to demonstrate seamless interoperability across multiple underlying platform technologies by using currently defined W3C and OASIS standard protocols. By having a set of sample applications, with multiple language and framework implementations will become a useful and important part of the SOA landscape” (quote from the Why Apache Stonehenge? page).

    Our goal was to show that you can run an application across different platforms using different technologies purely on the foundation of the Web Services protocols and standards.

    Launched in January 2009, Stonehenge is designed to provide a public forum to test the interoperability of WS-* protocols on different technical stacks and to build open source sample applications that could provide best practices and coding guidelines for better interoperability.

    It is helpful for customers and the industry to have multiple implementations of these standards and have the ability to choose the best ones for their scenarios and requirements. Customers get working code on multiple platforms and vendors catch bugs and test interoperability issues in an open manner.

    The first version “M1” of the Stock Trader sample application showcased the main Web Services standards, including WS-Security.

    Today, we are glad to announce the availability of Stonehenge “M2”, the second iteration, now including WS-Trust 1.4 and WS-FED 1.1 protocols for claims-based authentication scenarios.

    clip_image002

    This allows the end-users’ to be authenticated through an independent Security Token Service (STS) that is trusted by the bank and to pass that token to the broker to process the transaction.

    Architecture

    Watch the video with Kent Brown (Product Manager, Microsoft) and I where we introduce Stonehenge and Kent presents an actual demo.

    People can download the M1 and M2 releases of Apache Stonehenge from http://www.apache.org/dist/incubator/stonehenge and the documentation is up on the wiki: https://cwiki.apache.org/confluence/display/STONEHENGE/Index

    We are looking forward to working with the community to shape out the next steps. As always, if you have feedback, questions, or wishes, please join us on the Stonehenge project site!

    Kamaljit Bath, Principal Program Manager

    Additional links:

  • Interoperability @ Microsoft

    Identity “Mash-up” Federation Demo using Multiple Protocols (OpenID and WS-Federation)

    • 1 Comments

    [Guest blogger Mike Jones, from the Federated Identity Team]

    At the last Interoperability Executive Customer (IEC) Council meeting in October 2009, there was broad agreement to involve third party software vendors to work with IEC Council members and Microsoft on specific interop scenarios brought forward by the council members.  We are pleased to report that over the last five months, the council was able to engage in very productive discussions with PayPal on an Identity Management interoperability scenario proposed by Medtronic.

    Medtronic, PayPal, and Microsoft worked together to produce a multi-protocol federated identity “mash-up” demo using multiple protocols (OpenID and WS-Federation). This demo was shown at the Internet Identity Workshop and to members of the IEC Council.  The demo shows how Medtronic customers could use PayPal identities when signing up for and participating in a medical device trial.

    clip_image001

    You can view a video of the demo here.

    We called it an “identity mash-up” because claims from the PayPal identity are combined with (“mashed-up” with) additional claims added by Medtronic for trial participants to create a composite Medtronic trial identity.  Medtronic creates “shadow” accounts for trial participants, but from the user’s point of view they’re always just using their PayPal account whenever they have to sign for the trial.

    It’s multi-protocol because the PayPal claims are delivered to Medtronic using OpenID 2.0, whereas the claims from Medtronic are delivered to its relying parties using WS-Federation.  It’s interop because the demo uses both .NET and the Windows Identity Foundation on Windows and PHP on Linux, with interoperable identity protocols letting them seamlessly work together.

    Southworks, the company that built much of the demo, has released the source code and documentation for a proof-of-concept OpenID/WS-Federation Security Token Service (STS) based on the one used in the demo, should you be interested in prototyping something similar.

    We want to thank Medtronic and PayPal for their leadership and partnership of this effort and Southworks for their professionalism, agility, and execution.  We appreciate the opportunity to work with other industry leaders both to understand and demonstrate the interoperability that’s possible with our current product offerings and to inform the planning efforts for our future identity products.”

    Mike Jones, Senior Program Manager, Federated Identity Team

  • Interoperability @ Microsoft

    Voice your opinion on .NET interoperability with Windows Communication Foundation (WCF)

    • 2 Comments

     

    Who says Microsoft doesn’t listen? Here is a chance to voice your opinion and make .NET more interoperable and easier to use when dealing with other languages/runtime through Web Services (WS-*).

    image[6]


    The .NET Windows Communication Foundation (WCF) team is planning its next set of features and wants to hear from developer’s experiences. For that purpose, they have provided a quick, to-the-point survey for you to provide a developer to developer feedback.

    Achieving interoperability between platforms should be easy and straightforward, right? We know it’s not always the case. So, go ahead provide your feedback today on what is keeping you awake at night and what would make you happy.  We are early in the product cycle, but need your feedback by July 15th to truly make the impact we all want.

    The survey is right here: http://mymfe.microsoft.com/WCF/Feedback.aspx?formID=283

    If you have any questions on the survey, please contact Abu Obeida Bakhach, Interoperability Program Manager at abu.obeida@microsoft.com

    Thanks!

  • Interoperability @ Microsoft

    Managing “404/Page not found” Error on WordPress with Bing

    • 1 Comments

    Here’s an interesting way for WordPress developers to easily manage the “404/Page not found” error by leveraging the Bing search engine using the recently released Bing Search Library for PHP project (a wrapper on top of the Bing API, which provides a simple way to submit queries to and retrieve results from the Bing Engine). For this project, we’ve continued to work with PHP expert Cal Evans to create a scenario showing how to use the library.

    The Scenario

    The idea is simple: instead of sending the default WordPress “404/Page not found” error page to a user who gets the wrong page URL on your site, why not try to redirect the user to content that he or she may be looking for?

    The Solution

    URLs are often meaningful because they include important keywords (at least that’s a good SEO practice). So let’s try to extract those keywords from the URL, pass them on to Bing API to find the matching pages, and display smart suggestions to the user!

    As a result

    Tada…

    bing404WP

    A new plugin “Bing404 for WordPress” is born. Microsoft is making the plugin available through the WordPress Plugin Directory: http://wordpress.org/extend/plugins/bing-404/

    Need more details?

    phparchitekCal Evans has posted a tutorial on how to get started with the plugin on php|architect
    His article discusses the details about how the plugin is built. 

     

    Feel free to share feedback!

    Additional links

    -- Jean-Christophe Cimetiere, Sr. Technical Evangelist, @openatmicrosoft

  • Interoperability @ Microsoft

    Powering Search on PHP Web Sites with Bing

    • 0 Comments

    The Bing Search and Decision engine offers a comprehensive Application Programming Interface (API) that enables developers to programmatically submit queries to and retrieve results from the Bing Engine. If you are a PHP developer and looking for a way to easily enable the search feature on your website, you are in luck. Today, we’re pleased to introduce a new Bing Search Library for PHP,available on Codeplex.com, http://bingphp.codeplex.com, under an open source BSD license.

    Bing Search Library for PHPFor this project, Microsoft worked with Cal Evans, a seasoned PHP developer. The goal was to build this library following the appropriate PHP conventions and coding styles. So, Cal designed and wrote the code of the library for us, and he has just posted a tutorial with some sample code for PHP developers to quickly get started. Try it!

    The Bing Search Library for PHP is a wrapper on top of the Bing API, which provides a simple way to submit queries to and retrieve results from the Bing Engine.

    There are many ways to take advantage of the Bing API, since the API offers a choice of protocols from JSON, plain XML, to SOAP. So if you want to dig deeper into the Bing API, start here: http://www.bing.com/developers. In fact readers of this blog might recall the Bing 404 Web Page Error Toolkit for PHP project we presented a few months ago. This project focused on helping PHP developers use Microsoft Bing search engine to manage the 404 error (Page Not Found) on their web sites.

    As always, if you have feedback, questions, or feature requests, please join us on the project site: http://bingphp.codeplex.com

    Sumit Chawla, Technical PM/Architect, Microsoft Interoperability Strategy Team

  • Interoperability @ Microsoft

    Two open source projects to facilitate interoperability with Outlook .pst data files

    • 3 Comments

    Microsoft today announced the availability of two new open source projects that complement technical documentation recently released for Microsoft Outlook Personal Folders (.pst). From the press release:

    Combined, the documentation and tools advance interoperability with data stored in .pst files, reflecting customer requests for greater access to data stored and shared in digital formats generated by Microsoft Outlook and for enhanced data portability.”

    The two open source projects, available on Codeplex.com under the Apache 2.0 license are the following:

    • The PST Data Structure View Tool (http://pstviewtool.codeplex.com/) is a graphical tool allowing the developers to browse the internal data structures of a PST file. The primary goal of this tool is to assist people who are learning .pst format and help them to better understand the documentation.
    • The PST File Format SDK (http://pstsdk.codeplex.com/) is a cross platform C++ library for reading .pst files that can be incorporated into solutions that run on top of the .pst file format. The capability to write data to .pst files is part of the roadmap will be added to the SDK.

    To get more details about how these two projects came to life and understand what type of scenarios they enable, watch this video with Daniel Ko, development manager in the Outlook team.

    Get Microsoft Silverlight

    If you’re specifically interested about potential scenarios enabled by the SDK, watch this segment of the video:

     

    -- Jean-Christophe Cimetiere, Sr. Technical Evangelist, @openatmicrosoft

  • Interoperability @ Microsoft

    New version of the Command-Line Tools for PHP to Deploy Applications on Windows Azure

    • 0 Comments

    clip_image002Today at Tek-X during the “Tips & Tricks to get the most of PHP with IIS, and the Windows Azure Cloud” session, Microsoft showcased the new version of the Windows Azure Command-line Tool for PHP available for download under an open source BSD license at: http://azurephptools.codeplex.com/.

    AzurePlusPHP_3

    Announced in March 2010, the Windows Azure Command-line Tool for PHP enables developers to easily package and deploy new or existing PHP applications to Windows Azure using a simple command-line tool without an Integrated Development Environment (IDE). Developers have an option of deploying to the Development Fabric (a sort of local cloud for development and test) or directly to the Windows Azure Cloud. The new version of the Windows Azure Command-line Tool for PHP supports both Web and Worker service roles allowing developers the freedom to customize their applications to their needs (Web roles are the internet facing applications, and Worker roles are for background tasks).

    This project initially was started as the result of feedback we received from PHP developers who are using various IDEs (or none), who told us that a command-line tool would be a great addition to the Windows Azure Tools for Eclipse project.

    To get familiar with the tools you can read this post New command-line tool for PHP to deploy applications on Windows Azure or watch this video on Channel9 where I presented the new features and demo how to deploy a PHP application (using WordPress with SQL Server Build) to Windows Azure:

    This demo is actually an abstract of the “Welcome to the Cloud: Windows Azure Command-line tools for PHP” webcast I presented last Friday as part of the PHP Architect webcast series. The entire recording will be available soon at: http://www.phparch.com/. Stay tuned!

    As always, if you have feedback, questions, or wishes, please join us on the project site: http://azurephptools.codeplex.com/.

    Additional links:

    · Running WordPress on Windows with SQL Server: http://wordpress.visitmix.com/

    Sumit Chawla, Technical PM/Architect, Microsoft Interoperability Strategy Team

  • Interoperability @ Microsoft

    Taking advantage of Windows Azure Storage from PHP: example with a WordPress plugin

    • 3 Comments

    Continuing our efforts on improving interoperability between PHP and Microsoft technologies, we have created an example showcasing a new plugin for WordPress that allows WordPress developers to take advantage of the storage capacity of Windows Azure. This plugin enables WordPress to use Windows Azure Storage Service to host media for a WordPress-powered blog.

    The plugin, developed by Microsoft, is now available as an open source project from the WordPress repository: http://wordpress.org/extend/plugins/windows-azure-storage/

    About Windows Azure Storage and Content Delivery Network (CDN)

    Windows Azure Storage enables applications to store and manipulate large objects and files in the cloud via blobs, manipulate service state via tables, and provide reliable delivery of messages using queues. You can read more about Windows Azure Storage here.

    If you want to manage your media (images or any file offered for download) in a consistent way and share them across multiple websites then you might want to consider using Windows Azure Storage blobs. Windows Azure includes a service called Windows Azure Content Delivery Network (CDN) which offers developers a solution for delivering high-bandwidth content. Windows Azure CDN has currently 18 locations globally (United States, Europe, Asia, Australia and South America). Windows Azure CDN caches your Windows Azure blobs at strategically placed locations to provide maximum bandwidth for delivering your content to users. The benefit of using a CDN is better performance and experience for users who are farther from the source of the content stored in the Windows Azure Storage blobs. You can read more on the Windows Azure Team Blog and on MSDN

    Windows Azure Storage from PHP with a WordPress plug-in.

    The Windows Azure Storage plugin for WordPress allows developers running their own instance of WordPress to take advantage of the Windows Azure Storage services, including the Content Delivery Network (CDN) feature. It provides a consistent storage mechanism for WordPress Media in a scale-out architecture where the individual web servers don’t share a disk. Note that this scenario goes beyond WordPress and could also be very compelling any other web application where there’s a need to load balance across a number of web servers without shared disk.

    The plugin is a regular WordPress plugin developed in PHP, and can be deployed on any WordPress instance (running on Windows or Linux - requires at least version 2.8.0 and tested up to version 2.8.4). The plugin uses the Windows Azure SDK for PHP to handle the interactions with Windows Azure.

    Once the plugin is installed you’ll see it in the WordPress plugins management interface.

    Once the plugin is activated and configured, which simply consists of setting your Windows Azure account information and a few options, you can use it directly through the blog post editor:

    To include an image in the post, just click on the “Azure” icon. The following screen will pop up:

    From here you simply pick the image you want to include.

    When the plugin is installed, you can choose to have all media managed through the WordPress Media Management interface or during imports to also go to Windows Azure blob storage. Then it shows up in the regular list of media elements and not just under the Azure button.

    Once you have published the post you can see that your image lives on Windows Azure Storage, although your WordPress applications can be hosted anywhere else.

    Give it a try!

    The plugin is now available from the WordPress repository: http://plugins.svn.wordpress.org/windows-azure-storage/. Register for your Windows Azure account (try for free till July 31, 2010 with the Introductory Special), install the plugin, and get started!

    Feel free to share feedback!

    Additional links

    -- Jean-Christophe Cimetiere, Sr. Technical Evangelist, @openatmicrosoft

  • Interoperability @ Microsoft

    phpBB: Available for the Microsoft Web Platform

    • 2 Comments

    From the Microsoft Web Platform Team Blog:

    “ Today Microsoft is announcing that the Windows Web Application Gallery and Web Platform Installer (Web PI) now supports the download of the new phpBB release, which supports Windows, IIS and SQL Server. logo_phpbb_thumb_1

    Version 3.0.7-PL1 of phpBB takes advantage of a number of features for PHP applications on the Microsoft Web Platform with Windows, IIS and SQL Server including:

    • SQL Server Driver for PHP 1.1, provides key interoperability for PHP applications to use SQL Server for data storage. Released under the OSI approved MS-PL license and available on CodePlex.
    • WinCache Extension for PHP 1.0.1, provides increased performance for PHP applications on Windows and IIS. Released under the BSD license, is available from the PHP Extension Community Library (PECL) website. “

    More on the Microsoft Web Platform Team Blog: Announcing phpBB: Available for the Microsoft Web Platform.

  • Interoperability @ Microsoft

    Open Data Protocol (OData) .NET Framework Client Library – Source Code Available under Apache 2.0 license

    • 0 Comments

    OData_logo_MS_small Microsoft has just released the source code of the .NET Framework Client Libraries for OData. The source code is under the Apache 2.0 license and available for download on Codeplex: http://odata.codeplex.com 

    From Microsoft’s OData/WCF Data Service Team blog:

    This release represents the OData team’s continued commitment to the OData protocol and the ecosystem that has been built around it. We have had requests for assistance in building new client libraries for the OData protocol and we are releasing the source for the .NET Framework and Silverlight client libraries to assist in that process

    This new contribution goes along with the many other OData libraries (like Java, PHP, iPhone) that we’ve released and also strengthens our commitment to enable Data interoperability through the OData protocol.

    For more details, please visit www.odata.org.

    -- Jean-Christophe Cimetiere, Sr. Technical Evangelist

  • Interoperability @ Microsoft

    Content Management Interoperability Services (CMIS) connector for SharePoint 2010 will be part of the Admin Toolkit this summer

    • 0 Comments

    AIIMExpoToday at the http://www.aiimexpo.com/conference-info/sharepoint-2010-summit-aiim-expo, Eric Swift (@eswift), General Manager of SharePoint Marketing announced that Microsoft will be shipping the CMIS Connector for SharePoint as part of the SharePoint Administrator Toolkit by the end of June 2010.

    The Content Management Interoperability Services (CMIS) specification defines a means of accessing enterprise content management (ECM) repositories independent of their platform or language. CMIS is on its way right now to OASIS for advancement through its rigorous standards development process. Microsoft, along with IBM, EMC and several other content management vendors developed the specification in response to customer requests for interoperability between multiple document repositories.

    For further details on CMIS read the announcement of the CMIS Connector for SharePoint on the Microsoft Enterprise Content Management (ECM) Team Blog.

    Jean-Christophe Cimetiere, Sr. Technical Evangelist, @openatmicrosoft

  • Interoperability @ Microsoft

    SQL Server Driver for PHP 2.0 CTP adds PHP's PDO style data access for SQL Server

    • 4 Comments

    Hi, I’m Ashay Chaudhary, Program Manager at Microsoft. Today at DrupalCon SF 2010, we are reaching an important milestone by releasing a Community Technology Preview (CTP) of the new SQL Server Driver for PHP 2.0, which includes support for PHP Data Objects (PDO). Alongside our efforts, the Commerce Guys, a company providing ecommerce solutions with Drupal, is also presenting a beta version of Drupal 7 running on SQL Server using this new PDO Application Programming Interfaces (API) in the SQL Server Driver for PHP 2.0.

    The SQL Server Driver for PHP 2.0 with PDO will enable popular PHP applications like Drupal 7 to use the PDO “PHP style” and interoperate smoothly with Microsoft’s SQL Server database.

    For PHP developers, this will reduce the complexity of targeting multiple databases and will make it easier to take advantage of SQL Server features (like business intelligence & reporting) as well as SQL Azure features (like exposing OData feeds).

    About the SQL Server Driver for PHP 2.0 CTP with PDO

    My team and I have been working hard over the past months to introduce PDO into the existing SQL Server Driver for PHP. The decision to add PDO was a direct result of the feedback we received from the PHP community.

    The new version now supports the API defined by PDO. Of course, we continue to maintain the existing SQL Server native API. To provide better support and consistency for both API, we are creating a common layer including the core features shared across the two API, as shown on the architecture diagram below:

    SQL ServerDriverforPHP_PDO

    The SQL Server Driver for PHP 2.0 CTP is available for download at the Microsoft Download Center (installation through Web PI available as well: http://www.microsoft.com/web/drupal/). 
    Don’t be surprised if you don’t find the source yet, we have packaged only the binaries for now. Rest assured that the SQL Server Driver for PHP 2.0 will be available as a shared source project (like current version 1.1) in our next public release. We expect the final version in the second half of this year. Stay tuned!

    Porting Drupal 7 to SQL Server using the SQL Server Driver for PHP 2.0

    Putting the SQL Server Driver for PHP 2.0 to the test of real world applications is a key aspect of our development process. We started a discussion with the Commerce Guys (a company providing ecommerce solutions with Drupal) who were interested in porting the upcoming version 7 of Drupal to SQL Server, and quickly realized we had a great opportunity to partner with the Drupal community.  So Microsoft provided some funding and initial support through technical specifications and early builds of the driver for Commerce Guys, in order for them to independently develop updates to the code for a contributed module for Drupal 7. After initial success with Drupal 7 working with SQL Server, Commerce Guys disclosed that the Views module, one of the most popular contributed modules for Drupal, also works well with SQL Server.

    If you happen to be at DrupalCon SF, join us for the “Drupal 7 and Microsoft SQL Server” session (this afternoon at 4:15pm) to see it in action.

    For more details about the work Commerce Guys did on Drupal 7, I invite you to read their blog: http://www.commerceguys.com/about/news/

    Give it a try, send your feedback

    Microsoft is very excited about this new milestone and the early success we’ve seen with Drupal 7. Having reached this important milestone, we are not done yet and continue to polish it up. We plan to ship CTPs on a regular basis, so stay tuned!

    Of course, we appreciate feedback, which you can submit by visiting our SQL Server Driver for PHP forum or by visiting SQL Server’s Connect site.

    Ashay Chaudhary
    Program Manager, SQL Server Driver for PHP
    http://blogs.msdn.com/sqlphp/

  • Interoperability @ Microsoft

    SugarCRM on Windows Azure & SSRS PHP SDK at SugarCon 2010

    • 0 Comments

    SugarCon 2010 This week I was at SugarCon 2010, the CRM conference. SugarCRM, one of my partners in the Interop Vendor Alliance (IVA), is a leading provider of open source customer relationship management (CRM) software. SugarCon, is its global customer, partner and developer conference held April 12-14, at The Palace Hotel in San Francisco, California. Microsoft along with Red Hat, Talend and Zend helped sponsor the conference. The event had a heavy cloud theme this year and the tagline “The Cloud is Open” was used.

    SugarCRM has over 6,000 customers and more than half a million users rely on SugarCRM to execute marketing programs, grow sales, retain customers and create custom business applications. There was quite a different mix of people from business to technical there, about 800 attendees or so. There was a good vibe to the show and it had a focus on the attendees and partners. There was lots of interest in different topics; CRM, Social Networking, Open Source, Cloud Computing;  private and public … and Microsoft’s presence at the event …. which brings me to why we were there …

    The keynote “Open Source and Open Clouds”  was presented by SugarCRM CEO Larry Augustin who shared new product announcements and welcomed special guests to the stage to discuss how open source software is driving the next generation of CRM and Cloud services. Rob Craft, Microsoft’s Senior Director, Cloud ISV was one of the guest joining Augustin on stage. Craft shared with attendees how Microsoft is investing strongly in cloud services. “This is a deep, substantive long term investment from Microsoft,” he said. He shared the global presence Azure, being run from six datacenters in San Antonio, Chicago, Dublin, Amsterdam, Singapore and Hong Kong, with other datacenters coming ready too. Microsoft is guaranteeing 99.9 percent uptime for Azure, with customers getting a 10 percent rebate if this falls to over 99 percent uptime or 25 percent if it falls below that figure. windows-azure-logo-lg

    Larry then went on to demonstrate a beta of SugarCRM, a PHP application, running on Windows Azure and calling data from SQL Azure. Dan Moore, Sr. Platform Strategy Advisor, and Bhushan Nene, Principal Architect, from the Cloud ISV Team gave a follow-up session, “Introducing the Windows Azure Platform”, to the keynote with an overview of the benefits of launching cloud applications on Azure. We saw excitement from the conversations we had with several SugarCRM channel partners who attended the sessions and stopped by the booth. The Windows Azure platform is receiving enormous support and excitement throughout their ecosystem!

    Along with the keynote and session, we had a booth in the exhibition area which saw quite a bit of traffic as well as a Microsoft Cloud Room where we discussed various benefits to the the Windows Azure platform and interoperating with Microsoft technologies. At the room I presented a session on “Data Tools for Microsoft and SugarCRM” where I showed our new interoperability bridge, SQL Server Reporting Services SDK for PHP: adding business intelligence and reporting features to PHP applications, and showing off an early preview of an IVA lab we will be releasing soon. This lab basically is a demonstration of SugarCRM data being called by SSRS reports using the PHP SDK and displaying results in the SugarCRM reports dashboard. The power of composing rich reports from SugarCRM data plus using the freely available SQL Server Express advanced services from Business Intelligence Studio or Visual Studio is a powerful combination. The picture below gives a glimpse of the demonstration in action. Look out for an announce on this blog shortly!

    SugarCRM Dashboard Account Types Report

    Other notable highlights of the event …

    “A Family Tree for Humanity”  where author and population geneticist, Spencer Wells of National Geographic will take us on an epic journey that spans the globe, using DNA to trace the migration routes of our ancient ancestors and revealing the incredible tapestry of human diversity created along the way. I found the science behind it and the presentation fascinating. I would recommend taking a look at the Genographic project.

    There was also a rip roaring tech talk by Newsweek reporter Daniel Lyons in “He’s Back! The Real Future of Technology with Fake Steve Jobs”.

    Best of all, the SugarCon party on day one was an evening at the acclaimed California Academy of Sciences in Golden Gate Park. If you are a geek and one who loves biology this is a must see destination. We got to wine, dine and party there, a huge plus!

     

    I would like to thank my friends from SugarCRM for welcoming us, especially Jason Nassi, Sr. Director of Product Management, who is my liaison from SugarCRM to the IVA; and Igor Spivak, Director of Product Management, Cloud Services for letting me use the live SugarCRM SQL Azure in my session demo. Thank you guys! I’m looking forward to more great interoperability stories we can tell together.

    Jas Sandhu , Interoperability Vendor Alliance manager,  @jassand

  • Interoperability @ Microsoft

    SQL Server Reporting Services SDK for PHP: adding business intelligence and reporting features to PHP applications

    • 3 Comments

    Wouldn’t it be awesome if PHP developers building reporting applications could use the wider range of ready-to-use tools and services to create, deploy, and manage their reports. Today the SQL Server Reporting Services SDK for PHP turns that scenario into a simple reality enabling PHP developers to easily create reports and integrate them in their web applications.

    Announcing the SQL Server Reporting Services SDK (Software Development Kit) for PHP

    I’m excited to announce that the first version of the SQL Server Reporting Services SDK for PHP is available today on Codeplex, as an open source project: http://ssrsphp.codeplex.com.

    This SDK enables PHP applications to simply utilize SQL Server Reporting Services, Microsoft’s Reporting and Business Intelligence solution. Best of all, these scenarios can be done using the free (as in “free beer”!) SQL Server 2008 Express with Advanced Services edition. This edition includes the SQL Server 2008 Express database engine as well as graphical administration tools and the Reporting Services server components for creating, managing, and deploying tabular, matrix, graphical, and free-form reports (SQL Server 2008 Express Advanced can be downloaded here).

    SQL Server Reporting Services SDK for PHP in a nutshell

    The SDK offers a simple Application Programming Interface (API) to interoperate with SQL Server Reporting Services. The API provides simple methods to perform the most common operations:

    • list available reports within a PHP applications,
    • provide custom parameters from a PHP web form,
    • manage the rendering of the reports within a PHP application.

    Architecture

    The API is built on top of the SQL Server Reporting Services Web Service API using SOAP as the underlying communication mechanism. PHP applications can then manage reports, parameters, credentials, and output formats with SQL Server 2008 Reporting Services.

    The design of the report is created with Business Intelligence Development Studio which comes with SQL Server 2008 Express with Advanced Services. Developers can alter the style of the output formats to fit their needs.

    From Reporting Services in SQL Server Express Edition,your access to remote data sources (SQL Server, OLEDB, ODBC, MySQL, Oracle and others) goes through a SQL Server Express instance installed on the same server, using either:

    • a linked server feature to allow your application to connect to a data source by creating views pointing to the original database.
    • importing of data so you can extract data from the original datasource and import it into the SQL Server Express instance.

    The Hello World demo scenario

    Using the SQL Server Reporting Services SDK for PHP, we’ve created a simple scenario showcasing how to manage reports within a PHP application. This sample is part of the package that you download from the project site.

    The application displays first the list of reports that are available:

    clip_image004

    Once the user picks a report, he can select parameters which have been predefined for the report, for example:

    clip_image006

    For the developer, it’s fairly simple to build such form. It requires only to call the “GetReportParameters” method provided by the SDK and then parse the result and associate the appropriate HTML controls.
    Here’s a snippet (the full Hello World demo is part of the SDK download):

    clip_image008

    Finally, when the user validates its choices, the report is generated on the server side and returned to the PHP applications, which does the final processing to display the information in the context of the application. Here the HTML output for our sample report:

    clip_image009

    Join the conversation

    Today, I’m actually presenting the SDK at the Jump In! Developer Web Camp event underway in Zurich. I’m sure I’ll get a lot comments from the PHP experts attending, But what about you: does the SQL Server Reporting Services SDK for PHP respond to your scenarios?
    Of course, feedback is welcome!

    To join the conversation, please visit SQL Server Reporting Services SDK for PHP on Codeplex: http://ssrsphp.codeplex.com.

    Claudio Caldato, Senior Program Manager, Interoperability Strategy Team.

  • Interoperability @ Microsoft

    Eclipse shines on Windows 7: Microsoft and Tasktop partnering to contribute code enhancement to Eclipse

    • 0 Comments

    eclipsecon I’m writing this from EclipseCon in San Jose, where Shawn Minto, from Tasktop Technologies and I presented the first results of efforts to enhance Eclipse on Windows 7. We are very excited to see this contribution being part of the next release (3.6) of the Eclipse Integrated Development Tool (IDE).

    This project was jointly initiated by Microsoft and Tasktop Technologies and announced last October at the Eclipse Summit in Germany. Microsoft is providing funding, technical & architectural assistance and Tasktop is implementing and contributing code. The goal is to improve Eclipse to take advantage of new features in Windows 7. This will empower eclipse developers to be productive and have a compelling experience developing applications using Eclipse on Windows 7. For this first phase, we have been focusing on the user interface components to 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.

    For more details, watch this video where Shawn Minto and I discuss the project and show a demo of the results.

    Get Microsoft Silverlight

    New features in next release of Eclipse

    In order to include the improvements in the Eclipse development cycle, the features were introduced in the Eclipse Bugzilla as follows:

    Let’s take look at some screenshots showing the final results:

    Taskbar Jump Lists: in this screenshot, the Mylyn plug-in for Eclipse exposes frequently used features:

    jumplist-newTask-zoom

    Taskbar Progress integration: the new Windows 7 progress bar is integrated in various part of the Eclipse IDE (the progress bar is also part of the application icon in the taskbar and shows progress horizontally across the icon):

    progress-installsoftware-zoom

    Note that these enhancements are made at the Standard Widget Toolkit (SWT) level, which means that developers will see the enhancements in the Eclipse IDE, but they can also take advantage of them in any desktop applications built on top of the Eclipse Rich Client Platform (RCP).

    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.

    The broader Microsoft and Eclipse picture

    The collaboration between Microsoft, the Eclipse Foundation, and the Eclipse community may seem unusual for some people. But let’s be pragmatic, our mutual customers, partners and developers want greater choice and opportunities. We do believe that improving interoperability between our technologies is actually helping all parties. I encourage you to check Mike Milinkovich’s opinion on this as well.

    To close, I’d like to give you a quick update on other Eclipse related projects, which we are working on with Soyatec:

    Cheers!

    --Vijay Rajagopalan, Principal Architect

  • Interoperability @ Microsoft

    Microsoft on Open Source, OData, the Web and the Cloud at OSBC

    • 0 Comments

    5892ecb7327ae14e02b1f1a4670817da_OSBC_banner_750x87

    Microsoft was once again at the Open Source Business Conference (OSBC) held at the Palace Hotel in San Francisco on March 17-18, 2010. As  Platinum Sponsors, there was good presence by quite a few softies at the event, as attendees and delivering sessions.

    Stuart McKee, Microsoft's National Technology Officer for the United States, delivered a keynote address to attendees titled "Open Source at Microsoft: Meeting customer, developer and partner needs through a diversified ecosystem". McKee talked about the opportunities for open source applications interoperating with Microsoft platforms. From Windows, to SharePoint to Azure, and how increased flexibility and choice for the consumers of these technologies is good for everyone involved. McKee shared how internally Microsoft is changing and responding to a call from customers who demand a diverse ecosystem that includes open source. McKee gave examples of software from Apache, the MySQL database, and PHP all running on Microsoft's Windows Azure cloud platform. Microsoft in recent years has been endorsing open source via efforts such as sponsoring the Apache Foundation. The Microsoft-backed CodePlex Foundation, meanwhile, was set up last year as an effort to enable collaboration between open source communities and software companies. “More than ever, we are continuing to improve interoperability with open source products and platforms in addition to working with customers looking to optimize their mixed IT environments. Interoperability is important not only for the business world, but also for state and local governments. That's because the business of government is really about outcomes, regardless of how solutions are created," McKee said.

    Brian Goldfarb, the Director of Developer Platforms at Microsoft, participated on a panel titled "The Web Is the Platform," along with Dion Almaer from Palm and Dave Mcallister at Adobe. Mark Driver from Gartner moderated. It was an interesting discussion with most parties agreeing on the web as a platform that provides opportunity for companies to build business models, use different approaches and how open source plays a very strong part in that vision. Goldfarb shared how the Microsoft /web site for the Microsoft Web platform, features 23 open source applications out of a total of 25 applications. They include software from popular open source companies such as Acquia Drupal, Wordpress, Joomla, Umbraco, DotNetNuke, You can find them and more listed in the gallery.

    It was also great to see the folks at Geeknet at the Bird-of-a-Feather (BOF) talking about how Open Source on Windows is steadily climbing. 82% about 350,000 projects are Windows compatible and that is not a small number and fabulous news for those of us working with diverse languages and in mixed environments. These guys know something about the community considering they run sites like SourceForge, Slashdot, ThinkGeek, Ohloh, and freshmeat with over 40 million geeks visiting them.

    Other notable presentations …

    Tim O’Reilly, who is always fun to listen to, in a thought provoking session title “The Real Open Source Opportunity”, talked about how the future is about data and open access to it. It will be interesting on seeing how all the systems share and make sense of all the signal from the noise. I feel the work we are doing with OData.org and the cloud can play a big role on helping make this happen.

    Justin Erenkrantz, the President of the Apache Software Foundation, which we are working on a few things on, gave a presentation on “Writing and Distributing Software "the Apache Way" which should make it’s way up on his talks links soon.

    Matt Aslett, Analyst at The 451 Group presented  “From Support Services to Software Services – The Evolution of Open Source Business Strategies” around research regarding the best ways to make money from open source software and combining commercial and community interests.Matt, if you’re reading this,  it was nice chatting with you at lunch!

    Jono Bacon's session 'Unwrapping The Community Manager Talk" was one to catch and I’m looking forward to getting his slides too. At the same time as Jono’s session Matt Asay had a panel session too,  and there was some nice rivalry on who would fill their rooms first :) btw Who won? Jono, where are your slides?

    It was great to also see partners from the Interop Vendor Alliance, WS02 (nice to see you Jonathan and Devaka!) and Red Hat too!

    Tweets about OSBC provide interesting commentary!

    I’m looking forward to EclipseCon in Santa Clara next week, where we’ll share some more news around interoperability with open source projects. Maybe I’ll catch you there?

    Jas Sandhu , @jassand

  • Interoperability @ Microsoft

    New command-line tool for PHP to deploy applications on Windows Azure

    • 0 Comments
    AzurePlusPHP

    I’ve just finished my MIX10 session (“Building PHP Applications using the Windows Azure Platform”) where I announced the new Windows Azure Command-line Tools for PHP Community Technology Preview (CTP). The tools are available under an open source BSD license and can be downloaded at: http://azurephptools.codeplex.com/

     

    In a nutshell, these tools enable developers to easily package and deploy PHP applications to Windows Azure using a simple command-line tool without any Integrated Development Environment (IDE). This project is actually the result of feedback we received from many PHP developers who are using various IDEs (or none), who told us that a command-line tool would be a great addition to the Windows Azure Tools for Eclipse project.

    The tools assist with creating new applications or converting existing PHP applications to Windows Azure and by creating the deployment package (.cspkg) and Configuration file (.cscfg). They will let developers deploy to the local Development Fabric or the Windows Azure Cloud for production.

    The tools offer a simple command-line interface with a few parameters to customize your deployment:

    AzureTool4PHPCommandLine

    From the developer point of view this is an easy three step process:

    1. Make sure you’ve gathered the assets to deploy (PHP engine, Code source, PHP Extensions)
    2. Run the Command-line with your custom parameters to create the package
    3. Upload the deployment package (.cspkg) and configuration file (.cscfg) to Windows Azure

    Your PHP application is ready to run on Windows Azure!

    AzureTool4PHPArchitectureFlow

    To see the tools in action, watch this Channel9 video where I demo how to convert and deploy a simple PHP application to Windows Azure.

    Get Microsoft Silverlight

    As always, if you have feedback, questions, or wishes, please join us on the project site: http://azurephptools.codeplex.com/.

    Additional links:

    Sumit Chawla, Technical PM/Architect, Microsoft Interoperability Strategy Team

  • Interoperability @ Microsoft

    OData interoperability with .NET, Java, PHP, iPhone and more

    • 0 Comments

    OData-logo Wouldn’t that be cool to have more ways to unlock your data and free it from applications silos?
    Today at MIX10, we presented about how Open Data Protocol (OData) can contribute to a more programmable web through demos consuming a Netflix OData feed in various scenarios. We also announced a series of new and updated OData SDKs for PHP, Java, Objective C (iPhone & Mac,) and JavaScript (AJAX and Palm WebOS). The SDKs can be found on the www.odata.org website.

    OData SDKs for PHP, Java, Objective C (iPhone & Mac,) and JavaScript (AJAX and Palm WebOS).

    Today we are announcing a new version of the OData SDK for PHP (previously called Toolkit for PHP with ADO.NET/WCF Data Services). This version includes new features like the capability of handling large result sets of data using an automated paging mechanism and a new sample built on top of an OData feed exposing the Netflix catalog, which we are covering in detail in this blog post. Link for more detail on the OData SDK for PHP.

    We also announced today the new OData SDK for Objective C which facilitates the development of applications for iPhone and Mac OS X connecting with OData services. This early version is a Community Technology Preview (CTP) and it supports read operations only and it has been tested on a limited set of scenarios. The download includes a sample iPhone application to browse the new NetFlix OData service hosted in Azure.

    ODataSDKforIphoneObjectiveC

    Link for more details on the OData SDK for Ojective C Community Technology Preview (CTP)

    Finally, Noelios has just updated the Restlet Extension for OData – a set of tools and libraries for Java. Read Jerome Louvel’s post Restlet supports OData, the Open Data Protocol for more details. Noelios has also released a new detailed tutorial for developers who want to access OData services in Java.

    The list of OData SDKs is available at http://www.odata.org/developers/odata-sdk.

    About Open Data protocol - oData

    In essence, the purpose of the OData is to feed the web with more consumable data and give the developers and entrepreneur more power to create new scenarios.

    OData enables data integration across a broad range of clients, servers, services, and tools. OData builds on a few conventions, popularized by AtomPub, to using REST-based data services. These services allow resources, identified using Uniform Resource Identifiers (URIs) and defined in an abstract data model, to be read and edited by web clients using simple HTTP messages. For more details, consult the protocol documentation on the OData site where you will also find a list of services and products that are already using OData.
    Read "Open Data for the Open Web" by Doug Purdy for more perspective on OData.

    The Netflix demo scenario

    Today at MIX10, Doug Purdy demoed how you can quickly build a simple application consuming OData feeds, with Silverlight and also showed a demo running on the Palm webOS leveraging the OData JavaScript library. We’re following up, using the OData SDK for PHP and the OData feed exposed by Netflix, we’ve built a web application that allows users to search through the Netflix movie archives.

    The demo starts with a search form with multiple pull-down menus you can use to narrow the search for titles in the catalog. To keep the demo simple, we limited on purpose the set of the fields that could be used to build an advanced search on the OData service. We actually use only the “Genre” and “Language” options which are prepopulated with values coming from the Netflix OData feed and the “Name” (movie title):

    php-odata-netflix-demo-search

    Once the user has selected his criteria and hit search, the PHP application calls the Netflix OData feed through a simple method call, highlighted below:

    OData_PHP_snippet

    And then a list of corresponding titles is returned by the Netflix oData feed. The result set is filtered and sorted by the Netflix service; you just have to display the data in a pretty HTML page:

    php-odata-netflix-demo-list

    Netflix’s OData backend runs on Windows Azure and SQL Azure to produce the OData feeds. OData being an open specification, there are many ways to build a “data producer”. Here are a few applications and services exposing OData feeds:

    • SharePoint 2010
    • SQL Azure
    • Windows Azure Table Storage
    • IBM Websphere

    The complete list of currently available solutions is here: http://www.odata.org/producers. We clearly expect to see more OData producers coming for various platforms and languages.

    How did we build the sample application?

    You can watch the following Channel9 video with Claudio Caldato demoing and explaining the PHP sample. Claudio has been instrumental in driving the development of cross platform OData SDKs and building the OData community with Microsoft partners.

    Get Microsoft Silverlight

    Using the oData SDK for PHP to consume an OData feed is really quick and easy. You have to consider two main steps:

    1. Generating the proxy classes: the SDK includes a tool that will read the definition of the OData Service and create the corresponding PHP proxy classes. It will create one class per collection that is exposed by the service. You can see here all the collection available in the Netflix service:
    OData-netflix

    2. The next step is to write the code for application logic. Your code will call the PHP proxy classes so that you can easily program against the OData.

    The process is very similar with all the oData SDKs whether it is for PHP, Java, Objective C (iPhone & Mac), or JavaScript (AJAX and Palm WebOS). They all work the same way. To summarize, here’s the OData SDK for PHP architecture diagram which shows the key steps and elements:

    Building-OData-PHP

    Join the conversation

    We’ve been working hard to get OData support on as many platforms as we can so a developer on any platform can both consume and produce these feeds. It’s only the beginning of the journey, and you can expect more to come. Of course, feedback is welcome!

    To join the conversation, please visit www.odata.org.

    Additional information to bookmark, two MIX10 sessions:

    -- Jean-Christophe Cimetiere, Sr. Technical Evangelist

  • Interoperability @ Microsoft

    HTML5 : Microsoft Participation in the W3C HTML Working Group

    • 2 Comments

    W3chtml5wg I’m Paul Cotton, Group Manager, Web Services Standards and Partners, in the Interoperability Strategy Team. I’m in charge of a team that works on web services standards and interoperability.  My team is involved in W3C, OASIS, WS-I, Apache and ISO/IEC JTC1 and cooperates with the vendor and user communities to advance interoperability of the WS-* specifications.  In addition, I am co-chair of the W3C HTML Working Group that is developing the next version of HTML.

    The Web has grown significantly over the last decade based largely on the interoperability of the W3C HTML4 Recommendation.  HTML forms the backbone of interoperability on the Web and the specification is being evolved at the W3C as part of the HTML5 effort.  Along with many other companies and individuals, Microsoft is contributing significant resources and expertise to work with the W3C to ensure the success of the HTML5 efforts (see this blog post [http://blogs.msdn.com/ie/archive/2010/03/09/Working-with-the-HTML5-Community.aspx]). 

    I had a chance to sit down last week with Philippe Le Hégaret who’s a staff member of the W3C, to discuss Microsoft’s view on HTML5 interoperability and our work in the HTML WG. Please read the minutes of  the interview on the W3C blog: “Interview: Paul Cotton on Microsoft Participation in the W3C HTML Working Group

    Paul Cotton

  • Interoperability @ Microsoft

    New interoperability lab: Remote Desktop between Windows and Mac

    • 0 Comments
    RemoteDesktopMacWindowsInteroperabilityLabWhitePaper

    We have just published a new Lab on InteropVendorAlliance.org titled Remote Desktop Interoperability Lab.

    This lab explores scenarios for establishing Remote Desktop connections between Macintosh and Windows based machines.

    It gives me the opportunity to welcome Aqua Connect to the Interop VInteropVendorAllianceAquaConnectendor Alliance (IVA). Aqua Connect is a leading solution provider of connectivity between Windows and Macintosh. They have been a great partner to work with, and we are excited to show the results of our partnershiop in this lab. A big thank you to Ronnie Exley and the Aqua Connect team for their participation.

    The lab demonstrates how to establish remote desktop connections between Macintosh and Windows based machines:

    • Utilizes Remote Desktop Client for Mac 2 for Mac to PC connectivity
    • Utilizes Aqua Connect’s Mac Remote Desktop Beta.

    RemoteDesktopMacWindowsInteroperabilityLab

    As part of its development of a Mac terminal server, Aqua Connect obtained a license from Microsoft for the Remote Desktop Protocol (RDP, more detail here) and integrated the protocol into their solution. Using the protocol documentation that Microsoft had made publicly available, on its developer website (msdn.microsoft.com), Aqua Connect took advantage of the access Microsoft provided to its Interoperability Lab facilities, as well as key Microsoft RDP engineers, to develop a bridge between Windows and Macintosh systems. The result is that any Windows machine can now connect (with the Remote Desktop Connection client) to a Mac with the Aqua Connect Mac Remote Desktop installed.

    Further details on the lab are available on the www.InteropVendorAlliance.org site:

    Jas Sandhu, Interoperability Vendor Alliance Manager

    @jassand

  • Interoperability @ Microsoft

    Getting started with PHP on Windows Azure Tools for Eclipse

    • 0 Comments

    PHP on Windows  Recently I’ve been chatting with quite a few developers out there who are looking to get their PHP applications working on the Cloud. Many are exploring different options and trying to navigate all the offerings available. One of your choices may be Windows Azure. Our team, all who actively blog here, in partnership with the product team is working very hard to make Windows Azure the most interoperable cloud platform yet. 

    Microsoft has built Windows Azure as an open platform which offers choice for developers. You can run multiple languages including .NET, Ruby, Python, Java, or for the purposes of this post, PHP! You also have the option of running tools like Microsoft's Visual Studio or the Open Source based IDE, Eclipse, that simplifies the life of the developer. You can build applications which can run and consume any of the Windows Azure platform offerings and even those from other clouds. There is also the ability to connect to servers that you run yourself, whether under your desk, nearby offices or your datacenter as part of the composite applications built. Windows Azure is standards based, interoperable and supports all the commonly used internet protocols such as HTTP, XML, SOAP and REST. Using these popular protocols we have a commitment to users and their information so as to make data portability real. The image below provides a glimpse of all the parts working together in helping make this real

    azure interop

    If you use Eclipse, you’re already most of the way there and I am going to illustrate how you can get some simple PHP code up on the Cloud using the Windows Azure Tools for Eclipse project which was developed with the partnership of Soyatec, an active contributor to the Eclipse community. This project is a feature rich open source PHP application development environment in Eclipse that enables  development and deployment of PHP applications to Windows Azure.  The windowsazure4e plug-in builds upon the PHP Development Toolkit (PDT) and integrates Web Tools Platform (WTP) to provide a complete toolkit for Windows Azure Web Application development.

    Simply the project does a few things that accelerates getting a cloud based project up …

    • Project Creation & Migration: The New Project Wizard creates a new PHP Web Application targeting Windows Azure. Existing PHP projects can be converted to Windows Azure projects (or vice-versa) using the migration tool.
    • Azure Project Structure & Management: The windowsazure4e plug-in creates the project artifacts that Windows Azure expects, including a Windows Azure Service project and a Web-role Project, as well as Windows Azure configuration and definition files. Project and Windows Azure settings are exposed via the properties window in Eclipse
    • Storage Explorer: As part of the plug-in, a Windows Azure Storage Explorer is provided within the Eclipse environment. The Storage Explorer allows easy management of Windows Azure Storage Accounts. In addition, it also provides a friendly user-interface for performing Create, Read, Update, and Delete (CRUD) operations on Blobs, Queues, and Tables. The Storage Explorer it built using the Windows Azure SDK for JavaTM.
    • Azure Project Deployment: Once the PHP application for Windows Azure had been developed and tested locally on the Windows Azure Development Fabric, the application can be packaged up for Windows Azure deployment with a right-clicking on the target project from within Eclipse.

    First, make sure you have the prerequisites detailed in this web page which are all publicly available . I would recommend using the the Web Platform Installer to get the free versions of SQL Server 2008 Express and Microsoft Visual Web Developer 2008 Express Edition with SP1. You can find these as choices in the Web Platform tab under Database and Tools in the installer. It’s quick, easy and again free!

    webplatforminstaller

    These versions will work with the Windows Azure Tools for Microsoft Visual Studio 1.1 (February 2010) and will provide the necessary hooks so that your Eclipse IDE can take advantage of the cloud. The same download link also has instructions for making sure you have the right settings for your development system including turning on features usually off by default. There is also a handy MSDN page for getting started with the Windows Azure SDK if you are looking for more details and want to review the documentation. If you plan on deploying on the cloud then you will want to go to the Windows Azure Getting Started page and find the best option for you. EclipsePDT Download

    Once you have these in place you can get started with your Eclipse setup. If you haven’t downloaded Eclipse already and since the IDE is built with Java, you will first need to get a current version of the Java Development Kit (JDK) or Java Runtime Engine (JRE), available at the Java download site. Anything v1.5 and above will suffice. Then you can go ahead and download Eclipse. I have had good success with the Galileo version aka  PDT 2.1 SR-1 All In Ones / Eclipse PHP Package, available at this link. Test the IDE to make sure it launches and also make sure you have a connection to the internet. If you can hit a web page, you’re pretty much good to go!

    Okay, let’s launch the Eclipse IDE and head to the Help menu item and select “Install New Software” as with the image here,  Help-InstallNewSW

    In the Available Software, Click Add... button, this will bring up a pop-up dialog, use http://www.windowsazure4e.org/update for the location and you can enter something descriptive of your choice in the Name field, Windows Azure Tools for Eclipse is used here.

    image 

    Select All available sites. If the list of categories doesn't contain the entry Windows Azure, you need to restart eclipse. Select Windows Azure PHP Development Toolkit and click Next button.You may also want to select the other check marks if you are interested or you may add them later from the same menus.

    Available Software 

    In the next dialog, check Windows Azure PHP Development Toolkit and click Next button.

    Install Details

    Then read carefully the license agreement. If you accept all conditions, select I accept... option and click Finish button. The IDE will then do some thinking and shortly will start downloading and installing the required jar package. When finished installing, it will pop-up a dialog, click Yes button to restart your Eclipse for the changes to take effect.

    Restart

    To check the plugin installation is successful, you can select Help->About Eclipse. This window will verify that you have the right build of Eclipse for PHP Developers and the Build version you installed with. In the next dialog box, click Installation Details,

    About Eclipse

    select Installed Software option, you will see Windows Azure PHP Development Toolkit in the Name list along with any other options you may have chosen before. See the screenshot below.

    Ecplise Installation Details

    Another way to verify this is that there will be  Windows Azure menu item, right next to Help, with some tools that help in working with Windows Azure in PHP.

    Windows Azure Menu Item

    Congratulations you’ve just installed Windows Azure Tools for Eclipse! Now let’s write a PHP application and get it running on the Cloud.

    If you haven’t already Created or Assigned a workspace folder for Eclipse do so now. I have created a folder in my user dev hierachy but it can be anywhere on your machine where you have space for your projects.

    Workspace Launcher

    Now you will want to change the perspective to PHP Windows Azure, by going to Window menu bar itemand then selecting Open Perspective and Other sub item. The PHP perspective is usually set as default and also available from the same menu item. For now just click on Other ….

    select perspective

    In Open Perspective panel, select PHP Windows Azure

    Open Perscpective 

    In the PHP Windows Azure perspective, Create a new PHP Windows Azure Project. By selecting the File from the menu bar and then New, and Windows Azure Web Project

    New Windows Azure Project

    This will launch a new window title PHP Azure Project where you will be able to create and title your new project. Provide a Project Name, I’ve titled mine HelloPHPInfo, as PHP developers you probably know where we’re going with this. You will also want to click the Create new project in workspace dialog button if you haven’t already and make sure the Data Storage Options dialog button is set to None as we’ll not be calling any storage for this example. Then click Finish, if you hit next don’t worry you’ll get some additional info, you can just click Finish or Back.

    New PHP Azure Web Project

    Before we go on we’ll need to start the Development Fabric if it isn’t already running, right-click its icon in the system tray and select Start Development Fabric Service. To view Development Fabric UI, right-click its icon in the system tray and select Show Development Fabric UI

    lab0_StartDevFabric lab0_ShowDevFabricUI

    There should be no WebRole(s) deployed within Development Fabric.

    lab0_DevFabricUI_NoDeploy 

    We will now go back to Eclipse and  Web Role in local Development Fabric, from Eclipse menu-bar. First go the PHP Explorer tab, pick either of  the projects so they are selected (e.g HelloPHPInfo or HelloPHPInfo_WebRole, I picked the latter) and then select the Windows Azure menu bar and the Run in Development Fabric menu item. 

    Run Dev Fabric

    The service will then start with a Progress Information/Project in Progress window will show up with some information and then it will launch you default web browser and present the default document index.php on the next available port. By default it will be the URL http://127.0.0.1:81/index.php . It will also open an explorer window for the project you created, in this case HelloPHPInfo. I went into the index.php file in the HelloPHPInfo_WebRole folder and modified the automatically generated file’s <H1> tag and included Hello just to make sure that it’s my version. You can do something familiar. It also runs the phpinfo() command too as you would typically do when checking to see if your PHP installation is configured properly and information like version, the location of your php.ini, as you can see it’s in your Eclipse workspace directory as the other files such as the service definition which we will get a little into later.

    Development Fabric Web Page

    If you open the Development Fabric UI from the Windows Azure icon in the systems tray you will find that the tree on the left panel will have Web Role deployment instances set within ServiceConfiguration.csfg showing everything running using the local development fabric on your machine.

    Development Fabric 

    Okay we now have our PHP application running on our local developer fabric. Let’s deploy it to the cloud and run this PHP application and service remotely using Windows Azure Storage Account. This is where the Window Azure account you set up comes in. First you will need to create a Windows Azure Service Package. Again go to your project and pick either the project or the webrole (HelloPHPInfo or HelloPHPInfo_WebRole) and then pick the Windows Azure menu, and select Publish Application to Windows Azure Portal menu-item. This action will open a portal to Windows Azure.

    Publish to Portal

    We’ll still have the  Development Fabric running and it is necessary to cleanup to create a Windows Azure Service Package, select OK button to proceed.

    lab0_ConfirmDevFabricCleanup

    and you soon have a Service Package created with the build results and a Windows Explorer will open the HelloPHPInfo workspace folder and you will see two new additions to the project. The first is a ServiceDefinition.csx folder and the other is a HelloPHPInfo.cspkg service package file.

    Package Folder

    the tool then opens your default web browser to Windows Live Sign-In in order to access your Windows Azure account. You will want to sign in with the credentials you have created and it will direct you to the Windows Azure Portal.

    lab0_PortalAllProjs 

    If you then click the Windows Azure link on the left navigation pane it’ll will expand to give you a + New Service, which when click will allow you to Create a Service. Here you can setup a public service name, I picked HelloPHPInfo, and a Check Availability  to see if the name is available. I also selected the first dialog button since I don’t have any hosted services or storage accounts for this project. You may want to do this if you have them and things like custom domains etc. I also selected the Region, to be Anywhere US. You can pick the one that is most applicable to you. All you then have to do is click the Create button on the bottom of the page.

    Create Hosted Service

    The section of the next page that you will be interested is Hosted Service and you will want to select Deploy to Staging. If you only see the Deploy button for Production, then you want to click on the middle separator bar with the arrow highlighted below.

    Hosted Service

    The next page Staging Deployment, will ask you for the two packages mentioned earlier, you will want to pick the Upload a file from local storage dialog buttons for the Application Package, in this example, HelloPHPInfo.cspkg and for Configuration Settings, ServiceConfiguration.csfg which can both be picked from the workspace folder you set for the project with the Browse buttons. Then set the Service Deployment Name with a label. I have called it HelloPHPInfo. Click Deploy to start the process of copying your files up for deployment on the Windows Azure Cloud.

    Application Package 

    Wait for a few minutes for the deployment to complete where it may take you to a blank page with something like a button that states “Processing, Please Wait”. Click the Run button on the next page and the WebRole status will change from Stopped to Initializing to Busy.

    Staging Staging Initializing

    When the WebRole status is Busy, then the Web Site URL is clickable, if clicked before, it will give a web page that cannot be displayed. The service has also got a unique address for the URL and the Deployment ID. When moved to Production, you will find that the handy or friendly name that you selected earlier is used. In this example the final production URL will be http://HelloPHPInfo.cloudapp.net.

    Staging Busy

    Clicking on the Web Site URL gives the following page which renders exactly as the example we did using the local Development Fabric. There are some noticeable differences though such as the path of the php.ini compared to the local deployment.

    Deployed Web Page 

    Congratulations you are Cloud Computing!

    Now you can pretty much deploy any PHP application up to the Window Azure Cloud as in this tutorial. We created a simple PHP Windows Azure Web Project. Built and Ran PHP Windows Azure Web Project within the Development Fabric on our local machine and then we went on to deploy and Run PHP Windows Azure Web Project within the Windows Azure Cloud.

    I hope you found this helpful and we look forward to hearing from you on your experiences. Please send feedback!

    Jas Sandhu , @jassand

  • Interoperability @ Microsoft

    New Office Documentation Now Publicly Available

    • 3 Comments

    By Paul Lorimer, Group Manager, Microsoft Office Interoperability 

    [UPDATE: 05/24/2010, Two open source projects to facilitate interoperability with Outlook .pst data files]

    Office LogoCustomers of Microsoft Office often work in heterogeneous IT environments, so their need for interoperability among disparate business systems is critical. They expect their trusted vendors to work together to make it happen, and Microsoft has demonstrated a strong commitment to the pursuit of interoperability through collaboration with industry players, open access and transparency when it comes to our intellectual property in this area, participating in the creation and maintenance of industry standards, and building our products in a way that makes interoperating with them easier by design.

    Ever since we released Microsoft Office 2007 SP2, we have been releasing tools and publishing tens of thousands of pages of documentation to help developers (including competitors) interoperate with the various products in the Office suite. Today we took another big step in our commitment to open access and transparency, delivering some highly anticipated documentation we’ve promised over the past year or so:

    • More documentation for Microsoft Office 2010. In July 2009, when Office 2010 was still in technical preview, we published thousands of pages of detailed technical documentation for the protocols used by our products to communicate with Office 2010. This enabled third parties to develop software that interoperates with Office 2010, informed by how other Microsoft products do so, while Office 2010 was still several months away from broad release. Today, as promised, we added thousands more pages to the canon. The addition of this new documentation will help other vendors bring interoperable products to market faster, increasing customer choice and satisfaction and driving better business results.
    • Brand new documentation for Microsoft Outlook files. Data portability is increasingly important for our customers and partners as more information is stored and shared in digital formats. One particular request we’ve heard is for improved 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. Last fall we promised to release documentation that would make it easier for developers to read, create, and interoperate with the data in .pst files across a variety of platforms, using the programming language of their choice. After seeking input on the documentation from the community, today we delivered on that promise (here's the link to the documentation on MSDN: http://msdn.microsoft.com/en-us/library/ff385210.aspx).

    This kind of transparency provides exciting possibilities for our customers and partners. We’re proud of the work we’ve done in this area, and you can count on Microsoft to continue its vigorous pursuit of interoperability through a comprehensive approach, of which transparency is one of the keystones.

    Paul Lorimer, Group Manager, Microsoft Office Interoperability

    Related items:

  • Interoperability @ Microsoft

    Microsoft Brings Cloud Interoperability Down to Earth

    • 0 Comments

    I wanted to share this Feature Story that we have just posted on the Microsoft News Center:

    […]

    Interoperability in the Cloud

    Cloud-Interoperability-practical Cloud interoperability is specifically about one cloud solution, such as Windows Azure, being able to work with other platforms and other applications, not just other clouds. Customers also want the flexibility to run applications either locally or in the cloud, or on a combination of the two. Microsoft is collaborating with others in the industry and working hard to ensure that the promise of cloud interoperability becomes a reality.

    Leading Microsoft’s interoperability efforts are general managers Craig Shank and Jean Paoli. Shank spearheads the company’s interoperability work on global standards and public policy, while Paoli collaborates with Microsoft’s product teams as they map product strategies to customers’ needs.

    Shank says one of the main attractions of the cloud is the degree of flexibility and control it gives customers: “There’s a tremendous level of creative energy around cloud services right now — and the industry is exploring new ideas and scenarios together all the time. Our goal is to preserve that flexibility through an open approach to cloud interoperability.”

    Adds Paoli, “This means continuing to create software that’s more open from the ground up, building products that support the existing standards, helping customers use Microsoft cloud services together with open source technologies such as PHP and Java, and ensuring that our existing products work with the cloud.”

    [..]

    Read the complete story: Microsoft Brings Cloud Interoperability Down to Earth

     

  • Interoperability @ Microsoft

    Putting customer feedback into action to advance interoperability

    • 0 Comments

    IECC-interoperability-White-Paper As the Interoperability Executive Customer (IEC) Council moved into its 4th year of existence and embarked on tackling interoperability issues in new areas, we just published a whitepaper(PDF 1.25Mb) listing the discussions and major achievements by the council over the last 3 years.

    This is the first time we have gone public with any of the operational details and results achieved by the council.

    As a technical lead, running the day to day workings of this council, I will also like to thank all the member organizations, their CIOs and other technical leads and architects for their support and participation in this council. I encourage you to read comments from Council members in the following article:
    Microsoft and Customer Executives Team Up to Improve Interoperability”.

    These organizations spend a lot of time and effort in attending the meetings and providing us candid feedback on many of our strategies, products and technologies without which the council wouldn’t be able achieve what it has in these past 3 years. The council also sees a lot of engagements from many Microsoft product teams and other employees from various parts of the company but I would especially like to call out and thank Connie Dean, Meghan Raftery and Monty O’Kelley for their contributions over the last 3+ years.

    The IEC Council is led by Bob Muglia, President of Server and Tools Business and his direct involvement is a major factor in its successful existence and ability to produce tangible results over the past 3 years. It plays a key role in influencing Microsoft’s overall strategy around interoperability and providing feedback on this important subject. As you will be able to readily recognize, many of the blog posts on this site and our work at www.interoperabilitybridges.com have been highly influenced by discussions taking place within the IEC Council. This is strictly by design.

    All the information gathered from the IEC Council process has been categorized into areas of focus called “work streams”. Work stream efforts are led by executives from numerous Microsoft divisions and product teams who interact and partner with council members’ technical architects and CIOs to identify and develop solutions within these specific areas. These are:

    IECC-interoperability-Workstreams

    We would love to hear some feedback on the topics discussed, results achieved and in general on interoperability issues being addressed through the workings of this council.

    Looking forward to more productive discussions and positive results from the IEC Council for many more years.

    Kamaljit Bath, Principal Program Manager

  • Interoperability @ Microsoft

    New version of Zend Framework adds support for Microsoft Windows Azure

    • 0 Comments

    Zend-Framework-Windows-Azure-SDK-PHP Zend Technologies Inc. has announced the availability of Zend Framework 1.10, which among other new features includes support for Microsoft Windows Azure cloud services. We’re very excited about this key milestone, which is the result of a fruitful collaboration! This particular project started last year when we announced the Windows Azure SDK for PHP CTP release and upcoming support in Zend Framework. I also want to thank again Maarten Balliauw who has been a key contributor to the initial project.

    With the new Zend Framework 1.10, by simply using the new Zend_Service_WindowsAzure component, developers can easily call Windows Azure APIs from their PHP applications and leverage the storage services, including Blob Storage, Table Storage and Queue Service, offering them a way to accelerate web application development and scale up on demand.

    With this announcement, PHP Developers now have great choice when it comes to writing web applications targeting Windows Azure. Besides the Windows Azure SDK included in Zend Framework, there is Windows Azure SDK for PHP which is already prepackaged in Windows Azure tools for Eclipse and the more simpler Simple Cloud API.

    Jean Paoli, General Manager Interoperability at Microsoft offered a comment about this announcement: “PHP developers find the Windows Azure platform compelling, Microsoft’s decision to contribute PHP-based Windows Azure components to Zend Framework helps demonstrate Microsoft’s commitment to openness and interoperability by providing greater choice and opportunity for Microsoft customers and partners.”

    All of this is very well aligned with Windows Azure Interoperability approach www.windowsazure.com/interoperability in particular and  the overall interoperability effort Microsoft is conducting around PHP (see http://www.interoperabilitybridges.com/projects/tag/PHP.aspx and http://www.microsoft.com/web/php)

    Vijay Rajagopalan, Principal Architect

  • Interoperability @ Microsoft

    Creating PHP CRUD Apps with SQL Server on your Server or in the Azure Cloud

    • 2 Comments

    Microsoft SQL Server 2008 Express Do you know PHP and have data in a Microsoft SQL Server database? Well we have an application wizard that will make your lives a little easier. The project, open source and hosted on CodePlex, will help you build a simple CRUD (Create, Read, Update, Delete) application that works against Microsoft SQL Server, SQL Azure and Windows Azure Storage. The application is installable on Windows and supports data navigation, paging, sorting and UI customization using simple CSS.  crudwizard_arch_sm

    Here’s what you will need, a working PHP web server, a connection to the internet, a SQL Server 2005 or higher. You can also use the free version. “SQL Server Express” that is available for download and installable as part of the Web Platform Installer. As an added bonus you can also work against your Windows Azure Storage or SQL Azure database.   Windows Azure tokens are available by registering for Windows Azure Services and redeemable at http://windows.azure.com

    To begin download the wizard, open the.zip and install on your PC. There is a handy deployment guide that helps you get started. You will simply need to set up a database account with a username and password. Install the SQL Server 2005 Native Client DLL and the  SQL 2005 PHP Driver 1.1 which will give you a .dll for the appropriate version on PHP you are running (5.2 or 5.3, thread-safe and non). Copy the appropriate .dll to your PHP extension directory (e.g. C:\php\ext) and add a reference to your PHP.ini file (e.g. C:\php\php.ini) to call the .dll, (e.g. extension=php_sqlsrv_xx_yyy.dll)

    You will then want to use “SQL Server Management Studio” (ssms.exe) from the Start Menu (All Programs or Programs) or from C:\Program Files\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE to create a new user and a database. The tutorials listed below are a quick way to get started

    Following the steps above I created a login to my SQL Server, Created a database “sqlcruddemo” and a new table called “customer” and associated a database user “demo” to it.  In the table I then created 3 columns. ID, set as a non-null integer and a “Primary Key” plus Firstname and Lastname both as variable character strings of length 50.  This is how it looks like from the design tool.

    sqlmgmtstudio

    Once you have the database set up you can run the file PhpSiteGenerator.exe either from the “PHP SQL Crud Application Builder” entry in your Start menu or from the Installation folder (typically C:\Program Files\PHP SQL Crud Application Builder). The splash page shows up as below. You will want to enter in the name of the database user you created (e.g. demo) and it’s password. Then click the button “Find Database” where it will bring down entries for the “Database” and “Table” drop down menus. I have selected the entries I created before (database “sqlcruddemo” and table “customer”) and the checkboxes for the columns (ID, Firstname, Lastname)

    Hit the “Next” button to get to the second screen where you can set CSS styles for the table of the CRUD application. I decided to change the “.tblHeaderCell” tag, which sets the table headers, with a blue background-color and bold fonts. The CSS in the generated file, “style.css” and the form looks like  … PHPGenerator1

    PHPGeneratorCSSoutput

    PHPGenerator2 

    Hitting “Generate Site” will yield the result in the following form, “index.php”, which I have populated entries using the “Create New” button which calls the “create.php” file also displayed in the browser belowCRUD

     

     

     

     

     

     

     

     

     

     

     

    You can use these generated helper php files and forms as the building blocks for the database driven application that you would like to write against SQL Server. As you can see most of the PHP code you need to manipulate data from SQL Server has been taken care for you.

    Take a look!

    Jas Sandhu
    Technical Evangelist, Interop Vendor Alliance Manager, Interoperability Strategy Team
    Twitter@jassand, FriendFeed@jassand

  • Interoperability @ Microsoft

    Moonlight 2 is now available

    • 0 Comments

    From the Silverlight Team blog: Moonlight 2 is now available

    “We are pleased to announce the availability of Moonlight 2, an open source Linux implementation of Silverlight first announced by Microsoft and Novell in September of 2007.  Moonlight is the first and only open source project that provides Linux users access to Silverlight content.  Microsoft has provided Novell with access to its test suites for Silverlight, and provides Linux end users of Moonlight with free access to the Microsoft Media Pack, a set of licensed media codecs for video and audio. In addition, Microsoft and Novell are also announcing the expansion of their collaboration on Moonlight to include support for Moonlight implementations of Silverlight 3 and Silverlight 4. As part of the companies’ interoperability agreement, Microsoft will deliver new test suites and specifications for Silverlight 3 and 4 to Novell. “

    Read the announcement on the the Silverlight Team blog: Moonlight 2 is now available.

    moonlight Miguel de Icaza from Novell have some details as well:

    Releasing Moonlight 2, Roadmap to Moonlight 3 and 4.

     

     

     

  • Interoperability @ Microsoft

    PHP and IE8 Web Slices

    • 5 Comments

    image Internet Explorer 8 (IE8) shipped with a new feature for web users called Web Slices. You can learn more about web slices here. Essentially it lets you add enhanced links to your favorite bar that allow you to preview snippets of content from websites that you frequently visit without having to open up the page. It’s really useful to do little tasks like check on your web based Inbox, check the weather in cities you live or visit, traffic status, stock tickers, headlines, sports, the list goes on and on and you can check the IE add-on gallery for more examples of useful web slices and for inspiration. [UPDATE: if you’re into sports then check out web slices by Buzztap that showcases a whole bunch to keep you up to date, also see the blog post by Jon Box]

    A web slice is content on a web page which a user can subscribe to.  The content is then available from a button in the Internet Explorer 8 Favorite's toolbar. When the content is updated, the button glows orange to alert the user that there is new content.  When the user clicks the button, they see a drop down window with the updated content of the web slice.

    To enable Web Slices on your PHP web site. We have created a project, Web Slices and Accelerators for PHP that lets you get started quickly and the source is available on Codeplex too. The solution contains HTML and PHP samples to create web slices in Wordpress, Wikimedia and Facebook,, all popular php blogging, content and social sites that you may want to have your code interoperate with to get started. Download the package and unzip the file to a directory on your machine.

    The code is based on HTML and XML and can be easily integrated into any other web site, framework or platform you may be working with. The markup is displayed in a client web browser and IE8 will discover and update content when it parses the code. Any web server can be used including IIS or Apache on phpie8websclicearchitectureLinux/Windows.

    There are three things to mark content as a web slice. You will need specific CSS class names to start with;  first, a div marked with a class equal to ‘hslice’; second, the div must have a unique id; third, a child element marked with a class equal to ‘entry-title’.

    image

    The HTML tags you use to structure your web slice are immaterial, the important thing is to specify the right CSS class names. We can create a PHP function to output this HTML structure.  The function will accept a unique name for the web slice, a title and a string representing the content.

    image 

    The code will render in your browser and when you hover over it, you will notice a green box around the content as well as a green button shows up next to your Home page button as illustrated below. You will only need to click on any of these buttons to get the dialog box that add this content to your favorites bar.

    webslicedemo

    Another handy feature that web slices have is a built in reader which can display the first item of an RSS feed. The HTML is almost identitcal but instead of specifying an element with a  class equal to 'entry-content', you create an anchor tag pointed to the content source. Note that you must specify an attribute rel='feedurl' and pointthe link to the URL of the RSS feed you choose to use.

    image

    We can modify our above PHP function to accept another parameter which specifies the feed URL too. Note that this example also includes a parameter for content, which is displayed on the page advertising the web slice. The content from the feed, however, will be the actual content to which a user subscribes to.

    image

    The following web slice was created using the above code with our Interoperability Blog RSS feed showing the first item on the list when this post was written.

    webslicerssdemo 

    You may already have content and or feeds on your website that could get a little spotlight today! It will also handy for your website users by using Internet Explorer 8 Web Slices. We hope that you take a look at the sample and please share your feedback!

    Happy Coding!

    Jas Sandhu
    Technical Evangelist, Interop Vendor Alliance Manager, Interoperability Strategy Team
    Twitter@jassand, FriendFeed@jassand

  • Interoperability @ Microsoft

    Interoperability at PDC09: let's recap

    • 0 Comments

    mount saint helen over the cloudsI just flew back from the Microsoft Professional Developers Conference (PDC09) in Los Angeles. What a week, with a lot of announcements, surprises and achievements on multiple fronts. From the interoperability perspective, a lot happened too.

    This PDC09 further demonstrates how Microsoft is making interoperability a priority and reality by demonstrating how − as an open platform − Windows Azure offers choices to developers. We’ve been able to show our progress with practical examples (like WordPress), additional technologies to run on Windows Azure (Tomcat, MySQL) and new SDKs/tools (like AppFabric SDK for PHP, Windows Azure Tools for Eclipse version 1.0). We’re on a journey, but it’s a significant milestone!

    So let’s recap what happened:

    _ray

    Ray Ozzie’s Keynote: Ray announced more options for developers on Windows Azure with Tomcat(Java), memcached and MySQL. This was illustrated by Matt Mullenwag running a demo of Wordpress running on Windows Azure and followed by Martin Cron from www.ICanHasCheezburger.com who showed their new Wordpress-based blog http://oddlyspecific.com/ which uses an image management plug-in based Windows Azure storage.

    Watch this video with Steve Marx (Technical Strategist in the Window Azure team) and Vijay Rajagopalan (Principal Architect in the Interoperability team) for an overview:

    _vijaysteve

    Refer to PDC sessions Building Java Applications with Windows Azure and Developing PHP and MySQL Applications with Windows Azure for more details.

    -*-

    Another interop demo: Domino's Pizza Java Tomcat-based application running on Windows Azure.
    Domino's Pizza showed up in a short video in the keynote where Jim Vitek, Domino’s Director of eCommerce stated: "We have to buy hosting infrastructure to meet our highest peak which is Super Bowl which is 50 percent above our next highest peak which is a typical Friday night. So there’s a tremendous amount of unused capacity in our hosting infrastructure that Windows Azure allows us to eliminate"
    Domino’s Pizza was also in Sumit Chawla’s talk at Web 2.0 expo demoing the scenario with Tim Wise from Domino's Pizza. Read this blog post for more details: “Domino’s Demonstrates Tomcat Site on Windows a Azure”. Sumit also made a few interoperability announcements from the #web2e expo floor.
    Check this PDC09 session as well: Lessons Learned: Migrating Applications to the Windows Azure Platform.

    -*-

    clip_image006A dedicated Interoperability page on the Windows Azure portal: www.windowsazure.com/interoperability.
    You’ll find here the overview and links to resources which will enable various developer communities to leverage Windows Azure either as the primary cloud infrastructure or simply to extend their existing applications.

     

    -*-

    Windows Azure SDKs for PHP and Java and tools for Eclipse version 1.0 released:
    This release is the culmination our team’s year-long work with our partners for bringing core scenarios to life and a release that many of our customers & open source developers have eagerly been waiting for since our last CTP release at Eclipse Summit Europe.
    Watch this video with Maarten Balliauw, initiator of the project and Vijay Rajagopalan, for a quick overview:

    _vijaymaarten

    -*-

    AppFabricCartoon New Interoperability Bridge: PHP developers get an SDK for the Windows Azure platform AppFabric.
    Windows Azure platform AppFabric (formerly called .NET Services) includes the Service Bus and Access Control services that provide infrastructure in the cloud to connect applications.

     

    -*-

    _phpcrud A new SQL CRUD Application Wizard for PHP:
    This tool enables PHP developers to easily generate PHP code that performs basic Create/Read/Update/Delete operations for Windows Azure Tables SQL Azure and SQL Server

     

    -*-

    Using Windows Azure Storage from Ruby:
    We met with Johnny Halife, Principal Architect from Southworks, who has developed a Windows Azure SDK for Ruby. Watch the video for a quick overview:

    _jcjohnny

    -*-

    _stonehenge[1]Apache Stonehenge demoed at PDC09: Kent Brown, product manager for WCF gives us an update and show a demo of the different StockTrader applications working together. Watch the video till the end, Kent unveils the mystery on why the project was called Stonehenge!

    _kent

     

    In case I missed anything (I’m sure I have) let me know, I’ll update the post.

    [Update 11/23]

    ASP.NET Ajax Library: the first project to be contributed to the CodePlex Foundation.
    More information on James Senior's blog: http://www.jamessenior.com/post/News-on-the-ASPNET-Ajax-Library.aspx

    -- Jean-Christophe Cimetiere, Sr. Technical Evangelist

    Bookmark and Share
  • Interoperability @ Microsoft

    Document Interoperability Initiative (DII) workshop, Brussels

    • 0 Comments

    DII BrusselsLast week we participated in the DII workshop that took place in Brussels. 

    Attendees included a variety of document-format experts from the ODF and Open XML worlds, including members of SC34 working groups, the OASIS ODF and OIC TCs, ODF and Open XML implementers, public-sector experts in interoperability and archiving, and others.

     

    Dough Mahugh has the summary and nice photos.

     

  • Interoperability @ Microsoft

    Apache Stonehenge demoed at PDC09

    • 0 Comments

    A couple weeks ago, Microsoft was at ApacheCon. We reported the progress made on the Stonehenge project and presented the roadmap.

    _stonehengeThe goal of Apache Stonehenge is to provide a public forum to test the interoperability of WS-* protocols on different vendor stacks and to build sample applications that could provide best practices and coding guidelines for better interoperability. The main sample application, StockTrader has been implemented on .NET (by Microsoft), PHP (by WSO2), WSAS JAVA stack (by WSO2), Metro (by SUN Microsystems), Spring (by SpringSource). The latest version of StockTrader uses the WS-Security and WS-Trust protocols for claims-based authentication scenarios. This allows the end-users to be authenticated through an independent Security Token Service (STS) that is trusted by the bank and to pass that token to the broker to process the transaction.

    This week at PDC09, we were demoing the project. I went to see Kent Brown, product manager for WCF and asked him to give us an update and show a demo of the different StockTrader applications working together.

    Watch the video till the end, Kent unveils the mystery on why the project was called Stonehenge!

    -- Jean-Christophe Cimetiere

  • Interoperability @ Microsoft

    PHP developers get more choices with Windows Azure, Bing, and SQL Azure

    • 0 Comments

    web2.0 Today I presented a session at the Web 2.0 Expo in New York called Cloud Computing with Windows Azure Using Your Preferred Technology.
    During my talk, I stepped the audience through a series of demonstrations in which non-Microsoft tools and programming technologies, such as PHP or Java, were used natively to create cloud computing solutions with the Windows Azure platform. I also had the exciting opportunity to debut new open source projects:

     

    If you want more detail about these projects, just click the links above. There you’ll find additional information, including videos.

    I was very fortunate to have Tim Wise from Dominos Pizza as a guest speaker in my session; he showed how Dominos dealt with the problem of handling peak website loads (like on SuperBowl Sunday) by using Windows Azure for scale-out. What makes the Dominos demo very interesting is that the Dominos web-application is a Java Application running on TomCat. A true testament to the interoperability of the Windows Azure Platform!
    Read this blog post for more details: “Domino’s Demonstrates Tomcat Site on Windows Azure

    I received some very interesting questions and feedback about these projects from those who attended my talk, so I want to extend a big thanks to everyone for their input. It’s been really nice to be at Web 2.0 and connect with real-world developers building next generation websites and applications.

    --Sumit Chawla, Technical PM/Architect, Microsoft Interoperability Team

Page 3 of 4 (340 items) 1234