It’s interesting to think about my 12 years of software development experience. I’ve been wanting to write about my last 10 as a professional developer, but haven’t completed that yet as there is a lot to think about. I spent a few years in college doing PHP and then it’s been mostly .Net since I got my first job.
I read If I built a car with my kids and thought it’d be fun to do with web applications historically. Web tech has innovated rapidly and I learned and used a lot of different ones through the year.
Some of these years aren’t exact, it’s hard to remember back that far :-).
WebForms was the dominate technology from Asp.Net. We built a lot of apps with WebForms, handwritten ADO.Net and stored procedures with Microsoft SQL Server.
The UpdatePanel came out and we over-used that. We didn’t understand how it worked well enough and wrapped some forms in an update panel. It was slick, but not optimal.
Somewhere in the middle, one of our team wrote “CodeGen” templates using CodeSmith to generate the CRUD code and standard procs based on the database tables. This saved us a ton of time.
MVC came out and we were leary for awhile, but started certification studying and it slowly (after a few versions came out) became the preferred way of building our apps. MVC history
Entity Framework and LINQ with Asp.Net 3.5+. As EF improved over the years this became and continues to be my go-to ORM. We rarely hand-write TSQL for CRUD (except for more complex scenarios).
jQuery, I’m not sure when jQuery was first packaged into the File > New Project of Visual Studio, but that was the event that got us using jQuery and the plugins more and more.
Silverlight was the new hot thing. I was able to do a few UIs with it and enjoyed learning about XAML, MVVM and binding. It was very cool to do something interactive with C# in the web browser and the MVVM pattern was an eye opener for me.
ODATA (getting the data out of MS SQL Server) was another new technology that I got to pair with the Silverlight application.
HTML5 became more and more feasible as the browsers implemented more and IE6 started to go away. IE8+ made big strides, but we could use polyfills and Modernizr Responsive Web Design became the buzz word and mobile usage was growing. Twitter Bootstrap was created to help with Responsive Web Design and make sites look nice with less effort.
MVVM lives (and Silverlight) but now in the browser! KnockoutJs introduced data binding and more decoupling from the HTML. This was a big change from the id driven jQuery development in that path (I gave a talk about this and have several posts).
SignalR made it easy to do real-time server push of data with fallbacks when a WebSocket isn’t available. I was able to work on an IOT type site where we had Knockout bound gauges from SignalR pushed data.
KnockoutJs continues, RequireJs for Async Module Definition (AMD) helped as Knockout ViewModels and files got smaller and more of them, LESS or other pre-css processors to enable variables and other coming CSS features.
Selenium to automate the UI and reduce the amount of manual tests required.
DevOps had been around awhile, but I started learning more about it and getting more exposure to the tools and ideas.
I had interest in AngularJS, but didn’t have opportunity to really use it. The Angular 2 release and clients having Angular work to do made this the framework to learn for our company.
Personally, I was following and excited for Aurelia. I think this is a great framework that is easy to put to use. I enjoy the convention over all the configuration that Angular has. Even though the usage isn’t as big as Angular or React, it has a decent following.
The team I was on started to move from our MVC rendered pages with KnockoutJs, RequireJs, etc to Durandal to help us get to a SPA (Single Page App). It was interesting to have it both ways for awhile during the transition.
ReactJs was newer and something I wanted to learn, but haven’t had the chance beyond some videos and a conference talk.
I’m a Git convert!
If I were to build a web application and I could choose any technologies I wanted to, this is what I would go with. I have not used all of these, but hope I get a chance this year (it’s already June!).
Angular is something else I wouldn’t mind using, but I would choose Aurelia (for it’s convention approach) if it didn’t cause an issue for the team.
Atomic Design (“we’re designing systems of components”), is something I want to incorporate more into projects. I like the idea of composing from the components (atoms > molecules > organisms > templates > pages). This fits really well with the web components and SOLID programming principles.
I’m comfortable with JasmineJs, but I’d like to try out Jest.
Vue is the new popular framework out there and seems like worth some time.
Did you have similar experiences?
What’s your current ideal Web Application development platform?