What Framework Does SPI Use For Software Development and Why?
What is a Software Framework?
A software application is essentially a program built to enforce some particular bit of business logic. To enforce that logic, the application provides an interface to the user, or User Interface (“UI”), and accepts their instructions through the UI.
A software framework simply provides an organization with a standard way to build and deploy any given software application. Developers can build their application without also having to organize the components and how they interact. In the early days of software programming, software applications were typically one big, complex monolith of code with the business logic and UI intertwined.
By the late 1970’s, the basic architecture of software evolved from 1 to 2 levels. The goal was to separate-out application business logic and the user interface. At this time, to help achieve this goal, the first software frameworks provided a common structure for a group of programmers working on a particular application.
By the mid-1980’s, with the development of the graphical user interface (GUI) and relational databases, the basic architecture of software evolved again from 2 to 3 levels - Model, View and Controller (MVC) defined as:
Model: The model retrieves data from a database, packages that data into objects that can be understood by the other components, and delivers those objects to the controller. The model incorporates the business logic needed for the intended application. The model will store, process and deliver to the controller and eventually the end user..
Controller: The controller takes requests from the user via the GUI and calls the model, which retrieves and processes the data before returning it to the controller. The controller will display those results to the user using an appropriate view.
View: The view is where the data provided by the model is presented to the user. The view filters and arranges the data supplied by the model. Different views can present the same data in different ways. For example, different views can be displayed on a mobile device vs. a desktop browser.
There are 2 main advantages of using the MVC design methodology: Simultaneous Development and Code Reuse.
Simultaneous Development: Because the components of the application are separate, developers are able to work on components at the same time without blocking or impacting each other. For example, one developer can be programming the model while another programmer is programming a view.
Code Reuse: Because the components of an MVC-designed application are independent, developers can easily and quickly reuse components in other areas of the application. A view used in one part of the application can easily be reused in a different part because the view simply handles how the data is displayed.
Since the development of the first framework, there have been a large number of frameworks created for developing web applications. In fact, new frameworks come out every few months or so. Most new frameworks are developed by enthusiasts or hobbyists who create a new framework to overcome what they perceive as a shortcoming of a previous one.
When choosing a software framework, it is vitally important to consider a number of factors:
Was the framework developed by an established company?
Does the framework have a stable history?
Is the framework proven in the real world?
Is there good commercial support?
Is there an active, lively user community?
Why does SPI Software use the Angular Framework?
The Angular Framework is different than most other frameworks because it is developed, used and maintained by Google. Since its release around December, 2012 Angular has proven record of providing solid and stable real world applications. Applications like Google’s Gmail that require scalability and speed are built using an Angular framework.
Another great feature of Angular is the use of something called “pipes”. Pipes are filters that are used to transform data before it is displayed in the GUI. Angular has several pipes/filters that are included as a part of their framework. These Angular pipes can format numbers into various currencies, format dates, or display data in different languages. SPI Software uses Angular pipes to make our application multinational. With Angular pipes, SPI can adjust the format of languages, dates, time and currency to fit the user’s locale.
Conclusion: SPI’s decision to include the Angular Framework as one of the tools for our software development is based on the following reasons:
The framework is created and maintained by Google that will provide long-term stability
Angular has become a favorite framework for a rapidly growing community of developers.
Angular is based on the MVC concept of developing web applications.
The framework includes filters, or pipes, that are designed to facilitate development for multinational implementations.
The modular design concepts in Angular create a logical coding environment that greatly increases the speed and accuracy of the development and implementation of our vacation ownership industry application.
Dependency Injection: https://angular.io/guide/dependency-injection