1) Identity Server 4 and SSO (edit)
IdentityServer/IdentityServer4: OpenID Connect and OAuth 2.0 Framework for ASP.NET Core (github.com)
Identityserver4 - OpenID Connect and OAuth 2.0 Framework for ASP.NET Core
1.1) Skoruba.IdentityServer4.Admin
The administration for the IdentityServer4 and Asp.Net Core Identity
- Skoruba.IdentityServer4.Admin
- Skoruba.IdentityServer4.STS.Identity
Database:
- SqlServer
- MySql
- PostgreSQL
Technical Stack:
- ASP.NET Core
- IdentityServer4.EntityFramework
- ASP.NET Core Identity
- XUnit
- Fluent Assertions
- Bogus
- AutoMapper
- Serilog
1.2) ASP.NET Core 3.1 Open Source SSO. Built within IdentityServer4
ASP.NET Core 3.1 Open Source SSO. Built within IdentityServer4
https://github.com/brunohbrito/JPProject.IdentityServer4.SSO
This is the full version of JP Project. It provide SSO and an Api where it's possible to manage both IdentityServer4 and ASP.NET Core Identity.
The main goal of JP Project is to be a Management Ecosystem for IdentityServer4 and ASP.NET Identity. Helping Startup's and companies to Speed Up Microservices Environment. Providing tools for an OAuth 2.0 Server and User Management. It's highly modular and easy to change for .NET teams.
Built with IdentityServer4. An OpenID Connect and OAuth 2.0 framework for ASP.NET Core.
SSO Features:
- Single Sign On
- Register users
- Recover password flow
- MFA
- Federation Gateway (Login by Google, Facebook.. etc)
- Argon2 password hashing
- CSP Headers
- Event monitoring (For compliance scenarios)
- Key Material Management
- ASP.NET Core Dataprotection keys management
2) ASP.NET Core Web API
2.1) Fullstack Hero
.NET Web API Boilerplate - fullstackhero
Technical Stack:
- Built on .NET 6.0
- Follows Clean Architecture Principles
- Domain Driven Design
- Completely Documented at fullstackhero.net
- Multi Tenancy Support with Finbuckle
- Create Tenants with Multi Database / Shared Database Support
- Activate / Deactivate Tenants on Demand
- Upgrade Subscription of Tenants - Add More Validity Months to each tenant!
- Supports MySQL, MSSQL, Oracle & PostgreSQL!
2.2) ApiBoilerPlate
ApiBoilerPlate.AspNetCore - Visual Studio Marketplace
Tools and Frameworks Used
- .NET Core 3.1
- ASP.NET Core - For building RESTful APIs
- Dapper - For data access.
- AutoMapper - For mapping entity models to DTOs.
- AutoWrapper - For handling request Exceptions and consistent HTTP response format.
- AutoWrapper.Server - For unwrapping the Result attribute from AutoWrapper's ApiResponse output.
- Swashbuckle.AspNetCore - For securing API documentation.
- FluentValidation.AspNetCore - For Model validations
- Serilog.AspNetCore - For logging capabilities
- IdentityServer4.AccessTokenValidation - For JWT Authentication handling
- Microsoft.Extensions.Http.Polly - For handling HttpClient Resilience and Transient fault-handling
- AspNetCoreRateLimit - For controlling the rate of requests that clients can make to an external API based on IP address or client ID.
- AspNetCore.Diagnostics.HealthChecks - For performing health checks
- Microsoft.AspNetCore.Diagnostics.HealthChecks - For getting the results of Health Checks in the application
- AspNetCore.HealthChecks.UI - For Health Status visualization
- xUnit and Moq - For unit testing.
3) Mobile Project
- iOS: Eclipse, XCode and Objective-C, Swift, Xamarin, Unity
- Android: Eclipse, Android SDK, Android Studio and Kotlin, Java and C++
- Windows: Visual Studio and Windows Mobile, Windows Phone, Xamarin
- Hybrid: Visual Studio Code and React Native, Flutter
- Others: Apache Cordova, PhoneGap, Titanium, Ionic
4) Desktop Project
- Windows Forms
- WPF (XAML, MVVM)
- Electron: Build cross-platform desktop apps with JavaScript, HTML, and CSS
5) Web Project
PMBOK Guide
- Communications Management
- Scope Management
- Resource Management
- Time Management
- Risk Management
- Quality Management
Software Development Models
- Waterfall – mô hình thác nước
- V-model – mô hình chữ V
- Iterative – mô hình lặp – Mô hình Agile và quy trình Scrum
Type
- Web Services
- WCF HTTP Web Services
- ASP.NET Web Forms
- ASP.NET MVC 5 + jQuery, AdminLTE, Bootstrap, Calendar, DateTimePicker, Select2, DataTables, Moment.js, AutoNumeric.js
- ASP.NET Core MVC + jQuery, AdminLTE, Bootstrap, Calendar, DateTimePicker, Select2, DataTables, Moment.js, AutoNumeric.js
- ASP.NET Web API 2 + ReactJS
- ASP.NET Core Web API + ReactJS
- ASP.NET Core Web API + Angular
- ASP.NET Core Web API + VueJS
- ASP.NET Core MVC + Razor Pages
- ASP.NET Core Blazor
Databases
- Oracle
- MS SQL Server
- PostgreSQL
- MySQL
- Firebird
- SQLite
- MS Access
- MS SQL Server Compact
- MS SQL Server Express
- MS SQL Server Express LocalDB
- XML
- JSON
Tools
- Codemaid
- DBeaver
- Beyond Compare
- Postman
- Fiddler4
- BareTail
- Notepad++
- cURL
- Dapper
- DbUp
- PowerShell
- IIS
- CI/CD: Jenkins
- Azure DevOps
- Visio, Draw.io
- Sonarqube
- JetBrains ReSharper
- OzCode
- Clean Architecture
- SOLID
- Clean Code
- TOP 10 OWASP
Methods
- Monolithic Architecture
- Service-Oriented Architecture (SOA)
- Microservice Architecture
- Serverless Architecture
- Pair Programming
- Object Oriented Programming (OOP)
- Test Driven Development (TDD)
- Domain Driven Design (DDD)
- Mô hình Agile và quy trình Scrum
Security
- ASP.NET Membership: ASP.NET Membership Provider
- ASP.NET Simple Membership
- ASP.NET Identity
- Microsoft Identity
- Identity Server 4 (OAuth2 and OpenID Connect)
- IdentityServer4 and SSO
- JWT Bearer and Refresh Token
- Securing Microservices with IdentityServer4, OAuth2 and OpenID Connect fronted by Ocelot API Gateway
- OpenIddict
- Keycloak
- Auth0
- Duende IdentityServer / Identity Server 5
- Top 10 OWASP
Source Code:
ASP.NET Core 3.1 API - JWT Authentication with Refresh Tokens | Jason Watmore's Blog
JWT Authentication And Authorization In .NET 6.0 With Identity Framework (c-sharpcorner.com)
How to Implement JWT Authentication in Web API Using .Net 6.0, Asp.Net Core (c-sharpcorner.com)
Source Code Cookie Authentication:
Cookie Authentication In ASP.NET Core (c-sharpcorner.com)
Authentication And Authorization In ASP.NET Core MVC Using Cookie (c-sharpcorner.com)
Secure Serverless Azure Functions Using JWT Auth And C# (.Net 6) (c-sharpcorner.com)
Article:
LocalStorage và Cookies – Chọn cái nào để lưu JWT Tokens hiệu quả và an toàn? – Duy PT Blog
Access Token thường là các JWT Tokens tồn tại trong một khoảng thời gian ngắn, được tạo ra từ phía server, và được server yêu cầu đính kèm trong mỗi Http Request để phía server xác thực người dùng.
Refresh Token thường là các chuỗi string đặc thù nào đó được lưu trong database của server, được sử dụng để tạo ra các Access Token mới mỗi khi chúng hết hạn.
https://blog.logrocket.com/jwt-authentication-best-practices/
In this JWT authentication tutorial, you’ll learn when to use JWT, why you shouldn’t use JWT for sessions, and how to store JWTs in cookies to prevent security issues. We’ll also go over some general JWT best practices.
Where to Store JWTs - Cookies vs HTML5 Web Storage | Stormpath
AngularJS - How to store a JWT token inside an HTTP only cookie? - Stack Overflow
Cookies vs. Tokens: The Definitive Guide - DZone Integration
Cross Site Scripting (XSS) and Cross-Site Request Forgery (XSRF or CSRF)
HTML5 Security - OWASP Cheat Sheet Series
- Using Cookies with JWT in Node.js - DEV Community
- Using JSON Web Tokens with Node.js - DEV Community
Community OSS authentication options for ASP.NET Core | Microsoft Docs
OWASP Top Ten Web Application Security Risks | OWASP
Performance
- Database design, Database query, Code (Best Practice), Deployment view, Infrastructure view, Hardware, Software
- Cache in-memory in ASP.NET Core
- Distributed Redis Caching In ASP.NET Core
- HAProxy and Load Balancing
- Cloud Computing Services
- Microsoft Azure
- Amazon Web Services (AWS)
- Google Cloud Platform
New:
- Kubernetes
- Docker
- AutoWrapper
- FluentValidation
- Fluent Assertions
- FakeItEasy
- Bogus
- xUnit
- Moq
- Shouldly
Clean Architecture with ASP.NET Core 6.0
- N-Layered Architecture
- Onion Architecture
- Hexagonal Architecture
- Screaming Architecture
- Clean Architecture
https://github.com/dotnet-architecture/eShopOnContainers
https://github.com/fullstackhero/dotnet-webapi-boilerplate
https://github.com/jasontaylordev/CleanArchitecture
https://github.com/ardalis/CleanArchitecture
https://github.com/aspnetrun/run-aspnet-identityserver4
https://github.com/asc-lab/dotnetcore-microservices-poc
https://github.com/vietnam-devs/coolstore-microservices
https://github.com/EdwinVW/pitstop
https://github.com/madslundt/NetCoreMicroservicesSample
https://github.com/SteeltoeOSS/steeltoe
https://github.com/phongnguyend/Practical.CleanArchitecture
Best Practices:
- Skoruba.IdentityServer4.Admin
- JPProject.IdentityServer4.SSO
- Sử dụng Moment.js trong các dự án web hỗ trợ làm việc với thời gian ở nhiều nơi trên thế giới
JavaScript libraries:
1) Benchmark.js là một thư viện Javascript cung cấp khả năng so sánh hiệu năng của các javascript functions.
2) Velocity là một thư viện JavaScript được xây dựng để tạo animation nhanh. Tốc độ của Velocity khi hiển thị hoạt ảnh cực kỳ nhanh. Nó vượt trội hơn jQuery và thậm chí cả CSS.
3) SVG.js là một thư viện nhẹ để thao tác và tạo ảnh động cho SVG.
4) Vuejs là một thư viện mã nguồn mở miễn phí với kích thước nhỏ gọn giúp bạn xây dựng giao diện cho người dùng một cách nhanh chóng (đặc biệt là single page web application).
5) AngularJS giúp bạn có thể dễ dàng xây dựng ứng dụng web, mobile web, native mobile và native desktop.
6) jQuery là một thư viện mã nguồn mở nhỏ gọn, miễn phí cung cấp nhiều tính năng hữu ích dành cho phát triển website như là AJAX, thao tác với CSS, DOM, HTML một cách dễ dàng, xử lý sự kiện (event), hiệu ứng chuyển động...
7) Lodash giúp cho việc bạn xử lý các vấn đề liên quan tới Array, String, Number, Object... bằng ngôn ngữ lập trình Javascript một cách dễ dàng.
8) AnimeJS là thư viện giúp bạn có thể dễ dàng xây dựng hiệu ứng chuyển động nhanh chóng dành cho trang web bằng cách làm việc với các thuộc tính CSS, SVG, thuộc tính DOM, Javascript Object...
9) AOS giúp bạn tạo ra các hiệu ứng chuyển động cho các thành phần website khi người dùng scroll trang web.
10) Popper là một thư viện được viết bằng javascript với kích thước chỉ khoảng 3kB giúp bạn nâng cao tốc độ của website mà vẫn giữ được các chức năng mà một tooltip cần có.
11) Owl Carousel 2 là một thư viện mã nguồn mở giúp bạn xây dựng carousel một cách dễ dàng và có tính thẩm mỹ cao.
12) D3.js là một thư viện javascript được xây dựng cho việc trực quan hóa dữ liệu và hiển thị thông qua SVG, Canvas, HTML...
13) Chart.js giúp bạn tạo các biểu đồ đẹp mắt cho trang web của mình. Nó có rất nhiều biểu đồ khác nhau và cho phép chúng ta linh hoạt xử lý các dữ liệu truyền vào cho biểu đồ khi sử dụng thư viện. Ngoài ra nó cũng thường xuyên được cập nhật các phiên bản mới và được responsive trên nhiều màn hình thiết bị khác nhau.
14) SweetAlert là một thư viện mã nguồn mở giúp bạn xây dựng những thông báo cho trang web một cách nhanh chóng với tính thẩm mỹ cao và nhiều hiệu ứng chuyển động đẹp mắt.
15) Momentjs giúp bạn dễ dàng xử lý ngày giờ bằng Javascript một cách dễ dàng.
16) Video JS là trình phát video được xây dựng từ nền tảng Video HTML5 hỗ trợ cho nhiều định loại định dạng khác nhau như Youtube, Vimeo, streaming...
17) Highlight JS là một thư viện mã nguồn mở được xây dựng bằng Javascript giúp bạn làm nổi bật đoạn code ở trong trang web và có thể chạy trên cả trình duyệt cũng như trên máy chủ.
18) Fullpagejs giúp bạn tạo fullscreen scrolling dành cho website.
19) Print.js là một thư viện Javascript nhỏ gọn giúp bạn có thể in file trực tiếp ngay trên trang web mà không cần phải chuyển hướng hay sử dụng nhúng (embeds).
20) Math JS là một thư viện toán học mã nguồn mở, giúp bạn linh hoạt trong việc tính toán và xử lý với nhiều kiểu dữ liệu khác nhau như là numbers, big number (số lớn), complex number (số phức tạp), phân số, unit (đơn vị) và ma trận.
21) Validate JS là một thư viện mã nguồn mở cung cấp cho bạn cách thức để kiểm tra các đối tượng Javascript trong trang web. Mục tiêu chính của nó là thiết lập các validation dưới dạng JSON và có thể chia sẻ qua lại giữa trình duyệt và máy chủ. Nó cung cấp cho chúng ta rất nhiều các phương thức validate như là xác thực ngày tháng, email, format, kiểm tra loại của đối tượng...
42 Thư Viện Và Framework Javascript Hay Dành Cho Front-end Developer (niemvuilaptrinh.com)