The Plan

Alright, so here’s the idea. I’m just going to lay down some points which I think will make for a good range of topics. Including topics already covered very well, and some topics not so well – or at all. The topics will sometimes be generally applicable to any project, and some will come specifically from the project I have been working on in my “spare” time. A shopping cart and CMS. Think squarespace, or shopify… just, really early days.

Remember that the technology stack is thus:

  • Client-side: AngularJS, HTML5, SCSS
  • Server-side: ASP.NET MVC with Web API written in C#
  • Database: MongoLab

Topics:

  • Organisation your AngularJS application
  • Choosing a persistence layer (MongoDb/MongoLab)
  • Creating and using a RESTful API (server & client)
  • Installing and using AngularJS snippets for Visual Studio
  • Keeping things DRY with AngularJS
    • Services
    • Directives
    • Filters
  • Maintaining state in an SPA
  • Routing in AngularJS and some performance considerations
  • Authentication and authorization in an SPA
  • Workflow for adding new features
  • Workflow for refactoring AngularJS
  • Form validation in AngularJS
  • Integrating Google Analytics in AngularJS
  • SEO for AngularJS SPA’s
  • Internationalisation (i18n) and Localisation (l10n) in AngularJS
  • Pagination on server and client
  • Using HTML5 Geolocation and promises ($q)
  • Developing e-commerce features
    • data entry forms
    • shopping cart
    • product pricing
    • magic retail numbers
    • credit card payment with eWAY’s Rapid 3.0 RESTful API
  • User experience (UX)
    • Providing tactile feedback
    • Gaining trust
    • Encouraging repeat customers
  • Unit Testing JavaScript with Chutzpah
  • End-to-end (e2e) testing AngularJS with Chutzpah or FluentAutomation
  • C# Unit Testing with Shouldly and Moq
  • Optimisation with ASP.NET Bundling
  • Image resizing with a HTTP handler
  • Using SCSS
  • Data migrations with MongoDb
  • Setting up dependency injection in ASP.NET MVC using Ninject
  • Tightening up security in ASP.NET
  • Using Visual Studio with GitHub

I would like to cover these topics, not necessarily in that order. But if anyone is interested in specific topics mentioned above, or you have ideas for topics you would like me to cover, just hit me up on Twitter @tyson_net_au or email me [at] tyson.net.au or leave a comment.

Homage to the AngularJS community

I’m planning on writing a series of posts describing my experiences writing a non-trivial web application written in AngularJS and ASP.NET MVC (C#, Web API).

But before I start writing about my experiences, I want to pay homage to others that I have learned from. First respects should be paid to MiskoIgor, Vojta (and the rest) for producing the phenomenal framework that is AngularJS.

There is an incredible community growing around AngularJS that gives you a real sense that there are aspects of the framework that have solved the right problems in new and innovative ways (I’m looking at you, directives). Here are some of the people who are providing the rest of the community a real leg up when it comes to understanding some of the more difficult concepts or development processes.

Here are some community resources I frequent when I’ve needed ready made components to help speed up development:

To close off, you can’t go past the AngularJS YouTube channel. There’s a lot of value listening to Misko, Igor, Vojta and Brad talk about The Angular Way and the objectives and design decisions of the framework overall (declarative programming model via directives; testability and maintainability via DI). Just be prepared to spend a few hours in your seat. But you should be used to that. You’re a programmer.