Sunday, May 25, 2014

ASP.NET Developer Meets Drupal

I've been working as a full-stack ASP.NET developer for the 2 years I've been out of school. I messed with Drupal a few years back as we evaluated a CMS at church. I thought it was a cool system to help non-programmers add content.

A few weeks ago, I met Chris Winn who gave me an unparalleled opportunity to take Kidbusy to the next level. Kidbusy is currently implemented in Drupal, so I am learning more about it. I've always thought myself to be pretty pragmatic, using the right tool for the job, and here is where my beliefs get tested. Drupal is a quick way to get started, but we all know that PHP is a difficult language to grow in.

I'm going through some tutorials at, and it's been enlightening. After designing my own database schemas, I now see Drupal in a different light. It's basically doing the same thing I would've otherwise done in C# and SQL, but with a lot of wizards. I haven't dug into the database, yet, but I see adding content types as adding a row in the NodeType table. Adding fields are the same as adding a new column. Maybe it's implemented as multiple tables that inherit from each other. Maybe they're implemented as a single table. Hopefully it's not all in a postmeta table.

One of the major differences is that Drupal gives me a lot of stuff for free. I might've needed to spend a few days programming something, but Drupal will include it. I see this as good and bad. On the one hand, I get features for free. On the other hand, I have a lot more attack surface, maybe some I didn't think should be included.

Anyway, I look forward to this new experience. Maybe Drupal, not G, is the future of visual programming.