{"id":28517801,"url":"https://github.com/markjprice/web-dev-net9","last_synced_at":"2025-07-23T05:35:24.728Z","repository":{"id":252215348,"uuid":"839272816","full_name":"markjprice/web-dev-net9","owner":"markjprice","description":"Repository for the Packt Publishing book titled \"Real-World Web Development with .NET 9\" by Mark J. Price","archived":false,"fork":false,"pushed_at":"2025-07-08T20:06:33.000Z","size":44447,"stargazers_count":40,"open_issues_count":2,"forks_count":17,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-07-08T21:21:10.034Z","etag":null,"topics":["dotnet","dotnet9","mvc","odata","umbraco","web","web-development"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/markjprice.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-08-07T09:26:31.000Z","updated_at":"2025-07-08T20:06:36.000Z","dependencies_parsed_at":"2025-06-24T06:39:14.267Z","dependency_job_id":null,"html_url":"https://github.com/markjprice/web-dev-net9","commit_stats":null,"previous_names":["markjprice/web-dev-net9"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/markjprice/web-dev-net9","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markjprice%2Fweb-dev-net9","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markjprice%2Fweb-dev-net9/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markjprice%2Fweb-dev-net9/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markjprice%2Fweb-dev-net9/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/markjprice","download_url":"https://codeload.github.com/markjprice/web-dev-net9/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markjprice%2Fweb-dev-net9/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266624908,"owners_count":23958303,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-23T02:00:09.312Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dotnet","dotnet9","mvc","odata","umbraco","web","web-development"],"created_at":"2025-06-09T05:09:15.587Z","updated_at":"2025-07-23T05:35:24.719Z","avatar_url":"https://github.com/markjprice.png","language":"C#","readme":"\u003e **IMPORTANT!** [Common Mistakes, Improvements, and Errata aka list of corrections](docs/errata/README.md)\n\n# Real-World Web Development with .NET 9, First Edition\n\nRepository for the Packt Publishing book titled \"Real-World Web Development with .NET 9\" by Mark J. Price\n\n\u003e **[FAQs](https://github.com/markjprice/markjprice/blob/main/FAQs.md)**\n\n- [Real-World Web Development with .NET 9, First Edition](#real-world-web-development-with-net-9-first-edition)\n- [Free PDF of the book and how to contact the publisher Packt](#free-pdf-of-the-book-and-how-to-contact-the-publisher-packt)\n- [Author's books](#authors-books)\n- [Chapters and code projects](#chapters-and-code-projects)\n- [Code solutions for Visual Studio, VS Code, and Rider](#code-solutions-for-visual-studio-vs-code-and-rider)\n- [Online content](#online-content)\n- [Miscellaneous](#miscellaneous)\n  - [Microsoft Certifications](#microsoft-certifications)\n  - [Microsoft .NET community support](#microsoft-net-community-support)\n  - [Interviews with me](#interviews-with-me)\n  - [Book Cover](#book-cover)\n\n\n# Free PDF of the book and how to contact the publisher Packt\n\nIf you have purchased the paperback or Kindle edition, then you can request a free PDF copy and its supplementary content (like Appendix - Answers to the Test Your Knowledge Questions and Graphics Bundle PDF) at the following link: https://packt.link/supplementary-content-9781835880388. \n\nFor questions about book pricing, distribution, and so on, please contact the publisher Packt at the following email address: customercare@packt.com\n\n# Author's books\n\nMy author page on Amazon: https://www.amazon.com/Mark-J-Price/e/B071DW3QGN/ \n\nAll of my books on Packt's website: https://subscription.packtpub.com/search?query=mark+j.+price\n\nMy author page on Goodreads: https://www.goodreads.com/author/show/14224500.Mark_J_Price\n\n# Chapters and code projects\n\n**Introduction**\n- Chapter 1 Introducing Web Development with Controllers\n  - [code/MatureWeb/Northwind.EntityModels](code/MatureWeb/Northwind.EntityModels)\n  - [code/MatureWeb/Northwind.DataContext](code/MatureWeb/Northwind.DataContext)\n  - [code/MatureWeb/Northwind.UnitTests](code/MatureWeb/Northwind.UnitTests)\n\n**ASP.NET Core MVC**\n- Chapter 2 Building Websites Using ASP.NET Core MVC\n  - [code/MatureWeb/Northwind.Mvc](code/MatureWeb/Northwind.Mvc)\n- Chapter 3 Model Binding, Validation, and Data Using EF Core\n- Chapter 4 Building and Localizing Web User Interfaces\n\n**ASP.NET Core shared functionality**\n- Chapter 5 Authentication and Authorization\n- Chapter 6 Performance Optimization Using Caching\n- Chapter 7 Web User Interface Testing Using Playwright\n  - [code/MatureWeb/Northwind.WebUITests](code/MatureWeb/Northwind.WebUITests)\n- Chapter 8 Configuring and Containerizing ASP.NET Core Projects\n\n**Web Services**\n- Chapter 9 Building Web Services Using ASP.NET Core Web API\n  - [code/MatureWeb/Northwind.WebApi](code/MatureWeb/Northwind.WebApi)\n- Chapter 10 Building Web Services Using ASP.NET Core OData\n  - [code/MatureWeb/Northwind.Odata](code/MatureWeb/Northwind.Odata)\n- Chapter 11 Building Web Services Using FastEndpoints\n  - [code/MatureWeb/Northwind.FastEndpoints](code/MatureWeb/Northwind.FastEndpoints)\n- Chapter 12 Web Service Integration Testing\n  - [code/MatureWeb/Northwind.IntegrationTests](code/MatureWeb/Northwind.IntegrationTests)\n\n**Web Content Management Systems**\n- Chapter 13 Web Content Management Using Umbraco\n  - [code/MatureWeb/Northwind.Cms](code/MatureWeb/Northwind.Cms)\n- Chapter 14 Customizing and Extending Umbraco\n\n**Appendix**\n- Appendix, Answers to the Test Your Knowledge Questions, is included in the free PDF bundle: https://packt.link/supplementary-content-9781835880388.\n\n# Code solutions for Visual Studio, VS Code, and Rider\n\nVisual Studio, VS Code + C# Dev Kit, and Rider can use the same code solution file and projects. \n\nTo use the solution file with VS Code:\n1. Install the **C# Dev Kit** extension.\n2. In VS Code, open the *folder* that contains a `.sln` solution file.\n3. Wait for the **SOLUTION EXPLORER** pane to appear in the **EXPLORER**. \n\n\u003e **Warning!** If you use multiple code editors to open the same solution, be aware that the build process can conflict. This is because Visual Studio has its own non-standard build server that is different from the standard build server used by .NET SDK CLI. My recommendation is to only have a solution open in one code editor at any time. \n \nYou can \"clean\" a solution between opening it in different code editors, either using the `dotnet clean` command or manually. For example, after closing the solution in one code editor, I often delete the `bin` and `obj` folders before then opening in a different code editor.\n\n# Online content\n\nOnline content to support the book: \n\n- [Common Mistakes, Improvements, and Errata aka list of corrections](docs/errata/README.md)\n- [Book support for .NET 10](docs/dotnet10.md)\n- [Command-Lines](docs/command-lines.md) page lists all commands as a single line that can be copied and pasted to make it easier to enter commands at the prompt.\n- [Book Links](docs/book-links.md)\n\n# Miscellaneous\n\n## Microsoft Certifications\n\nAnnouncing the New Foundational C# Certification with freeCodeCamp:\nhttps://devblogs.microsoft.com/dotnet/announcing-foundational-csharp-certification/\n\nMicrosoft used to have professional exams and certifications for developers that covered skills like C# and ASP.NET. Sadly, they have retired them all. These days, the only developer-adjacent exams and certifications are for Azure or Power Platform, as you can see from the certification poster: https://aka.ms/traincertposter\n\n## Microsoft .NET community support\n\n- [.NET Developer Community](https://dotnet.microsoft.com/platform/community)\n- [.NET Tech Community Forums for topic discussions](https://techcommunity.microsoft.com/t5/net/ct-p/dotnet)\n- [Q\u0026A for .NET to get your questions answered](https://learn.microsoft.com/en-us/answers/products/dotnet)\n- [Technical questions about the C# programming language](https://learn.microsoft.com/en-us/answers/topics/dotnet-csharp.html)\n- [If you'd like to apply to be a reviewer](https://authors.packtpub.com/reviewers/)\n\n## Interviews with me\n\nPodcast interviews with me:\n\n- [The Modern .NET Show Podcast - January 26, 2024](https://dotnetcore.show/season-6/the-net-trilogy-and-learning-net-with-mark-j-price/)\n- [The .NET Core Podcast - March 3, 2023](https://dotnetcore.show/episode-117-our-perspectives-on-the-future-of-net-with-mark-j-price/)\n- [Yet Another Podcast with Jesse Liberty - December 2022](https://jesseliberty.com/2022/12/10/mark-price-on-c-11-fixed/)\n- [The .NET Core Podcast - February 4, 2022](https://dotnetcore.show/episode-91-c-sharp-10-and-dotnet-6-with-mark-j-price/)\n- [Yet Another Podcast with Jesse Liberty - May 2021](http://jesseliberty.com/2021/05/16/mark-price-on-c9-and-net-6/)\n- [The .NET Core Podcast - February 7, 2020](https://dotnetcore.show/episode-44-learning-net-core-with-mark-j-price/)\n- [Yet Another Podcast with Jesse Liberty - February 2020](http://jesseliberty.com/2020/02/23/mark-price-c-net-core/)\n- [Packt Podcasts](https://soundcloud.com/packt-podcasts/csharp-8-dotnet-core-3-the-evolution-of-the-microsoft-ecosystem)\n\nWritten interviews with me:\n- [C# 9 and .NET 5: Book Review and Q\u0026A](https://www.infoq.com/articles/book-interview-mark-price/?itm_source=infoq\u0026itm_campaign=user_page\u0026itm_medium=link)\n- [Q\u0026A with Episerver's Mark J. Price, author of C# 9 and .NET 5 - Modern Cross-Platform Development](https://www.episerver.com/articles/q-and-a-with-mark-price)\n\n## Book Cover\n\n![Book Cover](docs/assets/B31470_Cover.png)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarkjprice%2Fweb-dev-net9","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarkjprice%2Fweb-dev-net9","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarkjprice%2Fweb-dev-net9/lists"}