From bb9878fdb729fdcb5f156efc7ffcb799c9db34a4 Mon Sep 17 00:00:00 2001 From: syedmouaazfarrukh <97732099+syedmouaazfarrukh@users.noreply.github.com> Date: Sun, 15 Jan 2023 16:35:54 +0500 Subject: [PATCH] Add content to aspnet-core roadmap (#3294) * Initial commit * Initial commit * Initial commit * Initial commit * Initial commit * Initial commit * Initial commit * Initial commit * Initital commit * Initial commit * Initial commit * Committing 107-databases * Content added in aspnet-core/content/108-log-frameworks * Content added in aspnet-core/content/109-api-clients * Content added in aspnet-core/content/110-real-time-communication * Content added in aspnet-core/content/111-object-mapping * Content added in aspnet-core/content/112-task-scheduling * Fix Eager Loading heading * Fix lazy loading heading * Update src/roadmaps/aspnet-core/content/104-orm/103-nhibernate.md * Update src/roadmaps/aspnet-core/content/100-basics-of-csharp/101-dotnet.md * Update src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/101-rest.md * Update src/roadmaps/aspnet-core/content/109-api-clients/102-graphql/100-graphql-dotnet.md * Update src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/index.md * Update src/roadmaps/aspnet-core/content/104-orm/100-entity-framework-core/102-change-tracker-api.md * Update src/roadmaps/aspnet-core/content/104-orm/102-repodb.md * Update src/roadmaps/aspnet-core/content/104-orm/102-repodb.md * Update src/roadmaps/aspnet-core/content/105-dependency-injection/102-life-cycles/index.md * Update src/roadmaps/aspnet-core/content/105-dependency-injection/index.md * Update src/roadmaps/aspnet-core/content/109-api-clients/102-graphql/100-graphql-dotnet.md * Update src/roadmaps/aspnet-core/content/109-api-clients/102-graphql/index.md * Update src/roadmaps/aspnet-core/content/110-real-time-communication/101-singlar-core.md * Update src/roadmaps/aspnet-core/content/111-object-mapping/100-atuo-mapper.md * Update src/roadmaps/aspnet-core/content/107-databases/100-search-engines/100-elasticsearch.md * Update src/roadmaps/aspnet-core/content/107-databases/102-relational/101-postgresql.md * Update src/roadmaps/aspnet-core/content/107-databases/102-relational/103-mysql.md * Update src/roadmaps/aspnet-core/content/107-databases/103-nosql/101-mongodb.md * Update src/roadmaps/aspnet-core/content/108-log-frameworks/101-nlog.md * Update src/roadmaps/aspnet-core/content/108-log-frameworks/100-serilog.md * Update src/roadmaps/aspnet-core/content/108-log-frameworks/102-log-management-system/100-elk-stack.md * Update src/roadmaps/aspnet-core/content/108-log-frameworks/102-log-management-system/104-elmah.md * Update src/roadmaps/aspnet-core/content/108-log-frameworks/index.md * Update src/roadmaps/aspnet-core/content/109-api-clients/100-rest/101-odata.md * Update src/roadmaps/aspnet-core/content/109-api-clients/100-rest/index.md * Update src/roadmaps/aspnet-core/content/109-api-clients/102-graphql/100-graphql-dotnet.md * Update src/roadmaps/aspnet-core/content/109-api-clients/101-grpc.md * Adding content to 115-ci-cd * Adding content to 116-client-side-libraries * Adding content to 117-template-engines * Adding content to 118-good-to-know-libraries * Adding content to 113-testing * Adding content to 114-microservices Co-authored-by: Kamran Ahmed --- .../100-basics-of-csharp/100-csharp.md | 2 +- .../100-basics-of-csharp/101-dotnet.md | 10 +++++++- .../content/100-basics-of-csharp/index.md | 6 +++++ .../101-general-development-skills/100-git.md | 2 +- .../101-azure-devops-services.md | 17 ++++++++++++- .../104-datastructures-and-algorithms.md | 2 +- .../101-general-development-skills/index.md | 25 ++++++++++++++++++- .../102-stored-procedures.md | 2 ++ .../103-constraints.md | 2 ++ .../102-database-fundamentals/104-triggers.md | 15 ++++++++++- .../103-basics-of-aspnet-core/100-mvc.md | 2 ++ .../103-basics-of-aspnet-core/101-rest.md | 10 +++++++- .../102-razor-pages.md | 12 ++++++++- .../103-razor-components.md | 12 ++++++++- .../104-middlewares.md | 12 ++++++++- .../105-filters-and-attributes.md | 8 +++++- .../106-app-settings-and-configurations.md | 14 ++++++++++- .../103-basics-of-aspnet-core/index.md | 10 +++++++- .../100-framework-basics.md | 13 +++++++++- .../101-codefirst-migrations.md | 2 ++ .../102-change-tracker-api.md | 13 +++++++++- .../103-lazy-eager-explicit-loading.md | 16 +++++++++++- .../100-entity-framework-core/index.md | 10 +++++++- .../aspnet-core/content/104-orm/102-repodb.md | 12 ++++++++- .../content/104-orm/103-nhibernate.md | 12 ++++++++- .../aspnet-core/content/104-orm/index.md | 2 ++ .../105-dependency-injection/100-scrutor.md | 11 +++++++- ...crosoft-extensions-dependency-injection.md | 12 ++++++++- .../101-di-containers/101-auto-fac.md | 12 ++++++++- .../101-di-containers/102-ninject.md | 12 ++++++++- .../101-di-containers/103-castle-windsor.md | 12 ++++++++- .../101-di-containers/104-simple-injector.md | 12 ++++++++- .../101-di-containers/index.md | 12 ++++++++- .../102-life-cycles/100-scoped.md | 11 +++++++- .../102-life-cycles/101-transient.md | 12 ++++++++- .../102-life-cycles/102-singleton.md | 12 ++++++++- .../102-life-cycles/index.md | 16 +++++++++++- .../content/105-dependency-injection/index.md | 13 +++++++++- .../content/106-caching/100-memory-cache.md | 5 ++-- .../106-caching/101-entity-framework-cache.md | 5 ++-- .../102-distributed-cache/100-memcached.md | 3 ++- .../101-redis/easy-caching.md | 2 +- .../102-distributed-cache/101-redis/index.md | 2 +- .../101-redis/stackexchange-redis.md | 5 ++-- .../102-distributed-cache/index.md | 5 ++-- .../aspnet-core/content/106-caching/index.md | 3 ++- .../100-search-engines/100-elasticsearch.md | 11 +++++++- .../100-search-engines/101-solr.md | 12 ++++++++- .../100-search-engines/102-sphinx.md | 12 ++++++++- .../107-databases/100-search-engines/index.md | 12 ++++++++- .../107-databases/101-cloud/100-dynamodb.md | 11 +++++++- .../107-databases/101-cloud/101-cosmosdb.md | 10 +++++++- .../content/107-databases/101-cloud/index.md | 12 ++++++++- .../102-relational/100-sql-server.md | 2 +- .../102-relational/101-postgresql.md | 12 ++++++++- .../102-relational/102-mariadb.md | 12 ++++++++- .../107-databases/102-relational/103-mysql.md | 12 ++++++++- .../107-databases/102-relational/index.md | 11 +++++++- .../107-databases/103-nosql/100-redis.md | 12 ++++++++- .../107-databases/103-nosql/101-mongodb.md | 11 +++++++- .../107-databases/103-nosql/102-litedb.md | 11 +++++++- .../107-databases/103-nosql/103-cassandra.md | 12 ++++++++- .../107-databases/103-nosql/104-ravendb.md | 12 ++++++++- .../107-databases/103-nosql/105-couchdb.md | 12 ++++++++- .../content/107-databases/103-nosql/index.md | 12 ++++++++- .../content/107-databases/index.md | 19 +++++++++++++- .../content/108-log-frameworks/100-serilog.md | 10 +++++++- .../content/108-log-frameworks/101-nlog.md | 12 ++++++++- .../100-elk-stack.md | 14 ++++++++++- .../102-log-management-system/101-sentry.md | 12 ++++++++- .../102-log-management-system/102-datadog.md | 11 +++++++- .../102-log-management-system/103-loggly.md | 11 +++++++- .../102-log-management-system/104-elmah.md | 12 ++++++++- .../102-log-management-system/index.md | 12 ++++++++- .../content/108-log-frameworks/index.md | 17 ++++++++++++- .../109-api-clients/100-rest/101-odata.md | 12 ++++++++- .../109-api-clients/100-rest/102-sieve.md | 11 +++++++- .../content/109-api-clients/100-rest/index.md | 12 ++++++++- .../content/109-api-clients/101-grpc.md | 12 ++++++++- .../102-graphql/100-graphql-dotnet.md | 11 +++++++- .../102-graphql/101-hot-chocolate.md | 12 ++++++++- .../109-api-clients/102-graphql/index.md | 12 ++++++++- .../content/109-api-clients/index.md | 14 ++++++++++- .../100-web-sockets.md | 12 ++++++++- .../101-singlar-core.md | 8 +++++- .../110-real-time-communication/index.md | 11 +++++++- .../111-object-mapping/100-atuo-mapper.md | 12 ++++++++- .../111-object-mapping/101-express-mapper.md | 11 +++++++- .../111-object-mapping/102-agile-mapper.md | 11 +++++++- .../content/111-object-mapping/103-mapster.md | 12 ++++++++- .../content/111-object-mapping/index.md | 12 ++++++++- .../112-task-scheduling/100-hangfire.md | 12 ++++++++- .../101-native-background-service.md | 12 ++++++++- .../content/112-task-scheduling/102-quartz.md | 11 +++++++- .../112-task-scheduling/103-coravel.md | 12 ++++++++- .../content/112-task-scheduling/index.md | 11 +++++++- .../100-e2e-testing/100-selenium.md | 9 ++++++- .../100-e2e-testing/101-playwright.md | 10 +++++++- .../100-e2e-testing/102-puppeteer.md | 9 ++++++- .../100-e2e-testing/103-cypress.md | 9 ++++++- .../113-testing/100-e2e-testing/index.md | 10 +++++++- .../101-unit-testing/100-fluent-assertions.md | 10 +++++++- .../101-unit-testing/101-shouldly.md | 9 ++++++- .../101-unit-testing/102-mstest.md | 10 +++++++- .../113-testing/101-unit-testing/103-xunit.md | 10 +++++++- .../113-testing/101-unit-testing/104-nunit.md | 9 ++++++- .../101-unit-testing/105-nsubstitute.md | 9 ++++++- .../113-testing/101-unit-testing/106-moq.md | 10 +++++++- .../101-unit-testing/107-fake-it-easy.md | 9 ++++++- .../113-testing/101-unit-testing/index.md | 10 +++++++- .../100-web-application-factory.md | 10 +++++++- .../101-test-server.md | 10 +++++++- .../102-integration-testing/index.md | 10 +++++++- .../103-behavior-testing/100-spec-flow.md | 10 +++++++- .../103-behavior-testing/101-bddfy.md | 10 +++++++- .../103-behavior-testing/102-light-bdd.md | 10 +++++++- .../113-testing/103-behavior-testing/index.md | 9 ++++++- .../aspnet-core/content/113-testing/index.md | 10 +++++++- .../100-message-brokers/100-active-mq.md | 12 ++++++++- .../100-message-brokers/101-apache-kafka.md | 11 +++++++- .../100-message-brokers/102-rabbit-mq.md | 12 ++++++++- .../100-message-brokers/103-net-mq.md | 11 +++++++- .../104-azure-service-bus.md | 10 +++++++- .../100-message-brokers/index.md | 11 +++++++- .../101-message-bus/100-mass-transit.md | 11 +++++++- .../101-message-bus/101-nservice-bus.md | 11 +++++++- .../101-message-bus/102-easy-net-q.md | 11 +++++++- .../101-message-bus/index.md | 11 +++++++- .../114-microservices/102-kubernetes.md | 2 +- .../114-microservices/103-docker-swarm.md | 12 ++++++++- .../content/114-microservices/104-ocelot.md | 12 ++++++++- .../content/114-microservices/105-docker.md | 12 ++++++++- .../content/114-microservices/106-yarp.md | 9 ++++++- .../content/114-microservices/107-orleans.md | 12 ++++++++- .../114-microservices/108-steel-toe.md | 10 +++++++- .../content/114-microservices/109-dapr.md | 9 ++++++- .../content/114-microservices/110-tye.md | 10 +++++++- .../content/114-microservices/index.md | 12 ++++++++- .../content/115-ci-cd/100-github-actions.md | 12 ++++++++- .../content/115-ci-cd/101-azure-pipelines.md | 12 ++++++++- .../content/115-ci-cd/102-travis-ci.md | 11 +++++++- .../content/115-ci-cd/103-jenkins.md | 12 ++++++++- .../content/115-ci-cd/104-circle-ci.md | 11 +++++++- .../content/115-ci-cd/105-team-city.md | 13 +++++++++- .../aspnet-core/content/115-ci-cd/index.md | 11 +++++++- .../116-client-side-libraries/100-blazor.md | 14 ++++++++++- .../116-client-side-libraries/index.md | 10 +++++++- .../content/117-template-engines/100-razor.md | 10 +++++++- .../117-template-engines/101-dot-liquid.md | 9 ++++++- .../117-template-engines/102-scriban.md | 9 ++++++- .../content/117-template-engines/103-fluid.md | 8 +++++- .../content/117-template-engines/index.md | 9 ++++++- .../118-good-to-know-libraries/100-mediatr.md | 9 ++++++- .../101-fluent-validation.md | 10 +++++++- .../118-good-to-know-libraries/102-polly.md | 10 +++++++- .../118-good-to-know-libraries/103-nuke.md | 11 +++++++- .../104-benchmark-net.md | 10 +++++++- .../105-noda-time.md | 9 ++++++- .../118-good-to-know-libraries/106-gen-fu.md | 8 +++++- .../107-swash-buckle.md | 10 +++++++- .../118-good-to-know-libraries/index.md | 15 ++++++++++- 161 files changed, 1511 insertions(+), 159 deletions(-) diff --git a/src/roadmaps/aspnet-core/content/100-basics-of-csharp/100-csharp.md b/src/roadmaps/aspnet-core/content/100-basics-of-csharp/100-csharp.md index 75e74b9bb..4ae282054 100644 --- a/src/roadmaps/aspnet-core/content/100-basics-of-csharp/100-csharp.md +++ b/src/roadmaps/aspnet-core/content/100-basics-of-csharp/100-csharp.md @@ -5,4 +5,4 @@ C# is a modern coding language that was developed by Microsoft that focuses on a Visit the following resources to learn more: - [C# official website?](https://learn.microsoft.com/en-us/dotnet/csharp//) -- [The Beginners Guide to C#](https://www.w3schools.com/CS/index.php) +- [The Beginners Guide to C#](https://www.w3schools.com/CS/index.php) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/100-basics-of-csharp/101-dotnet.md b/src/roadmaps/aspnet-core/content/100-basics-of-csharp/101-dotnet.md index b312fdf76..53ac36d92 100644 --- a/src/roadmaps/aspnet-core/content/100-basics-of-csharp/101-dotnet.md +++ b/src/roadmaps/aspnet-core/content/100-basics-of-csharp/101-dotnet.md @@ -1 +1,9 @@ -# Dotnet \ No newline at end of file +# .NET Framework + +.NET (pronounced "dot net") is a software framework developed by Microsoft that can be used to create a wide range of applications, including Windows desktop and web applications, mobile apps, and gaming. The .NET Framework provides a large library of pre-built functionality, including collections, file input/output, and networking, that can be used by .NET applications. It also includes a Common Language Runtime (CLR) which manages the execution of code, providing features such as memory management, security, and exception handling. + +For more information, visit the following link: + +- [What is .NET?](https://dotnet.microsoft.com/en-us/learn/dotnet/what-is-dotnet) +- [Intro to .NET](https://www.codecademy.com/article/what-is-net) +- [An Overview of .NET](https://auth0.com/blog/what-is-dotnet-platform-overview/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/100-basics-of-csharp/index.md b/src/roadmaps/aspnet-core/content/100-basics-of-csharp/index.md index a6aa6a0f1..6fe3111d2 100644 --- a/src/roadmaps/aspnet-core/content/100-basics-of-csharp/index.md +++ b/src/roadmaps/aspnet-core/content/100-basics-of-csharp/index.md @@ -5,3 +5,9 @@ C# (pronounced "C-sharp") is a general-purpose, object-oriented programming lang C# is a statically-typed language, which means that the type of a variable must be specified when it is declared, and that the type of a value cannot be changed after it has been assigned. C# also supports object-oriented programming, which means that it provides features such as encapsulation, inheritance, and polymorphism. C# is a popular language for building .NET applications, and it is used by many large companies and organizations, including Microsoft, Dell, and IBM. It is a versatile language that can be used for a wide range of purposes, and it is well-suited for building scalable and maintainable software systems. + +Visit the following links for more information: + +- [C Sharp Basics](https://www.codecademy.com/catalog/language/c-sharp) +- [Introduction to C#](https://learn.microsoft.com/en-us/dotnet/csharp/tour-of-csharp/tutorials/) +- [Basics Of C#](https://www.c-sharpcorner.com/UploadFile/e9fdcd/basics-of-C-Sharp/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/101-general-development-skills/100-git.md b/src/roadmaps/aspnet-core/content/101-general-development-skills/100-git.md index f1dacfec5..420db4651 100644 --- a/src/roadmaps/aspnet-core/content/101-general-development-skills/100-git.md +++ b/src/roadmaps/aspnet-core/content/101-general-development-skills/100-git.md @@ -7,4 +7,4 @@ Visit the following resources to learn more: - [Learn Git on the command line](https://github.com/jlord/git-it-electron) - [Version Control System Introduction](https://www.youtube.com/watch?v=zbKdDsNNOhg) - [Git & GitHub Crash Course For Beginners](https://www.youtube.com/watch?v=SWYqp7iY_Tc) -- [Learn Git in 20 Minutes](https://youtu.be/Y9XZQO1n_7c?t=21) +- [Learn Git in 20 Minutes](https://youtu.be/Y9XZQO1n_7c?t=21) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/101-general-development-skills/101-azure-devops-services.md b/src/roadmaps/aspnet-core/content/101-general-development-skills/101-azure-devops-services.md index 6d3ea56d5..e710cb6dc 100644 --- a/src/roadmaps/aspnet-core/content/101-general-development-skills/101-azure-devops-services.md +++ b/src/roadmaps/aspnet-core/content/101-general-development-skills/101-azure-devops-services.md @@ -1 +1,16 @@ -# Azure devops services \ No newline at end of file +# Azure Devops Services + +Azure DevOps Services is a collection of services provided by Microsoft that can be used to plan, build, test, and deploy .NET applications. These services can be used together or independently to support various aspects of the software development process. Some of the main services include: + +- Azure Boards: Provides features for agile planning and tracking, such as backlogs, boards, and sprint planning. +- Azure Repos: Provides source control management for Git and Team Foundation Version Control (TFVC) repositories. +- Azure Artifacts: Provides package management for NuGet, npm, and Maven packages. +- Azure Test Plans: Provides support for manual and exploratory testing, as well as continuous testing and testing in production. +- Azure Pipeline: Provides a way to build, test, and deploy code automatically, with support for multiple languages and platforms, including .NET. + +These services can be used to create a full-featured development environment that can be used to manage all aspects of a software development project, from planning and design to testing and deployment. + +For more information, visit the following links: + +- [Build, test, and deploy .NET Core apps](https://learn.microsoft.com/en-us/azure/devops/pipelines/ecosystems/dotnet-core?view=azure-devops&tabs=dotnetfive) +- [Microsoft Azure DevOps for ASP .NET Core Web apps](https://techmindfactory.com/Microsoft-Azure-DevOps-for-ASP-.NET-Core-Web-apps/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/101-general-development-skills/104-datastructures-and-algorithms.md b/src/roadmaps/aspnet-core/content/101-general-development-skills/104-datastructures-and-algorithms.md index 4522b40bc..6249680d0 100644 --- a/src/roadmaps/aspnet-core/content/101-general-development-skills/104-datastructures-and-algorithms.md +++ b/src/roadmaps/aspnet-core/content/101-general-development-skills/104-datastructures-and-algorithms.md @@ -5,7 +5,7 @@ As the name indicates, a **Data Structure** is a way of organizing the data in t Visit the following resources to learn more: - [What are Data Structures?](https://www.geeksforgeeks.org/data-structures) -- [ Data Structures and Algorithms](https://www.javatpoint.com/data-structure-tutorial) +- [Data Structures and Algorithms](https://www.javatpoint.com/data-structure-tutorial) - [Data Structures Illustrated](https://www.youtube.com/watch?v=9rhT3P1MDHk&list=PLkZYeFmDuaN2-KUIv-mvbjfKszIGJ4FaY) - [C# resources](https://dev.to/adavidoaiei/fundamental-data-structures-and-algorithms-in-c-4ocf) - [Interview Questions about Data Structures](https://www.csharpstar.com/csharp-algorithms/) diff --git a/src/roadmaps/aspnet-core/content/101-general-development-skills/index.md b/src/roadmaps/aspnet-core/content/101-general-development-skills/index.md index d8e5ab08b..75a64cfad 100644 --- a/src/roadmaps/aspnet-core/content/101-general-development-skills/index.md +++ b/src/roadmaps/aspnet-core/content/101-general-development-skills/index.md @@ -1 +1,24 @@ -# General development skills \ No newline at end of file +# General development skills + +There are several skills that are generally considered to be important for working with .NET and C#: + +- Object-oriented programming: Understanding the concepts of classes, objects, inheritance, and polymorphism is essential for working with C# and the .NET Framework. + +- C# language: A strong understanding of the C# language, including its syntax, keywords, and built-in classes and types, is necessary for writing efficient and maintainable code. + +- .NET Framework: Familiarity with the .NET Framework, including the Common Language Runtime (CLR) and the Base Class Library (BCL), is important for understanding how C# code is executed and for utilizing the framework's many built-in features. + +- Web & Software development: Knowledge of web development technologies such as HTML, CSS, JavaScript, and ASP.NET is important for creating web applications using C# and the .NET Framework and knowledge of software development methodologies such as Agile, Scrum, or Waterfall is also useful. + +- Database: Familiarity with database concepts and technologies, such as SQL and ADO.NET, is important for working with data in C# applications. + +- Cloud computing: Familiarity with cloud computing concepts and technologies, such as Azure, is becoming increasingly important for deploying and scaling C# applications. + +- DevOps: Understanding of DevOps concepts and practices, such as continuous integration and continuous deployment, is necessary for automating and streamlining the software development process. + +For more information, visit the following links: + +- [A Step-by-Step Approach to Learn OOP](https://www.geeksforgeeks.org/a-step-by-step-approach-to-learn-object-oriented-programming/) +- [Asp.net - Complete Tutorial](https://www.youtube.com/watch?v=kdPtNMb8tPw) +- [Learn Cloud Computing](https://www.youtube.com/watch?v=eWwK2FKWp0g) +- [DevOps Course for Beginners](https://www.youtube.com/watch?v=hQcFE0RD0cQ) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/102-database-fundamentals/102-stored-procedures.md b/src/roadmaps/aspnet-core/content/102-database-fundamentals/102-stored-procedures.md index 9328249df..966e1192e 100644 --- a/src/roadmaps/aspnet-core/content/102-database-fundamentals/102-stored-procedures.md +++ b/src/roadmaps/aspnet-core/content/102-database-fundamentals/102-stored-procedures.md @@ -5,3 +5,5 @@ A stored procedure is a pre-compiled collection of SQL statements that can be ex Visit the following resources to learn more: - [Stored Procedure Tutorial](https://www.w3schools.com/sql/sql_stored_procedures.asp) +- [Stored Procedure in SQL: Benefits And How to Create It](https://www.simplilearn.com/tutorials/sql-tutorial/stored-procedure-in-sql) +- [SQL Server stored procedures for beginners](https://www.sqlshack.com/sql-server-stored-procedures-for-beginners/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/102-database-fundamentals/103-constraints.md b/src/roadmaps/aspnet-core/content/102-database-fundamentals/103-constraints.md index 57f9e40df..90a256d33 100644 --- a/src/roadmaps/aspnet-core/content/102-database-fundamentals/103-constraints.md +++ b/src/roadmaps/aspnet-core/content/102-database-fundamentals/103-constraints.md @@ -5,3 +5,5 @@ Database constraints are rules that are used to limit the data that can be store Visit the following resources to learn more: - [SQL Constraints](https://www.w3schools.com/sql/sql_constraints.asp) +- [Constraints of SQL](https://www.educative.io/courses/database-design-fundamentals/m7JnY9Xm6Qp) +- [Constraints in DBMS](https://beginnersbook.com/2015/04/constraints-in-dbms/) diff --git a/src/roadmaps/aspnet-core/content/102-database-fundamentals/104-triggers.md b/src/roadmaps/aspnet-core/content/102-database-fundamentals/104-triggers.md index 57cdccb40..f4054c762 100644 --- a/src/roadmaps/aspnet-core/content/102-database-fundamentals/104-triggers.md +++ b/src/roadmaps/aspnet-core/content/102-database-fundamentals/104-triggers.md @@ -1 +1,14 @@ -# Triggers \ No newline at end of file +# Triggers + +Triggers are special type of stored procedures that are automatically executed in response to specific events that occur within a database. These events can include: + +- Data modification events (INSERT, UPDATE, DELETE) on a specific table or view. +- Data definition events (CREATE, ALTER, DROP) on specific database objects such as tables or views. +- Logon events (CONNECT, DISCONNECT) that occur when a user connects to or disconnects from the database. + +For more information, visit the following links: + +- [Database Triggers](https://docs.oracle.com/cd/A57673_01/DOC/server/doc/SCN73/ch15.htm) +- [Database Triggers: Examples & Overview](https://study.com/academy/lesson/database-triggers-examples-overview.html) +- [What are Triggers in SQL?](https://www.edureka.co/blog/triggers-in-sql/) +- [What is a SQL Trigger?](https://www.essentialsql.com/sql-trigger/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/100-mvc.md b/src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/100-mvc.md index 588147027..e1854db53 100644 --- a/src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/100-mvc.md +++ b/src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/100-mvc.md @@ -9,3 +9,5 @@ MVC is an architectural design pattern used for developing applications, specifi Visit the following resources to learn more: - [MVC Official Documentation](https://learn.microsoft.com/en-us/aspnet/core/mvc/overview?WT.mc_id=dotnet-35129-website&view=aspnetcore-7.0) +- [ASP.NET MVC Architecture](https://www.tutorialsteacher.com/mvc/mvc-architecture) +- [MVC Framework - Introduction](https://www.tutorialspoint.com/mvc_framework/mvc_framework_introduction.htm) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/101-rest.md b/src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/101-rest.md index 5088a865c..774677766 100644 --- a/src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/101-rest.md +++ b/src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/101-rest.md @@ -1 +1,9 @@ -# Rest \ No newline at end of file +# REST + +REST (Representational State Transfer) is an architectural style for building web services. In the context of .NET, RESTful web services can be created using the ASP.NET Web API framework, which allows developers to create HTTP-based services that can be consumed by a wide range of clients, including web browsers and mobile devices. The Web API framework provides a set of tools and libraries for creating RESTful services, including routing, request/response handling, and support for a variety of data formats, such as JSON and XML. + +For more information, visit the following resources: + +- [What is REST Services?](http://www.codedigest.com/quick-start/16/what-is-rest-services-how-to-create-rest-services-in-aspnet) +- [Restful API In ASP.NET: Introduction of REST & Web API](https://www.c-sharpcorner.com/UploadFile/4b0136/restful-api-in-Asp-Net-introduction-of-rest-web-api/) +- [What are RESTful APIs](https://www.pragimtech.com/blog/blazor/what-are-restful-apis/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/102-razor-pages.md b/src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/102-razor-pages.md index 9e02a4009..74420d4c5 100644 --- a/src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/102-razor-pages.md +++ b/src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/102-razor-pages.md @@ -1 +1,11 @@ -# Razor pages \ No newline at end of file +# Razor Pages + +Razor Pages is a feature of the ASP.NET Core framework that allows developers to build web applications using a combination of Razor markup (a markup syntax for defining dynamic HTML) and C# code. Razor Pages is built on top of the ASP.NET Core MVC (Model-View-Controller) framework, and provides a simpler, more intuitive way to build web pages and handle user input. + +Razor Pages are useful for building simple, self-contained web pages that do not require a complex navigation or layout structure, and are often used for building small to medium-size web applications. + +For more information, visit the following links: + +- [Basics of Razor Pagess](https://www.jetbrains.com/dotnet/guide/tutorials/basics/razor-pages/) +- [Get started with Razor Pages in ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/tutorials/razor-pages/?view=aspnetcore-7.0) +- [What Is Razor Pages?](https://www.learnrazorpages.com/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/103-razor-components.md b/src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/103-razor-components.md index a005e7ce4..d5984b87a 100644 --- a/src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/103-razor-components.md +++ b/src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/103-razor-components.md @@ -1 +1,11 @@ -# Razor components \ No newline at end of file +# Razor Components + +Razor Components is a feature of ASP.NET Core that allows developers to build reusable, self-contained components that can be used across multiple pages or even multiple applications. Razor Components is built on top of the Razor view engine, which allows developers to define components using a combination of Razor markup and C# code. + +Razor Components are useful for building complex, dynamic, and reusable UI elements, such as forms, tables, or dialogs, and can be used to build both small and large-scale web applications. + +For more information, vist the following links: + +- [ASP.NET Core Razor components](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/?view=aspnetcore-7.0) +- [What is Core razor components?](https://www.youtube.com/watch?v=KseDLejhYi0) +- [Core Razor Componets in .NET](https://www.c-sharpcorner.com/blogs/asp-net-core-razor-componets) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/104-middlewares.md b/src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/104-middlewares.md index 9a18400f5..8cadd97a5 100644 --- a/src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/104-middlewares.md +++ b/src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/104-middlewares.md @@ -1 +1,11 @@ -# Middlewares \ No newline at end of file +# Middlewares + +Middleware is software that sits between an operating system and application software, and facilitates communication and data exchange between them. In the context of web development, middleware refers to software components that handle requests and responses in a web application. These components are typically executed in a pipeline, with each component performing a specific task, such as authentication, logging, or routing. + +In the ASP.NET Core framework, middleware is a key concept that is used to build web applications. Middleware components are added to the application pipeline using the `IApplicationBuilder` interface, and are executed in the order in which they are added. For example, an application might have middleware components for handling authentication, logging, and routing, in that order. + +Visit the following links for more resources: + +- [What is Middleware?](https://www.redhat.com/en/topics/middleware/what-is-middleware) +- [Introduction to Middleware](https://www.techtarget.com/searchapparchitecture/definition/middleware) +- [What is Middleware in .NET?](https://www.talend.com/resources/what-is-middleware/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/105-filters-and-attributes.md b/src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/105-filters-and-attributes.md index 0d02d316d..725e737a6 100644 --- a/src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/105-filters-and-attributes.md +++ b/src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/105-filters-and-attributes.md @@ -1 +1,7 @@ -# Filters and attributes \ No newline at end of file +# Filters and Attributes + +In the ASP.NET Core framework, filters and attributes are used to add additional functionality to controllers and action methods, such as authentication, authorization, caching, and exception handling. + +- **Filters** are classes that implement one or more of the filter interfaces provided by the framework, such as `IActionFilter`, `IResultFilter`, `IExceptionFilter`, and `IAuthorizationFilter`. Filters can be applied to controllers, action methods, or globally to the entire application. They can be used to perform tasks such as logging, caching, and handling exceptions. + +- **Attributes** are classes that derive from `Attribute` class, and are used to decorate controllers, action methods, or properties with additional metadata. For example, the Authorize attribute can be used to require that a user is authenticated before accessing a specific action method, and the `ValidateAntiForgeryToken` attribute can be used to protect against cross-site request forgery (CSRF) attacks. \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/106-app-settings-and-configurations.md b/src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/106-app-settings-and-configurations.md index d312a1d87..20075110e 100644 --- a/src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/106-app-settings-and-configurations.md +++ b/src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/106-app-settings-and-configurations.md @@ -1 +1,13 @@ -# App settings and configurations \ No newline at end of file +# App Settings and Configurations + +In the ASP.NET Core framework, app settings and configurations refer to the process of storing and managing application-specific settings and configuration data. + +- **App Settings** refers to the key-value pairs of data that an application uses to configure its behavior, such as database connection strings, api keys, or other settings. These settings are typically stored in configuration files, such as `appsettings.json`, `appsettings.development.json`, or `appsettings.production.json`, and can be accessed using the IConfiguration interface. + +- **Configurations** refer to the process of loading and managing the app settings, including specifying the source of the settings and the format of the configuration files. In ASP.NET Core, the `Startup` class is responsible for configuring the application's settings, and typically loads configuration data from various sources, such as JSON files, environment variables, or command-line arguments. + +For more information, visit the following links: + +- [What is Azure App Configuration?](https://learn.microsoft.com/en-us/azure/azure-app-configuration/overview) +- [What are App Configurations and how do I work with them?](https://support.procore.com/faq/what-are-app-configurations) +- [Configuration & AppSettings](https://docs.servicestack.net/appsettings) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/index.md b/src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/index.md index 739675108..048af8a45 100644 --- a/src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/index.md +++ b/src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/index.md @@ -1 +1,9 @@ -# Basics of aspnet core \ No newline at end of file +# Basics of ASP.NET Core + +ASP.NET Core is a open-source, cross-platform web framework for building modern web applications using .NET. Some of the basics of ASP.NET Core are Cross-platform, Open-source, Modular, High performance, MVC pattern, Dependency Injection, Middleware, Razor Pages and Razor Components, EF Core. + +For more information, visit the following resources: + +- [ASP.NET documentation](https://learn.microsoft.com/en-us/aspnet/core/?view=aspnetcore-7.0) +- [ASP.NET Core Tutorial](https://www.tutorialspoint.com/asp.net_core/index.htm) +- [Learn ASP.NET Core from Scratch](https://www.tutorialsteacher.com/core) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/104-orm/100-entity-framework-core/100-framework-basics.md b/src/roadmaps/aspnet-core/content/104-orm/100-entity-framework-core/100-framework-basics.md index 5f87516f1..efa509eec 100644 --- a/src/roadmaps/aspnet-core/content/104-orm/100-entity-framework-core/100-framework-basics.md +++ b/src/roadmaps/aspnet-core/content/104-orm/100-entity-framework-core/100-framework-basics.md @@ -1 +1,12 @@ -# Framework basics \ No newline at end of file +# Framework Basics + +An ORM (Object-Relational Mapping) framework is a tool that maps the objects in an application to the database tables, allowing developers to work with the database using familiar, object-oriented concepts. + +ORM frameworks are tools that map the objects in an application to the database tables, allowing developers to work with the database using familiar, object-oriented concepts such as Entities, Mapping, Context, Queries, Lazy Loading, Change Tracking, and Caching. + +For more resources, visit the following link: + +- [ORM Framework](https://www.h2kinfosys.com/blog/orm-framework/) +- [What are Frameworks in ORM](https://www.killerphp.com/articles/what-are-orm-frameworks/) +- [Essentials of ORM Framework](https://medium.com/@mikependon/the-essentials-of-orm-framework-in-your-software-development-837131efd91b) +- [ORM Frameworks – What is an Object-Relational Mapping Framework](https://onlinecode.org/what-are-orm-frameworks/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/104-orm/100-entity-framework-core/101-codefirst-migrations.md b/src/roadmaps/aspnet-core/content/104-orm/100-entity-framework-core/101-codefirst-migrations.md index e05cff14b..224c5e4ef 100644 --- a/src/roadmaps/aspnet-core/content/104-orm/100-entity-framework-core/101-codefirst-migrations.md +++ b/src/roadmaps/aspnet-core/content/104-orm/100-entity-framework-core/101-codefirst-migrations.md @@ -7,3 +7,5 @@ To use Code First Migrations, you need to enable it in your Entity Framework app Once Migrations is enabled, you can use the Package Manager Console to add a new migration to your application. This will generate a class that contains the necessary SQL commands to update the database schema. You can then use the Update-Database command to apply the migration to the database. - [What is a Code First Migration?](https://www.entityframeworktutorial.net/code-first/what-is-code-first.aspx) +- [Example for Code First Migrations](https://learn.microsoft.com/en-us/ef/ef6/modeling/code-first/migrations/) +- [Code First Migrations in Entity Framework](https://www.c-sharpcorner.com/UploadFile/26b237/code-first-migrations-in-entity-framework/) diff --git a/src/roadmaps/aspnet-core/content/104-orm/100-entity-framework-core/102-change-tracker-api.md b/src/roadmaps/aspnet-core/content/104-orm/100-entity-framework-core/102-change-tracker-api.md index 269fbca83..717bd291a 100644 --- a/src/roadmaps/aspnet-core/content/104-orm/100-entity-framework-core/102-change-tracker-api.md +++ b/src/roadmaps/aspnet-core/content/104-orm/100-entity-framework-core/102-change-tracker-api.md @@ -1 +1,12 @@ -# Change tracker api \ No newline at end of file +# Change Tracker API + +The Change Tracker API is a feature of ORM (Object-Relational Mapping) frameworks, such as Entity Framework Core, that allows developers to track changes to entities and automatically persist them to the database. + +The Change Tracker API is typically exposed through the context class, which is the main class that manages the connection to the database and provides access to the entities. + +When an entity is retrieved from the database, the Change Tracker API marks it as "unchanged". When a property of the entity is modified, the Change Tracker API marks the entity as "modified". And when a new entity is added to the context, the Change Tracker API marks it as "added". +For more resources, visit the following links: + +- [Change Tracking in EF Core](https://learn.microsoft.com/en-us/ef/core/change-tracking/) +- [Intro to Change Tracking](https://www.oreilly.com/library/view/programming-entity-framework/9781449331825/ch05.html) +- [ChangeTracker in Entity Framework Core](https://www.entityframeworktutorial.net/efcore/changetracker-in-ef-core.aspxs) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/104-orm/100-entity-framework-core/103-lazy-eager-explicit-loading.md b/src/roadmaps/aspnet-core/content/104-orm/100-entity-framework-core/103-lazy-eager-explicit-loading.md index 5bbe4d300..626614f4c 100644 --- a/src/roadmaps/aspnet-core/content/104-orm/100-entity-framework-core/103-lazy-eager-explicit-loading.md +++ b/src/roadmaps/aspnet-core/content/104-orm/100-entity-framework-core/103-lazy-eager-explicit-loading.md @@ -1 +1,15 @@ -# Lazy eager explicit loading \ No newline at end of file +# Lazy Eager Explicit Loading + +## Eager Loading + +Eager Loading helps you to load all your needed entities at once; i.e., all your child entities will be loaded at single database call. This can be achieved, using the Include method, which returs the related entities as a part of the query and a large amount of data is loaded at once. + +## Lazy Loading + +It is the default behavior of an Entity Framework, where a child entity is loaded only when it is accessed for the first time. It simply delays the loading of the related data, until you ask for it. + +Visit the following links for more resources: + +- [Eager Loading & Lazy Loading](https://www.c-sharpcorner.com/article/eager-loading-lazy-loading-and-explicit-loading-in-entity-framework/) +- [Difference between Eager and Lazy Loading](https://stackoverflow.com/questions/31366236/lazy-loading-vs-eager-loading) +- [Working With Lazy & Eager Loading in Entity Framework](https://dzone.com/articles/working-with-lazy-loading-and-eager-loading-in-ent) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/104-orm/100-entity-framework-core/index.md b/src/roadmaps/aspnet-core/content/104-orm/100-entity-framework-core/index.md index 16cddf046..54940df44 100644 --- a/src/roadmaps/aspnet-core/content/104-orm/100-entity-framework-core/index.md +++ b/src/roadmaps/aspnet-core/content/104-orm/100-entity-framework-core/index.md @@ -1 +1,9 @@ -# Entity framework core \ No newline at end of file +# Entity Framework Core + +Entity Framework Core (EF Core) is an open-source Object-Relational Mapping (ORM) framework for .NET. It is a lightweight, cross-platform version of Entity Framework, the ORM framework that was part of the .NET Framework. EF Core allows developers to work with relational data using domain-specific objects, eliminating the need to write raw SQL statements. Instead, EF Core provides a set of APIs that can be used to interact with a database, providing a simple and efficient way to perform common database operations such as querying, inserting, updating, and deleting data. + +For more information, visit the following links: + +- [Example of Entity Framework Core](https://learn.microsoft.com/en-us/ef/core/) +- [Entity Framework Core Documentation](https://learn.microsoft.com/en-us/ef/) +- [What are the Basics of Entity Framework Core?](https://www.jetbrains.com/dotnet/guide/tutorials/basics/entity-framework-core/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/104-orm/102-repodb.md b/src/roadmaps/aspnet-core/content/104-orm/102-repodb.md index a5714fb9f..b88700c42 100644 --- a/src/roadmaps/aspnet-core/content/104-orm/102-repodb.md +++ b/src/roadmaps/aspnet-core/content/104-orm/102-repodb.md @@ -1 +1,11 @@ -# Repodb \ No newline at end of file +# RepoDB + +RepoDB is an open-source ORM (Object-Relational Mapping) library for .NET that simplifies the process of working with databases. It is a lightweight, fast, and easy-to-use library that provides a simple and consistent API for performing common database operations such as querying, inserting, updating, and deleting data. + +RepoDb is built on top of ADO.NET, which is the native data access technology in .NET, and provides a higher-level abstraction on top of it. This allows RepoDb to take advantage of the performance and scalability of ADO.NET while providing a simpler and more convenient API for developers. + +For more information, visit the following links: + +- [Get Started with RepoDB](https://repodb.net/) +- [Complete Guide to RepoDB](https://medium.com/nerd-for-tech/everything-you-need-to-know-about-repodb-23cd4b9939c1) +- [Why Choose RepoDB?](https://blog.devgenius.io/why-choose-repodb-orm-over-dapper-da87432c7830) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/104-orm/103-nhibernate.md b/src/roadmaps/aspnet-core/content/104-orm/103-nhibernate.md index 48efc75fb..13f395893 100644 --- a/src/roadmaps/aspnet-core/content/104-orm/103-nhibernate.md +++ b/src/roadmaps/aspnet-core/content/104-orm/103-nhibernate.md @@ -1 +1,11 @@ -# Nhibernate \ No newline at end of file +# NHibernate + +NHibernate is an open-source Object-Relational Mapping (ORM) framework for .NET. It is a powerful and flexible framework that can greatly simplify working with relational data in .NET. NHibernate is similar to other ORM frameworks such as Entity Framework and RepoDb in that it provides a higher-level abstraction on top of the underlying data access technology (ADO.NET in this case) and allows developers to work with data using domain-specific objects, eliminating the need to write raw SQL statements. + +NHibernate uses the concept of "mapping files" which are XML files that define how the classes in the application map to the tables and columns in the database. These mapping files are used to create a conceptual model of the data in the form of classes, and then NHibernate uses this model to generate the SQL statements necessary to interact with the database. + +For more information, visit the following links: + +- [What is Nhibernate?](https://www.partech.nl/en/publications/2021/08/what-is-nhibernate-and-how-is-it-different-from-entity-framework) +- [NHibernate - ORM](https://www.tutorialspoint.com/nhibernate/nhibernate_orm.htm) +- [Get Started with NHibernate](https://nhibernate.info/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/104-orm/index.md b/src/roadmaps/aspnet-core/content/104-orm/index.md index 1f43f0936..7c35e018b 100644 --- a/src/roadmaps/aspnet-core/content/104-orm/index.md +++ b/src/roadmaps/aspnet-core/content/104-orm/index.md @@ -5,3 +5,5 @@ ORM stands for Object-Relational Mapping, and it is a technique that allows a de Visit the following resources to learn more: - [ORM (Object Relational Mapping)](https://www.telerik.com/blogs/dotnet-basics-orm-object-relational-mapping) +- [What is an ORM – The Meaning of Object Relational Mapping](https://www.freecodecamp.org/news/what-is-an-orm-the-meaning-of-object-relational-mapping-database-tools/) +- [Understanding Object-Relational Mapping: Pros, Cons](https://www.altexsoft.com/blog/object-relational-mapping/) diff --git a/src/roadmaps/aspnet-core/content/105-dependency-injection/100-scrutor.md b/src/roadmaps/aspnet-core/content/105-dependency-injection/100-scrutor.md index 837dead2f..5b8875bea 100644 --- a/src/roadmaps/aspnet-core/content/105-dependency-injection/100-scrutor.md +++ b/src/roadmaps/aspnet-core/content/105-dependency-injection/100-scrutor.md @@ -1 +1,10 @@ -# Scrutor \ No newline at end of file +# Scrutor + +Scrutor is an open-source library for .NET that extends the functionality of the built-in dependency injection framework in .NET Core. It provides a set of extension methods for the `IServiceCollection` interface, which can be used to register and configure services in a more convenient and flexible way. + +One of the main features of Scrutor is its ability to automatically scan assemblies for services and register them with the dependency injection container, allowing you to avoid having to manually register each service one by one. It also provides a fluent API that makes it easy to configure services, such as specifying the lifetime of a service, adding decorators, and more. + +For more information, visit the following resources: + +- [How to use Scrutor in ASP.Net Core?](https://www.infoworld.com/article/3321356/how-to-use-scrutor-in-aspnet-core.html) +- [Complete Guide to Scrutor](https://andrewlock.net/using-scrutor-to-automatically-register-your-services-with-the-asp-net-core-di-container/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/105-dependency-injection/101-di-containers/100-microsoft-extensions-dependency-injection.md b/src/roadmaps/aspnet-core/content/105-dependency-injection/101-di-containers/100-microsoft-extensions-dependency-injection.md index 9f33143c7..51542d085 100644 --- a/src/roadmaps/aspnet-core/content/105-dependency-injection/101-di-containers/100-microsoft-extensions-dependency-injection.md +++ b/src/roadmaps/aspnet-core/content/105-dependency-injection/101-di-containers/100-microsoft-extensions-dependency-injection.md @@ -1 +1,11 @@ -# Microsoft extensions dependency injection \ No newline at end of file +# Microsoft Extensions Dependency Injection + +Microsoft.Extensions.DependencyInjection is a dependency injection framework that is part of the Microsoft.Extensions.DependencyInjection NuGet package. It is used to create and manage instances of objects and their dependencies, and is particularly useful for implementing the Dependency Inversion Principle in .NET applications. + +The package provides a simple and consistent API for registering services and resolving dependencies, which can be used to configure and manage the lifetime of objects in an application. It also provides built-in support for various types of service lifetime, such as transient, singleton and scoped. + +For more information, visit the following links: + +- [Guide to Microsoft Extensions Dependency Injection](https://learn.microsoft.com/en-us/dotnet/api/microsoft.extensions.dependencyinjection?view=dotnet-plat-ext-7.0) +- [Exploring the Microsoft.Extensions.DependencyInjection](https://www.codeproject.com/Articles/5339241/Exploring-the-Microsoft-Extensions-DependencyInjec) +- [How to use Microsoft.Extensions.DependencyInjection](https://stackoverflow.com/questions/53825155/how-can-i-use-microsoft-extensions-dependencyinjection-in-an-net-core-console-a) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/105-dependency-injection/101-di-containers/101-auto-fac.md b/src/roadmaps/aspnet-core/content/105-dependency-injection/101-di-containers/101-auto-fac.md index 05af34b00..c2d06685a 100644 --- a/src/roadmaps/aspnet-core/content/105-dependency-injection/101-di-containers/101-auto-fac.md +++ b/src/roadmaps/aspnet-core/content/105-dependency-injection/101-di-containers/101-auto-fac.md @@ -1 +1,11 @@ -# Auto fac \ No newline at end of file +# Autofac + +Autofac is an open-source dependency injection framework for .NET. It is designed to make it easier to manage the dependencies of an application by automatically resolving and managing the lifetime of objects and their dependencies. + +Autofac uses a technique called "component registration" to define the objects and dependencies of an application. This is done by creating instances of the `ContainerBuilder` class and using its methods to register types, instances and factories. Then, the `Build()` method is called to create an instance of the `IContainer` interface, which can be used to resolve dependencies throughout the application. + +Visit the following resources for more information: + +- [Autofac’s Documentation](https://autofac.readthedocs.io/en/latest/) +- [Getting started with Autofac](https://autofac.org/) +- [Dependency Injection with Autofac](https://www.codeproject.com/Articles/25380/Dependency-Injection-with-Autofac) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/105-dependency-injection/101-di-containers/102-ninject.md b/src/roadmaps/aspnet-core/content/105-dependency-injection/101-di-containers/102-ninject.md index a0dbfeb71..c3a64f24a 100644 --- a/src/roadmaps/aspnet-core/content/105-dependency-injection/101-di-containers/102-ninject.md +++ b/src/roadmaps/aspnet-core/content/105-dependency-injection/101-di-containers/102-ninject.md @@ -1 +1,11 @@ -# Ninject \ No newline at end of file +# Ninject + +Ninject is an open-source dependency injection framework for .NET. It is designed to make it easier to manage the dependencies of an application by automatically resolving and managing the lifetime of objects and their dependencies. + +Ninject uses a technique called "binding" to define the objects and dependencies of an application. This is done by creating instances of the `StandardKernel` class and using its methods to register types, instances and factories. Then, the `Get()` method is called to resolve the dependencies throughout the application. + +For more information, visit the following resources: + +- [Intro to Ninject](http://www.ninject.org/) +- [What is Ninject and when do you use it?](https://stackoverflow.com/questions/17375234/what-is-ninject-and-when-do-you-use-it) +- [How to use NInject?](https://www.infoworld.com/article/3191648/how-to-implement-di-in-webapi-using-ninject.html) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/105-dependency-injection/101-di-containers/103-castle-windsor.md b/src/roadmaps/aspnet-core/content/105-dependency-injection/101-di-containers/103-castle-windsor.md index e210453ab..012d0ff8a 100644 --- a/src/roadmaps/aspnet-core/content/105-dependency-injection/101-di-containers/103-castle-windsor.md +++ b/src/roadmaps/aspnet-core/content/105-dependency-injection/101-di-containers/103-castle-windsor.md @@ -1 +1,11 @@ -# Castle windsor \ No newline at end of file +# Castle Windsor + +Castle Windsor is an open-source dependency injection framework for .NET. It is designed to make it easier to manage the dependencies of an application by automatically resolving and managing the lifetime of objects and their dependencies. + +Castle Windsor uses a technique called "registration" to define the objects and dependencies of an application. This is done by creating instances of the `WindsorContainer` class and using its methods to register types, instances and factories. Then, the `Resolve()` method is called to resolve the dependencies throughout the application. + +Visit the following links for more resources: + +- [Getting Started with Dependency Injection Using Castle Windsor](https://www.codementor.io/@copperstarconsulting/getting-started-with-dependency-injection-using-castle-windsor-4meqzcsvh) +- [What is Castle Windsor?](https://stackoverflow.com/questions/124871/what-is-castle-windsor-and-why-should-i-care) +- [Intro to Castle Windsor](http://www.castleproject.org/projects/windsor/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/105-dependency-injection/101-di-containers/104-simple-injector.md b/src/roadmaps/aspnet-core/content/105-dependency-injection/101-di-containers/104-simple-injector.md index 4d9af164e..9ccce1f4d 100644 --- a/src/roadmaps/aspnet-core/content/105-dependency-injection/101-di-containers/104-simple-injector.md +++ b/src/roadmaps/aspnet-core/content/105-dependency-injection/101-di-containers/104-simple-injector.md @@ -1 +1,11 @@ -# Simple injector \ No newline at end of file +# Simple Injector + +Simple Injector is an open-source dependency injection framework for .NET. It is designed to make it easy to manage the dependencies of an application by automatically resolving and managing the lifetime of objects and their dependencies. + +Simple Injector uses a technique called "registration" to define the objects and dependencies of an application. This is done by creating an instance of the `Container` class and using its methods to register types, instances and factories. Then, the `GetInstance()` method is called to resolve the dependencies throughout the application. + +For more information, visit the following resources: + +- [How to use Simple Injector?](https://www.infoworld.com/article/3636242/how-to-use-simple-injector-in-aspnet-core-mvc.html) +- [Simple Injector's Documentation](https://docs.simpleinjector.org/en/latest/) +- [Example of Dependency Injection Using Simple Injector](https://www.c-sharpcorner.com/UploadFile/4d9083/dependency-injection-using-simple-injector/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/105-dependency-injection/101-di-containers/index.md b/src/roadmaps/aspnet-core/content/105-dependency-injection/101-di-containers/index.md index 22e7c41f4..47ddea9c8 100644 --- a/src/roadmaps/aspnet-core/content/105-dependency-injection/101-di-containers/index.md +++ b/src/roadmaps/aspnet-core/content/105-dependency-injection/101-di-containers/index.md @@ -1 +1,11 @@ -# Di containers \ No newline at end of file +# DI Containers + +A dependency injection (DI) container is a software component that is responsible for managing the dependencies of an application. It is used to create and manage instances of objects and their dependencies, and is particularly useful for implementing the Dependency Inversion Principle in software development. + +A DI container typically consists of two main parts: a configuration API, which is used to register the types and their dependencies, and a resolution API, which is used to retrieve instances of the registered types. The DI container automatically resolves the dependencies of the objects it creates, and manages the lifetime of the objects and their dependencies. + +For more information, visit the following links: + +- [What is DI Container?](https://www.dotnettricks.com/learn/dependencyinjection/what-is-ioc-container-or-di-container) +- [Getting Started with DI Container](https://stackoverflow.com/questions/50718586/what-is-a-di-container) +- [How to Use DI Container?](https://learn.userfrosting.com/services/the-di-container) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/105-dependency-injection/102-life-cycles/100-scoped.md b/src/roadmaps/aspnet-core/content/105-dependency-injection/102-life-cycles/100-scoped.md index 020b94603..7620bb46f 100644 --- a/src/roadmaps/aspnet-core/content/105-dependency-injection/102-life-cycles/100-scoped.md +++ b/src/roadmaps/aspnet-core/content/105-dependency-injection/102-life-cycles/100-scoped.md @@ -1 +1,10 @@ -# Scoped \ No newline at end of file +# Scoped + +Scoped lifetime is a type of dependency injection that creates a new instance of an object for each unique request, but reuses the same instance for the same request. This means that if multiple components within the same request depend on the same service, they will all receive the same instance. However, if another request is made, a new instance of the service will be created for that request. + +Scoped lifetime is useful when you have services that are specific to a given request, such as a request-scoped database context. This allows you to have a separate and isolated instance of a service for each unique request, which can help to prevent cross-request contamination of data and improve performance. + +For more information, visit the following resources: + +- [Dependency Injection - What is Scope?](https://javaranch.com/journal/2008/10/dependency-injection-what-is-scope.html) +- [Effective Dependency Injection Scoping](https://medium.com/android-news/effective-dependency-injection-scoping-4bac813d4491) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/105-dependency-injection/102-life-cycles/101-transient.md b/src/roadmaps/aspnet-core/content/105-dependency-injection/102-life-cycles/101-transient.md index 8c06546cd..1bfa63f43 100644 --- a/src/roadmaps/aspnet-core/content/105-dependency-injection/102-life-cycles/101-transient.md +++ b/src/roadmaps/aspnet-core/content/105-dependency-injection/102-life-cycles/101-transient.md @@ -1 +1,11 @@ -# Transient \ No newline at end of file +# Transient + +Transient lifetime is a type of dependency injection that creates a new instance of an object each time it is requested. This means that if multiple components within the same request or across different requests depend on the same service, they will each receive a new instance of the service. + +Transient lifetime is useful when you have services that are stateless and do not need to maintain any data between requests, such as a service that performs a simple calculation or returns data from a database. + +For more information: + +- [What are Transient Dependencies?](https://blazor-university.com/dependency-injection/dependency-lifetimes-and-scopes/transient-dependencies/) +- [Dependency Injection Lifetime](https://www.tektutorialshub.com/asp-net-core/asp-net-core-dependency-injection-lifetime/) +- [Dependency Injection Explained with Transient](https://www.youtube.com/watch?v=NkTF_6IQPiY) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/105-dependency-injection/102-life-cycles/102-singleton.md b/src/roadmaps/aspnet-core/content/105-dependency-injection/102-life-cycles/102-singleton.md index d80f013d6..4148b2cc5 100644 --- a/src/roadmaps/aspnet-core/content/105-dependency-injection/102-life-cycles/102-singleton.md +++ b/src/roadmaps/aspnet-core/content/105-dependency-injection/102-life-cycles/102-singleton.md @@ -1 +1,11 @@ -# Singleton \ No newline at end of file +# Singleton + +Singleton lifetime is a type of dependency injection that creates a single instance of an object and reuses it throughout the lifetime of the application. This means that if multiple components within the same request or across different requests depend on the same service, they will all receive the same instance of the service. + +Singleton lifetime is useful when you have services that need to maintain state or shared data across requests, such as a service that caches data or maintains a connection to a resource. + +For more information: + +- [What are Singleton Dependencies?](https://blazor-university.com/dependency-injection/dependency-lifetimes-and-scopes/transient-dependencies/) +- [Dependency Injection Lifetime](https://www.tektutorialshub.com/asp-net-core/asp-net-core-dependency-injection-lifetime/) +- [Dependency Injection Explained with Singleton](https://www.youtube.com/watch?v=NkTF_6IQPiY) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/105-dependency-injection/102-life-cycles/index.md b/src/roadmaps/aspnet-core/content/105-dependency-injection/102-life-cycles/index.md index 63e8d903b..68b7d3c92 100644 --- a/src/roadmaps/aspnet-core/content/105-dependency-injection/102-life-cycles/index.md +++ b/src/roadmaps/aspnet-core/content/105-dependency-injection/102-life-cycles/index.md @@ -1 +1,15 @@ -# Life cycles \ No newline at end of file +# Life Cycles + +In ASP.NET, dependency injection (DI) lifecycles determine the lifetime of objects that are resolved through the DI container. There are several predefined lifecycle options in the `Microsoft.Extensions.DependencyInjection` library, including: + +- **Transient:** A new instance of the object is created every time it is requested. +- **Scoped:** A new instance of the object is created for each request within the same scope. +- **Singleton:** A single instance of the object is created and shared across the entire application. + +Additionally, you can also create a custom lifecycle by implementing the `Microsoft.Extensions.DependencyInjection.IServiceScopeFactory` interface + +For more resources, visit the following links: + + - [Complete Guide to Dependency Injection Lifecycles](https://www.youtube.com/watch?v=wA5bPsv2CLA) + - [What are Service Life Cyles in ASP.NET Core?](https://endjin.com/blog/2022/09/service-lifetimes-in-aspnet-core) + - [Learn Service Lifetimes in .NET Core](https://henriquesd.medium.com/dependency-injection-and-service-lifetimes-in-net-core-ab9189349420) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/105-dependency-injection/index.md b/src/roadmaps/aspnet-core/content/105-dependency-injection/index.md index 450bde1c7..33a2d7255 100644 --- a/src/roadmaps/aspnet-core/content/105-dependency-injection/index.md +++ b/src/roadmaps/aspnet-core/content/105-dependency-injection/index.md @@ -1 +1,12 @@ -# Dependency injection \ No newline at end of file +# Dependency Injection + +Dependency injection (DI) is a software design pattern that is used to manage the dependencies of an application. It is a technique that allows developers to write loosely-coupled code, by separating the responsibility of creating and managing objects from the objects themselves. + +In a typical implementation, a DI container is used to manage the dependencies of the application. The container is responsible for creating and managing instances of objects and their dependencies, and providing them to other objects as needed. + +There are different types of dependency injection, such as Constructor injection, Property injection, and Method injection, which can be used depending on the requirement and the design of the application. +Visit the following links for more resources: + +- [What is Dependency Injection?](https://stackoverflow.com/questions/130794/what-is-dependency-injection) +- [Dependency Injection, It's Definition & principles](https://www.growin.com/blog/what-is-dependency-injection/) +- [Intro to Dependency Injections](https://www.freecodecamp.org/news/a-quick-intro-to-dependency-injection-what-it-is-and-when-to-use-it-7578c84fa88f/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/106-caching/100-memory-cache.md b/src/roadmaps/aspnet-core/content/106-caching/100-memory-cache.md index 972b5f6d5..51d5cc03f 100644 --- a/src/roadmaps/aspnet-core/content/106-caching/100-memory-cache.md +++ b/src/roadmaps/aspnet-core/content/106-caching/100-memory-cache.md @@ -1,8 +1,9 @@ -# Memory cache +# Memory Cache Memory caching (often simply referred to as caching) is a technique in which computer applications temporarily store data in a computer’s main memory (i.e., random access memory, or RAM) to enable fast retrievals of that data. The RAM that is used for the temporary storage is known as the cache. Visit the following resources to learn more: - [Cache in-memory in ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/performance/caching/memory?view=aspnetcore-7.0) -- [Intro to In-Memory Caching in C#](https://www.youtube.com/watch?v=2jj2wH60QuE) \ No newline at end of file +- [Intro to In-Memory Caching in C#](https://www.youtube.com/watch?v=2jj2wH60QuE) +- [What is Memory Caching?](https://hazelcast.com/glossary/memory-caching/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/106-caching/101-entity-framework-cache.md b/src/roadmaps/aspnet-core/content/106-caching/101-entity-framework-cache.md index 805ef8da0..2bf4abcc9 100644 --- a/src/roadmaps/aspnet-core/content/106-caching/101-entity-framework-cache.md +++ b/src/roadmaps/aspnet-core/content/106-caching/101-entity-framework-cache.md @@ -1,4 +1,4 @@ -# Entity framework cache +# Entity Framework Cache Entity Framework Core(EF Core) is a cross-platform version of the popular Entity Framework data access technology that is lightweight, extendable, and open source. It can be used as an object-relational mapper (O/RM), which can Allow .NET developers to use .NET objects to interact with a database and Removes the requirement for most of the data-access code that is generally required. @@ -8,4 +8,5 @@ However, during peak loads, high-transaction .NET Core apps using EF Core have p Visit the following resources to learn more: - [Entity Framework 2nd Level Cache](https://www.gridgain.com/docs/latest/developers-guide/net-specific/net-entity-framework-cache) -- [What is Entity Framework](https://www.youtube.com/watch?v=Z7713GBhi4k) \ No newline at end of file +- [What is Entity Framework?](https://www.youtube.com/watch?v=Z7713GBhi4k) +- [Caching In Entity Framework](https://www.c-sharpcorner.com/article/caching-in-entity-framework-ef-core-using-ncache/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/106-caching/102-distributed-cache/100-memcached.md b/src/roadmaps/aspnet-core/content/106-caching/102-distributed-cache/100-memcached.md index 0a69b0a82..3dae74ed9 100644 --- a/src/roadmaps/aspnet-core/content/106-caching/102-distributed-cache/100-memcached.md +++ b/src/roadmaps/aspnet-core/content/106-caching/102-distributed-cache/100-memcached.md @@ -5,4 +5,5 @@ Memcached is an open-source, high-performance, distributed memory object caching Visit the following resources to learn more: - [Using Memcached as Distributed Cache in .NET Core](https://dotnetcorecentral.com/blog/using-memcached-as-distributed-cache-in-net-core/) -- [Memcached as Distributed Cache in .Net Core Application](https://www.youtube.com/watch?v=yQ8Kwx9M_Hg) \ No newline at end of file +- [Memcached as Distributed Cache in .Net Core Application](https://www.youtube.com/watch?v=yQ8Kwx9M_Hg) +- [Intro to Memcached](https://memcached.org/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/106-caching/102-distributed-cache/101-redis/easy-caching.md b/src/roadmaps/aspnet-core/content/106-caching/102-distributed-cache/101-redis/easy-caching.md index f0bcf6c61..6635d94b2 100644 --- a/src/roadmaps/aspnet-core/content/106-caching/102-distributed-cache/101-redis/easy-caching.md +++ b/src/roadmaps/aspnet-core/content/106-caching/102-distributed-cache/101-redis/easy-caching.md @@ -1,4 +1,4 @@ -# Easy caching +# Easy Caching EasyCaching is an open-source caching library that contains basic usages and some advanced usages of caching which can help us to handle caching more easily. diff --git a/src/roadmaps/aspnet-core/content/106-caching/102-distributed-cache/101-redis/index.md b/src/roadmaps/aspnet-core/content/106-caching/102-distributed-cache/101-redis/index.md index 512d1054b..79523da68 100644 --- a/src/roadmaps/aspnet-core/content/106-caching/102-distributed-cache/101-redis/index.md +++ b/src/roadmaps/aspnet-core/content/106-caching/102-distributed-cache/101-redis/index.md @@ -1,6 +1,6 @@ # Redis -Redis is an open source (BSD licensed), in-memory data structure store used as a database, cache, message broker, and streaming engine. Redis provides data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes, and streams. Redis has built-in replication, Lua scripting, LRU eviction, transactions, and various levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster. +Redis is an open source (BSD licensed) which is an in-memory data structure store used as a database, cache, message broker, and streaming engine. Redis provides data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes, and streams. Redis has built-in replication, Lua scripting, LRU eviction, transactions, and various levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster. You can use Redis in many programming languages. It is such a popular and widely used cache that Microsoft Azure also provides its cloud-based version with the name Azure Cache for Redis. diff --git a/src/roadmaps/aspnet-core/content/106-caching/102-distributed-cache/101-redis/stackexchange-redis.md b/src/roadmaps/aspnet-core/content/106-caching/102-distributed-cache/101-redis/stackexchange-redis.md index e714045f7..b815447f9 100644 --- a/src/roadmaps/aspnet-core/content/106-caching/102-distributed-cache/101-redis/stackexchange-redis.md +++ b/src/roadmaps/aspnet-core/content/106-caching/102-distributed-cache/101-redis/stackexchange-redis.md @@ -1,8 +1,9 @@ -# Stackexchange redis +# Stackexchange Redis StackExchange.Redis is a high performance general purpose redis client for .NET languages (C#, etc.). It is the logical successor to BookSleeve, and is the client developed-by (and used-by) Stack Exchange for busy sites like Stack Overflow. Visit the following resources to learn more: - [Using StackExchange.Redis with .NET](https://docs.redis.com/latest/rs/references/client_references/client_csharp/) -- [Introduction to StackExchange.Redis](https://www.youtube.com/watch?v=rsXvpCHdldg) \ No newline at end of file +- [Introduction to StackExchange.Redis](https://www.youtube.com/watch?v=rsXvpCHdldg) +- [Getting Started with Stackexchange Redis](https://stackexchange.github.io/StackExchange.Redis/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/106-caching/102-distributed-cache/index.md b/src/roadmaps/aspnet-core/content/106-caching/102-distributed-cache/index.md index 8798e6d6d..9dc3ae491 100644 --- a/src/roadmaps/aspnet-core/content/106-caching/102-distributed-cache/index.md +++ b/src/roadmaps/aspnet-core/content/106-caching/102-distributed-cache/index.md @@ -1,8 +1,9 @@ -# Distributed cache +# Distributed Cache A distributed cache is a cache shared by multiple app servers, typically maintained as an external service to the app servers that access it. A distributed cache can improve the performance and scalability of an ASP.NET Core app, especially when the app is hosted by a cloud service or a server farm. Visit the following resources to learn more: - [Distributed caching in ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/performance/caching/distributed?view=aspnetcore-7.0) -- [Distributed Caching In ASP.NET Core With Redis](https://www.youtube.com/watch?v=Tt5zIKVMMbs) \ No newline at end of file +- [Distributed Caching In ASP.NET Core With Redis](https://www.youtube.com/watch?v=Tt5zIKVMMbs) +- [What is a Distributed Cached?](https://hazelcast.com/glossary/distributed-cache/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/106-caching/index.md b/src/roadmaps/aspnet-core/content/106-caching/index.md index fa59b9c0c..03c0911fb 100644 --- a/src/roadmaps/aspnet-core/content/106-caching/index.md +++ b/src/roadmaps/aspnet-core/content/106-caching/index.md @@ -5,4 +5,5 @@ Caching is a technique of storing frequently used data or information in a local Visit the following resources to learn more: - [Caching in ASP.Net](https://www.c-sharpcorner.com/UploadFile/2072a9/caching-in-Asp-Net/) -- [Overview of caching in ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/performance/caching/overview?view=aspnetcore-7.0) \ No newline at end of file +- [Overview of caching in ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/performance/caching/overview?view=aspnetcore-7.0) +- [Intro to Data Caching in ASP.NET](https://www.tutorialspoint.com/asp.net/asp.net_data_caching.htm) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/107-databases/100-search-engines/100-elasticsearch.md b/src/roadmaps/aspnet-core/content/107-databases/100-search-engines/100-elasticsearch.md index 1c01a877a..0427de7ef 100644 --- a/src/roadmaps/aspnet-core/content/107-databases/100-search-engines/100-elasticsearch.md +++ b/src/roadmaps/aspnet-core/content/107-databases/100-search-engines/100-elasticsearch.md @@ -1 +1,10 @@ -# Elasticsearch \ No newline at end of file +# Elasticsearch + +Elasticsearch is a distributed, open-source search and analytics engine that can be used to index, search, and analyze large volumes of data quickly and in near real-time. It is built on top of the Apache Lucene library and can be used to perform full-text search, faceted search, and geospatial search, among other things. + +In an ASP.NET application, Elasticsearch can be integrated as a search engine to provide advanced search functionality to the application. There are several libraries available for integrating Elasticsearch with an ASP.NET application, such as Nest and Elasticsearch.Net. These libraries provide a .NET client for Elasticsearch, which can be used to interact with the Elasticsearch engine from within an ASP.NET application. +To learn more, visit the following resources: + +- [Elasticsearch in ASP.NET Core](https://code-maze.com/elasticsearch-aspnet-core/) +- [An Elasticsearch Tutorial for .NET Developers](https://www.toptal.com/dot-net/elasticsearch-dot-net-developers) +- [How to integrate ElasticSearch in ASP.NET?](https://blexin.com/en/blog-en/how-to-integrate-elasticsearch-in-asp-net-core/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/107-databases/100-search-engines/101-solr.md b/src/roadmaps/aspnet-core/content/107-databases/100-search-engines/101-solr.md index 54c3caa94..e5da88724 100644 --- a/src/roadmaps/aspnet-core/content/107-databases/100-search-engines/101-solr.md +++ b/src/roadmaps/aspnet-core/content/107-databases/100-search-engines/101-solr.md @@ -1 +1,11 @@ -# Solr \ No newline at end of file +# Solr + +Apache Solr is a search engine platform based on the Apache Lucene library. It is a standalone enterprise search server that provides a REST-like API for indexing, searching, and updating documents. Solr can be used to perform full-text search, faceted search, and geospatial search, among other things. + +Solr can be useful in ASP.NET application to provide advanced search capabilities, such as full-text search, faceted search and geospatial search, which can be useful in e-commerce, content management systems, and logging and monitoring applications. It is known for its scalability, performance and its ability to handle large volumes of data with complex queries. + +For more information, visit the following resources: + +- [Guide to Solr in ASP.NET](https://www.codeproject.com/Tips/480091/Using-Solr-for-Search-with-NET-Csharp) +- [How to get Started with Solr.NET?](https://stackoverflow.com/questions/5646615/how-to-get-started-with-solr-net) +- [Integrate Solr Instance With .NET Core](https://stacksecrets.com/dot-net-core/integrate-solr-instance-with-net-core) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/107-databases/100-search-engines/102-sphinx.md b/src/roadmaps/aspnet-core/content/107-databases/100-search-engines/102-sphinx.md index 470f2a5a7..634593785 100644 --- a/src/roadmaps/aspnet-core/content/107-databases/100-search-engines/102-sphinx.md +++ b/src/roadmaps/aspnet-core/content/107-databases/100-search-engines/102-sphinx.md @@ -1 +1,11 @@ -# Sphinx \ No newline at end of file +# Sphinx + +Sphinx is an open-source full-text search engine that can be used to index, search and analyze large volumes of data quickly and in near real-time. It is designed to handle high-traffic websites and large data sets and can be used for full-text search, faceted search, and geospatial search. + +In an ASP.NET application, Sphinx can be integrated as a search engine to provide advanced search functionality to the application. There are several libraries available for integrating Sphinx with an ASP.NET application, such as SphinxQL.NET and SphinxClient. These libraries provide a .NET client for Sphinx, which can be used to interact with the Sphinx engine from within an ASP.NET application. + +For more information, visit the following links: + +- [Overview of Sphinx in ASP.NET](https://www.sphinxconnector.net/) +- [Intro to Sphinx](http://sphinxsearch.com/forum/view.html?id=3609) +- [Documentation of Sphinx in ASP.NET](https://www.ericholscher.com/blog/2016/jul/1/sphinx-and-rtd-for-writers/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/107-databases/100-search-engines/index.md b/src/roadmaps/aspnet-core/content/107-databases/100-search-engines/index.md index bc600ec99..30d67ab4b 100644 --- a/src/roadmaps/aspnet-core/content/107-databases/100-search-engines/index.md +++ b/src/roadmaps/aspnet-core/content/107-databases/100-search-engines/index.md @@ -1 +1,11 @@ -# Search engines \ No newline at end of file +# Search Engines + +A search engine in an ASP.NET application is a tool or module that allows users to search for and retrieve specific information from the application's database or other data sources. Search engines can be used to perform full-text search, faceted search, and geospatial search, among other things. + +Search engines can be integrated into an ASP.NET application by using libraries or frameworks that provide a .NET client for interacting with the search engine. Some popular search engines that can be integrated with an ASP.NET application include Elasticsearch, Apache Solr, Sphinx, and Microsoft Azure Search. + +To learn more, visit the following resources: + +- [Search Engine Optimization with ASP.NET](https://learn.microsoft.com/en-us/archive/msdn-magazine/2009/september/search-engine-optimization-with-asp-net-4-0-visual-studio-2010-and-iis7) +- [Creating an ASP.NET Search Engine](https://www.developerfusion.com/article/4389/create-a-site-search-engine-in-aspnet/) +- [Simple Search Engine in ASP.NET](https://www.youtube.com/watch?v=KTkubhS-u50) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/107-databases/101-cloud/100-dynamodb.md b/src/roadmaps/aspnet-core/content/107-databases/101-cloud/100-dynamodb.md index b08ce7569..41be0b793 100644 --- a/src/roadmaps/aspnet-core/content/107-databases/101-cloud/100-dynamodb.md +++ b/src/roadmaps/aspnet-core/content/107-databases/101-cloud/100-dynamodb.md @@ -1 +1,10 @@ -# Dynamodb \ No newline at end of file +# DynamoDB + +Amazon DynamoDB is a fully-managed, NoSQL database service provided by Amazon Web Services (AWS) that can be used to store and retrieve large amounts of data. It is a highly-scalable, fast, and flexible NoSQL database service that supports both document and key-value data models. + +DynamoDB is designed to handle extremely high levels of read and write throughput, and it automatically scales to accommodate the traffic of an application. It also provides built-in support for data replication, allowing data to be automatically spread across multiple availability zones for increased durability and availability. + +For more information, visit the following links: + +- [Getting started with DynamoDB](https://aws.amazon.com/dynamodb/) +- [Introduction to DynamoDB](https://cloudacademy.com/lab/introduction-dynamodb/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/107-databases/101-cloud/101-cosmosdb.md b/src/roadmaps/aspnet-core/content/107-databases/101-cloud/101-cosmosdb.md index 84cc06469..e9f1fa700 100644 --- a/src/roadmaps/aspnet-core/content/107-databases/101-cloud/101-cosmosdb.md +++ b/src/roadmaps/aspnet-core/content/107-databases/101-cloud/101-cosmosdb.md @@ -1 +1,9 @@ -# Cosmosdb \ No newline at end of file +# CosmosDB + + + +For more information, visit the following resources: + +- [What is Azure Cosmos DB?](https://intellipaat.com/blog/what-is-azure-cosmos-db/) +- [Cosmos DB, Its Features, Benefits, Pricing etc](https://stackify.com/what-is-azure-cosmos-db/) +- [Getting started with Cosmos DB](https://acloudguru.com/blog/engineering/azure-cosmos-db-lets-you-focus-on-the-good-stuff) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/107-databases/101-cloud/index.md b/src/roadmaps/aspnet-core/content/107-databases/101-cloud/index.md index bd82553bb..c9cc43cc4 100644 --- a/src/roadmaps/aspnet-core/content/107-databases/101-cloud/index.md +++ b/src/roadmaps/aspnet-core/content/107-databases/101-cloud/index.md @@ -1 +1,11 @@ -# Cloud \ No newline at end of file +# Cloud + +Cloud in the context of ASP.NET refers to the use of cloud computing services to host and run ASP.NET web applications. Cloud computing is a model of delivering computing resources (such as servers, storage, and applications) over the internet on a pay-per-use basis. + +In the case of ASP.NET, cloud providers such as Microsoft Azure, Amazon Web Services (AWS), and Google Cloud Platform (GCP) offer services specifically tailored to host and run ASP.NET web applications. These services include virtual machines, web roles, and serverless computing, which can be used to deploy and run ASP.NET web applications in the cloud. + +To learn more, visit the following links: + +- [Building a .NET Cloud Application](https://www.c-sharpcorner.com/article/building-the-net-cloud-application/) +- [How to make a .NET Cloud Application?](https://dotnet.microsoft.com/en-us/apps/cloud) +- [Getting started with Cloud](https://aws.amazon.com/free/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/107-databases/102-relational/100-sql-server.md b/src/roadmaps/aspnet-core/content/107-databases/102-relational/100-sql-server.md index 28c71d721..8358aaad0 100644 --- a/src/roadmaps/aspnet-core/content/107-databases/102-relational/100-sql-server.md +++ b/src/roadmaps/aspnet-core/content/107-databases/102-relational/100-sql-server.md @@ -6,5 +6,5 @@ Visit the following resources to learn more: - [MS SQL website](https://www.microsoft.com/en-ca/sql-server/) - [Tutorials for SQL Server](https://docs.microsoft.com/en-us/sql/sql-server/tutorials-for-sql-server-2016?view=sql-server-ver15) -- [SQL Tutorial](https://www.w3schools.com/sql/default.asp) +- [Getting started with SQL](https://www.w3schools.com/sql/default.asp) - [SQL Server tutorial for beginners](https://www.youtube.com/watch?v=-EPMOaV7h_Q) diff --git a/src/roadmaps/aspnet-core/content/107-databases/102-relational/101-postgresql.md b/src/roadmaps/aspnet-core/content/107-databases/102-relational/101-postgresql.md index a6798acec..e9c1e56f7 100644 --- a/src/roadmaps/aspnet-core/content/107-databases/102-relational/101-postgresql.md +++ b/src/roadmaps/aspnet-core/content/107-databases/102-relational/101-postgresql.md @@ -1 +1,11 @@ -# Postgresql \ No newline at end of file +# PostgreSQL + +PostgreSQL, often simply "Postgres", is an open-source relational database management system (RDBMS) emphasizing extensibility and SQL compliance. It was originally developed at the University of California, Berkeley in the 1980s and is now maintained by the PostgreSQL Global Development Group. + +Postgres is known for its robustness and reliability, as well as its support for advanced features such as concurrency control, full-text search, and geospatial data. It is also highly extensible, allowing developers to create custom functions and operators in a variety of programming languages, including C, Python, and JavaScript. + +For more information, visit the following resources: + +- [Postgresql - Open Source Relational Database](https://www.postgresql.org/) +- [What is Postgresql?](postgresqltutorial.com/postgresql-getting-started/what-is-postgresql/) +- [Introduction, Advantages & Disadvantages of PostgreSQL](https://guru99.com/introduction-postgresql.htmlPostgresql) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/107-databases/102-relational/102-mariadb.md b/src/roadmaps/aspnet-core/content/107-databases/102-relational/102-mariadb.md index 2efaf2286..03398f293 100644 --- a/src/roadmaps/aspnet-core/content/107-databases/102-relational/102-mariadb.md +++ b/src/roadmaps/aspnet-core/content/107-databases/102-relational/102-mariadb.md @@ -1 +1,11 @@ -# Mariadb \ No newline at end of file +# MariaDB + +MariaDB is an open-source relational database management system (RDBMS) that is a fork of the MySQL database. It is fully compatible with MySQL, but it also includes additional features and improvements. MariaDB is developed and maintained by the MariaDB Corporation and the MariaDB community, and it is widely used as a replacement for MySQL in many web and enterprise applications. + +In an ASP.NET application, MariaDB can be used as the underlying database for storing and retrieving data. There are several libraries available for integrating MariaDB with an ASP.NET application, such as MariaDB.Data, MySql.Data, and Dapper. These libraries provide a .NET client for MariaDB, which can be used to interact with the MariaDB database from within an ASP.NET application. + +To learn more, visit the following resources: + +- [How to use MariaDB in ASP.NET?](https://blog.georgekosmidis.net/using-mariadb-in-an-aspnet-core-api-with-entity-framework-core.html) +- [Working with MariaDB and .Net](https://mariadb.com/kb/en/mariadb-and-net/) +- [Building an application with ASP.NET & MariaDB](https://medium.com/@BMatt92656920/building-a-web-application-with-asp-net-core-mvc-entity-framework-core-mariadb-bootstrap-a2bf0927d20e) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/107-databases/102-relational/103-mysql.md b/src/roadmaps/aspnet-core/content/107-databases/102-relational/103-mysql.md index 39b7062b3..8fd83c816 100644 --- a/src/roadmaps/aspnet-core/content/107-databases/102-relational/103-mysql.md +++ b/src/roadmaps/aspnet-core/content/107-databases/102-relational/103-mysql.md @@ -1 +1,11 @@ -# Mysql \ No newline at end of file +# MySQL + +MySQL is an open-source relational database management system (RDBMS) that is widely used in web and enterprise applications. It is developed, distributed, and supported by Oracle Corporation. MySQL provides a rich set of features to handle high-performance, high-availability, and high-scalability requirements of modern web applications. + +In an ASP.NET application, MySQL can be used as the underlying database for storing and retrieving data. There are several libraries available for integrating MySQL with an ASP.NET application, such as MySql.Data, Dapper and EF Core. These libraries provide a .NET client for MySQL, which can be used to interact with the MySQL database from within an ASP.NET application. + +For more information, visit the following links: + +- [Getting started with ASP.NET Core and MySQL](https://dev.mysql.com/blog-archive/getting-started-with-asp-net-core-and-mysql-connectornet/) +- [MySql database connectivity with ASP.Net](https://www.c-sharpcorner.com/UploadFile/brij_mcn/mysql-database-connectivity-with-Asp-Net/) +- [How To Connect MySQL With ASP.NET](https://www.youtube.com/watch?v=g5rVd1JGbIg) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/107-databases/102-relational/index.md b/src/roadmaps/aspnet-core/content/107-databases/102-relational/index.md index e6a7c3178..51893095a 100644 --- a/src/roadmaps/aspnet-core/content/107-databases/102-relational/index.md +++ b/src/roadmaps/aspnet-core/content/107-databases/102-relational/index.md @@ -1 +1,10 @@ -# Relational \ No newline at end of file +# Relational + +A relational database is a type of database that stores data in a structured format, using tables and relationships between them. It is based on the relational model, which organizes data into one or more tables, with each table consisting of a set of rows and columns. + +The main feature of a relational database is the ability to establish relationships between tables, using a feature called a foreign key. A foreign key is a column or set of columns in one table that is used to link to the primary key of another table. This allows data to be spread across multiple tables, but still be connected and easily accessed through these relationships. + +For more information, visit the following links: + +- [Introduction to Working with Database in ASP.NET](https://learn.microsoft.com/en-us/aspnet/web-pages/overview/data/5-working-with-data) +- [Implement a Relational Database with ASP.NET](https://openclassrooms.com/en/courses/5671811-implement-a-relational-database-with-asp-net-core) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/107-databases/103-nosql/100-redis.md b/src/roadmaps/aspnet-core/content/107-databases/103-nosql/100-redis.md index 0de4bc736..3c5d3194e 100644 --- a/src/roadmaps/aspnet-core/content/107-databases/103-nosql/100-redis.md +++ b/src/roadmaps/aspnet-core/content/107-databases/103-nosql/100-redis.md @@ -1 +1,11 @@ -# Redis \ No newline at end of file +# Redis + +Redis (Remote Dictionary Server) is an open-source, in-memory data structure store that can be used as a database, cache, and message broker. It supports various data structures such as strings, hashes, lists, sets, and sorted sets. + +In an ASP.NET application, Redis can be used as a caching mechanism to store frequently accessed data in memory, rather than reading it from a slower storage system like a traditional relational database. This can greatly improve the performance of an application by reducing the number of database queries and the amount of data that needs to be read from disk. + +To learn more, visit the following resources: + +- [Redis OM .NET](https://redis.io/docs/stack/get-started/tutorials/stack-dotnet/) +- [Caching in ASP.NET using Redis](https://www.codemag.com/Article/2205091/Distributed-Caching-in-ASP.NET-Core-6-Using-Redis-in-Azure) +- [Getting started in Redis with .NET](https://docs.redis.com/latest/rs/references/client_references/client_csharp/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/107-databases/103-nosql/101-mongodb.md b/src/roadmaps/aspnet-core/content/107-databases/103-nosql/101-mongodb.md index 090d1d3ea..5056f374e 100644 --- a/src/roadmaps/aspnet-core/content/107-databases/103-nosql/101-mongodb.md +++ b/src/roadmaps/aspnet-core/content/107-databases/103-nosql/101-mongodb.md @@ -1 +1,10 @@ -# Mongodb \ No newline at end of file +# MongoDB + +MongoDB is a cross-platform, open-source, NoSQL document-oriented database that can be used to store and retrieve large amounts of data. It uses a flexible, JSON-like data structure called BSON (binary JSON) and it is designed to handle large amounts of unstructured data. + +In an ASP.NET application, MongoDB can be used as a data store to persist and retrieve application data. There are several libraries available for integrating MongoDB with an ASP.NET application, such as MongoDB.Driver and C# MongoDB Driver. These libraries provide a .NET client for MongoDB, which can be used to interact with the MongoDB server from within an ASP.NET application. + +To learn more, visit the following resources: + +- [Use MongoDB in Your C# ASP.NET Apps](https://developer.okta.com/blog/2020/01/02/mongodb-csharp-aspnet-datastore) +- [MongoDB With ASP.NET Core Web API](https://www.c-sharpcorner.com/article/using-mongodb-with-asp-net-core-web-api/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/107-databases/103-nosql/102-litedb.md b/src/roadmaps/aspnet-core/content/107-databases/103-nosql/102-litedb.md index f4298759b..8ea7c598c 100644 --- a/src/roadmaps/aspnet-core/content/107-databases/103-nosql/102-litedb.md +++ b/src/roadmaps/aspnet-core/content/107-databases/103-nosql/102-litedb.md @@ -1 +1,10 @@ -# Litedb \ No newline at end of file +# LiteDB + +LiteDB is a lightweight, open-source, NoSQL embedded document-oriented database engine for .NET and .NET Core. It uses a file-based storage system, meaning that the entire database is stored in a single file on disk. It uses a similar syntax to MongoDB, but it is designed to be simple and easy to use, and it does not require a separate server or installation. + +LiteDB supports data types like string, int, decimal, DateTime, and also supports binary data and serialized objects. It also supports LINQ, transactions, indexes and collections. + +For more information, visit the following links: + +- [Getting started with LiteDB](https://www.litedb.org/) +- [Overview of LiteDB in ASP.NET](https://www.litedb.org/docs/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/107-databases/103-nosql/103-cassandra.md b/src/roadmaps/aspnet-core/content/107-databases/103-nosql/103-cassandra.md index fb6bc61fc..81cc88959 100644 --- a/src/roadmaps/aspnet-core/content/107-databases/103-nosql/103-cassandra.md +++ b/src/roadmaps/aspnet-core/content/107-databases/103-nosql/103-cassandra.md @@ -1 +1,11 @@ -# Cassandra \ No newline at end of file +# Cassandra + +Apache Cassandra is a free and open-source, NoSQL, distributed, wide-column store, and high-performance database management system designed to handle large amounts of data across many commodity servers, providing high availability with no single point of failure. It is designed to handle large amounts of data across many commodity servers, providing high availability with no single point of failure. + +Cassandra is a column-family store and it stores data in a structured format, using tables and columns. It is based on a data model that is similar to that of Google's Bigtable, and it provides a query language that is similar to SQL. + +For more information, visit the following links: + +- [Introduction to Cassandra](https://www.tutorialspoint.com/cassandra/cassandra_introduction.htm) +- [Overview of Cassandra in ASP.NET](https://www.spiceworks.com/tech/big-data/articles/what-is-cassandra/) +- [Introduction to Apache Cassandra](https://www.geeksforgeeks.org/introduction-to-apache-cassandra/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/107-databases/103-nosql/104-ravendb.md b/src/roadmaps/aspnet-core/content/107-databases/103-nosql/104-ravendb.md index b27209c6f..3ef1432ce 100644 --- a/src/roadmaps/aspnet-core/content/107-databases/103-nosql/104-ravendb.md +++ b/src/roadmaps/aspnet-core/content/107-databases/103-nosql/104-ravendb.md @@ -1 +1,11 @@ -# Ravendb \ No newline at end of file +# RavenDB + +RavenDB is an open-source, NoSQL document database designed for the .NET platform. It is a document database, which means that it stores data in semi-structured JSON format, and it is designed to be simple and easy to use. It is also a multi-model database, which allows you to store and query data using a variety of data models, including document, key-value, graph, and column-family. + +In an ASP.NET application, RavenDB can be used as a data store to persist and retrieve application data. There are several libraries available for integrating RavenDB with an ASP.NET application, such as RavenDB.Client, which provides a .NET client for RavenDB that can be used to interact with the RavenDB server from within an ASP.NET application. + +For more information, visit the following links: + +- [Using RavenDB in ASP.NET Applications](https://www.codeguru.com/dotnet/using-ravendb-in-asp-net-applications/) +- [Getting started with RavenDB](https://ravendb.net/docs/article-page/5.4/csharp/start/getting-started) +- [Using RavenDB Unit of Work and .NET Core MVC](https://ayende.com/blog/187906-B/using-ravendb-unit-of-work-and-net-core-mvc) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/107-databases/103-nosql/105-couchdb.md b/src/roadmaps/aspnet-core/content/107-databases/103-nosql/105-couchdb.md index 643c17afc..3a6638795 100644 --- a/src/roadmaps/aspnet-core/content/107-databases/103-nosql/105-couchdb.md +++ b/src/roadmaps/aspnet-core/content/107-databases/103-nosql/105-couchdb.md @@ -1 +1,11 @@ -# Couchdb \ No newline at end of file +# CouchDB + +CouchDB is an open-source, NoSQL document database designed for the web. It uses a document-oriented data model, which means that it stores data in semi-structured JSON format, and it is designed to be simple and easy to use. CouchDB provides a built-in web interface, called Futon, which can be used to interact with the database, and it also provides an HTTP API that can be used to interact with the database from an ASP.NET application. + +In an ASP.NET application, CouchDB can be used as a data store to persist and retrieve application data. There are several libraries available for integrating CouchDB with an ASP.NET application, such as Couchbase, which provides a .NET client for CouchDB that can be used to interact with the CouchDB server from within an ASP.NET application. + + +Visit the following resources to learn more: + +- [CouchDB in ASP.NET Core Application](https://www.c-sharpcorner.com/article/crud-operation-to-couchdb-via-rest-api-in-asp-net-core-application/) +- [Use CouchDB with .NET](https://stackoverflow.com/questions/1050152/use-couchdb-with-net) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/107-databases/103-nosql/index.md b/src/roadmaps/aspnet-core/content/107-databases/103-nosql/index.md index a6b54c76c..59835778e 100644 --- a/src/roadmaps/aspnet-core/content/107-databases/103-nosql/index.md +++ b/src/roadmaps/aspnet-core/content/107-databases/103-nosql/index.md @@ -1 +1,11 @@ -# Nosql \ No newline at end of file +# Nosql + +NoSQL (Not Only SQL) is a type of database that does not use the traditional table-based relational model. It is designed to handle large amounts of unstructured or semi-structured data, and it is often used in big data and real-time web applications. NoSQL databases are highly scalable and can handle high-performance needs and large data sets. + +There are several types of NoSQL databases, such as document databases, key-value databases, graph databases, and column-family databases, each with their own unique features and use cases. Some examples of NoSQL databases include MongoDB, Cassandra, RavenDB, CouchDB, and Redis. + +To learn more, visit the following links: + +- [NoSQL in .NET Applications](https://www.slideshare.net/shijucv/nosql-database-in-net-apps) +- [Open Source NoSQL Database for .NET](https://www.alachisoft.com/nosdb/) +- [Use NoSQL databases in ASP.NET](https://learn.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/nosql-database-persistence-infrastructure) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/107-databases/index.md b/src/roadmaps/aspnet-core/content/107-databases/index.md index 602f6d863..0cc86dc8e 100644 --- a/src/roadmaps/aspnet-core/content/107-databases/index.md +++ b/src/roadmaps/aspnet-core/content/107-databases/index.md @@ -1 +1,18 @@ -# Databases \ No newline at end of file +# Databases + +In an ASP.NET application, there are several types of databases that can be used to store and retrieve data. Some of the most commonly used databases include: + +- Relational databases +- NoSQL databases +- In-memory databases +- Embedded databases +- Cloud-based databases + +Each database type has its own set of features and use cases, and the choice of which database to use will depend on the specific requirements of the application. + + +To learn more, visit the following links: + +- [ASP.NET Database Tutorial](https://www.guru99.com/insert-update-delete-asp-net.html) +- [Introduction to Working with a Database in ASP.NET](https://learn.microsoft.com/en-us/aspnet/web-pages/overview/data/5-working-with-data) +- [ASP.NET Web Pages - Databases](https://www.w3schools.com/asp/webpages_database.asp) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/108-log-frameworks/100-serilog.md b/src/roadmaps/aspnet-core/content/108-log-frameworks/100-serilog.md index c3a09a797..9eec27447 100644 --- a/src/roadmaps/aspnet-core/content/108-log-frameworks/100-serilog.md +++ b/src/roadmaps/aspnet-core/content/108-log-frameworks/100-serilog.md @@ -1 +1,9 @@ -# Serilog \ No newline at end of file +# Serilog + +Serilog is a third-party logging library for ASP.NET Core that allows developers to easily create structured and searchable log data. It is built on top of the `Microsoft.Extensions.Logging` framework, which is included in ASP.NET Core. Serilog provides features such as automatic logging of request and response data, and the ability to write logs to a variety of destinations, including the console, files, and various logging services. It also supports for filtering and formatting log messages. + +For more resources, visit the following links: + +- [How to Work with Serilog in ASP.NET?](https://www.codeguru.com/dotnet/serilog-c-sharp/) +- [Complete guide to Serilog in ASP.NET](https://github.com/serilog/serilog-aspnetcore) +- [Advanced Serilog features in ASP.NET](https://www.infoworld.com/article/3624022/how-to-use-advanced-serilog-features-in-aspnet-core-mvc.html) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/108-log-frameworks/101-nlog.md b/src/roadmaps/aspnet-core/content/108-log-frameworks/101-nlog.md index d40545ab0..90bcc5fb2 100644 --- a/src/roadmaps/aspnet-core/content/108-log-frameworks/101-nlog.md +++ b/src/roadmaps/aspnet-core/content/108-log-frameworks/101-nlog.md @@ -1 +1,11 @@ -# Nlog \ No newline at end of file +# NLog + +NLog is an open-source logging library for .NET applications, including ASP.NET. It is designed to be easy to use, highly configurable, and extensible, and it provides a number of features that help developers to log and analyze data in their applications. + +NLog is a powerful, flexible, and easy-to-use logging library that can be used in ASP.NET applications to provide detailed log data. It allows developers to easily configure their logging pipeline, and to write log data to a variety of destinations, making it easier to analyze and troubleshoot issues in the application. + +For more resources, visit the following links: + +- [Logging with NLog in ASP.NET](https://codewithmukesh.com/blog/logging-with-nlog-in-aspnet-core/) +- [Introduction To NLog With ASP.NET Core](https://www.c-sharpcorner.com/article/introduction-to-nlog-with-asp-net-core2/) +- [Tutorial of Nlog with ASP.NET](https://www.youtube.com/watch?v=PnlxRmHg0lU) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/108-log-frameworks/102-log-management-system/100-elk-stack.md b/src/roadmaps/aspnet-core/content/108-log-frameworks/102-log-management-system/100-elk-stack.md index a2c2f9ee2..c34f278d4 100644 --- a/src/roadmaps/aspnet-core/content/108-log-frameworks/102-log-management-system/100-elk-stack.md +++ b/src/roadmaps/aspnet-core/content/108-log-frameworks/102-log-management-system/100-elk-stack.md @@ -1 +1,13 @@ -# Elk stack \ No newline at end of file +# ELK Stack + +The ELK Stack is a collection of three open-source products — Elasticsearch, Logstash, and Kibana. ELK stack provides centralized logging in order to identify problems with servers or applications. It allows you to search all the logs in a single place. It also helps to find issues in multiple servers by connecting logs during a specific time frame. + +- **E** stands for ElasticSearch: used for storing logs +- **L** stands for LogStash : used for both shipping as well as processing and storing logs +- **K** stands for Kibana: is a visualization tool (a web interface) which is hosted through Nginx or Apache + +For more information, visit the following links: + +- [What Is Elk?](https://aws.amazon.com/what-is/elk-stack/) +- [Complete Guide to Elk](https://logz.io/learn/complete-guide-elk-stack/) +- [ELK Stack Tutorial: What is Kibana, Logstash & Elasticsearch?](https://www.guru99.com/elk-stack-tutorial.html) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/108-log-frameworks/102-log-management-system/101-sentry.md b/src/roadmaps/aspnet-core/content/108-log-frameworks/102-log-management-system/101-sentry.md index efc441663..8e53cbb15 100644 --- a/src/roadmaps/aspnet-core/content/108-log-frameworks/102-log-management-system/101-sentry.md +++ b/src/roadmaps/aspnet-core/content/108-log-frameworks/102-log-management-system/101-sentry.md @@ -1 +1,11 @@ -# Sentry \ No newline at end of file +# Sentry + +Sentry is an open-source error tracking platform that helps developers identify and fix errors in their applications. It provides detailed error reports, including stack traces, context data, and user feedback, making it easy to understand and reproduce errors. Sentry can be integrated with a variety of platforms, including .NET and ASP.NET. + +In an ASP.NET application, Sentry can be used to capture and track errors that occur in the application. Sentry provides an SDK, called Sentry.NET, which can be integrated with an ASP.NET application to automatically capture and track errors. The SDK can be configured to capture and track different types of errors, including unhandled exceptions, handled exceptions, and custom events. + +For more information, visit the following links: + +- [Sentry Documentation in .NET](https://docs.sentry.io/platforms/dotnet/) +- [ASP.NET and Sentry](https://docs.sentry.io/platforms/dotnet/guides/aspnetcore/) +- [Usage of Sentry in ASP.NET](https://docs.sentry.io/platforms/dotnet/guides/aspnetcore/usage/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/108-log-frameworks/102-log-management-system/102-datadog.md b/src/roadmaps/aspnet-core/content/108-log-frameworks/102-log-management-system/102-datadog.md index c11e557ba..4b7883871 100644 --- a/src/roadmaps/aspnet-core/content/108-log-frameworks/102-log-management-system/102-datadog.md +++ b/src/roadmaps/aspnet-core/content/108-log-frameworks/102-log-management-system/102-datadog.md @@ -1 +1,10 @@ -# Datadog \ No newline at end of file +# Datadog + +Datadog is a cloud-based monitoring and analytics platform that helps organizations to monitor, troubleshoot, and optimize their applications and infrastructure. It provides a wide range of features including real-time monitoring, log management, tracing, and alerting, and it can be integrated with a variety of platforms, including .NET and ASP.NET. + +In an ASP.NET application, Datadog can be used to monitor and analyze the performance and behavior of the application. Datadog provides an SDK, called Datadog.Trace, which can be integrated with an ASP.NET application to automatically collect and report performance data. The SDK can be configured to report data such as request and response times, error rates, and custom metrics. + +Visit the following links: + +- [Documentation of Datadog](https://www.datadoghq.com/) +- [Configuring the .NET Core with Datadog](https://docs.datadoghq.com/tracing/trace_collection/library_config/dotnet-core/?tab=environmentvariables) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/108-log-frameworks/102-log-management-system/103-loggly.md b/src/roadmaps/aspnet-core/content/108-log-frameworks/102-log-management-system/103-loggly.md index 63234d0cb..5423fc6fb 100644 --- a/src/roadmaps/aspnet-core/content/108-log-frameworks/102-log-management-system/103-loggly.md +++ b/src/roadmaps/aspnet-core/content/108-log-frameworks/102-log-management-system/103-loggly.md @@ -1 +1,10 @@ -# Loggly \ No newline at end of file +# Loggly + +Loggly is a cloud-based log management and analytics platform that helps organizations to collect, store, and analyze log data from a variety of sources, including .NET and ASP.NET applications. It provides a wide range of features such as real-time log search and analysis, alerting, and reporting, and allows for easy integration with other tools such as Datadog, Splunk, and New Relic. + +In an ASP.NET application, Loggly can be used to collect and analyze log data. Loggly provides an SDK, called Loggly.Serilog, which can be integrated with an ASP.NET application to automatically collect log data and send it to Loggly. The SDK can be configured to collect different types of log data, such as log messages, error messages, and custom events. + +For more resources, visit the following links: + +- [Loggly in ASP.NET Core using Serilog](https://itnext.io/loggly-in-asp-net-core-using-serilog-dc0e2c7d52eb) +- [Using Loggly For Troubleshooting Bugs](https://www.loggly.com/blog/use-loggly-troubleshooting-bugs-code/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/108-log-frameworks/102-log-management-system/104-elmah.md b/src/roadmaps/aspnet-core/content/108-log-frameworks/102-log-management-system/104-elmah.md index 3031f5bc6..6271c001d 100644 --- a/src/roadmaps/aspnet-core/content/108-log-frameworks/102-log-management-system/104-elmah.md +++ b/src/roadmaps/aspnet-core/content/108-log-frameworks/102-log-management-system/104-elmah.md @@ -1 +1,11 @@ -# Elmah \ No newline at end of file +# ELMAH + +ELMAH (Error Logging Modules and Handlers) is an open-source error logging and management library for ASP.NET applications. It is designed to be easy to use and easy to integrate into existing ASP.NET applications. + +ELMAH is widely used for error logging, management and tracking in ASP.NET applications, it's easy to use, easy to integrate with existing applications, and provides a wealth of features that help developers to identify, diagnose and fix errors in their applications. + +For more resources, visit the following links: + +- [Introduction To ELMAH](https://www.c-sharpcorner.com/article/introduction-to-elmah-in-mvc/) +- [How to Configure Elmah in ASP.net MVC](https://www.youtube.com/watch?v=oqheVBZR0PM) +- [ELMAH Integration in ASP.NET MVC Application](https://www.ecanarys.com/Blogs/ArticleID/184/ELMAH-Integration-in-ASP-NET-MVC-Application) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/108-log-frameworks/102-log-management-system/index.md b/src/roadmaps/aspnet-core/content/108-log-frameworks/102-log-management-system/index.md index 6bb298261..97c6876c4 100644 --- a/src/roadmaps/aspnet-core/content/108-log-frameworks/102-log-management-system/index.md +++ b/src/roadmaps/aspnet-core/content/108-log-frameworks/102-log-management-system/index.md @@ -1 +1,11 @@ -# Log management system \ No newline at end of file +# Log Management System + +A log management system is a software or service that is designed to collect, store, and analyze log data from a variety of sources. Logs are records of events that occur in a system, such as application logs, system logs, and network logs. Log management systems are used to gather, store and analyze these logs in order to provide insight into the performance, stability and security of a system. + +The use of log management system can help IT professionals to identify and troubleshoot issues, monitor performance, detect security threats and meet regulatory compliance requirements, also it's a fundamental part of IT infrastructure management, and provides a way to measure the health and security of the system. + +Visit the following resources for more information: + +- [Structured Logging and Logs Management in ASP.NET](https://medium.com/@stavsofer/structured-logging-and-logs-management-asp-net-core-serilog-seq-61109f740696) +- [ASP.NET Logging Basics](https://www.loggly.com/ultimate-guide/net-logging-basics/) +- [Logging and Monitoring in ASP.NET](https://www.pluralsight.com/courses/logging-monitoring-aspdotnet-core-6) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/108-log-frameworks/index.md b/src/roadmaps/aspnet-core/content/108-log-frameworks/index.md index f0e9793fa..e8b9eca64 100644 --- a/src/roadmaps/aspnet-core/content/108-log-frameworks/index.md +++ b/src/roadmaps/aspnet-core/content/108-log-frameworks/index.md @@ -1 +1,16 @@ -# Log frameworks \ No newline at end of file +# Log Frameworks + +In ASP.NET, log frameworks are libraries that provide a way to log and analyze data in an application. Some popular log frameworks for ASP.NET include: + +- Serilog +- NLog +- Log4Net +- ELMAH +- Microsoft.Extensions.Logging + +These are some of the most popular log frameworks in ASP.NET, each of them has its own set of features and use cases, and the choice of which log framework to use will depend on the specific requirements of the application. + +Visit the following links to learn more: + +- [Implement logging in ASP.NET](https://learn.microsoft.com/en-us/training/modules/aspnet-logging/) +- [ASP.NET Core: Logging with log4net](https://www.linkedin.com/learning/asp-dot-net-core-logging-with-log4net) diff --git a/src/roadmaps/aspnet-core/content/109-api-clients/100-rest/101-odata.md b/src/roadmaps/aspnet-core/content/109-api-clients/100-rest/101-odata.md index 36b735b92..59e826416 100644 --- a/src/roadmaps/aspnet-core/content/109-api-clients/100-rest/101-odata.md +++ b/src/roadmaps/aspnet-core/content/109-api-clients/100-rest/101-odata.md @@ -1 +1,11 @@ -# Odata \ No newline at end of file +# OData + +OData (Open Data Protocol) is a web protocol for querying and updating data. It is an open standard for creating and consuming RESTful web services. OData is built on top of the HTTP protocol, and it uses the conventions of REST to expose data through a standard interface. + +In ASP.NET, OData can be used to create RESTful web services that expose data in a standardized way. OData provides a set of conventions for defining the structure of the data, and it also provides a set of conventions for querying and updating the data. + +For more information, visit the following links: + +- [Create an OData v4 Endpoint Using ASP.NET](https://learn.microsoft.com/en-us/aspnet/web-api/overview/odata-support-in-aspnet-web-api/odata-v4/create-an-odata-v4-endpoint) +- [Working with OData in ASP.NET Core](https://www.pluralsight.com/blog/software-development/odata-asp-net-core) +- [Example of OData Protocol With ASP.NET Core](https://www.youtube.com/watch?v=L9HdnNCi0R0) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/109-api-clients/100-rest/102-sieve.md b/src/roadmaps/aspnet-core/content/109-api-clients/100-rest/102-sieve.md index 61b8d81ea..0c8dda809 100644 --- a/src/roadmaps/aspnet-core/content/109-api-clients/100-rest/102-sieve.md +++ b/src/roadmaps/aspnet-core/content/109-api-clients/100-rest/102-sieve.md @@ -1 +1,10 @@ -# Sieve \ No newline at end of file +# Sieve + +Sieve is a language for filtering email messages, it's defined in the Internet standard, also it's called as Sieve: An Email Filtering Language. It provides a simple, human-readable syntax for specifying rules that determine what actions to take on incoming email messages. These actions can include filing messages into different folders, forwarding messages to other addresses, discarding messages, and more. + +Sieve is typically used in email servers and clients, and it can be used to implement server-side and client-side email filtering. It allows users to create their own rules for filtering email, without requiring access to the server's configuration or the need for complex server-side scripts. + +To learn more, visit the following resources: + +- [Analysis of Sieve](https://en.wikipedia.org/wiki/Sieve_analysis) +- [Sorting in a .NET Core API using Sieve](https://www.youtube.com/watch?v=x0utCah3cFk) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/109-api-clients/100-rest/index.md b/src/roadmaps/aspnet-core/content/109-api-clients/100-rest/index.md index 5088a865c..14c9fc632 100644 --- a/src/roadmaps/aspnet-core/content/109-api-clients/100-rest/index.md +++ b/src/roadmaps/aspnet-core/content/109-api-clients/100-rest/index.md @@ -1 +1,11 @@ -# Rest \ No newline at end of file +# REST + +REST (Representational State Transfer) is an architectural style for building web services. It is based on the principles of the HTTP protocol, and it uses the conventions of HTTP to create a standard interface for interacting with web services. + +In ASP.NET, REST can be used to create web services that expose data in a standardized way. RESTful web services in ASP.NET are typically built using the Web API framework, which provides a set of libraries and tools for building RESTful web services. + +To learn more, visit the following links: + +- [What is REST Services in ASP.NET?](http://www.codedigest.com/quick-start/16/what-is-rest-services-how-to-create-rest-services-in-aspnet) +- [What are RESTful APIs?](https://www.pragimtech.com/blog/blazor/what-are-restful-apis/) +- [Tutorial of Rest and Restful API](https://www.youtube.com/watch?v=4r1CIUs5s2I) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/109-api-clients/101-grpc.md b/src/roadmaps/aspnet-core/content/109-api-clients/101-grpc.md index 5d543f43c..5c3e79317 100644 --- a/src/roadmaps/aspnet-core/content/109-api-clients/101-grpc.md +++ b/src/roadmaps/aspnet-core/content/109-api-clients/101-grpc.md @@ -1 +1,11 @@ -# Grpc \ No newline at end of file +# gRPC + +gRPC is a high-performance, open-source framework for building remote procedure call (RPC) APIs. It uses the Protocol Buffers data serialization format and the HTTP/2 protocol to create highly efficient and scalable APIs. gRPC supports a variety of programming languages, including C# and ASP.NET. + +In ASP.NET, gRPC can be used to create high-performance, low-latency APIs for a variety of use cases. gRPC allows for bi-directional streaming of data, which can be useful for real-time applications such as gaming, financial trading, and more. + +To learn more, visit the following resources: + +- [Overview for gRPC on .NET](https://learn.microsoft.com/en-us/aspnet/core/grpc/?view=aspnetcore-7.0) +- [Getting Started with ASP.NET Core and gRPC](https://blog.jetbrains.com/dotnet/2021/07/19/getting-started-with-asp-net-core-and-grpc/) +- [Create a gRPC client & server in ASP.NET](https://learn.microsoft.com/en-us/aspnet/core/tutorials/grpc/grpc-start?view=aspnetcore-7.0&tabs=visual-studio) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/109-api-clients/102-graphql/100-graphql-dotnet.md b/src/roadmaps/aspnet-core/content/109-api-clients/102-graphql/100-graphql-dotnet.md index 8f8f0f5b7..c40eb723e 100644 --- a/src/roadmaps/aspnet-core/content/109-api-clients/102-graphql/100-graphql-dotnet.md +++ b/src/roadmaps/aspnet-core/content/109-api-clients/102-graphql/100-graphql-dotnet.md @@ -1 +1,10 @@ -# Graphql dotnet \ No newline at end of file +# GraphQL .NET + +GraphQL is a query language for your API, it allows clients to define the structure of the data they need, and the server will return only the requested data. It is an alternative to RESTful web services, and it is gaining popularity because of its flexibility and efficiency. + +In ASP.NET, GraphQL can be used to create web services that expose data in a more flexible and efficient way. GraphQL.NET is a popular open-source library that can be used to create GraphQL services in ASP.NET. This library provides a set of classes and methods that make it easy to create a GraphQL schema, handle requests, and generate responses. +Learn more from the following resources: + +- [Introduction to GraphQL .NET in ASP.NET](https://graphql-dotnet.github.io/docs/getting-started/introduction/) +- [How to use GraphQL in .NET?](https://softchris.github.io/pages/dotnet-graphql.html) +- [Building and consuming GraphQL API in ASP.NET](https://www.red-gate.com/simple-talk/development/dotnet-development/building-and-consuming-graphql-api-in-asp-net-core-5/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/109-api-clients/102-graphql/101-hot-chocolate.md b/src/roadmaps/aspnet-core/content/109-api-clients/102-graphql/101-hot-chocolate.md index 075634181..b88648417 100644 --- a/src/roadmaps/aspnet-core/content/109-api-clients/102-graphql/101-hot-chocolate.md +++ b/src/roadmaps/aspnet-core/content/109-api-clients/102-graphql/101-hot-chocolate.md @@ -1 +1,11 @@ -# Hot chocolate \ No newline at end of file +# Hot Chocolate + +Hot Chocolate is a GraphQL server implementation for .NET and .NET Core. It is an open-source library that provides a simple and flexible way to build GraphQL APIs in ASP.NET. + +Hot Chocolate provides a set of classes and methods that make it easy to create a GraphQL schema, handle requests, and generate responses. It also provides a number of features to help with things such as validation, authorization, caching, and more. + +To learn more, visit the following resources: + +- [Getting started with HotChocolate](https://learn.microsoft.com/en-us/shows/on-net/getting-started-with-hotchocolate) +- [ASP.NET Core and HotChocolate](https://chillicream.com/docs/hotchocolate/v12/api-reference/aspnetcore) +- [Intro to HotChocolate](https://chillicream.com/docs/hotchocolate) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/109-api-clients/102-graphql/index.md b/src/roadmaps/aspnet-core/content/109-api-clients/102-graphql/index.md index 92b738b69..f028c1a9e 100644 --- a/src/roadmaps/aspnet-core/content/109-api-clients/102-graphql/index.md +++ b/src/roadmaps/aspnet-core/content/109-api-clients/102-graphql/index.md @@ -1 +1,11 @@ -# Graphql \ No newline at end of file +# GraphQL + +GraphQL is a query language for your API that allows clients to define the structure of the data they need, and the server will return only the requested data. It is an alternative to RESTful web services, and it is gaining popularity because of its flexibility and efficiency. + +In ASP.NET, GraphQL can be used to create web services that expose data in a more flexible and efficient way. There are several libraries available to implement GraphQL in an ASP.NET application, such as GraphQL.NET, Hot Chocolate, and others. These libraries provide a set of classes and methods that make it easy to create a GraphQL schema, handle requests, and generate responses. + +To learn more, visit the following resources: + +- [How to implement GraphQL in ASP.Net](https://blog.christian-schou.dk/how-to-implement-graphql-in-asp-net-core/) +- [Intro to GraphQL](https://graphql-dotnet.github.io/docs/getting-started/introduction/) +- [Developing API In .NET Core With GraphQL](https://www.c-sharpcorner.com/article/building-api-in-net-core-with-graphql2/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/109-api-clients/index.md b/src/roadmaps/aspnet-core/content/109-api-clients/index.md index 3ad7ce843..5a5970c61 100644 --- a/src/roadmaps/aspnet-core/content/109-api-clients/index.md +++ b/src/roadmaps/aspnet-core/content/109-api-clients/index.md @@ -1 +1,13 @@ -# Api clients \ No newline at end of file +# API Clients + +API clients in ASP.NET are software libraries that allow applications to interact with external APIs. They provide a set of methods and classes that make it easy to send requests to an API and process the responses. + +API clients can be used to access a wide variety of services, such as web services, cloud services, and social media platforms. They can be used to perform tasks such as fetching data, posting updates, and deleting resources. + +API clients in ASP.NET are typically built using the HttpClient class, which is part of the System.Net.Http namespace. This class provides a set of methods for sending HTTP requests and receiving HTTP responses. + +Visit the following links to learn more: + +- [How to Call a Web API From a .NET Client](https://learn.microsoft.com/en-us/aspnet/web-api/overview/advanced/calling-a-web-api-from-a-net-client) +- [Overview of Web API REST Service in ASP.NET](https://www.c-sharpcorner.com/article/consuming-asp-net-web-api-rest-service-in-asp-net-mvc-using-http-client/) +- [Building an ASP.NET Web API With ASP.NET](https://www.toptal.com/asp-dot-net/asp-net-web-api-tutorial) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/110-real-time-communication/100-web-sockets.md b/src/roadmaps/aspnet-core/content/110-real-time-communication/100-web-sockets.md index 8b76cfb8d..c93b6b454 100644 --- a/src/roadmaps/aspnet-core/content/110-real-time-communication/100-web-sockets.md +++ b/src/roadmaps/aspnet-core/content/110-real-time-communication/100-web-sockets.md @@ -1 +1,11 @@ -# Web sockets \ No newline at end of file +# Web Sockets + +WebSockets is a protocol that allows for real-time, bidirectional communication between a client and a server. It is based on the same principle as HTTP, but it uses a different protocol to establish and maintain a connection between the client and the server. Once a connection is established, WebSockets enables the client and server to send messages to each other in real-time. + +In ASP.NET, WebSockets can be used to create real-time, highly interactive web applications. The ASP.NET Core framework provides built-in support for WebSockets through the Microsoft.AspNetCore.WebSockets package. This package provides a set of classes and methods that make it easy to create and manage WebSockets connections. + +To learn more, visit the following links: + +- [WebSockets support in ASP.NET](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/websockets?view=aspnetcore-7.0) +- [Understanding WebSockets with ASP.NET](https://sahansera.dev/understanding-websockets-with-aspnetcore-5/) +- [Writing a WebSocket server in ASP.NET](https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_server) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/110-real-time-communication/101-singlar-core.md b/src/roadmaps/aspnet-core/content/110-real-time-communication/101-singlar-core.md index 511d797ad..7dcf79ea6 100644 --- a/src/roadmaps/aspnet-core/content/110-real-time-communication/101-singlar-core.md +++ b/src/roadmaps/aspnet-core/content/110-real-time-communication/101-singlar-core.md @@ -1 +1,7 @@ -# Singlar core \ No newline at end of file +# SignalR Core + +SignalR is a real-time communication library for .NET that allows for the creation of real-time web applications. SignalR Core is the latest version of SignalR, which has been rebuilt from the ground up to be cross-platform and lightweight. It allows for bidirectional communication between a client (such as a web page) and a server, enabling real-time updates, notifications, and other interactions. SignalR Core can be used in a variety of scenarios such as chat applications, gaming, and real-time dashboards. It supports multiple transports like WebSockets, Server-Sent Events and Long polling. It also supports for authentication and authorization. + +For more information, visit the following links: + +- [Overview of ASP.NET Core SignalR](https://learn.microsoft.com/en-us/aspnet/core/signalr/introduction?view=aspnetcore-7.0) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/110-real-time-communication/index.md b/src/roadmaps/aspnet-core/content/110-real-time-communication/index.md index fcca92201..f817a4f67 100644 --- a/src/roadmaps/aspnet-core/content/110-real-time-communication/index.md +++ b/src/roadmaps/aspnet-core/content/110-real-time-communication/index.md @@ -1 +1,10 @@ -# Real time communication \ No newline at end of file +# Real Time Communication + +Real-time communication in ASP.NET refers to the ability to send and receive data between a client and a server in real-time, typically with low latency. It allows the server to push updates to the client as they happen, instead of the client having to continuously poll the server for updates. + +There are several technologies and libraries available for implementing real-time communication in ASP.NET, such as WebSockets, SignalR, gRPC, and more. + +To learn more, visit the following resources: + +- [Overview of ASP.NET Core SignalR](https://learn.microsoft.com/en-us/aspnet/core/signalr/introduction?view=aspnetcore-7.0) +- [Real-time ASP.NET with SignalR](https://dotnet.microsoft.com/en-us/apps/aspnet/signalr) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/111-object-mapping/100-atuo-mapper.md b/src/roadmaps/aspnet-core/content/111-object-mapping/100-atuo-mapper.md index 2458788e2..439886f97 100644 --- a/src/roadmaps/aspnet-core/content/111-object-mapping/100-atuo-mapper.md +++ b/src/roadmaps/aspnet-core/content/111-object-mapping/100-atuo-mapper.md @@ -1 +1,11 @@ -# Atuo mapper \ No newline at end of file +# AutoMapper + +AutoMapper is a library for .NET that allows you to easily map between objects of different types. It is particularly useful when working with domain models and data transfer objects (DTOs) in a layered architecture. It can also be used to map between different versions of an object, or to map between objects in different formats, such as JSON and XML. + +AutoMapper uses a convention-based approach to mapping, which means that it automatically maps properties with the same name and type from one object to another. It also provides a fluent API for configuring more complex mappings, such as ignoring certain properties, using custom logic to map properties, or mapping properties based on a value in another property. + +To learn more, visit the following resources: + +- [What is Automapper in ASP.NET?](https://www.simplilearn.com/tutorials/asp-dot-net-tutorial/automapper-in-c-sharp) +- [Getting Started with AutoMapper in ASP.NET](https://code-maze.com/automapper-net-core/) +- [Examples of AutoMapper in ASP.NET](https://dotnettutorials.net/lesson/automapper-in-c-sharp/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/111-object-mapping/101-express-mapper.md b/src/roadmaps/aspnet-core/content/111-object-mapping/101-express-mapper.md index ab9cfe0e5..fe67002e1 100644 --- a/src/roadmaps/aspnet-core/content/111-object-mapping/101-express-mapper.md +++ b/src/roadmaps/aspnet-core/content/111-object-mapping/101-express-mapper.md @@ -1 +1,10 @@ -# Express mapper \ No newline at end of file +# Express Mapper + +ExpressMapper is an open-source object-to-object mapping library for .NET, similar to AutoMapper. It allows you to easily map between objects of different types, and it is particularly useful when working with domain models and data transfer objects (DTOs) in a layered architecture. + +ExpressMapper uses a convention-based approach to mapping, which means that it automatically maps properties with the same name and type from one object to another. It also provides a fluent API for configuring more complex mappings, such as ignoring certain properties, using custom logic to map properties, or mapping properties based on a value in another property. + +To learn more, visit the following links: + +- [Intro to Express Mapper](https://expressmapper.org/) +- [Express Mapper - The New .NET Mapper](https://www.codeproject.com/Tips/1009198/Expressmapper-The-New-NET-Mapper) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/111-object-mapping/102-agile-mapper.md b/src/roadmaps/aspnet-core/content/111-object-mapping/102-agile-mapper.md index d52b64a0f..3eb415dd0 100644 --- a/src/roadmaps/aspnet-core/content/111-object-mapping/102-agile-mapper.md +++ b/src/roadmaps/aspnet-core/content/111-object-mapping/102-agile-mapper.md @@ -1 +1,10 @@ -# Agile mapper \ No newline at end of file +# Agile Mapper + +AgileMapper is an open-source, convention-based object-to-object mapping library for .NET, similar to AutoMapper and ExpressMapper. It allows you to easily map between objects of different types, and it is particularly useful when working with domain models and data transfer objects (DTOs) in a layered architecture. + +AgileMapper uses a convention-based approach to mapping, which means that it automatically maps properties with the same name and type from one object to another. It also provides a fluent API for configuring more complex mappings, such as ignoring certain properties, using custom logic to map properties, or mapping properties based on a value in another property. + +To learn more, visit the following links: + +- [Comparison of Object Mapper Libraries](https://www.simplilearn.com/tutorials/asp-dot-net-tutorial/automapper-in-c-sharp) +- [Overview of Agile Mapper](https://readthedocs.org/projects/agilemapper/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/111-object-mapping/103-mapster.md b/src/roadmaps/aspnet-core/content/111-object-mapping/103-mapster.md index eb8824e72..4087567ba 100644 --- a/src/roadmaps/aspnet-core/content/111-object-mapping/103-mapster.md +++ b/src/roadmaps/aspnet-core/content/111-object-mapping/103-mapster.md @@ -1 +1,11 @@ -# Mapster \ No newline at end of file +# Mapster + +Mapster is an open-source, high-performance object-to-object mapping library for .NET, similar to AutoMapper, ExpressMapper, AgileMapper, and AgileMapster. It allows you to easily map between objects of different types, and it is particularly useful when working with domain models and data transfer objects (DTOs) in a layered architecture. + +Mapster uses a convention-based approach to mapping, which means that it automatically maps properties with the same name and type from one object to another. It also provides a fluent API for configuring more complex mappings, such as ignoring certain properties, using custom logic to map properties, or mapping properties based on a value in another property. + +To learn more, visit the following links: + +- [Getting Started With Mapster in ASP.NET](https://code-maze.com/mapster-aspnetcore-introduction/) +- [Overview of Mapster in .Net ](https://medium.com/@M-S-2/enjoy-using-mapster-in-net-6-2d3f287a0989) +- [Introduction to Mapster](youtube.com/watch?v=bClE7Uon9e8) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/111-object-mapping/index.md b/src/roadmaps/aspnet-core/content/111-object-mapping/index.md index 21bbef441..ad23eae02 100644 --- a/src/roadmaps/aspnet-core/content/111-object-mapping/index.md +++ b/src/roadmaps/aspnet-core/content/111-object-mapping/index.md @@ -1 +1,11 @@ -# Object mapping \ No newline at end of file +# Object Mapping + +Object mapping in ASP.NET refers to the process of converting an object of one type to an object of another type. This can be useful in a number of scenarios, such as when working with domain models and data transfer objects (DTOs) in a layered architecture, or when mapping between different versions of an object or different formats such as JSON and XML. + +There are several libraries available for object mapping in ASP.NET, such as AutoMapper, ExpressMapper, AgileMapper, AgileMapster and Mapster. These libraries provide a convenient and flexible way to map between objects, using a convention-based approach or a fluent API to configure more complex mappings. They also support for a wide range of mapping scenarios, including nested and circular object graphs, collections, and different types of inheritance. + +Visit the following links to learn more: + +- [Building a Fast Object-to-Object Mapper in .NET](https://www.twilio.com/blog/building-blazing-fast-object-mapper-c-sharp-net-core) +- [Overview of Object Mapping in ASP.NET](https://docs.abp.io/en/abp/latest/Object-To-Object-Mapping) +- [Comparison of Object Mapper Libraries](https://www.simplilearn.com/tutorials/asp-dot-net-tutorial/automapper-in-c-sharp) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/112-task-scheduling/100-hangfire.md b/src/roadmaps/aspnet-core/content/112-task-scheduling/100-hangfire.md index 44ebc6d66..3250a888a 100644 --- a/src/roadmaps/aspnet-core/content/112-task-scheduling/100-hangfire.md +++ b/src/roadmaps/aspnet-core/content/112-task-scheduling/100-hangfire.md @@ -1 +1,11 @@ -# Hangfire \ No newline at end of file +# Hangfire + +Hangfire is an open-source, lightweight library for .NET that allows you to easily perform background processing in your ASP.NET application. It provides a simple and elegant way to run background jobs, schedule future tasks, and monitor the progress of your background jobs. + +Hangfire uses a storage backend, such as SQL Server or Redis, to persist the state of your background jobs. This allows you to easily scale your background processing and to monitor and manage your background jobs, even if your application restarts or crashes. + +To learn more, visit the following links: + +- [Hangfire with ASP.NET Core](https://code-maze.com/hangfire-with-asp-net-core/) +- [Intro to Hangfire](https://www.partech.nl/nl/publicaties/2021/05/a-beginners-guide-to-hangfire) +- [How to use Hangfire with ASP.NET](https://blog.christian-schou.dk/how-to-use-hangfire-with-asp-net-core-5-0-api/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/112-task-scheduling/101-native-background-service.md b/src/roadmaps/aspnet-core/content/112-task-scheduling/101-native-background-service.md index fc05d1421..6b8d0a12e 100644 --- a/src/roadmaps/aspnet-core/content/112-task-scheduling/101-native-background-service.md +++ b/src/roadmaps/aspnet-core/content/112-task-scheduling/101-native-background-service.md @@ -1 +1,11 @@ -# Native background service \ No newline at end of file +# Native Background Service + +A Native Background Service in ASP.NET is a type of service that can run in the background on a device, without the need for an active user session. These services are typically used for tasks that need to run continuously, such as sending notifications, polling for updates, or processing data. + +In ASP.NET, a Native Background Service can be implemented using the IHostedService interface, which is part of the Microsoft.Extensions.Hosting namespace. This interface allows you to create a background service that can run continuously, even when the main application is not running. + +Visit the following links to learn more: + +- [Background tasks with hosted services in ASP.NET](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/host/hosted-services?view=aspnetcore-7.0&tabs=visual-studio) +- [BackgroundService in ASP.NET Core](https://medium.com/@daniel.sagita/backgroundservice-for-a-long-running-work-3debe8f8d25b) +- [Tutorial on Background Tasks in ASP.NET](youtube.com/watch?v=rugxQIH_p3A) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/112-task-scheduling/102-quartz.md b/src/roadmaps/aspnet-core/content/112-task-scheduling/102-quartz.md index 0c4afd83b..1ce7fc973 100644 --- a/src/roadmaps/aspnet-core/content/112-task-scheduling/102-quartz.md +++ b/src/roadmaps/aspnet-core/content/112-task-scheduling/102-quartz.md @@ -1 +1,10 @@ -# Quartz \ No newline at end of file +# Quartz + +Quartz is an open-source, job scheduling library for .NET that can be used in ASP.NET applications. It is based on the popular Quartz scheduler for Java, and provides a similar feature set for scheduling and executing background jobs in .NET applications. + +With Quartz, you can schedule jobs to run at specific times or intervals, and you can also set up triggers to start a job based on certain events. Quartz also provides a rich set of options for configuring and managing your jobs, such as pausing, resuming, and canceling jobs, as well as job chaining and priorities. + +To learn more, visit the following links: + +- [Intro to Quartz in ASP.NET](https://aspnetboilerplate.com/Pages/Documents/Quartz-Integration) +- [How to work with Quartz.Net in ASP.NET](https://www.infoworld.com/article/3078781/how-to-work-with-quartz-net-in-c.html) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/112-task-scheduling/103-coravel.md b/src/roadmaps/aspnet-core/content/112-task-scheduling/103-coravel.md index 10e347362..abb80d444 100644 --- a/src/roadmaps/aspnet-core/content/112-task-scheduling/103-coravel.md +++ b/src/roadmaps/aspnet-core/content/112-task-scheduling/103-coravel.md @@ -1 +1,11 @@ -# Coravel \ No newline at end of file +# Coravel + +Coravel is an open-source, lightweight library for .NET that allows you to easily perform background processing and scheduling in your ASP.NET Core application. It provides a simple and elegant way to schedule tasks, run background jobs, and manage queues in your application. + +Coravel is inspired by Laravel's task scheduler and it's built on top of the .NET Core built-in Dependency Injection. It uses a fluent API to schedule tasks, allowing you to easily specify the frequency, start time, and end time of the task. It also provides a simple way to queue and process background jobs, allowing you to easily process large amounts of data or perform long-running tasks. + +To learn more, visit the following links: + +- [Documentation of Coravel](https://docs.coravel.net/) +- [ASP.NET Task Scheduling with Coravel](https://www.youtube.com/watch?v=vu0fxlWl0wo) +- [How to Run a .Net Console App with Coravel](https://www.youtube.com/watch?v=KQpw_OYkKq8) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/112-task-scheduling/index.md b/src/roadmaps/aspnet-core/content/112-task-scheduling/index.md index af077b7a8..4d7ce4015 100644 --- a/src/roadmaps/aspnet-core/content/112-task-scheduling/index.md +++ b/src/roadmaps/aspnet-core/content/112-task-scheduling/index.md @@ -1 +1,10 @@ -# Task scheduling \ No newline at end of file +# Task Scheduling + +Task scheduling in ASP.NET refers to the process of scheduling and executing background tasks in an application. This can include tasks such as sending emails, processing data, generating reports, or performing maintenance tasks. + +In ASP.NET, task scheduling can be implemented using a variety of libraries and frameworks such as Quartz.NET, Hangfire, Coravel and Microsoft's built-in IHostedService interface. These libraries and frameworks provide a way to schedule tasks to run at specific times or intervals, and also provide APIs for managing and monitoring the progress of scheduled tasks. + +To learn more, visit the following links: + +- [Task Scheduling in ASP.NET](https://www.youtube.com/watch?v=Vg4AOpb7OqA) +- [How schedule Tasks in ASP.NET?](https://beansoftware.com/ASP.NET-Tutorials/Scheduled-Tasks.aspx) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/113-testing/100-e2e-testing/100-selenium.md b/src/roadmaps/aspnet-core/content/113-testing/100-e2e-testing/100-selenium.md index 832bd8988..e0ad916d7 100644 --- a/src/roadmaps/aspnet-core/content/113-testing/100-e2e-testing/100-selenium.md +++ b/src/roadmaps/aspnet-core/content/113-testing/100-e2e-testing/100-selenium.md @@ -1 +1,8 @@ -# Selenium \ No newline at end of file +# Selenium + +Selenium is an open-source library that allows developers to automate web browsers and simulate user interactions, it's commonly used for testing web applications. It can be integrated with .NET and provides a .NET binding for interacting with the Selenium API. The Selenium WebDriver API for .NET allows developers to write tests for web applications in C# or other .NET languages and supports various programming paradigms like Page Object Model. + +To learn more, visit the following links: + +- [Automated UI Tests with Selenium and ASP.NET](https://code-maze.com/selenium-aspnet-core-ui-tests/) +- [Selenium Web Driver in .NET](https://stephan-bester.medium.com/automated-testing-with-selenium-web-driver-in-net-bde6854d3207) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/113-testing/100-e2e-testing/101-playwright.md b/src/roadmaps/aspnet-core/content/113-testing/100-e2e-testing/101-playwright.md index 454f06c7c..303413254 100644 --- a/src/roadmaps/aspnet-core/content/113-testing/100-e2e-testing/101-playwright.md +++ b/src/roadmaps/aspnet-core/content/113-testing/100-e2e-testing/101-playwright.md @@ -1 +1,9 @@ -# Playwright \ No newline at end of file +# Playwright + +Playwright is an open-source library for automating web browsers built by Microsoft, similar to Selenium, it's commonly used for testing web applications. It's built on top of the .NET Core runtime and it provides bindings for C#, it allows developers to write tests for web applications in C# or other .NET languages. Playwright is designed to be fast and reliable and allows developers to run tests in multiple browsers. + +To learn more, visit the following: + +- [Playwright for .NET](https://github.com/microsoft/playwright-dotnet) +- [How to test Apps with Playwright and .NETs](https://www.twilio.com/blog/test-web-apps-with-playwright-and-csharp-dotnet) +- [End-to-End Tests With ASP.NET and Playwright](https://khalidabuhakmeh.com/end-to-end-test-with-aspnet-core-xunit-and-playwright) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/113-testing/100-e2e-testing/102-puppeteer.md b/src/roadmaps/aspnet-core/content/113-testing/100-e2e-testing/102-puppeteer.md index 70452d2a2..74bec6a8f 100644 --- a/src/roadmaps/aspnet-core/content/113-testing/100-e2e-testing/102-puppeteer.md +++ b/src/roadmaps/aspnet-core/content/113-testing/100-e2e-testing/102-puppeteer.md @@ -1 +1,8 @@ -# Puppeteer \ No newline at end of file +# Puppeteer + +Puppeteer is an open-source library for automating web browsers, similar to Selenium and Playwright. It's built on top of the Chrome DevTools protocol and it provides a set of APIs that allows developers to interact with web browsers and simulate user interactions, such as clicking buttons, filling out forms, and navigating between pages. It's commonly used for testing web applications, web scraping, and generating screenshots and PDFs of web pages. Puppeteer for .NET is built on top of the .NET Core runtime and it provides bindings for C# and allows developers to write tests for web applications in C# or other .NET languages. + +For more information, visit the following links: + +- [Why use Puppeteer?](https://www.kiltandcode.com/puppeteer-sharp-crawl-the-web-using-csharp-and-headless-chrome/) +- [Documentations of Puppeteer](https://www.puppeteersharp.com/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/113-testing/100-e2e-testing/103-cypress.md b/src/roadmaps/aspnet-core/content/113-testing/100-e2e-testing/103-cypress.md index c881065db..c6a9da8fc 100644 --- a/src/roadmaps/aspnet-core/content/113-testing/100-e2e-testing/103-cypress.md +++ b/src/roadmaps/aspnet-core/content/113-testing/100-e2e-testing/103-cypress.md @@ -1 +1,8 @@ -# Cypress \ No newline at end of file +# Cypress + +Cypress is an open-source end-to-end testing framework for web applications, it's built on top of JavaScript and provides a set of APIs that allows developers to automate browser interactions. It's commonly used for testing web applications, as it can be used to automate browser-based tests and assert that the application behaves as expected. Cypress for .NET is not built on top of the .NET Core runtime and it does not provide bindings for C# or any other .NET languages, it's built on top of JavaScript and can be run in the browser. + +To learn more, visit the following links: + +- [Cypress - End To End Testing Tool](https://www.c-sharpcorner.com/article/getting-started-with-cypress-io/) +- [Overview of Cypress](https://www.cypress.io/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/113-testing/100-e2e-testing/index.md b/src/roadmaps/aspnet-core/content/113-testing/100-e2e-testing/index.md index d4b55904e..b9559dd67 100644 --- a/src/roadmaps/aspnet-core/content/113-testing/100-e2e-testing/index.md +++ b/src/roadmaps/aspnet-core/content/113-testing/100-e2e-testing/index.md @@ -1 +1,9 @@ -# E2e testing \ No newline at end of file +# E2E Testing + +E2E testing is a method of testing the complete functionality of an application, from start to finish, it's used to test the entire workflow of an application and ensure that all the different components and features work together seamlessly. In the context of ASP.NET, E2E testing can be used to test web applications built using the ASP.NET framework. E2E testing can be done using frameworks such as Selenium, Playwright, and Cypress which allow developers to automate browser interactions and simulate user interactions with the application. E2E testing is an important aspect of software development and it helps to identify and fix issues early in the development process and ensure that the application behaves as expected when it is released to the users. + +Visit the following links to learn more: + +- [End-to-End Testing ASP.NET Core APIs](https://www.youtube.com/watch?v=WWN-9ahbdIU) +- [ASP.NET Core and its testing](https://blog.devgenius.io/asp-net-core-end-to-end-testing-52325e28e387) +- [Unit Test and E2E Test in ASP.NET](https://learn.microsoft.com/en-us/odata/webapi/unittest-e2etest) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/100-fluent-assertions.md b/src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/100-fluent-assertions.md index 184bda8b3..2c465c604 100644 --- a/src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/100-fluent-assertions.md +++ b/src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/100-fluent-assertions.md @@ -1 +1,9 @@ -# Fluent assertions \ No newline at end of file +# Fluent Assertions + +Fluent Assertions is a fluent, readable, and extensible set of .NET extension methods that allow developers to write more natural and expressive assertions in their unit tests, it provides a fluent, fluent-like API that makes it easy to write assertions in a natural language-like syntax. In the context of ASP.NET, Fluent Assertions can be used in conjunction with test frameworks such as MSTest, xUnit, and NUnit to write more expressive and readable unit tests for the application. It provides advanced features such as support for collection-specific assertions, support for asynchronous code, and support for custom types. It's a widely used and open source library, it's very useful to improve code readability and make the test code more expressive. + +To learn more, visit the following links: + +- [Introduction of Fluent Assertions](https://fluentassertions.com/introduction) +- [Improving Unit Tests with Fluent Assertions](https://code-maze.com/unit-tests-with-fluent-assertions/) +- [Exploring Fluent Assertions in Unit Testing](https://www.meziantou.net/exploring-fluent-assertions.htm) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/101-shouldly.md b/src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/101-shouldly.md index 76c15d93d..b7ca7e52b 100644 --- a/src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/101-shouldly.md +++ b/src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/101-shouldly.md @@ -1 +1,8 @@ -# Shouldly \ No newline at end of file +# Shouldly + +Shouldly is a .NET library that provides a set of extension methods for writing expressive and readable assertions in unit tests, it's designed to be an alternative to traditional assertion libraries. In the context of ASP.NET, Shouldly can be used in conjunction with test frameworks such as MSTest, xUnit, and NUnit to write more expressive and readable unit tests for the application. It provides advanced features such as support for collection-specific assertions, support for asynchronous code, and support for custom types, also includes options to customize the error message. + +To learn more, visit the following links: + +- [How to Use Shouldly to Improve Unit Tests in .NET?](https://code-maze.com/improve-unit-tests-shouldly-dotnet/) +- [Improve Test Asserts with Shouldly](https://visualstudiomagazine.com/articles/2015/08/01/improve-test-asserts-with-shouldly.aspx?admgarea=ALM) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/102-mstest.md b/src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/102-mstest.md index 1b6dfb56b..9c0ceb5a5 100644 --- a/src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/102-mstest.md +++ b/src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/102-mstest.md @@ -1 +1,9 @@ -# Mstest \ No newline at end of file +# MSTest + +MSTest is a unit testing framework for the .NET framework, it's one of the built-in test frameworks in Visual Studio and it's widely used for unit testing in the .NET ecosystem. In the context of ASP.NET, MSTest can be used to write unit tests for web applications built using the ASP.NET framework. MSTest provides features such as data-driven testing, parallel test execution, and test discovery and execution, it also provides the ability to run tests on multiple frameworks. + +To learn more, visit the following links: + +- [.NET Core testing with MSTest](https://www.oreilly.com/library/view/c-and-net/9781788292481/aa08c601-f374-4e31-be8e-8eb69d63bd19.xhtml) +- [Unit testing with MSTest and .NET](https://learn.microsoft.com/en-us/dotnet/core/testing/unit-testing-with-mstest) +- [Complete Guide of MSTest for Unit Testing in ASP.NET](https://sweetcode.io/a-complete-guide-of-mstest-for-unit-testing-in-asp-net/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/103-xunit.md b/src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/103-xunit.md index e6b9f19fb..a38adc5ae 100644 --- a/src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/103-xunit.md +++ b/src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/103-xunit.md @@ -1 +1,9 @@ -# Xunit \ No newline at end of file +# xUnit + +xUnit is a unit testing framework for the .NET framework, it's an open-source testing framework that provides a set of attributes and classes that can be used to create unit tests. In the context of ASP.NET, xUnit can be used to write unit tests for web applications built using the ASP.NET framework. xUnit provides features such as support for data-driven tests, support for parallel test execution, and support for test discovery and execution, it also provides support for test isolation which allows developers to run tests in isolation from each other. xUnit is a popular alternative to other testing frameworks like MSTest and it does not rely on a test runner, instead relies on a console runner that can be run from the command line. + +To learn more, visit the following links: + +- [Unit Testing with xUnit in ASP.NET Core](https://code-maze.com/aspnetcore-unit-testing-xunit/) +- [Unit testing in .NET Core using and xUnit](https://learn.microsoft.com/en-us/dotnet/core/testing/unit-testing-with-dotnet-test) +- [Getting Started With Unit Testing Using ASP.NET And xUnit](https://www.c-sharpcorner.com/article/getting-started-with-unit-testing-using-c-sharp-and-xunit/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/104-nunit.md b/src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/104-nunit.md index 575e4aeab..dd4cc4bf3 100644 --- a/src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/104-nunit.md +++ b/src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/104-nunit.md @@ -1 +1,8 @@ -# Nunit \ No newline at end of file +# NUnit + +NUnit is a unit testing framework for the .NET framework, it's an open-source testing framework that provides a set of attributes and classes that can be used to create unit tests. In the context of ASP.NET, NUnit can be used to write unit tests for web applications built using the ASP.NET framework. NUnit provides features such as support for data-driven tests, support for parallel test execution, and support for test discovery and execution, it also provides support for test isolation which allows developers to run tests in isolation from each other. NUnit is a popular alternative to other testing frameworks like MSTest and xUnit and it has a similar syntax as JUnit and it's considered as one of the oldest testing frameworks for .NET. + +Visit the following links for more resources: + +- [NUnit With C#](https://www.c-sharpcorner.com/UploadFile/84c85b/nunit-with-C-Sharp/) +- [Unit testing C# with NUnit and .NET Core](https://learn.microsoft.com/en-us/dotnet/core/testing/unit-testing-with-nunit) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/105-nsubstitute.md b/src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/105-nsubstitute.md index 9d4b95656..a76505059 100644 --- a/src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/105-nsubstitute.md +++ b/src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/105-nsubstitute.md @@ -1 +1,8 @@ -# Nsubstitute \ No newline at end of file +# NSubstitute + +NSubstitute is a popular open-source .NET library that allows developers to create mock objects for use in unit testing, it is a powerful and flexible substitute for traditional mocking frameworks such as Moq and Rhino Mocks. In the context of ASP.NET, NSubstitute can be used to create mock objects for testing web applications built using the ASP.NET framework, it provides a simple and intuitive syntax for creating mock objects, setting up mock behavior, and making assertions on calls made to the mock objects. NSubstitute supports a wide range of testing frameworks and test runners, including MSTest, NUnit, and xUnit and it also supports various platforms including .NET Framework, .NET Core, Xamarin and Unity. + +To learn more, visit the following links: + +- [Overview of NSubstitute](https://github.com/nsubstitute/NSubstitute) +- [Getting started NSubstitute](https://nsubstitute.github.io/help/getting-started/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/106-moq.md b/src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/106-moq.md index ca5011ced..e995b8c43 100644 --- a/src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/106-moq.md +++ b/src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/106-moq.md @@ -1 +1,9 @@ -# Moq \ No newline at end of file +# Moq + +Moq is an open-source library for .NET that allows developers to create mock objects for use in unit testing, it is a popular mocking framework that provides a simple and intuitive syntax for creating mock objects and setting up mock behavior. In the context of ASP.NET, Moq can be used to create mock objects for testing web applications built using the ASP.NET framework, it provides a simple and expressive syntax for creating mock objects and setting up mock behavior. Moq supports a wide range of testing frameworks, including MSTest, NUnit, and xUnit and it also supports various platforms including .NET Framework, .NET Core and Xamarin. Moq is lightweight and easy to use, making it a good choice for developers who are new to mocking and unit testing, it also provides a rich set of features, such as support for setting up mock behavior, making assertions on calls made to the mock objects, and more. + +Visit the following links to learn more: + +- [What is use of Moq?](https://stackoverflow.com/questions/678878/what-is-use-of-moq) +- [Moq - Unit Test In .NET Core App](https://www.c-sharpcorner.com/article/moq-unit-test-net-core-app-using-mock-object/) +- [Getting started with Mocking using Moq in .NET](https://www.youtube.com/watch?v=9ZvDBSQa_so) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/107-fake-it-easy.md b/src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/107-fake-it-easy.md index 1496a8157..6ed99fc34 100644 --- a/src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/107-fake-it-easy.md +++ b/src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/107-fake-it-easy.md @@ -1 +1,8 @@ -# Fake it easy \ No newline at end of file +# FakeitEasy + +FakeItEasy is an open-source library for .NET that allows developers to create fake objects for use in unit testing, it is a powerful and easy-to-use mocking framework that provides a simple and intuitive syntax for creating fake objects and setting up fake behavior. In the context of ASP.NET, FakeItEasy can be used to create fake objects for testing web applications built using the ASP.NET framework, it provides a simple and expressive syntax for creating fake objects and setting up fake behavior. FakeItEasy supports a wide range of testing frameworks, including MSTest, NUnit, and xUnit. FakeItEasy is lightweight and easy to use, making it a good choice for developers who are new to mocking and unit testing, it also provides a rich set of features, such as support for setting up fake behavior, making assertions on calls made to the fake objects, and more. It also has a wide range of extension points for customizing the fakes to suit different needs. + +Visit the following links to learn more: + +- [Easy mocking in C# code with FakeItEasy library](https://devislandblog.wordpress.com/2018/05/09/easy-mocking-in-c-code-with-fakeiteasy-library/) +- [FakeItEasy when testing ASP.NET Core controllers](https://stackoverflow.com/questions/56170818/how-to-fake-an-interface-method-dynamically-with-fakeiteasy-when-testing-asp-net) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/index.md b/src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/index.md index 94ee45331..6e129533d 100644 --- a/src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/index.md +++ b/src/roadmaps/aspnet-core/content/113-testing/101-unit-testing/index.md @@ -1 +1,9 @@ -# Unit testing \ No newline at end of file +# Unit Testing + +Unit testing is a software testing method in which individual units or components of a software application are tested in isolation from the rest of the application. The goal of unit testing is to validate that each unit of the software application is working as intended and that the interactions between units are also working as intended. In the context of ASP.NET, unit testing can be used to test individual components of a web application built using the ASP.NET framework. Unit testing is a good practice in software development as it helps to catch bugs early in the development process, improves the quality of the code and makes it more maintainable. Additionally, unit tests provide developers with a suite of automated tests that can be run against the application at any time. There are different Unit Testing frameworks available for .NET and many libraries for Mocking, Assertions, and fake objects. + +To learn more, visit the following links: + +- [Overview of .NET Unit Testing](https://www.toptal.com/dot-net/dotnet-unit-testing-tutorial) +- [Unit Testing in ASP.NET - Complete Tutorial](https://www.guru99.com/asp-net-unit-testing-project.html) +- [How to UnitTest ASP.Net MVC Controllers with XUnit ?](https://www.youtube.com/watch?v=VtPosbYAhD8) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/113-testing/102-integration-testing/100-web-application-factory.md b/src/roadmaps/aspnet-core/content/113-testing/102-integration-testing/100-web-application-factory.md index a72c421ca..be2855a29 100644 --- a/src/roadmaps/aspnet-core/content/113-testing/102-integration-testing/100-web-application-factory.md +++ b/src/roadmaps/aspnet-core/content/113-testing/102-integration-testing/100-web-application-factory.md @@ -1 +1,9 @@ -# Web application factory \ No newline at end of file +# WebApplicationFactory + +Web Application Factory (WAF) is a built-in feature of the ASP.NET Core framework that allows developers to create and configure a web application in a programmatic way. It provides a simple and flexible way to set up a web application for testing, without the need for a web server or a browser. The WAF can be used to create a test server that can be used to run integration tests or end-to-end tests for an ASP.NET Core web application, this allows developers to test the web application in a realistic environment, without the need for a physical web server or a browser. The WAF can be configured to use different services, middleware, and settings, depending on the needs of the application, this allows developers to easily set up a web application that is configured specifically for testing. The WAF also allows developers to test the web application against different configurations, such as different databases, different authentication providers, and different hosting environments. + +To learn more, visit the following links: + +- [Integration tests in ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/test/integration-tests?view=aspnetcore-7.0) +- [Integration Testing ASP.NET Core WebAPI Applications](https://www.youtube.com/watch?v=xs8gNQjCXw0) +- [How to use WebApplicationFactory in .NET](https://stackoverflow.com/questions/69058176/how-to-use-webapplicationfactory-in-net6-without-speakable-entry-point) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/113-testing/102-integration-testing/101-test-server.md b/src/roadmaps/aspnet-core/content/113-testing/102-integration-testing/101-test-server.md index 614981335..9276c1f5f 100644 --- a/src/roadmaps/aspnet-core/content/113-testing/102-integration-testing/101-test-server.md +++ b/src/roadmaps/aspnet-core/content/113-testing/102-integration-testing/101-test-server.md @@ -1 +1,9 @@ -# Test server \ No newline at end of file +# TestServer + +TestServer in ASP.NET is a programmatic way to create a web server that can be used to run integration or end-to-end tests for a web application. The TestServer simulates the behavior of a real web server, and allows developers to test the web application in a realistic environment, without the need for a physical web server or a browser. The TestServer can be created and configured using the built-in Web Application Factory (WAF) feature in ASP.NET Core. The WAF allows developers to configure the TestServer to use different services, middleware, and settings, depending on the needs of the application. The TestServer can also be used to test the web application against different configurations, such as different databases, different authentication providers, and different hosting environments. + +To learn more, visit the following links: + +- [Integration Tests with TestServer](https://visualstudiomagazine.com/articles/2017/07/01/testserver.aspx) +- [ASP.NET Core Integration Tests With TestServer](https://scotthannen.org/blog/2021/11/18/testserver-how-did-i-not-know.html) +- [How do you create a TestServer in .NET](https://stackoverflow.com/questions/69897652/how-do-you-create-a-test-server-in-net-6) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/113-testing/102-integration-testing/index.md b/src/roadmaps/aspnet-core/content/113-testing/102-integration-testing/index.md index 30f1d7fbd..3dc72e252 100644 --- a/src/roadmaps/aspnet-core/content/113-testing/102-integration-testing/index.md +++ b/src/roadmaps/aspnet-core/content/113-testing/102-integration-testing/index.md @@ -1 +1,9 @@ -# Integration testing \ No newline at end of file +# Integration Testing + +Integration testing in ASP.NET refers to the process of testing how different components or modules of a web application interact with each other. This type of testing is done to ensure that the different parts of the application are working together correctly and that the application as a whole is functioning properly. Integration testing typically involves testing the interactions between different layers of the application, such as the data access layer, the business logic layer, and the presentation layer. It can also involve testing the interactions between the web application and external systems, such as databases, web services, and other external APIs. Integration testing can be done using a variety of testing frameworks and tools, such as xUnit, NUnit, MSTest, and others. These frameworks provide the ability to create test cases that simulate different scenarios and test the application's behavior under different conditions. + +Visit the following links to learn more:; + +- [Integration tests in ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/test/integration-tests?view=aspnetcore-7.0) +- [Integration Testing ASP.NET Core WebAPI Applications](https://www.youtube.com/watch?v=xs8gNQjCXw0) +- [A Sample Project Integration Test In ASP.NET](https://www.youtube.com/watch?v=ziSKkR2nvis) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/113-testing/103-behavior-testing/100-spec-flow.md b/src/roadmaps/aspnet-core/content/113-testing/103-behavior-testing/100-spec-flow.md index a792ff348..08c4e5fd6 100644 --- a/src/roadmaps/aspnet-core/content/113-testing/103-behavior-testing/100-spec-flow.md +++ b/src/roadmaps/aspnet-core/content/113-testing/103-behavior-testing/100-spec-flow.md @@ -1 +1,9 @@ -# Spec flow \ No newline at end of file +# SpecFlow + +SpecFlow is an open-source tool that allows developers to create automated acceptance tests in a natural language format, such as Gherkin. SpecFlow is commonly used in the context of ASP.NET and other .NET technologies, to write acceptance tests for web applications. With SpecFlow, developers can write test scenarios using plain text in the Gherkin syntax, which uses a Given-When-Then format to describe the steps of a test. These scenarios can be written by non-technical stakeholders, such as business analysts or product owners, and can be easily understood by anyone who reads them. SpecFlow then converts these Gherkin scenarios into executable tests, which can be run using a variety of test runners, such as NUnit, xUnit, or MSTest. The tool also provides a set of bindings that allow developers to map the steps in the Gherkin scenarios to code in their application, making it easy to test specific functionality. Additionally, SpecFlow provides a set of advanced features, such as support for parameterized tests, background steps, and hooks, which allows developers to create more complex and powerful tests. + +To learn more, visit the following links: + +- [SpecFlow’s documentation](https://docs.specflow.org/_/downloads/specflow/en/latest/pdf/) +- [Getting Started with SpecFlow](https://docs.specflow.org/projects/getting-started/en/latest/index.html) +- [What is SpecFlow?](https://specflow.org/tools/specflow/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/113-testing/103-behavior-testing/101-bddfy.md b/src/roadmaps/aspnet-core/content/113-testing/103-behavior-testing/101-bddfy.md index d7631439b..c23659f3d 100644 --- a/src/roadmaps/aspnet-core/content/113-testing/103-behavior-testing/101-bddfy.md +++ b/src/roadmaps/aspnet-core/content/113-testing/103-behavior-testing/101-bddfy.md @@ -1 +1,9 @@ -# Bddfy \ No newline at end of file +# BDDfy + +BDDfy is an open-source, fluent, and extensible BDD (Behavior-Driven Development) framework for .NET, which allows developers to create automated acceptance tests in a readable and expressive format. BDDfy is commonly used in the context of ASP.NET and other .NET technologies, to write acceptance tests for web applications. With BDDfy, developers can write test scenarios using a fluent API, which allows them to describe the behavior of their application in a natural language format. The framework also provides a set of extension methods, which can be used to add additional functionality, such as validating the output of a test, logging test results, or integrating with other testing tools. BDDfy also comes with a built-in test runner, which makes it easy to execute tests and view the results. The framework supports a variety of test runners, such as NUnit, xUnit, and MSTest, and can be integrated with other BDD frameworks, such as SpecFlow and Cucumber. + +To learn more, visit the following links: + +- [Using BDDfy for Unit Tests](https://www.michael-whelan.net/using-bddfy-for-unit-tests/) +- [Introducing BDDfy in ASP.NET](codeproject.com/Articles/205381/Introducing-BDDfy-the-simplest-BDD-framework-for-N) +- [Implement BDD with .NET](https://www.youtube.com/watch?v=GYN_srjAvyk) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/113-testing/103-behavior-testing/102-light-bdd.md b/src/roadmaps/aspnet-core/content/113-testing/103-behavior-testing/102-light-bdd.md index e114e3ef5..13789f21e 100644 --- a/src/roadmaps/aspnet-core/content/113-testing/103-behavior-testing/102-light-bdd.md +++ b/src/roadmaps/aspnet-core/content/113-testing/103-behavior-testing/102-light-bdd.md @@ -1 +1,9 @@ -# Light bdd \ No newline at end of file +# LightBDD + +LightBDD is an open-source, lightweight, and easy-to-use BDD (Behavior-Driven Development) framework for .NET, which allows developers to write automated acceptance tests in a simple and readable format. LightBDD is commonly used in the context of ASP.NET and other .NET technologies, to write acceptance tests for web applications. LightBDD is designed to provide a simple, yet powerful, way to write BDD tests. It allows developers to write tests using a fluent API, which allows them to describe the behavior of their application in a natural language format. The framework also provides a set of extension methods, which can be used to add additional functionality, such as validating the output of a test, logging test results, or integrating with other testing tools. LightBDD also comes with a built-in test runner, which makes it easy to execute tests and view the results. The framework supports a variety of test runners, such as NUnit, xUnit, and MSTest, and can be integrated with other BDD frameworks, such as SpecFlow and Cucumber. + +To learn more, visit the following links: + +- [Getting started with Behavior Driven Development (BDD) in .NET](https://www.youtube.com/watch?v=EEeVU0z26u0) +- [Introduction To BDD using SpecFlow in ASP.NET](https://www.youtube.com/watch?v=8KPrhBqZ-kk) +- [The Lightweight Behavior Driven Development test framework](https://github.com/LightBDD/LightBDD) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/113-testing/103-behavior-testing/index.md b/src/roadmaps/aspnet-core/content/113-testing/103-behavior-testing/index.md index 007085e2b..1a7f16011 100644 --- a/src/roadmaps/aspnet-core/content/113-testing/103-behavior-testing/index.md +++ b/src/roadmaps/aspnet-core/content/113-testing/103-behavior-testing/index.md @@ -1 +1,8 @@ -# Behavior testing \ No newline at end of file +# Behavior Testing + +Behavior testing, also known as Behavioral-Driven Development (BDD), is a software development methodology that focuses on the behavior of the system being developed, rather than its implementation. BDD is a variation of Test-Driven Development (TDD), which emphasizes the use of automated tests to drive the development of software. BDD frameworks such as SpecFlow, Cucumber, and LightBDD provide a set of tools for writing and executing BDD tests in the context of ASP.NET. These frameworks allow developers to write tests using a fluent API, which allows them to describe the behavior of their application in a natural language format. They also provide a set of extension methods, which can be used to add additional functionality, such as validating the output of a test, logging test results, or integrating with other testing tools. + +To learn more, visit the following links: + +- [A Complete Tutorial on ASP.NET Testing](https://www.lambdatest.com/blog/aspnet-testing/) +- [Learn Behavior Testing in ASP.NET](https://public.vectorly.team/articles/learn_Behavior_Testing_for_Tech_Lead_role_ASP.NET_Developer) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/113-testing/index.md b/src/roadmaps/aspnet-core/content/113-testing/index.md index 94cfd7d77..3e69f43cc 100644 --- a/src/roadmaps/aspnet-core/content/113-testing/index.md +++ b/src/roadmaps/aspnet-core/content/113-testing/index.md @@ -1 +1,9 @@ -# Testing \ No newline at end of file +# Testing + +Testing in ASP.NET is the process of evaluating the performance, functionality, and overall correctness of an application developed using the ASP.NET framework. There are several types of testing that can be performed on an ASP.NET application, including unit testing, integration testing, acceptance testing and E2E testing. Each type of testing has a different focus and is used at a different stage of the development process. Common testing frameworks for ASP.NET include MSTest, XUnit, NUnit, Selenium, Playwright, Puppeteer, Cypress, Specflow, Cucumber, and LightBDD. + +To learn more, visit the following links: + +- [A Complete Tutorial on ASP.NET Testing](https://www.lambdatest.com/blog/aspnet-testing/) +- [Unit test controller logic in ASP.NET](https://learn.microsoft.com/en-us/aspnet/core/mvc/controllers/testing?view=aspnetcore-7.0) +- [Integration tests in ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/test/integration-tests?view=aspnetcore-7.0) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/114-microservices/100-message-brokers/100-active-mq.md b/src/roadmaps/aspnet-core/content/114-microservices/100-message-brokers/100-active-mq.md index fa679bc02..88cc94005 100644 --- a/src/roadmaps/aspnet-core/content/114-microservices/100-message-brokers/100-active-mq.md +++ b/src/roadmaps/aspnet-core/content/114-microservices/100-message-brokers/100-active-mq.md @@ -1 +1,11 @@ -# Active mq \ No newline at end of file +# ActiveMQ + +ActiveMQ is an open-source message broker written in Java that implements the Java Message Service (JMS) API. It can be used to send and receive messages between different applications in a loosely coupled, asynchronous manner. ActiveMQ supports a variety of messaging protocols, including JMS, AMQP, STOMP, MQTT, and OpenWire. + +In the context of an ASP.NET application, ActiveMQ can be used to send and receive messages to and from other systems. For example, it can be used to send messages from a web application to a background service, or to send messages between different microservices. + +To learn more, visit the following links: + +- [What Is ActiveMQ And How Can You Use It?](https://www.c-sharpcorner.com/article/what-is-activemq-and-how-can-you-use-it/) +- [Messaging with .NET and ActiveMQ](https://remark.wordpress.com/articles/messaging-with-net-and-activemq/) +- [Messaging with ActiveMQ and ASP.NET](https://havret.io/activemq-artemis-net-core) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/114-microservices/100-message-brokers/101-apache-kafka.md b/src/roadmaps/aspnet-core/content/114-microservices/100-message-brokers/101-apache-kafka.md index 183b6f6fb..09ec2e53c 100644 --- a/src/roadmaps/aspnet-core/content/114-microservices/100-message-brokers/101-apache-kafka.md +++ b/src/roadmaps/aspnet-core/content/114-microservices/100-message-brokers/101-apache-kafka.md @@ -1 +1,10 @@ -# Apache kafka \ No newline at end of file +# Apache Kafka + +Apache Kafka is an open-source, distributed event streaming platform that is used for building real-time data pipelines and streaming applications. It is designed to handle high volumes of data and to support real-time data processing. + +Kafka is based on a publish-subscribe model, where producers write data to topics, and consumers read data from those topics. Data is stored in topics in a log-based format, which allows for efficient storage and retrieval of data. + +To learn more, visit the following links: + +- [Working with Apache Kafka in ASP.NET](https://www.codemag.com/Article/2201061/Working-with-Apache-Kafka-in-ASP.NET-6-Core) +- [Kafka and .NET](https://docs.confluent.io/kafka-clients/dotnet/current/overview.html) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/114-microservices/100-message-brokers/102-rabbit-mq.md b/src/roadmaps/aspnet-core/content/114-microservices/100-message-brokers/102-rabbit-mq.md index ef9a745cb..2aede5fa5 100644 --- a/src/roadmaps/aspnet-core/content/114-microservices/100-message-brokers/102-rabbit-mq.md +++ b/src/roadmaps/aspnet-core/content/114-microservices/100-message-brokers/102-rabbit-mq.md @@ -1 +1,11 @@ -# Rabbit mq \ No newline at end of file +# RabbitMQ + +RabbitMQ is an open-source message broker software that implements the Advanced Message Queuing Protocol (AMQP). It is written in Erlang and can be used to send and receive messages between different applications in a loosely coupled, asynchronous manner. RabbitMQ supports a variety of messaging patterns, including point-to-point, publish-subscribe, and request-response. + +In the context of an ASP.NET application, RabbitMQ can be used to send and receive messages to and from other systems. For example, it can be used to send messages from a web application to a background service, or to send messages between different microservices. + +To learn more, visit the following links: + +- [How to Use RabbitMQ in ASP NET?](https://www.freecodespot.com/blog/use-rabbitmq-in-asp-net-core/) +- [Introduction of RabbitMQ](https://www.rabbitmq.com/tutorials/tutorial-one-dotnet.html) +- [ASP.NET and RabbitMQ](https://referbruv.com/blog/integrating-rabbitmq-with-aspnet-core-quickstart-with-an-example/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/114-microservices/100-message-brokers/103-net-mq.md b/src/roadmaps/aspnet-core/content/114-microservices/100-message-brokers/103-net-mq.md index 16267af2d..ee06126ab 100644 --- a/src/roadmaps/aspnet-core/content/114-microservices/100-message-brokers/103-net-mq.md +++ b/src/roadmaps/aspnet-core/content/114-microservices/100-message-brokers/103-net-mq.md @@ -1 +1,10 @@ -# Net mq \ No newline at end of file +# NetMQ + +NetMQ is a lightweight, open-source messaging library for building distributed systems and real-time applications in .NET. It provides an API for sending and receiving messages using a variety of messaging patterns and protocols, including request-response, publish-subscribe, and push-pull. + +NetMQ is built on top of ZeroMQ, a high-performance, asynchronous messaging library that provides a minimalistic socket-based API for building distributed systems. NetMQ is designed to be easy to use and to abstract away the complexities of ZeroMQ, making it a good choice for developers who want to add messaging capabilities to their ASP.NET applications without having to learn a complex API. + +Visit the following links to learn more: + +- [Documentation of NetMQ](https://netmq.readthedocs.io/en/latest/introduction/) +- [NetMQ and creating a Dynamic Worker in .NET](https://mikaelkoskinen.net/post/netmq-and-creating-a-dynamic-worker-per-task) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/114-microservices/100-message-brokers/104-azure-service-bus.md b/src/roadmaps/aspnet-core/content/114-microservices/100-message-brokers/104-azure-service-bus.md index 60b5aa2f8..060e17c1c 100644 --- a/src/roadmaps/aspnet-core/content/114-microservices/100-message-brokers/104-azure-service-bus.md +++ b/src/roadmaps/aspnet-core/content/114-microservices/100-message-brokers/104-azure-service-bus.md @@ -1 +1,9 @@ -# Azure service bus \ No newline at end of file +# Azure Service Bus + +Azure Service Bus is a scalable and reliable messaging platform that can handle a high volume of messages, it's also easy to use, has a lot of features like subscription, Topics, Dead Letter, and easy to integrate with other Azure services, and it's a managed service which means Microsoft takes care of the infrastructure and scaling. However, it's worth noting that Azure Service Bus is a paid service and the cost will depend on the number of messages and the size of the data that you are sending and receiving. + +To learn more, visit the following links: + +- [Getting Started With Azure Service Bus and ASP.NET Core](https://www.c-sharpcorner.com/article/get-started-with-azure-service-bus-queues-asp-net-core-part-1/) +- [How to Send & receive messages from Azure Service Bus queue (.NET)?](https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-dotnet-get-started-with-queues?tabs=passwordless) +- [What is Azure Service Bus?](https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-messaging-overview) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/114-microservices/100-message-brokers/index.md b/src/roadmaps/aspnet-core/content/114-microservices/100-message-brokers/index.md index 08e76c75e..12df3bd20 100644 --- a/src/roadmaps/aspnet-core/content/114-microservices/100-message-brokers/index.md +++ b/src/roadmaps/aspnet-core/content/114-microservices/100-message-brokers/index.md @@ -1 +1,10 @@ -# Message brokers \ No newline at end of file +# Message Brokers + +Message Brokers are systems that provide a messaging infrastructure for applications and services to communicate with each other in a reliable, secure and scalable way. They act as a central hub for sending and receiving messages between different applications, services and devices. + +In the context of ASP.NET, message brokers can be used to send and receive messages between different parts of an application or between different applications or services, enabling them to communicate with each other in a decoupled and asynchronous manner. + +Visit the following links to learn more: + +- [What are message brokers?](https://www.ibm.com/topics/message-brokers) +- [Building a messaging solution with .Net Core?](https://medium.com/c-sharp-progarmming/quick-start-how-could-you-build-a-messaging-solution-with-net-core-b5f8253f31ea) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/114-microservices/101-message-bus/100-mass-transit.md b/src/roadmaps/aspnet-core/content/114-microservices/101-message-bus/100-mass-transit.md index ce010d048..5f73833b0 100644 --- a/src/roadmaps/aspnet-core/content/114-microservices/101-message-bus/100-mass-transit.md +++ b/src/roadmaps/aspnet-core/content/114-microservices/101-message-bus/100-mass-transit.md @@ -1 +1,10 @@ -# Mass transit \ No newline at end of file +# MassTransit + +MassTransit is an open-source, highly configurable service bus framework for building distributed systems using the .NET framework. It allows developers to easily create message-based, loosely-coupled applications by providing a simple and fluent API for defining message contracts, handling messages, and managing message routing. + +It supports multiple messaging transports such as RabbitMQ, Azure Service Bus, Amazon SQS and others, automatic serialization and deserialization of messages, automatic retries and exception handling for failed message deliveries, and support for advanced messaging patterns like publish-subscribe, request-response, and event-driven architectures. + +To learn more, visit the following links: + +- [Using MassTransit with RabbitMQ in ASP.NET Core](https://code-maze.com/masstransit-rabbitmq-aspnetcore/) +- [Complete guide to MassTransit](https://github.com/MassTransit/MassTransit) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/114-microservices/101-message-bus/101-nservice-bus.md b/src/roadmaps/aspnet-core/content/114-microservices/101-message-bus/101-nservice-bus.md index a922ac132..1747683d2 100644 --- a/src/roadmaps/aspnet-core/content/114-microservices/101-message-bus/101-nservice-bus.md +++ b/src/roadmaps/aspnet-core/content/114-microservices/101-message-bus/101-nservice-bus.md @@ -1 +1,10 @@ -# Nservice bus \ No newline at end of file +# NServiceBus + +NServiceBus (NSB) is a service bus framework for building distributed systems using the .NET framework. It provides a set of features for building message-based, loosely-coupled applications, including support for message routing, message handling, and message persistence. + +NSB supports multiple messaging transports, including MSMQ, RabbitMQ, and Azure Service Bus, and provides support for advanced messaging patterns such as publish-subscribe, request-response, and message-based sagas. + +To learn more, visit the following links: + +- [Using NServiceBus in an ASP.NET](https://docs.particular.net/samples/web/send-from-aspnetcore-webapi/) +- [Learn NServiceBus from .NET Core](https://www.codeproject.com/Articles/1224839/Learn-NServiceBus-from-NET-Core-WebAPI) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/114-microservices/101-message-bus/102-easy-net-q.md b/src/roadmaps/aspnet-core/content/114-microservices/101-message-bus/102-easy-net-q.md index 32d23fcde..c508516aa 100644 --- a/src/roadmaps/aspnet-core/content/114-microservices/101-message-bus/102-easy-net-q.md +++ b/src/roadmaps/aspnet-core/content/114-microservices/101-message-bus/102-easy-net-q.md @@ -1 +1,10 @@ -# Easy net q \ No newline at end of file +# EasyNetQ + +EasyNetQ is a simple and easy-to-use .NET client for RabbitMQ, a popular open-source message broker. It provides a simple and fluent API for connecting to RabbitMQ, publishing and consuming messages, and managing message queues. + +EasyNetQ supports a wide range of messaging patterns, such as publish-subscribe, request-response, and message-based sagas, and makes it easy to work with RabbitMQ's advanced features, such as message routing, message persistence, and message acknowledgements. + +To learn more, visit the following links: + +- [Overview of EasyNetQ](https://easynetq.com/) +- [RabbitMQ with EasyNetQ Tutorials](https://www.youtube.com/watch?v=CqxV_Xn4PlI) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/114-microservices/101-message-bus/index.md b/src/roadmaps/aspnet-core/content/114-microservices/101-message-bus/index.md index 6f6e4e461..b95f9b423 100644 --- a/src/roadmaps/aspnet-core/content/114-microservices/101-message-bus/index.md +++ b/src/roadmaps/aspnet-core/content/114-microservices/101-message-bus/index.md @@ -1 +1,10 @@ -# Message bus \ No newline at end of file +# Message Bus + +A message bus is a software architecture pattern that enables different parts of an application, or different systems, to communicate with each other asynchronously using a message-based protocol. The message bus acts as a central intermediary, routing messages from senders to receivers and providing features such as message persistence, message routing, and message acknowledgements. + +There are different types of message buses, such as event-driven message buses, command-driven message buses, and publish-subscribe message buses. Each type of message bus is designed to handle specific messaging patterns and use cases. + +Visit the following links to learn more: + +- [Implementation of Message Bus C# microservices](https://stackoverflow.com/questions/51330229/implementation-of-message-bus-c-sharp-microservices) +- [Building a Message Bus with .NET Core](https://fatihdumanli.medium.com/build-a-message-bus-implementation-with-net-core-and-rabbitmq-9ba350b777f4) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/114-microservices/102-kubernetes.md b/src/roadmaps/aspnet-core/content/114-microservices/102-kubernetes.md index e963aa790..0b0ac410a 100644 --- a/src/roadmaps/aspnet-core/content/114-microservices/102-kubernetes.md +++ b/src/roadmaps/aspnet-core/content/114-microservices/102-kubernetes.md @@ -1,6 +1,6 @@ # Kubernetes -Kubernetes is an [open source](https://github.com/kubernetes/kubernetes) container management platform, and the dominant product in this space. Using Kubernetes, teams can deploy images across multiple underlying hosts, defining their desired availability, deployment logic, and scaling logic in YAML. Kubernetes evolved from Borg, an internal Google platform used to provision and allocate compute resources. (similar to the Autopilot and Aquaman systems of Microsoft Azure) +Kubernetes is an [open source](https://github.com/kubernetes/kubernetes) container management platform, and the dominant product in this space. Using Kubernetes, teams can deploy images across multiple underlying hosts, defining their desired availability, deployment logic, and scaling logic in YAML. Kubernetes evolved from Borg, an internal Google platform used to provision and allocate compute resources (similar to the Autopilot and Aquaman systems of Microsoft Azure). The popularity of Kubernetes has made it an increasingly important skill for the DevOps Engineer and has triggered the creation of Platform teams across the industry. These Platform engineering teams often exist with the sole purpose of making Kubernetes approachable and usable for their product development colleagues. diff --git a/src/roadmaps/aspnet-core/content/114-microservices/103-docker-swarm.md b/src/roadmaps/aspnet-core/content/114-microservices/103-docker-swarm.md index eec61f718..aaf64ed07 100644 --- a/src/roadmaps/aspnet-core/content/114-microservices/103-docker-swarm.md +++ b/src/roadmaps/aspnet-core/content/114-microservices/103-docker-swarm.md @@ -1 +1,11 @@ -# Docker swarm \ No newline at end of file +# Docker Swarm + +Docker Swarm is a container orchestration platform for managing and scheduling Docker containers across a cluster of servers. It is a native clustering solution for Docker and provides the ability to create and manage a swarm of Docker nodes as a single virtual host. + +With Docker Swarm, you can easily deploy and scale your applications across multiple servers, ensuring high availability and fault tolerance. It provides features such as load balancing, service discovery, and rolling updates, making it easy to manage and maintain your containerized applications. + +To learn more, visit the following links: + +- [Introduction to Docker Swarm](https://www.section.io/engineering-education/introduction-to-docker-swarm-in-container-orchestration/) +- [Scale ASP.NET Core Apps with Docker Swarm](https://www.pluralsight.com/guides/scale-asp-net-core-apps-with-docker-swarm-mode) +- [How - Deploy to Swarm?](https://docs.docker.com/get-started/swarm-deploy/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/114-microservices/104-ocelot.md b/src/roadmaps/aspnet-core/content/114-microservices/104-ocelot.md index 742ca4ab8..a9bd0246d 100644 --- a/src/roadmaps/aspnet-core/content/114-microservices/104-ocelot.md +++ b/src/roadmaps/aspnet-core/content/114-microservices/104-ocelot.md @@ -1 +1,11 @@ -# Ocelot \ No newline at end of file +# Ocelot + +Ocelot is an open-source API gateway for ASP.NET Core. It is designed to work as a reverse proxy, routing incoming requests to the appropriate service and aggregating the responses to return to the client. Ocelot allows you to define routing rules, handle requests and responses, and perform other common API gateway tasks such as rate limiting, caching, and authentication. + +One of the key features of Ocelot is its flexibility, it can route incoming requests to multiple services, aggregate the responses, and return them as a single response to the client. It also allows you to define dynamic routes, based on the request's content, perform request and response transformations, and handle errors. + +To learn more, visit the following links: + +- [Implement API Gateways with Ocelot](https://learn.microsoft.com/en-us/dotnet/architecture/microservices/multi-container-microservice-net-applications/implement-api-gateways-with-ocelot) +- [Getting Started with Ocelot](https://ocelot.readthedocs.io/en/latest/introduction/gettingstarted.html) +- [Building an API Gateway in ASP.NET using Ocelotss](https://www.youtube.com/watch?v=hlUGZ6Hmv6s) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/114-microservices/105-docker.md b/src/roadmaps/aspnet-core/content/114-microservices/105-docker.md index 687140836..8cd2afcb7 100644 --- a/src/roadmaps/aspnet-core/content/114-microservices/105-docker.md +++ b/src/roadmaps/aspnet-core/content/114-microservices/105-docker.md @@ -1 +1,11 @@ -# Docker \ No newline at end of file +# Docker + +Docker is a platform for developing, shipping, and running applications in containers. A container is a lightweight, standalone, and executable package of software that includes everything needed to run a piece of software, including the code, a runtime, system tools, libraries, and settings. + +Docker allows developers to package their applications and dependencies into a container, which can then be easily deployed and run on any host machine with Docker installed. This makes it easy to run the same software on different environments, such as development, staging, and production, without worrying about compatibility issues.s + +To learn more, visit the following links: + +- [ASP.NET and Docker](https://www.tatvasoft.com/blog/asp-net-core-and-docker/) +- [Introduction to .NET and Docker](https://learn.microsoft.com/en-us/dotnet/core/docker/introduction) +- [What is Docker, Why use it?](https://www.youtube.com/watch?v=vmnvOITMoIg) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/114-microservices/106-yarp.md b/src/roadmaps/aspnet-core/content/114-microservices/106-yarp.md index 4c670a13b..1808ae1f9 100644 --- a/src/roadmaps/aspnet-core/content/114-microservices/106-yarp.md +++ b/src/roadmaps/aspnet-core/content/114-microservices/106-yarp.md @@ -1 +1,8 @@ -# Yarp \ No newline at end of file +# YARP + +YARP (Yet Another Robot Platform) is an open-source software framework for robotics and computer vision, focused on providing a simple and efficient way to create and manage multi-modal robotic systems. It provides a set of libraries and tools to handle the low-level communication and control of robotic devices, such as cameras, motors, and sensors, as well as high-level functionalities such as image processing, object recognition, and control algorithms. + +To learn more, visit the following links: + +- [Getting Started with YARP](https://microsoft.github.io/reverse-proxy/articles/getting-started.html) +- [YARP: The .NET Reverse proxy](https://www.youtube.com/watch?v=1IqQkNcsqWE) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/114-microservices/107-orleans.md b/src/roadmaps/aspnet-core/content/114-microservices/107-orleans.md index 32a10391f..63d1ec788 100644 --- a/src/roadmaps/aspnet-core/content/114-microservices/107-orleans.md +++ b/src/roadmaps/aspnet-core/content/114-microservices/107-orleans.md @@ -1 +1,11 @@ -# Orleans \ No newline at end of file +# Orleans + +Orleans is an open-source virtual actor model framework for building distributed, high-scale, and low-latency applications in .NET. It is designed to make it easy to build and operate large-scale, distributed systems, such as cloud services, IoT applications, and gaming servers. + +One of the key features of Orleans is its use of the virtual actor model, which is a programming model that allows developers to write concurrent and parallel code in a way that is similar to writing single-threaded code. Orleans provides a set of abstractions for building stateful actors, which are similar to objects in object-oriented programming, that can be distributed across multiple machines. These actors can communicate with each other using message passing, and can be accessed remotely using a transparent proxy + +To learn more, visit the following links: + +- [Microsoft Orleans](https://learn.microsoft.com/en-us/dotnet/orleans/overview) +- [Building real applications with Orleans](https://www.youtube.com/watch?v=8duFuggnj8o) +- [Introduction to Orleans](https://dev.to/willvelida/introduction-to-microsoft-orleans-796) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/114-microservices/108-steel-toe.md b/src/roadmaps/aspnet-core/content/114-microservices/108-steel-toe.md index f4d77a364..e04c411a2 100644 --- a/src/roadmaps/aspnet-core/content/114-microservices/108-steel-toe.md +++ b/src/roadmaps/aspnet-core/content/114-microservices/108-steel-toe.md @@ -1 +1,9 @@ -# Steel toe \ No newline at end of file +# Steeltoe + +Steeltoe is an open-source project that provides a set of libraries for building cloud-native applications on the .NET platform. The libraries are designed to work with the .NET Core runtime and provide a set of abstractions for common cloud-native patterns, such as service discovery, configuration management, and circuit breaking. The goal of Steeltoe is to make it easy for developers to take advantage of the cloud-native capabilities of the .NET platform and build resilient and scalable applications. + +To learn more, visit the following links: + +- [.NET Microservices with Steeltoe](https://learn.microsoft.com/en-us/shows/on-net/net-microservices-with-steeltoe) +- [Steeltoe Documentation](https://docs.steeltoe.io/api/v3/welcome/index.html) +- [.NET Microservices with Steeltoe](https://www.youtube.com/watch?v=QLRi6iPapVg) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/114-microservices/109-dapr.md b/src/roadmaps/aspnet-core/content/114-microservices/109-dapr.md index 794944feb..b8464a33f 100644 --- a/src/roadmaps/aspnet-core/content/114-microservices/109-dapr.md +++ b/src/roadmaps/aspnet-core/content/114-microservices/109-dapr.md @@ -1 +1,8 @@ -# Dapr \ No newline at end of file +# Dapr + +Dapr (Distributed Application Runtime) is an open-source, portable runtime that makes it easy to build microservices-based applications that run on the cloud and edge. It provides a set of building blocks for building microservices, including service discovery, state management, pub-sub messaging, and more. It is designed to be language-agnostic, so it can be used with any programming language, including .NET. + +To learn more, visit the following links: + +- [Get started with Dapr](https://learn.microsoft.com/en-us/dotnet/architecture/dapr-for-net-developers/getting-started) +- [Building an event-driven .NET Core app with Dapr](https://medium.com/polarsquad/building-an-event-driven-net-core-app-with-dapr-58cc83ab120b) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/114-microservices/110-tye.md b/src/roadmaps/aspnet-core/content/114-microservices/110-tye.md index 32625bfa4..578554ae0 100644 --- a/src/roadmaps/aspnet-core/content/114-microservices/110-tye.md +++ b/src/roadmaps/aspnet-core/content/114-microservices/110-tye.md @@ -1 +1,9 @@ -# Tye \ No newline at end of file +# Tye + +Tye (short for "Try Everything") is a developer tool for .NET that makes it easy to develop, test, and deploy microservices and distributed applications. It is built on top of the .NET Core CLI and Docker and provides a simple and consistent way to run multiple services and components locally, making it easy to test and debug distributed applications. + +Tye allows you to define the components of your application in a single YAML file, and then automatically starts, stops and configures all the required services and dependencies. It also provides a set of features to make it easy to manage the application, such as automatic service discovery and configuration, and automatic binding of services to the right ports. + +To learn more, visit the following links: + +- [Getting Started with Tye](https://github.com/dotnet/tye) diff --git a/src/roadmaps/aspnet-core/content/114-microservices/index.md b/src/roadmaps/aspnet-core/content/114-microservices/index.md index 3ace82ef2..a65ee3061 100644 --- a/src/roadmaps/aspnet-core/content/114-microservices/index.md +++ b/src/roadmaps/aspnet-core/content/114-microservices/index.md @@ -1 +1,11 @@ -# Microservices \ No newline at end of file +# Microservices + +Microservices are a software architectural style in which a large application is built as a set of small, independent services that communicate with each other through APIs. These services are typically built using different technologies and run in their own processes, and can be deployed, scaled, and updated independently. + +In ASP.NET, microservices can be built using the .NET Core framework, which is a cross-platform, open-source version of the .NET framework that can run on Windows, Linux, and macOS. Each microservice can be built as a self-contained, small web application that handles a specific set of functionality, such as user management, product catalog, or order processing. + +To learn more, visit the following links: + +- [Overview of ASP.NET Microservices](https://www.pluralsight.com/paths/net-microservices) +- [Intro to Microservices Using ASP.NET Core](https://www.c-sharpcorner.com/article/microservice-using-asp-net-core/) +- [Advantages and Disadvantages of Microservices Architecture](https://www.dotnettricks.com/learn/microservices/architecture-example-advantages) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/115-ci-cd/100-github-actions.md b/src/roadmaps/aspnet-core/content/115-ci-cd/100-github-actions.md index d1cf49177..11b85c901 100644 --- a/src/roadmaps/aspnet-core/content/115-ci-cd/100-github-actions.md +++ b/src/roadmaps/aspnet-core/content/115-ci-cd/100-github-actions.md @@ -1 +1,11 @@ -# Github actions \ No newline at end of file +# Github Actions + +GitHub Actions is a powerful and flexible automation platform that enables developers to create custom workflows for their software development lifecycle (SDLC) directly in their GitHub repository. It allows developers to automate various tasks, such as building, testing, and deploying code, directly from their GitHub repository. + +In ASP.NET, GitHub Actions can be used to automate various tasks related to the development, testing, and deployment of ASP.NET applications. For example, you can use GitHub Actions to automatically build, test, and deploy an ASP.NET application to a hosting provider, such as Azure or AWS, every time you push code to your GitHub repository. + +Visit the following links to learn more: + +- [Intro to GitHub Actions for .NET](https://devblogs.microsoft.com/dotnet/dotnet-loves-github-actions/) +- [Tutorial: Create a GitHub Action with .NET](https://learn.microsoft.com/en-us/dotnet/devops/create-dotnet-github-action) +- [Building and testing .NET](https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-net) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/115-ci-cd/101-azure-pipelines.md b/src/roadmaps/aspnet-core/content/115-ci-cd/101-azure-pipelines.md index 9798d36c9..767a26486 100644 --- a/src/roadmaps/aspnet-core/content/115-ci-cd/101-azure-pipelines.md +++ b/src/roadmaps/aspnet-core/content/115-ci-cd/101-azure-pipelines.md @@ -1 +1,11 @@ -# Azure pipelines \ No newline at end of file +# Azure Pipelines + +Azure Pipelines is a continuous integration and continuous delivery (CI/CD) platform that allows developers to automate the process of building, testing, and deploying code. It is a part of the Azure DevOps suite of tools and can be used to automate the software development process for various languages and platforms, including ASP.NET. + +In ASP.NET, Azure Pipelines can be used to automate various tasks related to the development, testing, and deployment of ASP.NET applications. For example, you can use Azure Pipelines to automatically build, test, and deploy an ASP.NET application to a hosting provider, such as Azure or AWS, every time you push code to your source control repository. + +To learn more, visit the following links: + +- [Deploy ASP.NET Apps with Azure Pipelines](https://learn.microsoft.com/en-us/training/modules/deploy-aspnet-apps-azure-app-service-pipelines/) +- [Build ASP.NET apps with .NET Framework](https://learn.microsoft.com/en-us/azure/devops/pipelines/apps/aspnet/build-aspnet-4?view=azure-devops) +- [How to Build, test & deploy .NET Apps](https://learn.microsoft.com/en-us/azure/devops/pipelines/ecosystems/dotnet-core?view=azure-devops&tabs=dotnetfive) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/115-ci-cd/102-travis-ci.md b/src/roadmaps/aspnet-core/content/115-ci-cd/102-travis-ci.md index fbffb7e93..09165beb0 100644 --- a/src/roadmaps/aspnet-core/content/115-ci-cd/102-travis-ci.md +++ b/src/roadmaps/aspnet-core/content/115-ci-cd/102-travis-ci.md @@ -1 +1,10 @@ -# Travis ci \ No newline at end of file +# Travis CI + +Travis CI is a cloud-based continuous integration and continuous delivery (CI/CD) platform that allows developers to automate the process of building, testing, and deploying code. It is a popular platform that supports a wide range of languages and frameworks, including ASP.NET. + +In ASP.NET, Travis CI can be used to automate various tasks related to the development, testing, and deployment of ASP.NET applications. For example, you can use Travis CI to automatically build, test, and deploy an ASP.NET application to a hosting provider, such as Azure or AWS, every time you push code to your source control repository. + +Visit the following links to learn more: + +- [How to use Travis CI to Deploy to Azure in ASP.NET](https://devblogs.microsoft.com/cse/2015/09/30/using-travis-ci-to-deploy-to-azure/) +- [Concepts for Beginners of Travis CI in ASP.NET](https://docs.travis-ci.com/user/for-beginners/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/115-ci-cd/103-jenkins.md b/src/roadmaps/aspnet-core/content/115-ci-cd/103-jenkins.md index 2b36b080c..bf229009d 100644 --- a/src/roadmaps/aspnet-core/content/115-ci-cd/103-jenkins.md +++ b/src/roadmaps/aspnet-core/content/115-ci-cd/103-jenkins.md @@ -1 +1,11 @@ -# Jenkins \ No newline at end of file +# Jenkins + +Jenkins is an open-source automation server that can be used to automate various tasks related to software development, including building, testing, and deploying code. It is a popular platform that supports a wide range of languages and frameworks, including ASP.NET. + +In ASP.NET, Jenkins can be used to automate various tasks related to the development, testing, and deployment of ASP.NET applications. For example, you can use Jenkins to automatically build, test, and deploy an ASP.NET application to a hosting provider, such as Azure or AWS, every time you push code to your source control repository. + +To learn more, visit the following links: + +- [Continuous Deployment With Jenkins And .NET](https://www.c-sharpcorner.com/article/continuous-deployment-with-jenkins-and-net/) +- [How to build ASP.NET Core code with Jenkins](https://referbruv.com/blog/cicd-getting-started-automating-aspnet-core-build-using-jenkins/) +- [How to publish ASP.NET Apps using Jenkins](https://www.ahmetkucukoglu.com/en/how-to-publish-asp-net-core-application-by-using-jenkins) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/115-ci-cd/104-circle-ci.md b/src/roadmaps/aspnet-core/content/115-ci-cd/104-circle-ci.md index b76511472..d07b048c3 100644 --- a/src/roadmaps/aspnet-core/content/115-ci-cd/104-circle-ci.md +++ b/src/roadmaps/aspnet-core/content/115-ci-cd/104-circle-ci.md @@ -1 +1,10 @@ -# Circle ci \ No newline at end of file +# CircleCI + +CircleCI is a cloud-based continuous integration and continuous delivery (CI/CD) platform that allows developers to automate the process of building, testing, and deploying code. It is a popular platform that supports a wide range of languages and frameworks, including ASP.NET. + +In ASP.NET, CircleCI can be used to automate various tasks related to the development, testing, and deployment of ASP.NET applications. For example, you can use CircleCI to automatically build, test, and deploy an ASP.NET application to a hosting provider, such as Azure or AWS, every time you push code to your source control repository. + +Visit the following links to learn more: + +- [How to Setup CircleCI for ASP.NET project](https://discuss.circleci.com/t/setup-circleci-for-asp-net-project/33796s) +- [Building and testing an ASP.NET apps with CircleCI](https://circleci.com/blog/building-and-testing-an-asp-net-core-application/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/115-ci-cd/105-team-city.md b/src/roadmaps/aspnet-core/content/115-ci-cd/105-team-city.md index ea700b253..ce238455b 100644 --- a/src/roadmaps/aspnet-core/content/115-ci-cd/105-team-city.md +++ b/src/roadmaps/aspnet-core/content/115-ci-cd/105-team-city.md @@ -1 +1,12 @@ -# Team city \ No newline at end of file +# TeamCity + +TeamCity is a Java-based continuous integration and continuous delivery (CI/CD) platform that allows developers to automate the process of building, testing, and deploying code. It is a popular platform that supports a wide range of languages and frameworks, including ASP.NET. + +In ASP.NET, TeamCity can be used to automate various tasks related to the development, testing, and deployment of ASP.NET applications. For example, you can use TeamCity to automatically build, test, and deploy an ASP.NET application to a hosting provider, such as Azure or AWS, every time you push code to your source control repository. + + +Visit the following links to learn more: + +- [Tutorial on TeamCity with ASP.NET](https://www.jetbrains.com/help/teamcity/net.html) +- [How to Build ASP.NET application with TeamCity?](https://www.youtube.com/watch?v=KNzxyhSWV-4) +- [How to deploy ASP.NET Core sites using Teamcity?](https://medium.com/monkii/how-to-deploy-asp-net-core-sites-using-teamcity-or-just-command-line-cf05fdee58f5) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/115-ci-cd/index.md b/src/roadmaps/aspnet-core/content/115-ci-cd/index.md index edee7d737..0372fee87 100644 --- a/src/roadmaps/aspnet-core/content/115-ci-cd/index.md +++ b/src/roadmaps/aspnet-core/content/115-ci-cd/index.md @@ -1 +1,10 @@ -# Ci cd \ No newline at end of file +# CI CD + +CI/CD (Continuous Integration/Continuous Deployment) is a software development practice that involves automating the process of building, testing, and deploying code changes. It is a popular practice among software development teams, as it helps to ensure that code changes are integrated, tested, and deployed quickly and reliably. + +In the context of ASP.NET, CI/CD can be used to automate various tasks related to the development, testing, and deployment of ASP.NET applications. For example, you can use CI/CD to automatically build, test, and deploy an ASP.NET application to a hosting provider, such as Azure or AWS, every time you push code to your source control repository. + +To learn more, visit the following links: + +- [How to reate a CI/CD pipeline for ASP.NET?](https://www.azuredevopslabs.com/labs/vstsextend/azuredevopsprojectdotnet/) +- [Building a CI/CD Pipeline in Azure DevOps for ASP.NET Core](youtube.com/watch?v=eOQL0nXQlLs) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/116-client-side-libraries/100-blazor.md b/src/roadmaps/aspnet-core/content/116-client-side-libraries/100-blazor.md index 8f9d59155..3cb64ccad 100644 --- a/src/roadmaps/aspnet-core/content/116-client-side-libraries/100-blazor.md +++ b/src/roadmaps/aspnet-core/content/116-client-side-libraries/100-blazor.md @@ -1 +1,13 @@ -# Blazor \ No newline at end of file +# Blazor + +Blazor is a framework for building web applications using C# and .NET that runs in the browser via WebAssembly. It allows developers to write C# code that runs directly in the browser, eliminating the need for JavaScript. + +Blazor comes in two flavors: + - Blazor WebAssembly, a client-side solution that allows you to run C# code directly in the browser using WebAssembly. The app is executed on the client-side and can work offline, it can also interact with JavaScript and access the browser's DOM. + - Blazor Server, a server-side solution that allows you to run C# code on the server and update the UI in real-time. The app is executed on the server-side and requires an active connection to the server to function. + +To learn more, visit the following resources: + +- [Guide to ASP.NET Core Blazor](https://learn.microsoft.com/en-us/aspnet/core/blazor/?view=aspnetcore-7.0) +- [What Is Blazor And How It Works?](https://www.c-sharpcorner.com/article/what-is-blazor-and-how-does-it-works/) +- [Tutorial of ASP.NET Core Blazor](https://www.youtube.com/watch?v=LyO4zj6NRuc) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/116-client-side-libraries/index.md b/src/roadmaps/aspnet-core/content/116-client-side-libraries/index.md index b187395fa..9cec65c2a 100644 --- a/src/roadmaps/aspnet-core/content/116-client-side-libraries/index.md +++ b/src/roadmaps/aspnet-core/content/116-client-side-libraries/index.md @@ -1 +1,9 @@ -# Client side libraries \ No newline at end of file +# Client Side Libraries + +Client-side libraries in ASP.NET are libraries that are used to add functionality and enhance the user experience of web applications on the client-side, or the browser. Some popular client-side libraries in ASP.NET include jQuery, Bootstrap, React.js, Angular.js, and Vue.js, which can be easily integrated with ASP.NET applications by including them as a dependency in the project, and can be used to enhance the user interface, add interactive elements, and improve the user experience of your application. + +Visit the following resources to learn more: + +- [How to use Client Side Library in ASP.NET Core](https://www.youtube.com/watch?v=VwqozSbQuec) +- [Client-Side Package Management in Visual Studio](https://www.c-sharpcorner.com/article/client-side-package-management-with-library-manager-in-visual-studio-2017libman/) +- [Client Side Library in ASP.NET Core](de/libman/?view=aspnetcore-7.0) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/117-template-engines/100-razor.md b/src/roadmaps/aspnet-core/content/117-template-engines/100-razor.md index 14e9169a9..b2747cb23 100644 --- a/src/roadmaps/aspnet-core/content/117-template-engines/100-razor.md +++ b/src/roadmaps/aspnet-core/content/117-template-engines/100-razor.md @@ -1 +1,9 @@ -# Razor \ No newline at end of file +# Razor + +Razor is a markup syntax for embedding server-side code in web pages. It was introduced with ASP.NET MVC 3 and later became a part of ASP.NET Web Pages. It allows developers to write server-side code using C# or Visual Basic and embed it in HTML markup. Its syntax is designed to be compact and easy to read. It provides a rich set of features for building web applications, such as a component model for building reusable UI, a routing system for navigation, and support for dependency injection, it also allows you to use the same libraries, frameworks, and tools that you're already familiar with from building traditional ASP.NET web applications. + +To learn more, visit the following links: + +- [Complete Guide to ASP.NET Razor](w3schools.com/asp/razor_intro.asp) +- [Introduction to ASP.NET Web Programming Using Razor](https://learn.microsoft.com/en-us/aspnet/web-pages/overview/getting-started/introducing-razor-syntax-c) +- [An Introduction To Razor](https://khalidabuhakmeh.com/what-is-razor-aspnet) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/117-template-engines/101-dot-liquid.md b/src/roadmaps/aspnet-core/content/117-template-engines/101-dot-liquid.md index 6aaeb25ff..9387f0296 100644 --- a/src/roadmaps/aspnet-core/content/117-template-engines/101-dot-liquid.md +++ b/src/roadmaps/aspnet-core/content/117-template-engines/101-dot-liquid.md @@ -1 +1,8 @@ -# Dot liquid \ No newline at end of file +# DotLiquid + +DotLiquid is an open-source templating engine for .NET that is based on the Liquid template language. It allows you to embed dynamic data in HTML templates, and is commonly used for generating email templates, reports, and other types of documents. It is a .NET implementation of the Liquid template language, it provides a simple and easy-to-use API for parsing and rendering Liquid templates, and can be easily integrated with ASP.NET and other .NET frameworks. It is often used in web applications to separate the logic of the application from the presentation of the data, making it easy to change the appearance of the application without having to change the underlying code. + +To learn more, visit the following resources: + +- [Guide to DotLiquid](https://discoverdot.net/projects/dotliquid) +- [What is DotLiquid in ASP.NET Core?](https://grandnode.medium.com/dotliquid-in-asp-net-core-e-commerce-platform-how-to-handle-message-templates-a6865be3a612) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/117-template-engines/102-scriban.md b/src/roadmaps/aspnet-core/content/117-template-engines/102-scriban.md index 63d93d9e4..cd60037fe 100644 --- a/src/roadmaps/aspnet-core/content/117-template-engines/102-scriban.md +++ b/src/roadmaps/aspnet-core/content/117-template-engines/102-scriban.md @@ -1 +1,8 @@ -# Scriban \ No newline at end of file +# Scriban + +Scriban is an open-source, lightweight template engine for .NET that is based on the Lua programming language. It is designed to be simple and easy to use, while still providing a powerful set of features for creating and manipulating templates. It provides a simple and easy-to-use API for parsing and rendering templates, and supports a wide range of features such as variables, loops, conditionals, and functions. It also provides a wide range of built-in functions for working with strings, numbers, dates, and other types of data, and also supports advanced features such as scripting and metaprogramming. + +Visit the following links to learn more about Scriban: + +- [Guide to Scriban in ASP.NET](https://github.com/scriban/scriban) +- [Introduction to Scriban](https://www.markvanaalst.com/blog/sxa/sxa-9-3-introducing-scriban/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/117-template-engines/103-fluid.md b/src/roadmaps/aspnet-core/content/117-template-engines/103-fluid.md index dd7bfbb44..5f95f8394 100644 --- a/src/roadmaps/aspnet-core/content/117-template-engines/103-fluid.md +++ b/src/roadmaps/aspnet-core/content/117-template-engines/103-fluid.md @@ -1 +1,7 @@ -# Fluid \ No newline at end of file +# Fluid + +Fluid is a template engine for .NET that is based on the Fluid template language, it is similar to Liquid, but it's written in C#. It provides a simple and easy-to-use API for parsing and rendering templates, and supports a wide range of features such as variables, loops, conditionals, and functions. It also provides a wide range of built-in functions for working with strings, numbers, dates, and other types of data. It also supports advanced features such as scripting and metaprogramming. It is often used in web applications to separate the logic of the application from the presentation of the data, making it easy to change the appearance of the application without having to change the underlying code. + +To learn more, visit the following links: + +- [Overview of Fluid](https://github.com/sebastienros/fluid) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/117-template-engines/index.md b/src/roadmaps/aspnet-core/content/117-template-engines/index.md index 8d9b2651a..2273d29ac 100644 --- a/src/roadmaps/aspnet-core/content/117-template-engines/index.md +++ b/src/roadmaps/aspnet-core/content/117-template-engines/index.md @@ -1 +1,8 @@ -# Template engines \ No newline at end of file +# Template Engines + +Template engines in ASP.NET are libraries that allow developers to embed dynamic data in HTML templates. These engines are used to separate the logic of the application from the presentation of the data, making it easy to change the appearance of the application without having to change the underlying code. + +To learn more, visit the followin link: + +- [Template Engine in ASP.NET](https://ej2.syncfusion.com/aspnetmvc/documentation/common/template-engine) +- [How to to Create Custom Templates using the .Net Template Engine ](https://www.infoq.com/articles/dotnet-core-template-engine/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/118-good-to-know-libraries/100-mediatr.md b/src/roadmaps/aspnet-core/content/118-good-to-know-libraries/100-mediatr.md index c3376ec54..6bb591e19 100644 --- a/src/roadmaps/aspnet-core/content/118-good-to-know-libraries/100-mediatr.md +++ b/src/roadmaps/aspnet-core/content/118-good-to-know-libraries/100-mediatr.md @@ -1 +1,8 @@ -# Mediatr \ No newline at end of file +# MediatR + +MediatR is an open-source library for .NET that is designed to simplify the process of handling messages and commands in a clean, decoupled manner. It's particularly useful in applications that use the Command-Query Responsibility Segregation (CQRS) pattern and event-driven architecture. It provides a simple and easy-to-use API for handling messages, and supports the concept of pipelines, which allow you to add additional behavior to message handling, such as logging, validation, and exception handling. + +For more information, visit the following links: + +- [Use MediatR in ASP.NET or ASP.NET Core](https://medium.com/dotnet-hub/use-mediatr-in-asp-net-or-asp-net-core-cqrs-and-mediator-in-dotnet-how-to-use-mediatr-cqrs-aspnetcore-5076e2f2880c) +- [How to implement CQRS using MediatR in an ASP.NET?](https://blog.christian-schou.dk/how-to-implement-cqrs-with-mediatr-in-asp-net/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/118-good-to-know-libraries/101-fluent-validation.md b/src/roadmaps/aspnet-core/content/118-good-to-know-libraries/101-fluent-validation.md index d8742b170..09958f467 100644 --- a/src/roadmaps/aspnet-core/content/118-good-to-know-libraries/101-fluent-validation.md +++ b/src/roadmaps/aspnet-core/content/118-good-to-know-libraries/101-fluent-validation.md @@ -1 +1,9 @@ -# Fluent validation \ No newline at end of file +# FluentValidation + +FluentValidation is an open-source library for .NET that provides a fluent, easy-to-use API for validating domain models. It allows developers to define validation rules using a fluent, chainable syntax. It separates validation rules into separate classes called validators, it supports async validation, custom validation rules, and cascading validation. It makes it easy to read and understand the validation logic, and it returns a ValidationResult object, which contains information about any validation errors that were found. + +To learn more, visit the following links: + +- [Documentations of FluentValidation](https://docs.fluentvalidation.net/en/latest/) +- [FluentValidation in ASP.NET Core](https://docs.fluentvalidation.net/en/latest/aspnet.html) +- [Overview of FluentValidation in ASP.NET Core](https://code-maze.com/fluentvalidation-in-aspnet/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/118-good-to-know-libraries/102-polly.md b/src/roadmaps/aspnet-core/content/118-good-to-know-libraries/102-polly.md index 91efcfb06..2cff24dc6 100644 --- a/src/roadmaps/aspnet-core/content/118-good-to-know-libraries/102-polly.md +++ b/src/roadmaps/aspnet-core/content/118-good-to-know-libraries/102-polly.md @@ -1 +1,9 @@ -# Polly \ No newline at end of file +# Polly + +Polly is an open-source library for .NET that provides a simple and flexible API for handling transient faults and other types of errors that occur during the execution of a service. It allows developers to define a set of policies, such as retry, circuit breaker, and timeout, that can be used to handle specific types of errors and improve the resiliency of the service. It provides a fluent API that makes it easy to define and configure policies, supports advanced features such as async and sync execution, fallback policies, and policy wrapping. Additionally, it allows to specify the exception type that is thrown and it would trigger the policy. + +To learn more, visit the following resources: + +- [Intro to Polly in ASP.NET](https://www.pluralsight.com/blog/software-development/intro-to-polly) +- [Using Polly for .NET Resilience](https://www.telerik.com/blogs/using-polly-for-net-resilience-and-transient-fault-handling-with-net-core) +- [Build Resilient Microservices Using Polly In ASP.NET](https://procodeguide.com/programming/polly-in-aspnet-core/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/118-good-to-know-libraries/103-nuke.md b/src/roadmaps/aspnet-core/content/118-good-to-know-libraries/103-nuke.md index a179d88a1..bd3d2bd0c 100644 --- a/src/roadmaps/aspnet-core/content/118-good-to-know-libraries/103-nuke.md +++ b/src/roadmaps/aspnet-core/content/118-good-to-know-libraries/103-nuke.md @@ -1 +1,10 @@ -# Nuke \ No newline at end of file +# NUKE + +NUKE (Build Automation for .NET) is an open-source build automation tool for .NET projects. It is designed to be simple, flexible, and extensible, making it easy to automate the build, test, and deployment process of your .NET projects. + +NUKE allows you to define your build process using a simple, declarative syntax, making it easy to understand and maintain. It provides a set of built-in tasks for common build actions, such as compiling, testing, and publishing, as well as a powerful extensibility model that allows you to add custom tasks and scripts. + +To learn more, visit the following links: + +- [How to Build Automation with NUKE](https://learn.microsoft.com/en-us/shows/on-net/build-automation-with-nuke) +- [Automate your .NET project builds with NUKE](https://laurentkempe.com/2022/02/02/automate-your-dotnet-project-builds-with-nuke-a-cross-platform-build-automation-solution/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/118-good-to-know-libraries/104-benchmark-net.md b/src/roadmaps/aspnet-core/content/118-good-to-know-libraries/104-benchmark-net.md index 873ad98d1..fd3de53a4 100644 --- a/src/roadmaps/aspnet-core/content/118-good-to-know-libraries/104-benchmark-net.md +++ b/src/roadmaps/aspnet-core/content/118-good-to-know-libraries/104-benchmark-net.md @@ -1 +1,9 @@ -# Benchmark net \ No newline at end of file +# BenchmarkDotNet + +BenchmarkDotNet is an open-source library for .NET that provides a simple and easy-to-use API for benchmarking the performance of code. It allows you to measure the performance of methods, classes, and entire assemblies, and provides a rich set of features for analyzing and comparing the results. It provides a wide range of performance metrics, such as CPU cycles, memory allocation, and garbage collection, and can generate detailed reports that include charts, tables, and source code highlighting. It has support for multithreading and a built-in support for .NET Core. + +To learn more, visit the following links: + +- [Benchmarking .NET Using BenchmarkDotNet](https://www.codemag.com/Article/2209061/Benchmarking-.NET-6-Applications-Using-BenchmarkDotNet-A-Deep-Dive) +- [Benchmarking ASP.NET Applications with .NET Crank](https://www.youtube.com/watch?v=2IgfrnG-128) +- [Intro to BenchmarkDotNet](https://www.youtube.com/watch?v=mmza9x3QxYE) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/118-good-to-know-libraries/105-noda-time.md b/src/roadmaps/aspnet-core/content/118-good-to-know-libraries/105-noda-time.md index 97482f6a3..5608cb445 100644 --- a/src/roadmaps/aspnet-core/content/118-good-to-know-libraries/105-noda-time.md +++ b/src/roadmaps/aspnet-core/content/118-good-to-know-libraries/105-noda-time.md @@ -1 +1,8 @@ -# Noda time \ No newline at end of file +# Noda Time + +Noda Time is an open-source library for .NET that provides a more complete and accurate way of working with dates, times, and time zones. It addresses the limitations and inconsistencies of the built-in .NET DateTime and TimeZone classes, and provides a number of features that are not present in the .NET framework. It provides a set of immutable and thread-safe value types, such as LocalDate, LocalTime, and Instant. It also provides a time zone abstraction, the DateTimeZone class, that allows you to work with time zones in a more accurate and consistent way, and a set of helper classes and extension methods that make it easy to perform common date and time-related operations. + +To learn more, visit the following links: + +- [Intro to Noda Time](https://nodatime.org/) +- [What's the use of Noda Time?](https://nodatime.org/3.1.x/userguide/rationale) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/118-good-to-know-libraries/106-gen-fu.md b/src/roadmaps/aspnet-core/content/118-good-to-know-libraries/106-gen-fu.md index 8697cbd01..2db8391c8 100644 --- a/src/roadmaps/aspnet-core/content/118-good-to-know-libraries/106-gen-fu.md +++ b/src/roadmaps/aspnet-core/content/118-good-to-know-libraries/106-gen-fu.md @@ -1 +1,7 @@ -# Gen fu \ No newline at end of file +# GenFu + +GenFu is an open-source library for .NET that provides a simple and flexible way to generate test data for use in automated testing and development. It uses a fluent API to define the types of data that should be generated, and provides a set of built-in generators for common types, such as strings, numbers, and dates. It allows you to easily generate large quantities of test data quickly, and it is especially useful when working with complex object graphs and scenarios that require large amounts of data. It also has built-in support for some of the common libraries like AutoFixture, NBuilder and more, so that you can use it seamlessly with those libraries. + +To learn more, visit the following links: + +- [Overview of GenFu in ASP.NET](https://github.com/MisterJames/GenFu) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/118-good-to-know-libraries/107-swash-buckle.md b/src/roadmaps/aspnet-core/content/118-good-to-know-libraries/107-swash-buckle.md index 7dc1907b3..874bd1f3d 100644 --- a/src/roadmaps/aspnet-core/content/118-good-to-know-libraries/107-swash-buckle.md +++ b/src/roadmaps/aspnet-core/content/118-good-to-know-libraries/107-swash-buckle.md @@ -1 +1,9 @@ -# Swash buckle \ No newline at end of file +# Swashbuckle + +Swashbuckle is an open-source library for .NET that provides a simple and easy-to-use API for generating Swagger (OpenAPI) documentation for web APIs. It automatically generates a Swagger specification for your API based on your existing .NET code, and provides a set of tools for customizing and displaying the documentation in a user-friendly format. It can be easily integrated into an ASP.NET Core web application and has a built-in web UI for developers and users to interact with the API and test its functionality. It also supports some of the advanced features like Authentication, Authorization, and more. + +To learn more, visit the following resources: + +- [Get started with Swashbuckle and ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/tutorials/getting-started-with-swashbuckle?view=aspnetcore-7.0&tabs=visual-studio) +- [How to Setup Swagger in ASP.NET with Swashbuckle?](https://www.andrewhoefling.com/Blog/Post/web-api-swagger-swashbuckle) +- [How to use Swagger/Swashbuckle in ASP.NET?](https://www.pragimtech.com/blog/azure/how-to-use-swagger-in-asp.net-core-web-api/) \ No newline at end of file diff --git a/src/roadmaps/aspnet-core/content/118-good-to-know-libraries/index.md b/src/roadmaps/aspnet-core/content/118-good-to-know-libraries/index.md index 4d208577c..20814e336 100644 --- a/src/roadmaps/aspnet-core/content/118-good-to-know-libraries/index.md +++ b/src/roadmaps/aspnet-core/content/118-good-to-know-libraries/index.md @@ -1 +1,14 @@ -# Good to know libraries \ No newline at end of file +# Good To Know Libraries + +There are many libraries available for .NET and ASP.NET that can help you with various tasks and improve your development workflow. Some of the libraries that are commonly used and considered to be "good to know" include: + +- Entity Framework +- AutoMapper +- MediatR +- FluentValidation +- Newtonsoft.Json + +To learn more, visit the following resources: + +- [Top ASP.NET Libraries – Every Developer Should Know](https://procodeguide.com/programming/top-12-aspnet-core-libraries/) +- [Top 10 .NET Libraries Every Developer Should Know](https://www.syncfusion.com/blogs/post/top-10-net-core-libraries-every-web-developers-should-know.aspx) \ No newline at end of file