Archives
-
This Week’s Link List (December 31, 2010)
I considered publishing a “best links of 2010” list here, but alas, there was too much good content in just this week to overlook…everything from another JumpIn Camp report and another ZCE exam experience to free Windows/SQL Azure passes and new Azure/PHP articles…plenty to keep you busy over the New Year’s weekend…
-
This Week’s Link List (December 24, 2010)
Things are definitely not slowing down in December. This week, everything from news about a stable Doctrine 2 release (and how to use its DBAL to create DB schemas) to blog posts about bugs/features in PHP 5.3 (and a couple of just-for-fun links thrown in for good measure). Enjoy reading…
-
Troubleshooting and Performance Tuning with SQL Server Traces
A couple of weeks ago I wrote a post (How to Change Database Settings with the PDO_SQLSRV Driver) that highlighted a problem that came up at the November JumpIn! Camp in Redmond. To get to the root of the problem (and eventually a solution), I used SQL Profiler to monitor events on my database server. Of course, monitoring server events can be helpful in troubleshooting any issue, including performance issues, when it comes to data-driven applications. Unfortunately, SQL Profiler (a tool that allows you to easily monitor server activity) is not included as part of SQL Server Express. Fortunately, SQL Profiler is just a nice UI for functionality that is built into SQL Server (including the Express version). So, in this post I’ll show you how to create, read from, and write to a trace file using SQL and SQL Server Management Studio (which you can download for free from here).
-
This Week’s Link List (December 17, 2010)
I thought December was supposed to be a quiet month. Judging by all the excellent content I’m finding, I guess I was wrong…
-
Video Tour of PHP Manager for IIS
Last week, Ruslan Yakushev announced the release of the 1.1 version of the PHP Manager for IIS. I thought a tour of the PHP Manager functionality might work best in video format. I’d be interested learning what you think of the PHP Manager itself, but also in knowing what you think of the video format.
-
This Week’s Link List (December 10, 2010)
Apologies in advance for this week’s lengthy list…too much good stuff to whittle it down much. If this keeps up, I’ll have to post lists twice a week!
-
How to Change Database Settings with the PDO_SQLSRV Driver
This post is based on another lesson I learned at the JumpIn! camp in Redmond a few weeks ago. The short story is this: If you are using the PDO_SQLSRV driver and you want to execute a query that changes a database setting (e.g. SET NOCOUNT ON), use the PDO::query method with the PDO::SQLSRV_ATTR_DIRECT_QUERY attribute. If you use PDO::query without that attribute, the database setting you expected to change may not be applied to subsequent queries. The longer story has to do with why this is the case, which is what I’ll explain in this post.
-
Converting MySQL Queries to MS SQL Server Queries
At the JumpIn! Camp that took place a few weeks ago, PHP developers from several countries were invited to come to Redmond and work closely with Microsoft developers to build support for SQL Server and SQL Azure into their applications. (As expected, the camp was more than just that. It was also an excellent two-way learning experience…you can read more about the camp here). One of the challenges that these PHP developers faced was in migrating their MySQL schemas and data to SQL Server. The tool that helped in doing this was the SQL Server Migration Assistant for MySQL 1.0 (SSMA), which, by most accounts, did a good job at converting databases. (For a quick tutorial on how to use this tool to migrate a database, see this post.) However, after converting databases, developers still had to convert individual queries from MySQL syntax to SQL Server syntax in order to build SQL Server support into their applications. For most simple queries, this isn’t terribly difficult. However, for some queries, the conversion is not at all straight forward. What I didn’t know (and was happy to learn) was that SSMA can also help convert queries. So, in this post I’ll show you how to use SSMA to convert a single MySQL query to a SQL Server query.
-
This Week’s Link List (December 3, 2010)
November was an exceptionally busy month and, by the looks of things, December promises to be just as busy. This week’s links include news about an update release for the PHP Drivers for SQL Server, the JumpIn! Camp that took place a couple of weeks ago, and much more…
-
Update Release of the PHP Drivers for SQL Server
An update release to the Microsoft Drivers for SQL Server for PHP 2.0 is now available. You can download it here and you can read what Ashay Chaudhary (Program Manager for the drivers) had to say about the release here. The release contains fixes for 4 bugs:
-
Configuring SQL Server Reporting Services (SSRS) Users
A few months back, I wrote a post that demonstrated how to access SQL Server Reporting Services (SSRS) reports with the SSRS SDK for PHP. There have been many comments on that post, many of which indicated that people have struggled to get users set up with the correct permissions to access reports. Given the steps that are required to correctly configure users and permissions, I thought video might be a better medium than text for explaining. This video assumes that you’ve gone through the steps in Getting Started with SQL Server Reporting Services to install and configure Reporting Services and to deploy a report. If you’ve done that were then denied access to a report when running your PHP code, this video might help. I’d certainly be interested to if is does help and what other short videos might also be helpful.
-
This Week’s Link List (November 26, 2010)
I have been a slacker about posting my weekly link list recently…I’ll chalk that to attending conferences in the last couple of weeks, though I know that is a poor excuse. This week, however, I’m back in action and have LOTS to share because I have been collecting links even if I haven’t been publishing them. I’ve tried to limit this post to the best of the best over the last three weeks, but as you can see, that was difficult…
-
Why Pass Parameters by Reference in the SQLSRV Driver?
Last week at JumpIn Camp we spent quite a bit of time focusing on the SQL Server Driver for PHP. As developers worked to build SQL Server support into their applications, they had lots of questions about how both the SQLSRV and PDO_SQLSRV drivers work under the hood. One of the questions that came up was “When using the SQLSRV driver to execute parameterized queries, why do I have to pass parameters by reference?”
-
SQL Server Driver for PHP Connection Options: Connection Pooling
I’m back in from conferences in Germany (PHP World Kongress and TechEd) and am now at Jump In! Camp. I’ll echo what I seems to be a common sentiment after the first couple of days: it’s very cool to be surrounded by so many smart folks (and humbling too). It’s been fun having my knowledge of PHP, IIS, and SQL Server tested by folks asking questions that are real problems in real apps. (Hopefully, I’m passing the tests.) One topic that came up yesterday was connection pooling and how much difference using pooled connections makes in app performance, so that’s what I’ll look at in this post. But first, a little background…
-
Resources from PHP World Kongress Presentation
I’m just posting to share the resources from my presentation today at the PHP World Kongress in Munich, Germany. I’ve attached the slide deck that I used, but I’m not sure how useful it will be since most of my presentation was demos. (I hope to get video versions of the demos posted soon. If the deck doesn’t make sense now on its own, hopefully it will make sense when I get videos posted.) Here’s the links from my “Resources” slide, which is what most folks asked for:
-
This Week’s Link List (November 5, 2010)
Presenting at conferences is something that is still new to me…I’m amazed at how much time it takes to put a presentation together. I definitely have new found respect for those folks who are good at doing it. I’m sure I’ve spent too much time stressing over my presentations for the PHP World Kongress and TechEd in Germany next week, but I suppose that comes with the territory of being a new presenter (as does a quiet blog). I have, however, managed to keep my eye out for good content this week. Here’s what I found…
-
This Week’s Link List (October 29, 2010)
I’m consistently amazed on a weekly basis by the community-produced content that I see. Here’s this week’s highlights…
-
Determining Azure Drive Letter with PHP
I wrote a post a couple of weeks ago about getting started with the new Windows Azure Tools that are available for Eclipse, but I glossed over some of the Windows Azure features that you can configure with the tools. In the next few weeks, I hope to drill into some of those features. Today, I’ll start by taking a look at Windows Azure Drives. Specifically, I’ll explain how to programmatically determine the driver letter for a Windows Azure Drive. (I’ll assume you’ve read the getting started post I wrote a couple of weeks ago.)
-
This Week’s Link List (October 22, 2010)
I’ve been busy this week preparing presentations for PHP World Kongress and TechEd Europe next month, but I haven’t been too busy to read some interesting articles…hope you find them interesting too…
-
This Week’s Link List (October 15, 2010)
Once again, this week’s list is full of great community-produced content…everything from how to speed up PHP scripts with asynchronous database queries to how to write cross-platform PHP code to manipulate files. Happy reading…
-
Using the Windows Azure Tools for Eclipse with PHP
Following on the heels of announcements a couple of weeks ago, the Interoperability Team at Microsoft is announcing the availability of another update to the Windows Azure Tools for Eclipse. In this post, I’ll use the updated Eclipse plug-i to walk you through creating and running a project in the Windows Azure Development Fabric, readying a project for deployment to Windows Azure, and deploying a project to Windows Azure. (This post assumes you have a Windows Azure account and have set up a storage service and SQL Azure. If you haven’t, these posts have directions for doing so: How to Run PHP in Windows Azure and Getting Started with PHP and SQL Azure.)
-
This Week’s Link List (October 8, 2010)
This week saw a couple of announcements, lots of great community-written content, and even a few opinions. Feel free to add yours…
-
Reflecting on PHP-Microsoft Interoperability
This morning I came across this article on PHPDeveloper.org: Blast from the Past – One Year Ago in PHP. That brief look into the past got me to thinking about what Microsoft has done lately toward PHP interoperability. (By “lately”, I mean in the last few years.) And, I’ve been working on a presentation for TechEd in Berlin next month that will, in part, provide a brief overview of Microsoft’s efforts toward PHP interoperability and support. So, I thought I’d share a bit of that summary here…
-
This Week’s Link List (October 1, 2010)
Welcome October! (How’d October arrive so quickly?) The start of this month sees some great community-produced content (especially see the Programming Language Tradeoffs post), some important PHP/IIS announcements and releases, an in-depth look at developing applications for the cloud on the Windows Azure platform, and lots more…
-
PHP Manager for IIS 7 Released!
Yesterday, Ruslan Yakushev announced the availability of the final, stable release of the PHP Manager for IIS (v1.0). (It is available for download here.) There have been some significant changes in the final release since I wrote about the first beta release a month ago. Not only have several bugs have been fixed, but new functionality has been added. Now the PHP Manager can help you validate and optimize your PHP installations on IIS. This is in addition to the functionality that was available in the beta releases:
-
This Week’s Link List (September 24, 2010)
This week, there was lots of news about the release of Windows Azure Companion and updates to other Azure-related SDKs for PHP. And, an important announcement about an ASP.NET vulnerability that could affect PHP sites running on IIS…and other stuff…
-
Rendering SQL Server Reports as Excel Documents with PHP
I wrote a post a while back about getting started with SQL Server Reporting Services (SSRS) and PHP that has generated lots of questions (both in the comments and in e-mail and conversations I’ve had since then). One of the most common questions has been “How do I render a report as an Excel document?” I’ve been telling folks that this is easy with the SSRS SDK for PHP (and it is easy), but when I sat down to do it, I ran into a problem. So, in this post, I’ll show you how to render a SSRS report as an Excel document and how to avoid the one problem that caused me headaches. I will assume you have read my previous post about getting started with SSRS and PHP.
-
Announcing the Windows Azure Companion and More…
This past weekend Vijay Rajagopalan of the Interoperability Team at Microsoft delivered the keynote at OSI Days. As part of his presentation, he announced the release of four projects that may be of interest to PHP developers:
-
This Week’s Link List (September 17, 2010)
Clearly, the dog days of summer are past us. This week has seen a significant uptick in community-produced content related to PHP, Microsoft, open source, and more. There is enough here that you might want to allocate some weekend time for reading (or maybe not?)…
-
Accessing Windows Azure Table Data as OData via PHP
Did you know that data stored in Windows Azure Table storage can be accessed through an OData feed? Does that question even make sense to you? If you answered no to either of those questions and you are interested in learning more, then read on. In this post I’ll show you how to use the OData SDK for PHP to retrieve, insert, update, and delete data stored in Windows Azure Table storage. If you are new to either Windows Azure Table storage or the OData protocol, I suggest reading either (or both) of these posts (among other things, they will describe what Azure Table storage and OData are, and walk you through set up of Azure Table storage and the OData SDK for PHP):
-
SQL Server Driver for PHP Connection Options: Snapshot Isolation
In the post I wrote last week about transaction isolation levels I left out an important option: the snapshot isolation level for database transactions. I’ll cover the snapshot isolation level in this post, and (as in my earlier post) I’ll look at what happens at the database level when using a particular isolation level (rather than concentrating on PHP data access code). I should also point out that in my earlier post I covered the ANSI standard isolation levels, which are implemented by most relational database management systems (SQL Server, MySQL, Oracle, DB2, etc.). However, the snapshot isolation level is not an ANSI standard and is not implemented by all database management systems (including MySQL), so this post isn’t necessarily as database-agnostic as my earlier post. That said, the concepts in this post are broadly applicable to many (just not all) RDBMS.
-
This Week’s Link List (September 10, 2010)
Here’s the list of interesting links I came across this week…
-
Interview with Eli White, PHP Developer and Intern on the ASP.NET Team
I had the good fortune of meeting Eli White, a junior at University of Washington and a PHP developer of 7 years, for the first time at the local Seattle PHP Meet Up a few months ago. I then ran into him recently at Microsoft where I found he is doing an internship on the ASP.NET team. I had lunch with Eli last week and we talked about the work he’s doing on Web Matrix and Razor. I thought his perspective as a PHP developer on Web Matrix and Razor were worth sharing…
-
SQL Server Driver for PHP Connection Options: Transaction Isolation Levels
Last week I had the good fortune of presenting at the the Seattle PHP Meet Up on a topic I knew only a little about: transaction isolation levels. It was fun doing the homework to learn more and I’ll share what I learned in this post. However, before diving in, I want to call out two things:
-
This Week’s Link List (September 3, 2010)
I missed last week’s list because I was out enjoying the last of our summer weather in in the Pacific northwest, so this week’s list spans two weeks…
-
Accessing OData for SQL Azure with AppFabric Access Control and PHP
If you are having trouble making sense of the title of this post, I don’t blame you. To clear things up, here’s what this post is about (which I couldn’t fit any more concisely into a title): The SQL Azure Labs team has made it possible to consume data in SQL Azure as an OData feed. And, you can set up an OData feed so that only authenticated users (authenticated with the AppFabric access control service, or ACS) can access it. In this post, I’ll show you how to consume these protected feeds using PHP.
-
Managing Multiple PHP Versions with PHP Manager for IIS 7
Some time back I wrote a post about how to run multiple PHP versions on the same server with IIS (Running Multiple PHP Versions with IIS). While running multiple PHP versions wasn’t complicated, it wasn’t a no-brainer either. Today, Ruslan Yakushev (a Program Manager on the IIS team at Microsoft), announced the beta release the PHP Manager project on CodePlex: PHP Manager for IIS 7 – beta release. Not only does the PHP Manager make it a no-brainer to run different PHP versions side-by-side on IIS, it makes it easy to register PHP with IIS, configure various PHP settings, enable/disable PHP extensions, remotely manage PHP configuration via the php.ini file, and check the PHP runtime configuration and environment (i.e. see the output of phpinfo()). Read his announcement for a complete tour of this release (and provide feedback!). I’ll just take a quick look at how easy it is to get multiple PHP versions running in this post.
-
This Week’s Link List (August 20, 2010)
The dog days of summer are here. Seems like things are a bit slow lately…I only have a few links to share, in any case. But share I will…the lack of quantity does not impact their quality…
-
Access Control with the Azure AppFabric SDK for PHP
In my last post I used some bare-bones PHP code to explain how the Windows Azure AppFabric access control service works. Here, I’ll build on the ideas in that post to explain how to use some of the access control functionality that is available in the AppFabric SDK for PHP Developers. I will again build a barpatron.php client (i.e. a customer) that requests a token from the AppFabric access control service (ACS) (the bouncer). Upon receipt of a token, the client will present it to the bartender.php service (the bartender) to attempt to access a protected resource (drinks). If the service can successfully validate the token, the protected resource will be made available.
-
Understanding Windows Azure AppFabric Access Control via PHP
In a post I wrote a couple of weeks ago, Consuming SQL Azure Data with the OData SDK for PHP, I didn’t address how to protect SQL Azure OData feeds with the Windows Azure AppFabric access control service because, quite frankly, I didn’t understand how to do it at the time. What I aim to do in this post is share with you some of what I’ve learned since then. I won’t go directly into how to protect OData feeds with AppFabric access control service (ACS, for short), but I will use PHP to show you how ACS works.
-
Community Input Needed on Direction of PHP Drivers for SQL Server
With the recent production-ready release of the MS Drivers for SQL Server for PHP, the team is now completely focused on building the next version. To do that, they really need your input. The team would really appreciate your taking 10 minutes to fill out a survey here: http://www.zoomerang.com/Survey/WEB22AWD66CGAM, but time is running out. The survey closes at 5:00 pm today (Seattle time)! The information the team collects will help them determine and prioritize what features are important to the PHP community in the next release of these drivers.
-
This Week’s Link List (August 13, 2010)
I’ve been spending quite a bit of time recently trying to wrap my head around the access control functionality in the Windows Azure platform AppFabric, so you’ll find a couple of related links in this week’s list. You’ll also find several cloud-related announcements, mostly about new content that is available for developers, but also an announcement about getting one month of Windows Azure for free. All that said, I found this first link to be most interesting…
-
Now Available: SQL Server Migration Assistant for MySQL!
The SQL Server Migration Assistant (SSMA) team announced today the availability of the migration assistant for MySQL! (Yes, it supports SQL Server Express.) You can…
-
PHP Drivers for SQL Server Released!
Today, the SQL Server Driver for PHP team released the production-ready 2.0 versions of the SQLSRV and PDO_SQLSRV drivers for SQL Server. You can…
-
I’m a Judge for My App is Better Challenge
I recently found out that I was chosen to be on the judging panel for the My App is Better Challenge. I must say I’m honored and excited, but I also feel somewhat intimidated. Just look at the rest of the judging panel:
-
Consuming SQL Azure Data with the OData SDK for PHP
One of the interesting incubation projects that the SQL Azure team is working on is the SQL Azure OData Service. If that sentence makes no sense to you, then start by reading this short overview on the SQL Azure team blog: Introduction to Open Data Protocol and SQL Azure. I’ll paraphrase what I read in that post to inspire this post:
-
This Week’s Link List (July 30, 2010)
-
This Week’s Link List (July 23, 2010)
Wow! This has been a busy week…especially when it comes to news about Windows Azure and SQL Azure. If you are wondering what Windows Azure and SQL Azure have to do with PHP, just follow the first link, which will take you to a comprehensive article by Maarten Balliauw about hosting PHP applications in Windows Azure. Not all this weeks news is about Azure, however. Some interesting conversations on Twitter led me to some interesting pages about open source licenses. And there’s more…including an article about generating Word documents with PHP…
-
Windows Azure Command Line Tools for PHP Available in Web Platform Installer
-
How to Page Data with the SQL Server Drivers for PHP
Shortly after the 1.0 version of the SQL Server Driver for PHP was released, I posted on the team blog as about how to page data with the driver. In the v1.1 release of the driver, the team added some functionality that made paging data easier and more intuitive, but I never got around to a blog post that showed how to use the new functionality. So, with the final release of the 2.0 version of the driver coming soon, I thought it was high time I posted something about using the functionality that was added in the v1.1 driver (better late then never!). While I’m at it, I’ll include code that shows how to do paging with the PDO driver. (Complete scripts attached to this post.)