Skip to content

MorneVenter/.NET

 
 

Repository files navigation

 Welcome to the .NET Incubator Twitter Follow



What you will be learning?

  • What is .NET?
  • Where can I ask for help?
  • Solving the most common problems found to solve
    • CRUD System
    • Handling Background Jobs
    • Creating an API
      • RESTful - Web API
    • Schedule Background Jobs
      • Hangfire
    • Building a Front-End to consume your API - *your choice
      • MVC
      • HTML & JQuery
      • React (Coming Soon!) or
      • Angular (Coming Soon!)

Resources

Prerequirements

For this Incubator we will be using .NET Core 3.1 - Scan through the basic concepts.

1. The Startup class
2. Dependency injection (services)
3. Middleware
4. Servers
5. Configuration
6. Options
7. Environments (dev, stage, prod)
8. Logging
9. Routing
10. Handle errors
11. Make HTTP requests
12. Static files
  • Principles, Frameworks and Architectures

In this Incubator, we will build a solution based on the Single Responsibility Principle. To help us achieve this we will be making use of the CQRS pattern alongside a Clean Code Architecture. If you have never heard about these terms, don't worry we will be discussing them in detail.

Setup

Pezza Digital Solutions

In this section, we will start building projects to allow Pezza to manage their stock and a front-end website where customers can order their favourite pizza online.

Intro

Restaurant staff should be able to manage the stock through a web application as well as manage their different restaurants. Customers should be able to order a pizza online, this order should be visible to the selected 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:

  • Create a CRUD System in .Net MVC Project to manage stock and restaurants. Allow restaurants to place a request stock from head-office.

  • Expose your Stock Management through an API using .Net Web API that will be used by the front-end application.

  • Allow for customer notifications to be sent out.

  • Create a Customer Facing Website in your choice of Front-End Library.

Phase 1 High Level Design

Learning Outcomes

Phase 1 Getting started

We will be starting off 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. This setup format will be used throughout the incubator.

Overview

Click here to get started

.NET Core - 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 Core - Phase 2

Phase 3 - Handling Data

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

Click here to get started

.NET Core - Phase 3 - Step 2

Phase 4 - 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 Core - Phase 4 - Step 2

Phase 5 - Improving Performance

For improved performance we relaised that certain data doesn't change often and can be cached. We can also add a few small changes to improve performance.

Overview

Increasing Performance

  • Caching
  • Compression

Click here to get started

.NET Core - 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 Core - Phase 6 - Step 3

Phase 7 UI

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

  • Plain HTML
  • AngularJS - Coming Soon
  • ReactJS - Coming Soon

Pezza Admin Back-End

Click here to get started

Phase 8 Coming Soon

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

Phase 9 - Coming soon

We want customers to have the ability to track their orders.

  • SignalR

About

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 72.4%
  • CSS 12.3%
  • HTML 11.7%
  • JavaScript 3.5%
  • TSQL 0.1%