Transitioning to C# ASP.NET09/20/2013
I was recently hired by Dirigo Design and Development in June. Dirigo, for the most part, is a fast-paced, C# ASP.NET/Microsoft shop. Exactly as advertised on their website. They also do some classic ASP VBScript, PHP, Coldfusion and Java. My background is mostly in Coldfusion and Java on the backend side of things. Given that we're most concentrated in .NET, I had to quickly pick-up C# MVC ASP.NET. The language is certainly a huge breath of fresh air! C# is incredibly similar to Java, but offers so much more. A beautiful, intricate data-driven website can be constructed in almost half the time of what it takes in Java or Coldfusion.
C# allows for code-first development — a much improved version of Entity Framework (EF). This provides a “convention over configuration” approach that enables database persistence without explicitly configuring anything. This cuts down on time by allowing one to implement the base data model and database right into objects in the code. The model can be easily updated and changed later down the road, paving the way for excellent, agile development. It definitely takes twice the time to set up something similar in Coldfusion or Java. Coldfusion just doesn’t offer the tools for agile enterprise level development. Java is definitely still a player in the enterprise playground, however it is quite piecemeal and takes a lot more time to configure.
Speaking of the piecemeal quality of Java, C# offers one of the best data query methods I have ever used. LINQ allows one to query data without having to create verbose SQL connection and query strings that are frequently seen in Java. No more verbose craziness!
It’s just this simple:
using(var context = new DataContext())
var people = context.People.Where(x => x.Zip == zip).ToList();
Did I mention C# has lambda expressions as well!? How much better can it get? They just work wonders with LINQ! As a computer scientist, nothing thrills me more than using functional programming side-by-side with object-oriented programming. It is true — ASP.NET drastically reduces the amount of code required to build large applications.
Overall, the transition for me has been extremely smooth and I can definitely say that C# is on the top of my list of favorite programming languages. C# just offers so much for agile web development. I see why Dirigo prefers this technology. An A+ language for an A+ team!
That said, the team here is more than willing to do projects in PHP, CF, Java, Rails, etc. Technology is just a tool that allows us to express, create, enable... We're platform agnostic. Consulting is such a central part of what we do. We take the time to dive into our clients’ needs before recommending a platform. Your business might be best served with a Ruby on Rails application. Your e-commerce site might be perfect for Magento or Demandware. Your small business could be a good fit for WordPress. Or maybe a mobile-first RWD custom ASP.NET site is exactly what your organization needs.
Some development groups are one-trick ponies. We're not! Our team has incredible breath and skill. We call ourselves platform agnostic because we know that there is rarely a single platform that is right for everyone’s needs. We choose technology that makes sense for you, and if it’s not something that we do, then we are happy to recommend someone else who can. We do a ton of .NET and lots of other stuff too. In my first 90 days I had a huge Coldfusion project, an ASP.NET VBScript e-commerce project, and tons of C# stuff. Gerry did some Java. We even saw some Rails, WordPress and Drupal. This Dirigo place is a programming webdev soup.
I'm a happy ASP.NET, Coldfusion, Java developer (pretty comfortable with PHP as well). It feels pretty cool.