entelect-incubator / .NET

​​The .NET incubator is to give you a brief introduction into .NET.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

 Welcome to the .NET Incubator CodeQL Twitter Follow



What you will be learning?

  • What is it?
  • Why should I learn about it?
  • Official documentation
  • Prerequirements?
  • Building the Pezza Digital Solutions
    • CRUD System
    • Handling Background Jobs
    • Creating an API
      • RESTful - Web API
    • Schedule Background Jobs
      • Hangfire
    • Building a Front-End to consume your API
      • MVC
  • Security
  • Microservices
  • Recommended libraries

What is it?

.NET is a powerful, versatile developer platform that enables the creation of a wide range of applications. It is a free, cross-platform, open-source framework that can be used to build web, mobile, desktop, gaming, and IoT applications. One of the best ways to get started with .NET is through the .NET Incubator, which is designed to provide hands-on experience and real-world application development skills to aspiring developers. This training course covers the essential concepts of .NET programming, including C# language syntax, debugging techniques, and the use of .NET Core libraries. With the .NET Incubator training course, you can become proficient in creating high-quality, scalable applications using the .NET platform.

Why should I learn about it?

Cross-platform support

.NET is a cross-platform framework, which means that developers can build applications for Windows, Linux, and macOS using the same codebase. This allows developers to target a wider range of platforms and reach a larger audience with their applications.

Large community and ecosystem

.NET has a large and active community of developers, which means that there are plenty of resources, tools, and libraries available for developers to use. This also means that developers can get help and support from the community when they run into problems or have questions.

Performance and scalability

.NET is designed to be fast and efficient, which makes it ideal for building high-performance applications. It also provides scalability features such as load balancing, which can help applications handle large amounts of traffic.

Easy to learn and use

.NET is a relatively easy framework to learn and use, especially for developers who are already familiar with object-oriented programming languages such as Java or C++. The syntax is straightforward, and there are plenty of tutorials and resources available to help developers get started.

Versatility

.NET can be used to build a wide range of applications, including web applications, desktop applications, mobile applications, games, and IoT applications. This makes it a versatile framework that can be used for almost any type of project.

Overall, developers love .NET because it is a powerful, flexible, and easy-to-use framework that allows them to build high-quality applications for a wide range of platforms and use cases.

Official documentation

Links to the official documentation:

  • Fundamentals overview
  • Learn C#
  • .NET documentation - Learn to use .NET to create applications on any platform using C#, F#, and Visual Basic. Browse API reference, sample code, tutorials, and more..
  • Microsoft learn for .NET - Learn how to build apps across multiple platforms with programming languages like C#, F#, and Visual Basic. Supported on Windows, Linux, and macOS, get started developing your next project with .NET today.
  • .NET foundation - The .NET Foundation is an independent, non-profit organization established to support an innovative, commercially friendly, open-source ecosystem around the .NET platform.
  • .NET Youtube

Prerequirements?

Pezza Digital Solutions

In this section, we will start building projects to allow Pezza to manage their pizzas and allow customers to order their favourite pizza online.

Intro

Restaurant staff should be able to manage their different pizzas through a web application. Customers should be able to order a pizza online, this order should be visible to their restaurant. The customer should also be notified that their pizza is on its way. We will start solving these business requirements by doing the following:

  • Expose your Pizza Management through an API using .NET Web API that will be consumed by the front-end application. It will consist of a customer and a pizza entity.
  • Create a simple ordering system in .NET MVC to allow customers to order pizzas.
  • Allow for customer notifications to be sent out via email.
flowchart TD;
    A[Customer] -->|Order Pizza| B(Pezza Website - Web + Admin);
    B --> C[Pezza Web API];
    C -->|Email Notification| D[Notification Console];
    C -->|DB| E[Pezza DB - SQL];

Learning Outcomes

Phase 1 - Getting started

We will be starting with how to make a basic project and refactoring it into a solution following the single responsibility principle and how to set up a basic clean code architecture / layered architecture. This setup format will be used throughout the incubator.

Overview

Click here to get started

.NET - Phase 1

Phase 2 - Scaffolding

We will be extending the foundation from Phase 1 to all Entities CRUD operations, we will also be moving to use CQRS Pattern and Mediatr NuGet Package.

Overview

Click here to get started

.NET - Phase 2

Phase 3 - Data Validation and Data Pagination

Now that we have deployed phase 2, we can make a few enhancements. Also, it will be easier for the customer and admin to search and filter through the data, so we will add that in as well.

Overview

Improve how data is displayed and validated

  • Fluent Validation
  • Filtering
  • Searching
  • Pagination
  • Entity Framework Core
    • Migrations
    • Change Tracker API
    • Lazy Loading, Eager Loading, Explicit Loading
    • TPH, TPC, TPT

Click here to get started

.NET - Phase 3 - Step 2

Phase 4 - Coding Standards and Error Handling

When we work as part of a team, we usually need to adhere to coding standards. Let's have a look at how we can enforce some of the most basic standards and adding error handling.

Overview

Click here to get started

.NET - Phase 4 - Step 2

Phase 5 - Performance Improvement

To improve performance we introduce caching and compression. Caching is useful in scenarios where we retrieve data that does not change very often. Response compression usually increases the responsiveness of an app in cases where the client supports it. Overview

Increasing Performance

  • Caching
  • Compression

Click here to get started

.NET - Phase 5 - Step 2

Phase 6 - Events

We would like to notify the customer as soon as his order has been completed and ready for collection.

Increasing Performance

  • Domain Events
  • Simple Email Notification
  • Schedule Background Jobs
    • Hangfire

Click here to get started

.NET - Phase 6 - Step 3

Phase 7 - Microservices

An API client is a set of tools and protocols that operate from an application on a computer. They help you to bypass some operations when developing a web application rather than reinventing the wheel every time. Using a client API is a great way to speed up the development process.

  • Intro
  • API Client

Phase 8 - User Interface

Overview

We will be building a basic Pizza website for Customers and a basic Admin Back-End. To help us do this we will use the Pezza Branding Guide & Design System.

Documentation

Pezza Website

Pezza Admin Back-End

Click here to get started

Phase 9 - Security

Now that we have increased the performance lets and an increase of customers we need to secure our website.

Overview

Add Security

  • API Oauth / JWT Token
  • MVC Antiforgy Tokens

Click here to get started

.NET - Phase 8 - Step 2

Phase 10 - Recommended libraries

  • Nuget libraries

About

​​The .NET incubator is to give you a brief introduction into .NET.


Languages

Language:C# 66.6%Language:HTML 17.9%Language:CSS 13.6%Language:JavaScript 1.7%Language:Dockerfile 0.1%Language:Smalltalk 0.0%