{"id":18267352,"url":"https://github.com/spboyer/dotnet-workshops","last_synced_at":"2026-03-06T15:03:41.162Z","repository":{"id":150345888,"uuid":"190616340","full_name":"spboyer/dotnet-workshops","owner":"spboyer","description":"A Collection of .NET Workshops ","archived":false,"fork":false,"pushed_at":"2020-03-06T16:58:56.000Z","size":62,"stargazers_count":46,"open_issues_count":1,"forks_count":9,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-09-09T02:52:56.632Z","etag":null,"topics":["azure","cloud","dotnet","dotnetcore","learning","serverless","webapi","workshops"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/spboyer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-06-06T16:43:05.000Z","updated_at":"2023-11-26T08:22:21.000Z","dependencies_parsed_at":"2023-04-18T05:17:51.118Z","dependency_job_id":null,"html_url":"https://github.com/spboyer/dotnet-workshops","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/spboyer/dotnet-workshops","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spboyer%2Fdotnet-workshops","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spboyer%2Fdotnet-workshops/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spboyer%2Fdotnet-workshops/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spboyer%2Fdotnet-workshops/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/spboyer","download_url":"https://codeload.github.com/spboyer/dotnet-workshops/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spboyer%2Fdotnet-workshops/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30182686,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-06T14:42:24.748Z","status":"ssl_error","status_checked_at":"2026-03-06T14:42:14.925Z","response_time":250,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["azure","cloud","dotnet","dotnetcore","learning","serverless","webapi","workshops"],"created_at":"2024-11-05T11:27:01.510Z","updated_at":"2026-03-06T15:03:41.153Z","avatar_url":"https://github.com/spboyer.png","language":null,"funding_links":[],"categories":["azure","serverless"],"sub_categories":[],"readme":"# .NET Workshops\n[![All Contributors](https://img.shields.io/badge/all_contributors-7-orange.svg?style=flat-square)](#contributors)\n\n## .NET Foundation Workshops\n\nThe following are listed under the .NET Foundation [Workshops \u0026 Presentations](https://presentations.dotnetfoundation.org/)\n\n## [Blazor Workshop](https://github.com/dotnet-presentations/blazor-workshop/)\n\n![last commit](https://img.shields.io/github/last-commit/dotnet-presentations/blazor-workshop.svg?style=flat)\n[![GitHub forks](https://img.shields.io/github/forks/dotnet-presentations/blazor-workshop.svg?style=social\u0026label=Fork\u0026maxAge=2592000)](https://GitHub.com/dotnet-presentations/blazor-workshop/network/)\n[![GitHub stars](https://img.shields.io/github/stars/dotnet-presentations/blazor-workshop.svg?style=social\u0026label=Star\u0026maxAge=2592000)](https://GitHub.com/dotnet-presentations/blazor-workshop/stargazers/)\n\nBlazor is an experimental single-page app framework for building client-side web apps using .NET and WebAssembly. In this workshop we will build a complete Blazor app and learn about the various Blazor framework features along the way.\n\n## [ASP.NET Core for Beginners](https://github.com/dotnet-presentations/aspnetcore-for-beginners)\n\n![last commit](https://img.shields.io/github/last-commit/dotnet-presentations/aspnetcore-for-beginners.svg?style=flat)\n[![GitHub forks](https://img.shields.io/github/forks/dotnet-presentations/aspnetcore-for-beginners.svg?style=social\u0026label=Fork\u0026maxAge=2592000)](https://GitHub.com/dotnet-presentations/aspnetcore-for-beginners/network/)\n[![GitHub stars](https://img.shields.io/github/stars/dotnet-presentations/aspnetcore-for-beginners.svg?style=social\u0026label=Star\u0026maxAge=2592000)](https://GitHub.com/dotnet-presentations/aspnetcore-for-beginners/stargazers/)\n\nAre you completely new to .NET? No problem! Here’s a half day workshop for developers who have no experience with .NET Core or ASP.NET. We’ll start with the basics and build up to a movie database website with search.\n\n## [ASP.NET Core App Workshop](https://github.com/dotnet-presentations/aspnetcore-app-workshop)\n\n![last commit](https://img.shields.io/github/last-commit/dotnet-presentations/aspnetcore-app-workshop.svg?style=flat)\n[![GitHub forks](https://img.shields.io/github/forks/dotnet-presentations/aspnetcore-app-workshop.svg?style=social\u0026label=Fork\u0026maxAge=2592000)](https://GitHub.com/dotnet-presentations/aspnetcore-app-workshop/network/)\n[![GitHub stars](https://img.shields.io/github/stars/dotnet-presentations/aspnetcore-app-workshop.svg?style=social\u0026label=Star\u0026maxAge=2592000)](https://GitHub.com/dotnet-presentations/aspnetcore-app-workshop/stargazers/)\n\nIn this workshop, you’ll learn by building a full-featured ASP.NET Core application from scratch. We’ll start from File/ New and build up to an API back-end application, a web front-end application, and a common library for shared data transfer objects using .NET Standard.\n\n## [.NET Core Workshop](https://github.com/dotnet-presentations/dotnetcore-workshop)\n\n![last commit](https://img.shields.io/github/last-commit/dotnet-presentations/dotnetcore-workshop.svg?style=flat)\n[![GitHub forks](https://img.shields.io/github/forks/dotnet-presentations/dotnetcore-workshop.svg?style=social\u0026label=Fork\u0026maxAge=2592000)](https://GitHub.com/dotnet-presentations/dotnetcore-workshop/network/)\n[![GitHub stars](https://img.shields.io/github/stars/dotnet-presentations/dotnetcore-workshop.svg?style=social\u0026label=Star\u0026maxAge=2592000)](https://GitHub.com/dotnet-presentations/dotnetcore-workshop/stargazers/)\n\nAre you ready to get started with .NET Core? This one day workshop covers the basics, then digs into web development with ASP.NET Core, .NET Standard, porting from .NET Framework, and containers.\n\n## [ASP.NET Core Authorization Workshop](https://github.com/blowdart/AspNetAuthorizationWorkshop)\n\n![last commit](https://img.shields.io/github/last-commit/blowdart/AspNetAuthorizationWorkshop.svg?style=flat)\n[![GitHub forks](https://img.shields.io/github/forks/blowdart/AspNetAuthorizationWorkshop.svg?style=social\u0026label=Fork\u0026maxAge=2592000)](https://GitHub.com/blowdart/AspNetAuthorizationWorkshop/network/)\n[![GitHub stars](https://img.shields.io/github/stars/blowdart/AspNetAuthorizationWorkshop.svg?style=social\u0026label=Star\u0026maxAge=2592000)](https://GitHub.com/blowdart/AspNetAuthorizationWorkshop/stargazers/)\n\nA workshop for moving through the various new pieces in ASP.NET Core Authorization.\n\n## [ASP.NET Core Overview Workshop](https://github.com/dotnet-presentations/aspnetcore-workshop)\n\n![last commit](https://img.shields.io/github/last-commit/dotnet-presentations/aspnetcore-workshop.svg?style=flat)\n[![GitHub forks](https://img.shields.io/github/forks/dotnet-presentations/aspnetcore-workshop.svg?style=social\u0026label=Fork\u0026maxAge=2592000)](https://GitHub.com/dotnet-presentations/aspnetcore-workshop/network/)\n[![GitHub stars](https://img.shields.io/github/stars/dotnet-presentations/aspnetcore-workshop.svg?style=social\u0026label=Star\u0026maxAge=2592000)](https://GitHub.com/dotnet-presentations/aspnetcore-workshop/stargazers/)\n\nThis ASP.NET Core workshop is broken down by topics: middleware, front-end, etc.\n\n# Community Workshops\n\nAdd your workshop here!\n\n## [Blazor One Hour Hands-on Lab](https://github.com/jeremylikness/blazor-wasm)\n\n![last commit](https://img.shields.io/github/last-commit/jeremylikness/blazor-wasm.svg?style=flat)\n[![GitHub forks](https://img.shields.io/github/forks/jeremylikness/blazor-wasm.svg?style=social\u0026label=Fork\u0026maxAge=2592000)](https://GitHub.com/jeremylikness/blazor-wasm/network/)\n[![GitHub stars](https://img.shields.io/github/stars/jeremylikness/blazor-wasm.svg?style=social\u0026label=Star\u0026maxAge=2592000)](https://GitHub.com/jeremylikness/blazor-wasm/stargazers/)\n\nThis lab is aimed at developers with no prior knowledge of Blazor but want to get started quickly. It is paired with an open source presentation deck and contains step-by-step instructions to explore:\n\n- WebAssembly fundamentals\n- Hosted vs. client-only projects\n- Reusable Blazor (Razor) components\n- Referencing existing .NET Standard packages\n- JavaScript interopability\n- Code behind\n- MVVM pattern\n\n## [Learning C# on Linux](https://github.com/martinwoodward/csharpworkshop)\n\n![last commit](https://img.shields.io/github/last-commit/martinwoodward/csharpworkshop.svg?style=flat)\n[![GitHub forks](https://img.shields.io/github/forks/martinwoodward/csharpworkshop.svg?style=social\u0026label=Fork\u0026maxAge=2592000)](https://GitHub.com/martinwoodward/csharpworkshop/network/)\n[![GitHub stars](https://img.shields.io/github/stars/martinwoodward/csharpworkshop.svg?style=social\u0026label=Star\u0026maxAge=2592000)](https://GitHub.com/martinwoodward/csharpworkshop/stargazers/)\n\nThis workshop is aimed at developers with no prior knowledge of C# but have some experience with other programming languages or would like a refresher on the modern C# language.\n\n## [.NET Unit Testing Beginner Bootcamp](https://wrightfully.com/unittestworkshop)\n\n![last commit](https://img.shields.io/github/last-commit/johnmwright/UnitTestingBootcamp.svg?style=flat)\n[![GitHub forks](https://img.shields.io/github/forks/johnmwright/UnitTestingBootcamp.svg?style=social\u0026label=Fork\u0026maxAge=2592000)](https://GitHub.com/johnmwright/UnitTestingBootcamp/network/)\n[![GitHub stars](https://img.shields.io/github/stars/johnmwright/UnitTestingBootcamp.svg?style=social\u0026label=Star\u0026maxAge=2592000)](https://GitHub.com/johnmwright/UnitTestingBootcamp/stargazers/)\n\nIn this workshop, we'll talk through the topics you need to know to get up and running with unit testing, coupled with hands-on coding activities to practice the topics covered.\n\nTopics covered in this workshop:\n\n- Fundamentals of unit testing and basic structure of a unit test / test suite\n- Features of popular testing frameworks and tooling\n- Tips and strategies for writing tests that provide long-term value\n- Differences between writing tests for new code vs writing tests for existing code\n- Unit Tests vs Integration Test: advantages and disadvantages of each\n- Using mocking frameworks\n- Integration with CI/build servers\n- Pros \u0026 cons of Code Coverage tools\n- Advanced integrations with testing frameworks -- using the framework SDKs to extend and enhance\n\n## [Build the Mobile Apps of Tomorrow](https://github.com/jimbobbennett/MobileAppsOfTomorrow-Lab)\n\n![last commit](https://img.shields.io/github/last-commit/jimbobbennett/MobileAppsOfTomorrow-Lab.svg?style=flat)\n[![GitHub forks](https://img.shields.io/github/forks/jimbobbennett/MobileAppsOfTomorrow-Lab.svg?style=social\u0026label=Fork\u0026maxAge=2592000)](https://GitHub.com/jimbobbennett/MobileAppsOfTomorrow-Lab/network/)\n[![GitHub stars](https://img.shields.io/github/stars/jimbobbennett/MobileAppsOfTomorrow-Lab.svg?style=social\u0026label=Star\u0026maxAge=2592000)](https://GitHub.com/jimbobbennett/MobileAppsOfTomorrow-Lab/stargazers/)\n\nIn this workshop you will build a cloud-connected, AI powered mobile app that runs on iOS, Android and UWP using Xamarin and Xamarin.Forms.\n\nYou will learn how to use plug-ins to take advantage or hardware specific features such as the camera, how to use Cognitive Services, and how to wire up an app to a back-end built using Azure functions and Blob storage. On the back-end side, you will learn how to create an API using Azure functions, behind a mobile app service that provides authentication, and how to connect this API up to Cognitive Services, Blob storage and CosmosDB (a globally distributed database system running on Azure).\n\n## [C# Workshop](https://github.com/brminnick/csharp-workshop)\n\n![last commit](https://img.shields.io/github/last-commit/brminnick/csharp-workshop.svg?style=flat)\n[![GitHub forks](https://img.shields.io/github/forks/brminnick/csharp-workshop.svg?style=social\u0026label=Fork\u0026maxAge=2592000)](https://GitHub.com/brminnick/csharp-workshop/network/)\n[![GitHub stars](https://img.shields.io/github/stars/brminnick/csharp-workshop.svg?style=social\u0026label=Star\u0026maxAge=2592000)](https://GitHub.com/brminnick/csharp-workshop/stargazers/)\n\nDelivered at [NDC London 2019](https://ndc-london.com/workshop/become-a-better-c-programmer-more-value-more-expressions-no-waiting/)\n\nHosted by [Bill Wagner](http://thebillwagner.com)\n\n### Become a better C# programmer: more Value, more Expressions, no Waiting\n\nOver the past few releases, C# has added features that greatly improve productivity.\n\nIn this workshop, you’ll learn scenarios where these new features make you more productive, and improve the clarity of your code. You’ll get a guided tour through the async and await wilderness. You'll start with basic uses where async and await work like magic. From there, you'll learn common practices and how async tasks compose. You'll dive into enough of the implementation details to understand how to apply async practices. After working through these different practices, you'll emerge from the wilderness understanding how to write clear, correct and safe async code. From there, you'll work through everyday scenarios where modern C# frees itself from the shackles of history. You'll see new ways to work with text, new expressions for control flow, and new ways to bend the type system to your will.\nYou’ll learn:\n\n- [x] Getting started with the basics of async and await\n- [x] Distinguish asynchronous programming and parallel programming\n- [x] Compose asynchronous method calls throughout your code\n- [x] Understand the pitfalls of async void\n- [x] Designing async APIs\n- [x] Advanced async and Task based programming\n- [x] How string interpolation makes formatting strings much easier and clearer.\n- [x] How to create compound assignments and comparisons using Tuples and Deconstruction\n- [x] How to simplify iterators and async error handling using local functions\n- [x] How to simplify error reporting using throw expressions in expression bodied members.\n- [x] Write more performant code using value types safe pass-by-reference\n- [x] How to use Pattern Matching to create algorithms that extend existing types\n\n\n## [Going all in with Functional C#](https://edcharbeneau.com/csharp-functional-workshop-instructions/)\n\n![last commit](https://img.shields.io/github/last-commit/EdCharbeneau/csharp-functional-workshop-instructions.svg?style=flat)\n[![GitHub forks](https://img.shields.io/github/forks/EdCharbeneau/csharp-functional-workshop-instructions.svg?style=social\u0026label=Fork\u0026maxAge=2592000)](https://GitHub.com/EdCharbeneau/csharp-functional-workshop-instructions/network/)\n[![GitHub stars](https://img.shields.io/github/stars/EdCharbeneau/csharp-functional-workshop-instructions.svg?style=social\u0026label=Star\u0026maxAge=2592000)](https://GitHub.com/EdCharbeneau/csharp-functional-workshop-instructions/stargazers/)\n\nIn this workshop you will learn about functional C# by building a poker scoring game using C# 7.x features. You'll learn what features in C# 7.x support functional programming. The pros/cons of functional vs. imperative programming will be explored to understand the strengths of each style.\n\nKey topics and takeaways:\n\n- Immutable Types\n- Basic LINQ concepts\n- Advanced LINQ concepts (yield)\n- Func Delegates\n- Expression Bodied Members\n- Extension methods and pipe-lining\n- Thread Safe Collections\n- new System.ValueTuple\n\n## [.NET C#, Learn to build a GraphQl API, host it in a Serverless function and deploy](https://edcharbeneau.com/csharp-functional-workshop-instructions/)\n\nYou’ll learn:\n\n- [x] How to build a GraphQL API\n- [x] How to build Micro services with Docker\n- [x] How to create a Serverless function and integrate the GraphQL and the micro services \n- [x] How to deploy it all to Azure\n\nWorkshop found at\n\n\u003e aka.ms.graphql-workshop-dotnet\n\n![last commit](https://img.shields.io/github/last-commit/softchris/graphql-workshop-dotnet.svg?style=flat)\n[![GitHub forks](https://img.shields.io/github/forks/softchris/graphql-workshop-dotnet.svg?style=social\u0026label=Fork\u0026maxAge=2592000)](https://GitHub.com/softchris/graphql-workshop-dotnet/network/)\n[![GitHub stars](https://img.shields.io/github/stars/softchris/graphql-workshop-dotnet.svg?style=social\u0026label=Star\u0026maxAge=2592000)](https://GitHub.com/softchris/graphql-workshop-dotnet/stargazers/)\n\n[Source code](https://github.com/softchris/graphql-workshop-dotnet)\n\n[Delivered at VS Live Las Vegas 2020](https://vslive.com/Events/Las-Vegas-2020/Sessions/Friday/F03-HandsOn-Workshop-Serverless-GraphQL.aspx)\n\nHosted by [Chris Noring](https://twitter.com/chris_noring)\n\n## Contributors\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore --\u003e\n\u003ctable\u003e\u003ctr\u003e\u003ctd align=\"center\"\u003e\u003ca href=\"http://woodwardweb.com\"\u003e\u003cimg src=\"https://avatars2.githubusercontent.com/u/856858?v=4\" width=\"100px;\" alt=\"Martin Woodward\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMartin Woodward\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#content-martinwoodward\" title=\"Content\"\u003e🖋\u003c/a\u003e \u003ca href=\"https://github.com/spboyer/dotnet-workshops/commits?author=martinwoodward\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\u003ctd align=\"center\"\u003e\u003ca href=\"https://wrightfully.com\"\u003e\u003cimg src=\"https://avatars1.githubusercontent.com/u/3373249?v=4\" width=\"100px;\" alt=\"John M. Wright\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJohn M. Wright\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/spboyer/dotnet-workshops/commits?author=johnmwright\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#content-johnmwright\" title=\"Content\"\u003e🖋\u003c/a\u003e\u003c/td\u003e\u003ctd align=\"center\"\u003e\u003ca href=\"https://www.jimbobbennett.io\"\u003e\u003cimg src=\"https://avatars1.githubusercontent.com/u/1710385?v=4\" width=\"100px;\" alt=\"Jim Bennett\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJim Bennett\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/spboyer/dotnet-workshops/commits?author=jimbobbennett\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#content-jimbobbennett\" title=\"Content\"\u003e🖋\u003c/a\u003e\u003c/td\u003e\u003ctd align=\"center\"\u003e\u003ca href=\"http://www.galasoft.ch\"\u003e\u003cimg src=\"https://avatars0.githubusercontent.com/u/4922457?v=4\" width=\"100px;\" alt=\"Laurent Bugnion\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eLaurent Bugnion\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/spboyer/dotnet-workshops/commits?author=lbugnion\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#content-lbugnion\" title=\"Content\"\u003e🖋\u003c/a\u003e\u003c/td\u003e\u003ctd align=\"center\"\u003e\u003ca href=\"https://www.linkedin.com/in/brandon-minnick\"\u003e\u003cimg src=\"https://avatars2.githubusercontent.com/u/13558917?v=4\" width=\"100px;\" alt=\"Brandon Minnick\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eBrandon Minnick\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/spboyer/dotnet-workshops/commits?author=brminnick\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#content-brminnick\" title=\"Content\"\u003e🖋\u003c/a\u003e\u003c/td\u003e\u003ctd align=\"center\"\u003e\u003ca href=\"http://EdCharbeneau.com\"\u003e\u003cimg src=\"https://avatars1.githubusercontent.com/u/945168?v=4\" width=\"100px;\" alt=\"Ed Charbeneau\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eEd Charbeneau\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/spboyer/dotnet-workshops/commits?author=EdCharbeneau\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#content-EdCharbeneau\" title=\"Content\"\u003e🖋\u003c/a\u003e\u003c/td\u003e\u003ctd align=\"center\"\u003e\u003ca href=\"http://theBillWagner.com\"\u003e\u003cimg src=\"https://avatars2.githubusercontent.com/u/493969?v=4\" width=\"100px;\" alt=\"Bill Wagner\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eBill Wagner\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/spboyer/dotnet-workshops/commits?author=BillWagner\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#content-BillWagner\" title=\"Content\"\u003e🖋\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspboyer%2Fdotnet-workshops","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspboyer%2Fdotnet-workshops","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspboyer%2Fdotnet-workshops/lists"}