Local Production Environment Choices for WordPress: DesktopServer

Photo of Man at Computer

DesktopServer

This product is essentially a WAMP / MAMP application that has been extended to include some additional WordPress oriented functionality.

In its free version the customizations that stood out to me are

  • its inclusion of Xdebug,
  • support for Domain Name Mapping,
  • auto-creation of Apache Virtual Hosts,
  • and its auto-install of WP.

I was surprised to note that they list PHP 5.5 as being included but no mention of PHP 7.

When one moves up to their premium product ($100) one receives

  • a trace utility for PHP debugging (which one?),
  • LAN sharing for mobile testing,
  • a few plugins (bypass login, airplane mode, enhanced Coda2 preview, Adobe Dreamweaver),
  • “blueprints for automated WordPress configurations”,
  • the ability to direct deploy to a live server,
  • and the ability to import (from BackupBuddy, Duplicator, BackWP Up, BackUp WordPress, InfiniteWP, ManageWP), export, and archive sites.

I didn’t spend a ton of time with it, as at the time I was looking for something that was virtualized – e.g., using Vagrant or Docker.

I’d want the premium version –  but $100 is quite pricey, imho, especially when much of the product consists of open source components.

Don’t get me wrong, I understand this has had some significant time and effort put into it, but I’ll blog about a few other solutions available that are free and open source and you’ll see how they can stand shoulder to shoulder with DesktopServer.

Geeking Out: I Love Cloud9!

Introduction

LOVE Cloud9.

For the unGeeky

Me: Cloud9 is a development environment.

You: Great, that was singularly unhelpful.

Me: A development environment is the way one configures one’s computer to run the various applications used in programming (writing an application).

You: And this is so great because?

Me: Because setting up a development environment can be time consuming. There are usually a number of different applications you need to install and configuration changes that need to be made before the development environment is ready to use. For example, if you want to develop a PHP application (Wikipedia and WordPress are built on this) you’ll need an application to write code in as well as a web server to run the application. Most likely you’ll also need a database server to store all the data your PHP application works with.

In addition, programming can be messy and you may mess up your development environment and want to reinstall your Operating System (e.g. Windows, Mac OS X, Linux) – in which case you’ll have to do a bunch of work all over again to setup your development environment.

Personally, I like to have separate “workspaces” (aka development environments) for different projects. I may be writing a WordPress plugin in one development environment, experimenting with Node.js (currently one of the “hot” technologies), and have another project or two floating around. It helps me to keep things organized when my “workspace” only has the files related to the project I’m working on currently – and if I make any changes to configurations (e.g. to the web server) they will only effect this one project and not any other projects I am working on.

If you are looking to try out programming I’d recommend codeacademy and once you’ve got the swing of things, use Cloud9.

For the Geeky

Cloud9 provides a dockerized instance of Ubuntu preconfigured for development and a web-based IDE. It has prebuilt configurations for Node.js, LAMP, Python/Django, Ruby, C++, WordPress, Meteor, and HTML5.

Cloud9 IDE Screenshot
Screenshot from the Cloud9 IDE. Don’t be scared, you don’t have to have this many windows open at once.

For free you can create multiple workspaces, each workspace having 1 CPU, 512 MB of RAM, and 1 GB of HDD.

The IDE includes code completion, a JS/Node.js debugger, and a number of other features you can read about on their site.

It integrates seamlessly with Github and Bitbucket, allows you to share workspaces with others, provides a publicly accessible URL (if desired) so you can show off your application, and so on.

Looking to do a little WordPress development? You can have a workspace setup in under five minutes!

Ohh, and did I mention that the Code9 IDE is available via GitHub?

Learning and Brushing Up On Web Programming.

December 2008 Browser Usage
December 2008 Browser Usage (Photo credit: Elliott P)

There are a bazillion options out there for learning web programming. One I recommend (and still use) is W3Schools. No, you won’t learn everything by using

W3Schools, but you can learn a lot and its more systematic than googling for articles piecemeal as you go along. I also find W3Schools a useful reference tool when I need to refresh my mind on some technique or language I haven’t used in a while.

They have tutorials available on HTML, CSS, JavaScript, AJAX, SQL, PHP, ASP.NET Web Forms, XML, and a bunch of other technologies I didn’t mention. If you are brand new to web programming start with the HTML tutorials then move on to CSS followed by JavaScript. It is also likely that you’ll need to do database work at some point, so learn SQL and then you can choose what sort of language you want to program interactive applications in – two of the most popular are ASP.NET and PHP.

Leaving DotNetNuke (DNN)…

DotNetNuke (DNN) is a popular open source content management system written in ASP.NET with Microsoft SQL Server as the back-end. I’ve been using it for a number of years on sites of mine like davemackey.net. I’ve been a fan of DNN for a number of years for a few reasons.:

  • Open Source – I’m always a fan of open source projects, not just b/c I like a free lunch as much as the next guy but also because it allows for the project to continue on beyond the lifespan of a given individual or company.
  • ASP.NET – Its only been within the last several years I’ve really begun messing around with LAMP, and for the longest time I loved ASP and then ASP.NET. Now I’ve been swung to the dark side recently, though I still find Microsoft‘s development tools to be leagues beyond the open source competition (for speed of development) and still prefer developing in a VB.NET-like syntax to C#, PHP, etc. But, this habit must die…b/c everyone else is going LAMP.
  • Simplicity – Compared to Joomla or Drupal, DNN is a breeze. Within minutes of installing the application you can have a full featured site up and running.

That said, I’m now leaving the DNN community (I’ll get to what I’m moving to in a few moments). Here are the simple reasons why:

  • Cost – While DNN itself is open source, the Microsoft ecosystem as a whole is much more oriented around cost-based. This especially holds true for the DNN third-party ecosystem of modules and skins. Both of these would have some commercial items in a similar LAMP based project, but there would be loads of free modules/skins. Not so of the DNN ecosystem.
  • Development – Feature development in DNN seems to go at a much slower pace than equivalent open source projects (though this may change with the venture capital infusion DNN recently received). One significant example is the forums module which has been without an update for well over a year and has several show-stopping bugs in the current production version.
  • Openness – While DNN is an OSS project, the sharing of news about what is happening internally as far as development as well as the ability to get the latest snapshot download to run on the bleeding edge is extremely limited.

So what am I moving to? Good question. Its not Drupal or Joomla. I find both of these overly convoluted (here come the haters). Instead I’m moving to WordPress. WordPress while initially designed as a blogging platform has extended itself significantly to include most functionality that a user could want from a CMS in the core install. Thousands of free extensions make up for whatever WordPress lacks at its core. The development pace is rapid and even minor versions include massive updates (e.g. 2.7 is awesome!). The skins/modules are free, free, free and if one module isn’t receiving development there are dozens others that are.

That said, I’m not abandoning DNN completely just yet. It works well enough for davemackey.net, ocddave.com, and a few other sites. At this juncture the cost to move them over to WordPress (in time and energy) is greater than the lost features (since these are essentially static content sites, they aren’t missing out on much). I plan to in the future – as the need arises.