For a while now I've known that Microsoft builds good tools. But I've never really been a MS developer. I've done a bit with VB in the past (the far, far distant past) and have some minor experience with Visual Studio in general, but for the most part I don't tend to look at their tools as they don't typically involve my day to day work. Yesterday I discovered a Microsoft editor I had never heard of - WebMatrix.
WebMatrix is a free (Windows only!) editor that has some very interesting features to it. What caught my attention today was its support for Node. I've been doing a lot with Node lately and I was curious to see how well MS would support it. After downloading and installing the tool, I was able to create a Node.js application that included Express and Jade as well. (I don't like Jade as a templating engine, but whatever.)
Even cooler - I was able to run the app in my browser immediately. WebMatrix took care of turning the server on for me and handling restarts. That was something that took me a little work to get around when I was running Node at the command line. Don't get me wrong - it took me maybe 30 minutes to get things set up. But WebMatrix did this all in about one minute. I was very impressed by this. MS also included code complete for Node and Express within the editor.

Along with basic text editing, you also get a requests panel. It's essentially just a log of each URL request you make, but it's very cool to see it in action. The Time Elapsed could be especially useful while working on improving performance for an application.

There's more of course. You can browse, and install, a list of extensions right from within the editor itself. This now includes an iPad and iPhone simulator. This simulator includes the ability to toggle orientation as well as a few other features, but things like setting the GPS require the "professional" version. Microsoft made it a bit difficult to chase down the author of the plugin, but I found them at electricplum.com. Looks like the "professional" version comes in at 40 bucks which is frankly cheap as hell. I tend to rely on my Mac and XCode when I simulate iOS devices, but this looks to be a great option for Windows machines.

WebMatrix also supports publishing to a remote web site. I tried to work with MS Azure, but ran into multiple issues so I just gave up. They support a free 90 day trial, but I wasn't smart enough to figure out how to actually start a virtual server. I'll take the blame for that.
Anyway - I definitely recommend my Windows-using readers give it a quick check, especially if you are interested in Node and perhaps a bit wary of command-line usage.
Archived Comments
6 months back, I happened to encounter the MS WebMatrix. I wasn't able to understand it. So, I gave it up.
I think, I should give it an another try.
Thanks for the article.
It needs .NET (shudder)
Meh. I don't use .Net, but it seems like a decent enough platform. :)
.NET frightened my mother when I was in the womb.
I have used WebMatrix for a couple of web sites, including my own. I would not recommend for heavy development. I would still use Visual Studio or Eclipse if you are building an enterprise level web application. WebMatrix is perfect for building a web site using a CMS like WordPress or DotNetNuke locally, then deploying when you are ready to push the site out to a host. It uses IIS Express as the web server. It would be interesting to see if anyone has tried using this with ColdFusion?
It should be noted that WebMatrix runs into big problems when publishing to hosts not using Windows-type servers. I have been using it to develop a website using Wordpress as the CMS, and all went fine until it came time to publish. The problems have been unending.
I have been engaged in a marathon to-and-fro with my host Support, who have been terrifically patient throughout. Their servers are Linux, and they have concluded that I would be far better in future to just do the site development live in a subdomain, then migrate across to the URL location when complete. This migration process is something I was trying to avoid. I've done it before with Wordpress and it's protracted and a pain, but much less problematic than using WebMatrix. I still haven't got my new site up!
Note: I'm no techie. Doubtless, geeks will not have my problems using WebMatrix to publish WP sites. But if you're not a geek and your host does not use Windows-type servers, beware!
Can you explain exactly what went wrong? You said problems, but didn't elaborate into what went wrong. I'd *never* recommend doing development on the server itself. I'd change IDEs first.
Hi Raymond. The first problem was that the initial attempts at publishing failed. I kept getting this notice: Error creating directory "www/www": File exists (550). My host Support told me to make sure that I entered "/www/www" in the Site path field, which I did - but it was clear after several more failed attempts to publish that the error was going to keep happening. Support checked into it and advised: "It would appear that for some reason, the software is trying to create such a "/www/www/" folder on the server, but it since it already exists and it's owned by the 'root' user on the server, it cannot overwrite it."
Support created an additional FTP subaccount with a new user and pw, and associated this user directly with the /www/www/ folder where I was attempting to upload. This seemed to solve the problem, but only so far as it turned out. After a VERY long time (1 hour and 20 mins), the publishing was complete, but only of the Wordpress script. The database was not published. Apparently, WebMatrix had no option for transferring databases when FTP mode is used (which was the only way I could get it to publish anything).
I had to FTP the database to my host account separately using Filezilla. Support concluded that WebMatrix is designed for Windows-type servers, and its publishing capabilities are very limited when used in conjunction with Linux servers.
Once the Support guys made the changes necessary to get my site working at the destination URL, it quickly became evident that there were all sorts of irregularities at variance with the localhost version.
For example, when I decided to delete some plugins that were 'broken' in the course of the uploading of the database (with the intention to later reinstall them afresh)I received the following message:
"Connection Information
To perform the requested action, WordPress needs to access your web server. Please enter your FTP credentials to proceed. If you do not remember your credentials, you should contact your web host." blah blah...
I have never been asked for my FTP credentials with my long-running Wordpress blog. Support had to append some code in wp-config.php to remedy the situation.
I have spent hours since then changing all the other things that were somehow lost in translation during the publishing. eg: backgournd colour had been changed, weird fonts had appeared out of nowhere within my content, paragraph indentation had been changed, my customised header had been replaced my the Twenty Eleven theme rotating headers, and so on and so on.
All in all, a frustrating experience that ended up taking far more time than if I'd just installed Wordpress in my host account and copied and pasted the content from my localhost, along with all the other modding of stylesheet etc.
Cheers
R
Ah, interesting. In general, I never use an IDE's "Push to Server" type feature just because there are normally complications. FOr example, the database can't just be pushed up unless you are using an old MS Access db. Anyway - thank you for sharing your experience here.
So Raymond, how do you publish from an IDE to your host account, then? The blurb on Webmatrix led me to believe it was a simple matter of clicking on 'Publish' - that the task would be done more or less automatically, fast and with a minimum of fuss. Should have known that was too good to be true.
Perhaps my expectations were unrealistic (or perhaps the creators of WM have a whole lot of refinement to do before it lives up to the claims that MS make about it). It was good working on my website in the localhost environment, and WM certainly was pretty easy to install and set up as an IDE. That may be the extent of its usefulness at this point. If you could share some tips about the publishing side of things, would be appreciative.
Cheers
R
In the ideal world, I use a tool like ANT to deploy a build from source control onto production. This can ensure I don't miss any files and works the quickest.
Thanks. Haven't heard of ANT - will check it out.
Hmm, assume you're referring to Apache Ant? Just had a look - way too complicated for a non-techie like me. Do you perchance have any recommendations for publishing options that might be more accessible to the tech-challenged?
Not really - no. Outside of a FTP client.
OK, thanks Raymond. Just one last question, if you don't mind.
I know how to FTP the WP content and other files to my host, but not sure about the WP script itself. Can you FTP a Wordpress script (including mods done in a localhost environment using, say, WebMatrix - eg: customised header, changed background colour etc) to a host server, or is it best to install WP on the host server, then one by one copy the mods done on the localhost? Would this be the best option for someone like me, do you think?
Cheers
I don't use WordPress, but I'd imagine that since it is built on PHP, there is nothing wrong with FTPing the files up to the production server just like normal HTML files.