Maxiboy441 / PixelPrime

This is our 3rd project as Software developers at the ITS Stuttgart
http://pixelprime.maxih.de
MIT License
3 stars 1 forks source link

Package Research #8

Closed Maxiboy441 closed 3 months ago

Maxiboy441 commented 3 months ago

Look which packages could be needed or helpfull, like one to automaticly make db migration from the model defenitions (Entity Framework (EF) ), etc. Find them, evaluate them and add them to the project (add also a link to them to the TC so other can research how to use them)

feliperamoss commented 3 months ago

I would recommend to use Entity Framework Core (EF Core) for database migrations, etc.

mehrb98 commented 3 months ago

** Authentication **

ASP.NET Core offers several libraries and frameworks for AUTHENTICATION, catering to various needs such as handling user accounts, third-party login providers, and secure API access. Here are some commonly used options:

  1. ASP.NET Core Identity

    Description: A membership system that adds login functionality to your application. It provides functionalities like user registration, password recovery, and two-factor authentication.

    Documentation: ASP.NET Core Identity

  2. OAuth and OpenID Connect

    Microsoft.AspNetCore.Authentication.JwtBearer: For using JWT tokens. Microsoft.AspNetCore.Authentication.OAuth: For OAuth2 authentication. Microsoft.AspNetCore.Authentication.OpenIdConnect: For OpenID Connect.

    Description: These libraries enable authentication through external providers like Google, Facebook, and Microsoft Accounts.

    Documentation: OAuth and [OpenID Connect] (https://docs.microsoft.com/en-us/aspnet/core/security/authentication/openid-connect)

  3. IdentityServer4

    Description: An OpenID Connect and OAuth 2.0 framework for ASP.NET Core. It enables the creation of a centralized authentication server to secure your applications and APIs.

    Documentation: IdentityServer4

  4. Auth0

    Description: A third-party service that offers authentication and authorization as a service. It supports a wide range of identity providers and offers a lot of customization options.

    Documentation: Auth0 for ASP.NET Core

  5. Azure Active Directory (Azure AD)

    Microsoft.Identity.Web: Simplifies using Azure AD for authentication. Description: Provides integration with Azure AD for enterprise-grade authentication, suitable for organizations using Microsoft's ecosystem.

    Documentation: Azure AD Authentication

  6. Firebase Authentication

    FirebaseAuthentication.net: A third-party library to integrate Firebase Authentication in .NET applications. Description: Enables using Firebase for authentication, suitable for applications that already use Firebase for other services.

    Documentation: Firebase Authentication for .NET

  7. Okta

    Okta.AspNetCore: Library for integrating Okta authentication. Description: A third-party identity provider similar to Auth0, providing OAuth 2.0 and OpenID Connect functionalities. Documentation: Okta for ASP.NET Core

  8. Duende IdentityServer

    Description: A commercial fork of IdentityServer4 with additional features and support. Documentation: Duende IdentityServer

    These libraries and frameworks can be used individually or in combination, depending on your authentication requirements. For example, you can use ASP.NET Core Identity for managing user accounts and integrate external providers using OAuth and OpenID Connect.

** Database Management System **

ASP.NET Core integrates well with several libraries and frameworks designed to simplify database management. These tools can help with tasks such as ORM (Object-Relational Mapping), migrations, seeding, and database connectivity. Here are some popular options:

  1. Entity Framework Core (EF Core)

    Description: EF Core is a lightweight, extensible, open-source, and cross-platform version of the popular Entity Framework data access technology. It provides an ORM to work with databases using .NET objects. Key Features: Code-first and database-first approaches LINQ support Migrations Automatic change tracking Documentation: EF Core Documentation

  2. Dapper

    Description: Dapper is a simple, high-performance micro-ORM for .NET. It is often used when you need better performance and more control over SQL execution. Key Features: Lightweight and fast Works directly with SQL queries Supports multiple database types Documentation: Dapper Documentation

  3. NHibernate

    Description: NHibernate is a mature ORM that provides a robust framework for mapping an object-oriented domain model to a traditional relational database. Key Features: Extensive querying capabilities Support for complex mappings Caching Migrations with Fluent NHibernate Documentation: NHibernate Documentation

  4. FluentMigrator

    Description: FluentMigrator is a migration framework for .NET. It allows you to define and execute database schema changes in a fluent interface. Key Features: Fluent interface for defining migrations Support for multiple database systems Versioning and rollback capabilities Documentation: FluentMigrator Documentation

  5. SQLAlchemy (via IronPython)

    Description: SQLAlchemy is a powerful and flexible ORM for Python, but it can be used in .NET applications via IronPython. This is less common but can be useful for specific scenarios. Key Features: High-level ORM and SQL expression language Supports a variety of relational databases Advanced query capabilities Documentation: SQLAlchemy Documentation

  6. LINQ to SQL

    Description: LINQ to SQL is a component of .NET Framework that provides a runtime infrastructure for managing relational data as objects. While not as feature-rich as EF Core, it's simpler and directly integrated with LINQ. Key Features: Simple ORM capabilities Direct LINQ integration Good for simple applications Documentation: LINQ to SQL Documentation

  7. RepoDB

    Description: RepoDB is a hybrid ORM library that extends ADO.NET and provides an easy-to-use data access layer with high performance. Key Features: Lightweight and efficient Supports both SQL and stored procedures Easy integration with Dapper Documentation: RepoDB Documentation

  8. MassTransit with Entity Framework

    Description: MassTransit is a message-based distributed application framework for .NET that can be used with EF Core for transactional outbox and saga pattern implementations. Key Features: Transactional outbox pattern Support for various messaging transports Integration with EF Core for persistence Documentation: MassTransit Documentation These tools and frameworks can greatly simplify database management in ASP.NET Core applications, depending on your specific needs and the complexity of your data access requirements.

Maxiboy441 commented 3 months ago

Nice Job, Entity Framework Core (EF Core) to make database management more easy

Maxiboy441 commented 3 months ago

@mehrb98 I would propose to decide which to use in a all discousion for the concept