KCDC Precompiler

Last fall I attended Iowa Code Camp.  I took lots of notes but those notes were on paper and I never transferred them to a medium I could access at work.  Knowing how much I wished I had access to my notes while at work I decided that I’m going to transfer my notes from KCDC 2014 to a series of blog posts… this way I can look back at them later and do more research.

Today’s session was a “precompiler” session — an all-day training session before the conference starts in earnest — at KCDC 2014. The nominal topic was “building powerful web apps with ASPNET MVC, Bootstrap, Angular, and more” and in my estimation, “and more” was an understatement.  I was expecting this to be mainly an Angular presentation, which is why my team lead and I elected to attend this session.  To my delight, much more than just angular was covered.  I am not sure if my team lead thought this was a value add but she seemed to like the content.

  • Service bus architecture: powerful and under-utilized (azure, nservice bus, rabbitmq)
  • Speaker is a BIG believer in nosql, especially MongoDB
  • Check out www.mongolab.com for hosted mongodb
  • Speaker is a big believer in cloud based services (like Harvest for time entry)
  • Prediction: “You won’t be working with DBAs in the future.”
  • MongoVUE — sort of like SSMS for MongoDB
  • Use NuGet to pull the official mongodb driver into your .NET application
  • Don’t check in your NuGet packages to source control: grab them via nuget and compile
  • MongoDB: speed of read/write trumps increased storage space requirements
  • [BsonID(IDGenerator = typeof(CombGuidGenerator))]  attribute for specifying a BSON guid on a field in code
  • There are tons of ID generators for Mongo — check out mongo docs for more info
  • Site to love: FakeNameGenerator
  • mms.mongodb.com — monitoring dashboard for mongodb, “better than perfmon”
  • “Eventually Consistent” was a common theme for today
  • Visual Studio Online: Pro license is apparently $22/month (where is this link?)
  • Azure Console Host for long-running processes
  • Raygun.io: exception error tracking; Balsamiq UI mocking
  • CC payments: Stripe and Braintree
  • SERVICE BUS, SERVICE BUS, SERVICE BUS!!!
  • Azure architecture: worker role “back end” servers and web front-end servers. Do AS LITTLE AS POSSIBLE on the web servers; make the worker role servers do as much as possible, with a service bus between them.
  • MVC ActionResult: use “return Json(object);” to make a JSON api w/o WebAPI
  • Dev/Prod routing: Prod: cname.example.com/{url}  Dev: localhost:{port}/cname/{url} — switching between the two is a matter of routing specs (possibly web.config transforms also?)
  • [JsonException] — return that on an error… I didn’t take good notes on this point
  • Autofac: DI container of choice for MVC since it has handy hooks esp for MVC
  • Check the wiki on/via github for more Autofac info
  • Angular is about DIRECTIVES!
  • iirc: jsarray.splice(index,1) will remove the index element from an array in JS
  • (Lunch happened here)
  • ng-cloak — seems hackish but it works… play with it
  • Batarang: AngularJS plugin for Chrome Dev tools
  • JS testing: Jasmine & Chutzpah — know it, learn it, love it
  • JS promises — seriously: learn this! (NG uses $q library for this iirc)
  • ng-promises: .success({}).error({}).finally({ /* bIsLoading = false; */});
  • Json.net — read about it here, get it via NuGet
  • Security for MVC API: use Forms Auth or OAuth (eg: twitter, FB)
  • Morris Charts are awesome — use them (better: wrap as directives)
  • ng-grid — one of many great 3rd party controls for Angular
  • Angular Bootstrap: angular wrapper for twitter’s gift to non-designers
  • NG-google-maps FTW!
  • Themes: TheMeForest.com, Template Monster, etc — GIYF
  • Browserstack: test it or regret it.
  • Plunkr: looks like jsfiddle to me… am I missing something?
  • Noty and Toastr — great notification plugins (unless you want to roll your own)
  • Service Bus: it’s a queue (a sort of database in a sense)
  • “Windows Azure Service Bus” << get it using NuGet
  • SignalR: seriously cool… and get it via NuGet

These are my notes — I’ll be posting tomorrow and Saturday’s notes next week, most likely.