Lecture Web Development Framework What is a web framework A web framework is a software platform for developing web applications and websites. Web application frameworks offers: a wide range of pre-written components code snippets whole application templates It can be used for: development of web services web APIs (Application Programming Interface) other web resources Why frameworks are necessary? • More Visitors: They can attract more people to your website or app. • Faster and Easier: They speed up the building and upkeep of your site or app. • Rules and Order: They provide guidelines for how to write code so it's organized and easy to understand. • Fewer Mistakes: They help avoid errors and problems that can happen during the building process. • Focus on the Important Stuff: You can concentrate on making your app great, while the framework handles the behind-the-scenes stuff efficiently. Types of development frameworks • There are generally two types of development frameworks – client side and server side frameworks. Front-end Frameworks Back-end Frameworks The frontend is the part of the website visible to the users. Backend refers to the background functioning of the sites. Also known as client-side frameworks Also known as Server side frameworks Involves UI-UX designing, SEO optimization, performance and scalability enhancing, creating reusable templates Involves database management, security, URL routing, designing site architecture, the server handling Frontend Languages – HTML, CSS, JavaScript, JQuery Backend Languages – Python, JavaScript, PHP, Ruby, .NET Frontend Frameworks- React, Vue, BootStrap, Ember, Angular Backend frameworks- Django, Ruby On Rails, Express, Spring, ASP.NET Core Front end frameworks provide pre-written code snippets, reusable templates, integrable elements and manage user interaction Database manipulation, user authorization, privacy encryptions, reusable components are some benefits of using backend frameworks Classification of Framework Architectures • The architecture decides how the various layers will interact with each other. • It is important to use a well-understood architecture as it largely defines how your application functions. Model View Controller: Many frameworks for web apps work on Model View Controller (MVC) models. To split data models with business standards from the UI, MVC architecture is preferred. It is a good practice as it usually fosters code reuse, modularized code, and permits various interfaces. Model-View-ViewModel (MVVM) Frameworks, such as KnockoutJS and VueJS use the Model-ViewViewModel or the Model-View-Binder architecture model. In this architecture, the view layer acts as a controller and converts the data objects from the Model layer into manageable components. Since the View layer handles all the user requests directly, the data binding is much more straightforward. Push-based vs Pull-based Generally, MVC frameworks observe a push-based architecture, also known as ‘action-based.’ They adopt actions that do the necessary processing and then accordingly ‘push’ the data to a view layer to furnish the outcome. Some examples of frameworks are Spring MVC, Ruby on Rails, Sails.js, Django, and CodeIgniter. When it comes to ‘pull-based,’ also termed as ‘component-based.’ This is a kind of framework that starts with the view layer, which in turn can ‘pull’ outcomes from diverse controllers as required. Some examples of pull-based architectures are JBoss, Tapestry, Lift, Wicket, Micro, and JavaServer Faces. List of popular web development frameworks Best Backend: Express Django Ruby and Rails Laravel Spring Best Frontend: Angular React Vue Ember Backbone