├── LICENSE └── README.md /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 DevMentors 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ASP.NET Core Developer Roadmap 2 | 3 | This is our [commentary](https://www.youtube.com/watch?v=8tA--k8ExxI) of [roadmap](https://github.com/MoienTajik/AspNetCore-Developer-Roadmap) along with the bunch of links to the learning resources that might help you to become a better developer (not only when it comes to backend and Web API). 4 | 5 | Feel free to check our premium courses **[SOLID Web API](https://platform.devmentors.io/courses/solid-web-api)** and **[SOLIDne Web API](https://platform.devmentors.io/courses/solidne-web-api)** which cover most of ASP.NET Core framework and OOP fundamentals topics. 6 | 7 | [![ASP.NET Core Developer Roadmap](https://cdn.devmentors.io/img%2Fassets%2Faspnetcore_roadmap_junior.png)](https://www.youtube.com/watch?v=8tA--k8ExxI) 8 | 9 | **General Development Skills** 10 | 11 | - [linuxjourney.com](https://linuxjourney.com/) 12 | - [apps.microsoft.com/store/detail/windows-terminal/9N0DX20HK701](https://apps.microsoft.com/store/detail/windows-terminal/9N0DX20HK701) 13 | - [learn.microsoft.com/en-us/windows/wsl/install](https://learn.microsoft.com/en-us/windows/wsl/install) 14 | - [www.youtube.com/watch?v=aQDsgCV4US0](https://www.youtube.com/watch?v=aQDsgCV4US0) 15 | - [blog.joaograssi.com/windows-subsystem-for-linux-with-oh-my-zsh-conemu/](https://blog.joaograssi.com/windows-subsystem-for-linux-with-oh-my-zsh-conemu/) 16 | - [ohmyz.sh](https://ohmyz.sh/) 17 | - [github.com/romkatv/powerlevel10k](https://github.com/romkatv/powerlevel10k) 18 | - [dev.to/abdfnx/oh-my-zsh-powerlevel10k-cool-terminal-1no0](https://dev.to/abdfnx/oh-my-zsh-powerlevel10k-cool-terminal-1no0) 19 | - [www.warp.dev](https://www.warp.dev/) 20 | - [git-scm.com/docs/gittutorial](https://git-scm.com/docs/gittutorial) 21 | - [git-scm.com/book/en/v2](https://git-scm.com/book/en/v2) 22 | - [learngitbranching.js.org](https://learngitbranching.js.org/) 23 | - [www.cloudflare.com/en-gb/learning/ddos/glossary/open-systems-interconnection-model-osi/](https://www.cloudflare.com/en-gb/learning/ddos/glossary/open-systems-interconnection-model-osi/) 24 | - [www.tutorialspoint.com/http/index.htm](https://www.tutorialspoint.com/http/index.htm) 25 | - [developer.mozilla.org/en-US/docs/Web/HTTP/Overview](https://developer.mozilla.org/en-US/docs/Web/HTTP/Overview) 26 | - [www.cloudflare.com/en-gb/learning/ddos/glossary/hypertext-transfer-protocol-http/](https://www.cloudflare.com/en-gb/learning/ddos/glossary/hypertext-transfer-protocol-http/) 27 | - [www.tutorialsteacher.com/https/what-is-https](https://www.tutorialsteacher.com/https/what-is-https) 28 | - [curl.se](https://curl.se/) 29 | - [www.postman.com](https://www.postman.com/) 30 | - [insomnia.rest](https://insomnia.rest/) 31 | - [openai.com/blog/chatgpt](https://openai.com/blog/chatgpt) 32 | - [github.com/features/copilot](https://github.com/features/copilot) 33 | - [www.bigocheatsheet.com](https://www.bigocheatsheet.com/) 34 | - [learn.microsoft.com/en-us/dotnet/standard/collections/](https://learn.microsoft.com/en-us/dotnet/standard/collections/) 35 | - [dev.to/adavidoaiei/fundamental-data-structures-and-algorithms-in-c-4ocf](https://dev.to/adavidoaiei/fundamental-data-structures-and-algorithms-in-c-4ocf) 36 | 37 | **C#** 38 | 39 | - [learn.microsoft.com/en-us/dotnet/core/introduction](https://learn.microsoft.com/en-us/dotnet/core/introduction) 40 | - [www.geeksforgeeks.org/common-language-runtime-clr-in-c-sharp/](https://www.geeksforgeeks.org/common-language-runtime-clr-in-c-sharp/) 41 | - [www.geeksforgeeks.org/what-is-just-in-time-jit-compiler-in-dot-net/](https://www.geeksforgeeks.org/what-is-just-in-time-jit-compiler-in-dot-net/) 42 | - [www.youtube.com/watch?v=G1ej2KdU-yo&list=PLRJ9PiYzypEeKTUjk2fxFjZk2RVbv1bnP](https://www.youtube.com/watch?v=G1ej2KdU-yo&list=PLRJ9PiYzypEeKTUjk2fxFjZk2RVbv1bnP) 43 | - [www.youtube.com/watch?v=0QUgvfuKvWU](https://www.youtube.com/watch?v=0QUgvfuKvWU) 44 | - [www.youtube.com/playlist?list=PLdo4fOcmZ0oVxKLQCHpiUWun7vlJJvUiN](https://www.youtube.com/playlist?list=PLdo4fOcmZ0oVxKLQCHpiUWun7vlJJvUiN) 45 | - [learn.microsoft.com/en-us/dotnet/csharp/](https://learn.microsoft.com/en-us/dotnet/csharp/) 46 | - [www.csharpcourse.com](http://www.csharpcourse.com/) 47 | - [csharpindepth.com](https://csharpindepth.com/) 48 | - [www.tutorialsteacher.com/csharp/csharp-delegates](https://www.tutorialsteacher.com/csharp/csharp-delegates) 49 | - [www.tutorialsteacher.com/linq](https://www.tutorialsteacher.com/linq) 50 | - [learn.microsoft.com/en-us/dotnet/standard/threading/threads-and-threading](https://learn.microsoft.com/en-us/dotnet/standard/threading/threads-and-threading) 51 | - [stackoverflow.com/questions/5201852/what-is-a-thread-really](https://stackoverflow.com/questions/5201852/what-is-a-thread-really) 52 | - [www.albahari.com/threading/](https://www.albahari.com/threading/) 53 | - [blog.stephencleary.com/2013/11/there-is-no-thread.html](https://blog.stephencleary.com/2013/11/there-is-no-thread.html) 54 | - [stackoverflow.com/questions/2332765/what-is-the-difference-between-lock-mutex-and-semaphore](https://stackoverflow.com/questions/2332765/what-is-the-difference-between-lock-mutex-and-semaphore) 55 | - [learn.microsoft.com/en-us/dotnet/standard/parallel-programming/task-parallel-library-tpl](https://learn.microsoft.com/en-us/dotnet/standard/parallel-programming/task-parallel-library-tpl) 56 | - [www.youtube.com/watch?v=sCUFQ_VQszs](https://www.youtube.com/watch?v=sCUFQ_VQszs) 57 | - [www.meziantou.net/links-async-await-csharp.htm](https://www.meziantou.net/links-async-await-csharp.htm) 58 | - [www.reddit.com/r/dotnet/comments/11lrf4p/best_netc_resources_for_senior_engineer/](https://www.reddit.com/r/dotnet/comments/11lrf4p/best_netc_resources_for_senior_engineer/) 59 | - [learn.microsoft.com/en-us/dotnet/core/tools/](https://learn.microsoft.com/en-us/dotnet/core/tools/) 60 | - [github.com/florinpop17/app-ideas](https://github.com/florinpop17/app-ideas) 61 | - [code.visualstudio.com](https://code.visualstudio.com/) 62 | - [www.jetbrains.com/fleet/](https://www.jetbrains.com/fleet/) 63 | - [www.jetbrains.com/rider/](https://www.jetbrains.com/rider/) 64 | - [visualstudio.microsoft.com](https://visualstudio.microsoft.com/) 65 | 66 | **SQL** 67 | 68 | - [sqlbolt.com](https://sqlbolt.com/) 69 | - [www.sqltutorial.org](https://www.sqltutorial.org/) 70 | - [www.guru99.com/database-normalization.html](https://www.guru99.com/database-normalization.html) 71 | - [www.tutorialspoint.com/dbms/dbms_transaction.htm](https://www.tutorialspoint.com/dbms/dbms_transaction.htm) 72 | - [www.youtube.com/watch?v=5ZjhNTM8XU8](https://www.youtube.com/watch?v=5ZjhNTM8XU8) 73 | - [www.youtube.com/watch?v=QIt-G1aXmKo](https://www.youtube.com/watch?v=QIt-G1aXmKo) 74 | - [algodaily.com/lessons/a-beginners-reference-to-sql-vs-nosql](https://algodaily.com/lessons/a-beginners-reference-to-sql-vs-nosql) 75 | - [www.integrate.io/blog/the-sql-vs-nosql-difference/](https://www.integrate.io/blog/the-sql-vs-nosql-difference/) 76 | - [www.youtube.com/watch?v=zJ6WbK9zFpI](https://www.youtube.com/watch?v=zJ6WbK9zFpI) 77 | - [www.jetbrains.com/datagrip/](https://www.jetbrains.com/datagrip/) 78 | - [www.pgadmin.org](https://www.pgadmin.org/) 79 | - [dbeaver.io](https://dbeaver.io/) 80 | - [learn.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms](https://learn.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms) 81 | 82 | **ASP.NET Core** 83 | 84 | - [learn.microsoft.com/en-us/aspnet/core/](https://learn.microsoft.com/en-us/aspnet/core/) 85 | - [dotnet.microsoft.com/en-us/apps/aspnet/mvc](https://dotnet.microsoft.com/en-us/apps/aspnet/mvc) 86 | - [learn.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/start-mvc](https://learn.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/start-mvc) 87 | - [www.restapitutorial.com](https://www.restapitutorial.com/) 88 | - [martinfowler.com/articles/richardsonMaturityModel.html](https://martinfowler.com/articles/richardsonMaturityModel.html) 89 | - [blog.restcase.com/4-maturity-levels-of-rest-api-design/](https://blog.restcase.com/4-maturity-levels-of-rest-api-design/) 90 | - [restfulapi.net/richardson-maturity-model/](https://restfulapi.net/richardson-maturity-model/) 91 | - [learn.microsoft.com/en-us/aspnet/core/fundamentals/middleware/](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/middleware/) 92 | - [exceptionnotfound.net/middleware-in-asp-dotnet-6-intro-and-basics/](https://exceptionnotfound.net/middleware-in-asp-dotnet-6-intro-and-basics/) 93 | - [endjin.com/blog/2022/02/understanding-middleware-in-aspnet-core](https://endjin.com/blog/2022/02/understanding-middleware-in-aspnet-core) 94 | - [benfoster.io/blog/minimal-apis-why-should-you-care/](https://benfoster.io/blog/minimal-apis-why-should-you-care/) 95 | - [learn.microsoft.com/en-us/aspnet/core/fundamentals/minimal-apis](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/minimal-apis) 96 | - [andrewlock.net/behind-the-scenes-of-minimal-apis-1-a-first-look-behind-the-scenes-of-minimal-api-endpoints/](https://andrewlock.net/behind-the-scenes-of-minimal-apis-1-a-first-look-behind-the-scenes-of-minimal-api-endpoints/) 97 | - [learn.microsoft.com/en-us/aspnet/core/fundamentals/configuration/](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/configuration/) 98 | - [www.ezzylearning.net/tutorial/a-step-by-step-guide-to-logging-in-asp-net-core-5](https://www.ezzylearning.net/tutorial/a-step-by-step-guide-to-logging-in-asp-net-core-5) 99 | - [jwt.io/introduction](https://jwt.io/introduction) 100 | - [jerrynsh.com/all-to-know-about-auth-and-cookies/](https://jerrynsh.com/all-to-know-about-auth-and-cookies/) 101 | - [hackernoon.com/using-session-cookies-vs-jwt-for-authentication-sd2v3vci](https://hackernoon.com/using-session-cookies-vs-jwt-for-authentication-sd2v3vci) 102 | - [auth0.com/docs/get-started/identity-fundamentals/authentication-and-authorization](https://auth0.com/docs/get-started/identity-fundamentals/authentication-and-authorization) 103 | - [mbarkt3sto.hashnode.dev/a-comprehensive-example-implementing-jwt-authentication-in-aspnet-core-with-identity-and-ef-core](https://mbarkt3sto.hashnode.dev/a-comprehensive-example-implementing-jwt-authentication-in-aspnet-core-with-identity-and-ef-core) 104 | - [blog.joaograssi.com/series/authorization-in-asp.net-core/](https://blog.joaograssi.com/series/authorization-in-asp.net-core/) 105 | - [hygraph.com/blog/difference-spa-ssg-ssr](https://hygraph.com/blog/difference-spa-ssg-ssr) 106 | - [entr451.com/server-side-rendering-vs-the-modern-architecture/](https://entr451.com/server-side-rendering-vs-the-modern-architecture/) 107 | - [learn.microsoft.com/en-us/aspnet/core/razor-pages/](https://learn.microsoft.com/en-us/aspnet/core/razor-pages/) 108 | - [www.learnrazorpages.com](https://www.learnrazorpages.com/) 109 | - [github.com/davidfowl/AspNetCoreDiagnosticScenarios/blob/master/AsyncGuidance.md](https://github.com/davidfowl/AspNetCoreDiagnosticScenarios/blob/master/AsyncGuidance.md) 110 | 111 | **SOLID** 112 | 113 | - [blog.cleancoder.com/uncle-bob/2020/10/18/Solid-Relevance.html](https://blog.cleancoder.com/uncle-bob/2020/10/18/Solid-Relevance.html) 114 | - [www.baeldung.com/solid-principles](https://www.baeldung.com/solid-principles) 115 | - [www.boldare.com/blog/solid-cupid-grasp-principles-object-oriented-design/](https://www.boldare.com/blog/solid-cupid-grasp-principles-object-oriented-design/) 116 | - [www.kamilgrzybek.com/design/grasp-explained/](http://www.kamilgrzybek.com/design/grasp-explained/) 117 | - [dannorth.net/2022/02/10/cupid-for-joyful-coding/](https://dannorth.net/2022/02/10/cupid-for-joyful-coding/) 118 | 119 | **ORM + EF Core** 120 | 121 | - [enterprisecraftsmanship.com/posts/do-you-need-an-orm/](https://enterprisecraftsmanship.com/posts/do-you-need-an-orm/) 122 | - [medium.com/@mithunsasidharan/should-i-or-should-i-not-use-orm-4c3742a639ce](https://medium.com/@mithunsasidharan/should-i-or-should-i-not-use-orm-4c3742a639ce) 123 | - [github.com/DapperLib/Dapper](https://github.com/DapperLib/Dapper) 124 | - [www.learndapper.com](https://www.learndapper.com/) 125 | - [exceptionnotfound.net/dapper-vs-entity-framework-core-query-performance-benchmarking-2019/](https://exceptionnotfound.net/dapper-vs-entity-framework-core-query-performance-benchmarking-2019/) 126 | - [learn.microsoft.com/en-us/ef/core/](https://learn.microsoft.com/en-us/ef/core/) 127 | - [www.entityframeworktutorial.net/efcore/entity-framework-core.aspx](https://www.entityframeworktutorial.net/efcore/entity-framework-core.aspx) 128 | - [www.npgsql.org](https://www.npgsql.org/) 129 | - [www.plukasiewicz.net/EFCore/EFCoreLazyLoading](https://www.plukasiewicz.net/EFCore/EFCoreLazyLoading) 130 | - [www.learnentityframeworkcore.com/lazy-loading](https://www.learnentityframeworkcore.com/lazy-loading) 131 | - [www.thinktecture.com/en/entity-framework-core/entity-framework-core7-n1-queries-problem/](https://www.thinktecture.com/en/entity-framework-core/entity-framework-core7-n1-queries-problem/) 132 | - [blog.jetbrains.com/dotnet/2021/02/24/entity-framework-core-5-pitfalls-to-avoid-and-ideas-to-try/](https://blog.jetbrains.com/dotnet/2021/02/24/entity-framework-core-5-pitfalls-to-avoid-and-ideas-to-try/) 133 | - [www.kimsereylam.com/dotnetcore/csharp/2018/11/23/entity-framework-core-gotchas.html](https://www.kimsereylam.com/dotnetcore/csharp/2018/11/23/entity-framework-core-gotchas.html) 134 | - [learn.microsoft.com/en-us/ef/core/performance/efficient-querying](https://learn.microsoft.com/en-us/ef/core/performance/efficient-querying) 135 | - [learn.microsoft.com/en-us/ef/core/managing-schemas/migrations/](https://learn.microsoft.com/en-us/ef/core/managing-schemas/migrations/?tabs=dotnet-core-cli) 136 | - [www.entityframeworktutorial.net/efcore/entity-framework-core-migration.aspx](https://www.entityframeworktutorial.net/efcore/entity-framework-core-migration.aspx) 137 | - [learn.microsoft.com/en-us/ef/core/cli/dotnet](https://learn.microsoft.com/en-us/ef/core/cli/dotnet) 138 | - [learn.microsoft.com/en-us/ef/core/providers/in-memory/](https://learn.microsoft.com/en-us/ef/core/providers/in-memory/) 139 | 140 | **DIP + DI + IoC** 141 | 142 | - [www.tutorialsteacher.com/ioc/introduction](https://www.tutorialsteacher.com/ioc/introduction) 143 | - [stackoverflow.com/questions/6550700/inversion-of-control-vs-dependency-injection](https://stackoverflow.com/questions/6550700/inversion-of-control-vs-dependency-injection) 144 | - [learn.microsoft.com/en-us/aspnet/core/fundamentals/dependency-injection](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/dependency-injection) 145 | - [auth0.com/blog/dependency-injection-in-dotnet-core/](https://auth0.com/blog/dependency-injection-in-dotnet-core/) 146 | - [www.youtube.com/watch?v=nx7PPzhx2tA](https://www.youtube.com/watch?v=nx7PPzhx2tA) 147 | 148 | **Unit tests** 149 | 150 | - [martinfowler.com/bliki/UnitTest.html](https://martinfowler.com/bliki/UnitTest.html) 151 | - [softwareengineering.stackexchange.com/questions/123627/what-are-the-london-and-chicago-schools-of-tdd](https://softwareengineering.stackexchange.com/questions/123627/what-are-the-london-and-chicago-schools-of-tdd) 152 | - [auth0.com/blog/xunit-to-test-csharp-code/](https://auth0.com/blog/xunit-to-test-csharp-code/) 153 | - [stackoverflow.com/questions/346372/whats-the-difference-between-faking-mocking-and-stubbing](https://stackoverflow.com/questions/346372/whats-the-difference-between-faking-mocking-and-stubbing) 154 | - [dominikbraun.io/blog/you-probably-shouldnt-mock-the-database/](https://dominikbraun.io/blog/you-probably-shouldnt-mock-the-database/) 155 | 156 | **Architecture** 157 | 158 | - [herbertograca.com/2017/07/03/the-software-architecture-chronicles/](https://herbertograca.com/2017/07/03/the-software-architecture-chronicles/) 159 | - [www.youtube.com/watch?v=NzcZcim9tp8](https://www.youtube.com/watch?v=NzcZcim9tp8) --------------------------------------------------------------------------------