Modern Web Development

Today, “modern web development” means something entirely different than it did three years ago…or five, or ten — hell, even a few months ago. That’s not to say that it is entirely different though either! Things are moving so fast it is becoming harder and harder to keep up. I guess that is great for job security, but that also implies that there will be much more competition as time marches forward. You need to take a moment and ask yourself, “what are you going to do to stay at the front?”.

There are new technologies that get spun up everyday, and an unfathomable amount of work to maintain everything…and I mean that literally! The entire web is a living, breathing net of applications that some software developer (or team of developers) had to write source code for at some point in time. But I digress.

Today, “modern web development” means optimizing your application such that it is capable of being served to mobile (or low bandwidth) devices in a reasonable amount of time. Performance is vital to not only attracting an audience but more importantly keeping it. Modern web development (to me) means single page applications that rely heavily on the client’s ability to render and execute the core application. Frameworks like ASP.NET WebForms are obsolete! If you want performance and high throughput, you need to let go — WebForms are dead. You need to start making your way to the front of the proverbial line, because you’re currently towards the back. Frameworks like ASP.NET Core 1.0, MVC 6 and Angular2 are the future. Technologies such as these are superior in nearly every regard — it has been proven time and time again!

Some might think, “who in their right mind, would want to build applications with JavaScript?” or “the less JavaScript code we have to write and maintain the better!”. I for one used to think these very thoughts. JavaScript has matured into the most widely accepted and most heavily used programming languages in the world! In addition to that, Microsoft’s introduction of TypeScript has made JavaScript more familiar to .NET developers like myself (C# is my favorite programming language).

TypeScript lets you write JavaScript the way you really want to. TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.

In all honesty writing JavaScript has never been easier. Yes, there are more frameworks and options out there than you can shake a stick at — but you get to follow a programming paradigm that makes sense.

Pre-processing, minification and bundling — oh my! These core concepts have come a long way over the last few years as well. Again, based on the premise that the client might not have the bandwidth to download [insert a ridiculous number] of megabytes of your JavaScript and CSS files. With modern web tooling, you are seeing some major trends.

  • JavaScript is being written with tools that transpile your intended source code into native JavaScript
  • CSS is being written with LESS or Sass and ultimately getting transpiled into native CSS
  • HTML is usually written with either server-side or client-side templating tools, like Angular2 components or MVC 6 views

There is obviously still a place for writing raw .js, .css and .html files but it has become far less excepted. With the this movement in web development, server-side code has gone on a diet — this is a win in my opinion.

And while the notion of compression isn’t one that is new, it is still something that I think of when I think “modern web development”. Not just static file compression either, but dynamic file compression — besides most web applications nowadays are no longer just static HTML pages. I still find it interesting that the web was initially thought to simply be a host for sharing static documents, look at how far that vision has expanded today!

Modern web development means, Agile teams working together to improve people’s lives. I’ve read seemingly countless articles about how there is a place for both Waterfall and Agile development methodologies, I’m still not sold on that at all. I believe that Agile is the only way — it can be too easily argued that Agile makes the most sense. Who can argue that transparency, inspection and adaptation doesn’t make sense? Supposedly it is difficult to manage large scale projects, so Agility focus groups formed SAFe and LeSS.

” I believe that SAFe is dangerous and LeSS is more!

In my opinion Agility shouldn’t be confined to the likes of a “framework” or “rigid set of rules”, but rather an understanding that there needs to be frequent and meaningful communication.

There is so much more to modern web development though. Immediately the thought of decision making enters my mind. Not every decision is easy, in fact there are often challenging choices that we’re faced with everyday. Architectural choices, like which front-end framework is best suited for quick development but still fosters maintainability. Or, which flavor of web hosting is preferred Node.js, IIS w/ .NET, etc.? Choices surrounding what technologies have the best support for tooling and longevity – just because something is bleeding-edge doesn’t mean it can or will withstand the test of time. Decisions concerning DevOps, Testing, and Development…the point being that there are lots of things to consider.

As long as you’re mindful, respectful and follow some sort of known and agreed upon methodology that best suits the needs of the team such that it allows for software development that produces stack holder desired results…you’re all good — right?

I cannot be the only one that has an opinion — please be sure to share yours!

Advertisements

2 thoughts on “Modern Web Development

  1. I came across this awesome post while searching, somewhat helpless, the world of ASP Core and the vast open-source. I, too, was a rigid .Net Software Developer who lived in the confines of WinForms, ASP.Net, and WPF. I realized a staggering amount of shortcomings in my “method” (used broadly) of development that were labeled as my shortcomings. New kids with just MVC and javascript were able to outmaneuver, outsmart and essentially outclass me regardless of my 10+years of experience. I’m currently employed in a huge organization and had a start from a rather little lower level then my heart desires. However, I’m struggling to grasp the power of your favorite post tags: ANGULAR2, ASP.NET CORE 1.0, CSS, HTML, JAVASCRIPT, MVC 6, TYPESCRIPT.

    Seems they hold the key to everything. From a SmartWatch to a 200″ touch-or-walk-screen full of dashboards. Can you point out some good books? I’m not buying any since the ASP.Net Core is continuously updating. But now I need help and recommendations. I have already done two rather small project with just ASP.NET CORE 1.0, CSS, HTML, JAVASCRIPT, MVC 6 and I DON’T want to get comfortable.

    Awesome post, this one and then this: http://bit.ly/Angular2-SPA-ASP-NET-Core-1-0-MVC-6-Web-API-2-TypeScript-1-7-5

    Like

    1. Hi Hassan,

      I hope all is well, and it is certainly encouraging to hear such kind words — for that I thank you. You asked if there are any books that I would suggest, and the short answer is “yes” but none of the books I’d suggest are directly relevant to technology.

      “The Pragmatic Programmer” has always been one of my favorites.

      The longer answer is “no” but allow me to elaborate on that. With technology, anytime that “the known” is put to print, it’s nearly obsolete by the time its first print is sold, point being since technology moves so fast it’s better (I believe) to find living documents. Documents that follow the progression of the technology they’re documenting. How many times have you read something specific about a technology only to find out that it has since changed? For me this happens all the time. I currently spend a lot of my time following the open source community and the source code itself in github.com. To me, seeing the changes help apply a sense of context.

      Here are some of the web resources I frequent in my daily development with Anuglar2, ASP.NET Core 1.0, MVC 6 and TypeScript.

      http://docs.asp.net/en/latest/conceptual-overview/aspnet.html
      https://angular.io/docs/ts/latest/
      http://www.typescriptlang.org/Handbook

      I hope this is helpful, take care.

      Like

Comments are closed.