Landmine

Description

ASP.NET MVC is a really compelling platform. Microsoft is making a lot of great changes to support modern web development and I wanted to check out how it works.

I had the javascript source for Landmine laying around in a local git repository, I had high hopes of one day making a Ruby on Rails app to host it. I decided to go forward but with ASP.NET MVC instead.

It’s sort of a Minesweeper clone that supports high scores. I have plans to add things like score validation and replays.

Technologies

  • Grunt for building JS source
  • Local bower for managing dependencies between server and my JS source
  • ASP.NET MVC 5
  • Entity Framework 6
  • SASS
  • Knockout.js
  • Typescript for connecting game source code to high scores
  • Hosted on azure websites

Takeaways

Microsoft is making a lot of positive changes. The latest Visual Studio supports a lot of tooling that embraces the open source community and provides excellent improvements in development efficiency.

TypeScript - I tried TypeScript for a section of the app. It works really well within VS: gives you IntelliSense and compile errors. It made working with Knockout a breeze since I tend to forget to access model properties through the method syntax. It doesn’t make much sense to use TS outside of VisualStudio though: its most compelling use-case is the in-editor IntelliSense: a feature that I have not been able to reproduce with open source tooling on the Mac

Visual Studio - VS 2013 tooling is top-notch. At work I use mostly VIM, and while I love the key bindings, it’s really nice to work in an environment that supports refactoring, IntelliSense, and built in version control. I had to figure out how to do SASS within VS, but that likewise turned out to be a great feature.

Azure - Once you get a handle on give up trying to understand the absurdly complicated pricing model, Windows Azure is a fantastic platform. Spinning up a site is just a git push away and you can use the built in management portal to completely configure the app.

ASP.NET MVC - I really like ASP.NET MVC. It borrows many of the best ideas of Ruby on Rails and applies the static type-safety and speed of C#. Razor syntax is a great way to do views, and integration with EntityFramework is awesome. VS’s ability to scaffold out sample pages is a great way to get up to speed quickly. This framework is going to go far.