Get up to speed fast on the techniques behind successful enterprise application development, QA testing and software delivery from leading practitioners.
6 career ideas for software QA professionals
How to overcome common objections to automated security testing
How APM tools can help predict and prepare for traffic spikes
Large-scale agile frameworks compared: SAFe vs DAD
5 secrets to managing technical teams
Front-end software development frameworks focus on web apps, but that’s no longer the world we live in. Five years ago, you could get by with just web apps, but in the current digital-first world, you need to develop software for all types of devices.
You can effectively bring front-end tools to mobile, desktop, and IoT apps. But you’ll also need a back-end framework designed to help you develop microservices and APIs.
The role of a back-end framework is to allow you to complete server-driven actions to successfully. This can include, but is not limited to, connecting to databases and providing business logic. As with front-end frameworks, standard development languages—such as PHP, C#, and Java—now have widely supported frameworks.
And as with front-end frameworks, the goal of a back-end framework is to accelerate the time needed to build an application. Here’s what you need to know about five popular back-end development frameworks.
If you are just starting out, I strongly recommend beginning with Node.js. It is incredibly lightweight and fast, allows for a massive (but predictable) concurrency, and boasts a vast ecosystem of libraries.
Speed is a compelling reason to pick Node over your other options. It is slightly faster than PHP or Ruby, and more than twice as fast as Java.
Node is also more efficient, particularly in terms of processor power. A high-end virtual private server can achieve high performance only when it’s using a few things. It’s much harder to achieve the same efficiency when running a server that’s pulling in lots of database connections or massive IO calls.
Another compelling reason to use Node is its user-friendly features. Building a web app with Node requires virtually no management of database connections or other complex processes, so managing a long list of build tasks becomes much more comfortable.
This setup can, however, create load on the provider you’re using (though for a smaller site, or one that isn’t using Amazon’s cloud, this won’t be an issue). But this is still a great feature, particularly for small startups or sites that don’t need a lot of flexibility.
Plus, you can use the same Node module across many other platforms, including Node.js for mobile devices, Java for Macs, and Python for Linux.
Node doesn’t have a package manager, but it does have a command-line interface that lets you manage packages by downloading them directly from the Node Package Manager (npm) or by fetching them through the npm registry.
This is a highly flexible feature that can be used for any third-party package you need—even libraries or other Node modules. This also allows you to deploy to multiple platforms in a Docker container.
Want to run your Node project on Android? You can just use:
npm install jasmine -g android
Want to run your Node project on Red Hat? You can install it like so:
$ docker run -d -p 5500:5500 jasmine/jasmine $ node mine.js -m android
Of course, you can still use the npm registry if you prefer. But the above examples are more comprehensive ways to manage packages.
With Node, you can build an extensive list of apps. The rich library of plugins offers an almost unlimited number of solutions, from complex web apps to focused mobile apps. Node.js is very much the first tool in my developer toolbox.
The good thing about Django is that you can use the same front-end framework to also build a back end. Django gives you a lot of power with its underlying Django ORM (Object-Relational Mapping) tool, and gives you tools for building your own back end.
Django’s QuerySet class lets you create your own back end using SQL (sometimes SQLite), but you can also do so asynchronously, writing a database query for a chunk of Python code and then executing it later. The latter approach allows you to leverage the database (even when the back end runs within Django) to generate SQL for all of your application’s back ends and then execute that SQL in the runtime. That’s the back-end-as-a-service approach.
Testing your back-end code is not a big problem. Django can import any application’s database schema as-is into your project, as well as output any query that you want. A developer doesn’t need to know anything about that schema to write tests for Django code. Support files are provided to set up the necessary application-specific instance of your database schema to run SQL statements.
You can often quickly deploy your application to a virtual machine with its own database; virtual machines are for software testing purposes only. Using a database with a test or debug logging level allows you to write a report from one code domain into another so that your application can tell you about some system-specific behavior.
As the Django website will tell you, it is the framework for perfectionists with a deadline. That said, the audience does slant heavily toward Python developers. If Python is not your language, then Django is not the tool for you.
Developers may choose to build with Node.js or with Node.js plus some other runtime such as Express.js. In this example, the Express.js server application will run on a Node.js server.
At this point, Node is a server runtime that you install to serve your code and assets. You can also use a container such as Docker to host the Node server.
So, when do you use Express in your web application? The best use of Express is in a Node web server. Here are a few Node applications that you could easily create using Express:
Express.js is a full-featured, high-performance, full-stack web framework. You also can use Express.js to build high-quality front-end applications. It offers much more than a similar structure (such as Angular) and client-side frameworks (such as Angular 2).
Express is designed as a tool for building web applications. My teams have found it useful for building APIs, microservices, and modules, as well as the main frameworks needed for apps.
What Spring.js does so well is plugging new technology into your existing application. By doing this, Spring can help you extend the app in a simple and maintainable way.
This feature can be as simple as injecting object instances and extending methods in your classes. This is useful because, with good architecture, those object instances or processes are merely objects representing the state of your application. By creating a Spring example application that can live in a sandbox, you can then quickly plug in classes representing user authentication, user interface, and other business logic to that application.
In many ways, Spring.js is the tool with the smallest developer community on this list. I have included it here because the tool is great for spinning up proofs of concept (POCs) and for experimentation.
.NET Core is a cross-platform version of the .NET framework for building apps that run on Linux, macOS, and Windows. .NET Core delivers a runtime lightweight, single-page application framework and a platform for hosting side-by-side applications.
One common question is whether to use .NET Core or ASP.NET Core. ASP.NET Core runs on servers for web applications and APIs, whereas .NET Core is a framework that can run locally on your device.
And the answer is that you could choose both, for the following use cases:
APIs and web apps running on Azure Cloud work well when built with .NET Core.
Frameworks for front-end and back-end development are just two of the three pieces needed for new development teams. The third component is what I call accelerators. An accelerator is anything that can increase the efficiency of your delivery team. Here are my top five:
The demands on development teams go beyond the web. You must be able to effectively deliver software that can scale across all of your customers’ platforms. The one-two-three punch of front end, back end, and accelerators will give you the edge you need.
Note: Each of the frameworks mentioned is popular because it has been tested on sites and web apps used by hundreds of millions of users. For instance, Node.js is used to run sites such as Netflix, The Wall Street Journal, and LinkedIn.
Take a deep dive into the state of quality with TechBeacon’s Guide. Plus: Download the free World Quality Report 2021-22.
Put performance engineering into practice with these top 10 performance engineering techniques that work.
Find to tools you need with TechBeacon’s Buyer’s Guide for Selecting Software Test Automation Tools.
Discover best practices for reducing software defects with TechBeacon’s Guide.
Get the best of TechBeacon, from App Dev & Testing to Security, delivered weekly.
Brought to you by
I’d like to receive emails from TechBeacon and Micro Focus to stay up-to-date on products, services, education, research, news, events, and promotions.
Check your email for the latest from TechBeacon.