I find that I mostly prefer interpreted / scripting languages like PHP. Even though AmeriCommerce is an eCommerce platform at heart, it has all the right tools to make it a great solution for online store owners who want to provide interactivity with customers through email campaigns, product reviews, blog posts and comments, and now, questions, answers, and voting. The gist of this project was to build a widget for their platform that would allow customers and store owners to interact with content on a new level. The widget allows anyone to ask a question about a product, category, blog post, or any other store page type that is within the AmeriCommerce Suite. It also allows customers to answer questions and up-vote (or down-vote) questions and their associated answers, which will theoretically provide insight as to how useful a particular post is.
The start of my experience with C-based programming languages dates back to Java in my college days. I graduated in May 2012, so it wasn’t too terribly long ago. Since then, however, I haven’t written a single line of Java, or any programming language that requires the use of a compiler for that matter. Being a LAMP developer lends itself to being a Mac user, at least in my opinion, and of course I’m an avid fan of the Mac platform. It’s been my primary computing platform of choice since purchasing my first Mac in 2008. Over the last couple of weeks, however, I’ve gotten a pretty good handle on the other side of the development fence: Windows, Visual Studio, C#, the .NET Framework, and Team Foundation Server, and I have to say: I haven’t hated it.
Don’t get me wrong, I won’t be trading in my Mac for a Windows machine any time soon, but when the job calls for it, Microsoft has some pretty solid enterprise products that work well together. Provided you’re using Team Foundation Server or another VCS supported by Visual Studio, it’s easy to stay within Visual Studio and SQL Server Management Studio almost exclusively during development.
Here are my thoughts of C# and .NET after using them every day for the last three or so weeks.
- C# is a very expressive language. Partly due to the fact that it’s statically typed, no doubt, it’s very easy to read.
- Visual Studio is by far the best IDE I’ve ever used and the built-in debugger is super handy. Also, Intellisense might be the 8th natural wonder of the world.
- Other Microsoft products, such as Team Foundation Server and MS SQL Server / SQL Server Management Studio work very well with each other, making the entire development experience feel unified and simplified.
- The fact that it’s a compiled language means it’s easy to catch a lot of errors at compile time, rather than having to debug at runtime.
- Building web apps using C# seems clunky overall compared to other languages. While it doesn’t feel as sleek and sexy as other languages, it is powerful.
- Building a solution that consists of several projects can be slow to compile, although compile-time error checking nearly makes up for it.
- Running .NET apps on IIS can be slow for pages that are rarely accessed because of the way .NET dynamic compilation works.
- Microsoft enterprise product licensing is expensive and overall a pain in the neck.
Even though I personally prefer to use other programming languages and technologies for most of my projects, I’m happy that I had the opportunity to work with C# and .NET, because I’m always looking to learn and try new things. Heck, I even enjoyed it. Do I think PHP/MySQL is the only way to go? Absolutely not. Is it often the right tool for the job? Indeed.