How Microsoft is making PHP Development easier

Recently i had an opportunity to have a chat with Microsoft, along with a few PHP community members. We were greeted by Josh Holmes (Architect Evangelist / US) and Rogerio Cordeiro (Developer Evangelist / Brasil) at the Microsoft HQ in São Paulo and headed over to a auditorium where we started off a informal but very interesting talk for a few hours. This was the basic idea behind the visit: to show us a few of their new tools and get feedback from what we developers think or their tools, what is missing, what is broke, how to fix it.

The main impression I got from the new tools was pretty clear, they had addressed important issues, but most importantly they had addressed the issues which were raised at the Microsoft Web Developer Summit (MSWDS) which I had attended in 2009, it was quite impressive to note this, because it meant that they were really listening to this kind of feedback, making this meeting even more important and showing us developers that we really have a say in the matter (yes, obviously not as far as messing with their business plan).

So, how is Microsoft making PHP Development easier?

Deploying a full LAMP stack on a linux server is something relatively simple if you have some basic knowledge of Linux and the command line, but in Brasil we have quite a big chunk of PHP Developers using Windows as their development platform, especially if you look at the beginner level of the community (most advanced developers are on linux or mac nowadays). This means that at an entry level the developer’s first experience with PHP is on a WAMP stack. Sure you can use solutions like XAMPP or WAMP Server to install a full stack, but Apache + PHP performance on the Windows platform is horrid at best, and that leaves a bad impression on developers. What is the solution? Well, its IIS, but show me a raise of hands of how many beginners have the slightest idea of IIS Management or configuration, or even those who want to have that knowledge. My guess is very few hands are up right now.

In comes the Web Platform Installer, released a few years back it solves this problem pretty well, install the whole stack, any applications like Drupal or WordPress or any related software or configuration needed. It takes an axe straight to the root of getting a development stack up and running, and it does all that very well in version 2.0. What we got a glimpse at during the meeting made me believe this is going to get even better: WebPI 3.0, currently in beta.

This version marks also the release of PHP Manager which makes it really easy to manage PHP installs and gives us a very cool possibility, have multiple versions of PHP running side by side on the same machine, each website running its own version, this means you can support your legacy application alongside your new toy all shiny and new and using PHP 5.3. This is really good for that beginner profile who can now have all this power in his hands at a very low entry cost. It also helps another layer of developers, the framework and application designers, this makes it really easy to fire up a VM with windows and test the software you are about to release with various PHP versions, how many times have you had to struggle to do this?

Another very cool part of this package is WebMatrix, it gives you a full dev environment with all the Express packages and it includes a lightweight IDE for code development. But the coolest part of this is on that addresses a message we all agreed on at MSWDS, “deploying to a windows server is a pain”. This is the publish feature that allows you to connect to a windows server and direct the full deploy straight from the tool, a button push away, how’s that for making stuff easy?

Still on WebPI there is another cool feature: the Application Gallery. Imagine a feed with hundreds of applications just a click away from install, that is really good for those everyday routine deploys like getting wordpress up and running for your grandma. But it goes much further for that layer of developers that base their business around selling commercial or free web applications. The reason is pretty straight forward, if you join programs like Website Spark, you can get your application listed in the gallery, just one click away from your user base. How’s that for spreading applications?

Microsoft has also gone further and given us PHP devs a cloud solution where we can use PHP, since Google has frowned upon our language on Google App Engine, we can have a closer look at Azure, but i’ll leave this to a post in itself.

As someone who took part in Microsoft reach for the PHP community and who had the chance of pointing out their mistakes and applauding there successes I really wanted to share this message with you, because i think we have reached a turning point where Windows is now a First-Class Citizen in the PHP stack, alongside Linux, as Rasmus himself has said.

This post is also available in: Portuguese (Brazil)

3 thoughts on “How Microsoft is making PHP Development easier

  1. Here's the thing about this PHP-on-Windows deal:

    – No gcc (yes, I am aware of cygwin, I am speaking in context of 'easy')
    – Not enough open source add-ons for IIS, in contrast to Apache/NGINX/Lighttpd
    – Would need a full build chain for gearman and et cetera.
    – Extensions and worker processes hampered by a great void in the number of libraries available.
    – Robotic administration can't begin to compare to what's available on UNIX. Windows remote administration is a complete joke in comparison.
    – Reboots for updates all the freaking time.
    – Will all my tools run the way I need them to? Munin, nagios, rsync, and 10,000 others.
    – Windows Server is far too expensive.
    – Needs to ship with a good, fast native compiler.
    – Needs a real package management system.
    – Performance of databases that are not MS SQL is questionable, and MS SQL is much too expensive.

    I could go on for a while.

    • I agree there is a lot to go, but my perspective on this is the beginner user, the one that might not even know how to compile or use advanced techniques.

      But apart from that, Microsoft has been listening and taking big steps in the right direction, you might not choose to run on windows but at least you will not be so much against as in the past, ate least i'm not.

  2. 'No gcc'? Thats like saying there is no Visual Studio on Linux, forcing usage of non native tools on another platform is not the way to go. MSVC is just as powerful if not more even on command line.

  3. > this makes it really easy to fire up a VM with windows and test the software you are about to

    > release with various PHP versions, how many times have you had to struggle to do this?

    I never wanted to fire up a windows VM to test php.

    • You might not want to, but many application and framework developers need to guarantee their code is compatible across multiple platforms.

  4. Great post Rafael. Back in the day, 2006 ;), I was "forced" to use IIS5/6 with ISAPI PHP….NIGHTMARE. APC would segfault the server and my sites would crawl in comparison to a *nix based system. Finally, Microsoft released the FastCGI driver and life for devs on windows was immensely improved.

    One thing you didn't mention, which is huge IMO, is WinCache. Since APC is damn near worthless on Windows, WinCache provides a caching system with "close to" comparable numbers.

    • Yes Jake, I just realized i left out WinCache, it is pretty awesome and has a compatible API.

  5. I really like your blog.. very nice colors & theme. Did you make this website yourself or did you hire someone to do it for you? Plz respond as I’m looking to create my own blog and would like to find out where u got this from. thanks

  6. Even though Microsoft tries to give better PHP support on the recent IIS versions, I think that still XAMPP is the winner. Why? Because it is easy to install and it has such a large community. You can find a solution immediately for almost any issue encountered with XAMPP.

Comments are closed.