{"id":54008,"date":"2025-06-03T11:41:59","date_gmt":"2025-06-03T11:41:59","guid":{"rendered":"https:\/\/academy.xebia.com\/us\/?post_type=course&#038;p=54008"},"modified":"2025-09-24T17:52:55","modified_gmt":"2025-09-24T17:52:55","slug":"building-modern-web-applications-with-asp-net-core-8-be","status":"publish","type":"course","link":"https:\/\/academy.xebia.com\/us\/training\/building-modern-web-applications-with-asp-net-core-8-be\/","title":{"rendered":"Building Modern Web Applications with ASP.NET Core 8 (BE)"},"content":{"rendered":"\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"ba86caf8\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-group-hero js-group-hero\" data-id=\"6f03201f\">\n\t\t<div class=\"block-group-hero__background\">\n\t\t<div class=\"hero-theme block-group-hero__hero-theme\" data-id=\"4dc913b7\">\n\t\n\t<div class=\"hero-theme__background\">\n\t\t\t\t\t<div class=\"hero-theme__background--software-white\">\n\t\t\t\t<svg xmlns='http:\/\/www.w3.org\/2000\/svg' width='54' height='55' viewBox='0 0 54 55' fill='none'><path d='M2.458 33.333c-3.277-3.387-3.277-8.878 0-12.265l17.717-18.31C25.46-2.706 34.5 1.164 34.5 8.89v36.62c0 7.727-9.039 11.596-14.325 6.133L2.458 33.333Z' fill='url(#3c1e2c78-7a40-45b0-9018-1aaac5fdccd5)'\/><path d='M52.077 22.43c2.564 2.635 2.564 6.906 0 9.54L38.21 46.21C34.074 50.461 27 47.451 27 41.441V12.96c0-6.01 7.074-9.019 11.211-4.77l13.866 14.24Z' fill='url(#b0ac0058-6d6d-4f3e-946f-dba1d605141e)'\/><path fill-rule='evenodd' clip-rule='evenodd' d='M34.112 6.22c.25.825.388 1.718.388 2.67v36.62a9.14 9.14 0 0 1-.388 2.67C30.564 48.461 27 45.707 27 41.441V12.96c0-4.266 3.564-7.02 7.112-6.74Z' fill='url(#c2b1ad86-e474-4a1b-90d6-8a38250681b7)'\/><defs><linearGradient id='3c1e2c78-7a40-45b0-9018-1aaac5fdccd5' x1='17.25' y1='0.200195' x2='17.25' y2='54.2002' gradientUnits='userSpaceOnUse'><stop stop-color='#F3F3F3' stop-opacity='0.5'\/><stop offset='1' stop-color='#84117C'\/><\/linearGradient><linearGradient id='b0ac0058-6d6d-4f3e-946f-dba1d605141e' x1='40.5' y1='48.2002' x2='40.5' y2='6.2002' gradientUnits='userSpaceOnUse'><stop stop-color='#F3F3F3' stop-opacity='0.5'\/><stop offset='1' stop-color='#84117C'\/><\/linearGradient><linearGradient id='c2b1ad86-e474-4a1b-90d6-8a38250681b7' x1='30.75' y1='6.2002' x2='30.75' y2='48.2002' gradientUnits='userSpaceOnUse'><stop stop-color='#84117C'\/><stop offset='0.9999' stop-color='#A80C9E'\/><stop offset='1' stop-color='#84117C' stop-opacity='0'\/><\/linearGradient><\/defs><\/svg>\t\t\t<\/div>\n\t\t\n\t<\/div>\n<\/div>\t<\/div>\n\t<div class=\"block-group-hero__content\">\n\t\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"603ef4c9\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-course-hero\">\n\t<div class=\"block-course-hero__row\">\n\t\t<div class=\"block-course-hero block-course-hero__title\">\n\t\t\t<div class=\"block-course-hero__title-container\">\n\t\t\t\t<h1\tclass=\"heading\"\n\tdata-id=\"2c12845d\"\n>\n\tBuilding Modern Web Applications with ASP.NET Core 8<\/h1>\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"block-course-hero__row\">\n\t\t<div class=\"block-course-hero\">\n\t\t\t<div class=\"block-course-hero__content\">\n\t\t\t\t<p class=\"block-course-hero__date-location\">\n\t\t\t\t\t<span data-training-meta-p-date>\n\t\t\t\t\t<\/span>   <span data-training-meta-p-address>\t\t\t\t\t<\/span>\n\t\t\t\t<\/p>\n\t\t\t\t<div class=\"course-tags block-course-hero__course-tags\" data-id=\"e630267e\">\n\t<div class=\"tags course-tags__tags js-tags\">\n\t\t<button\tclass=\"btn tags__show-more js-tags-show-more\"\n\tdata-id=\"cb392f54\">\n\t<i class=\"icon btn__show-more\" data-id=\"232e3c01\"  aria-hidden=\"true\">\n\t<svg xmlns='http:\/\/www.w3.org\/2000\/svg' fill='none' viewBox='0 0 25 24'><path stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M7 12h10M12 7v10'\/><\/svg><\/i>\n\t\n\t<\/button>\t<div class=\"tags__tippy-template js-tags-tippy-template\">\n\t\t<div class=\"tags__head\">\n\t\t\t<span><\/span>\n\t\t\t<button\tclass=\"btn tags__close js-tags-close\"\n\tdata-id=\"a37a1c84\">\n\t<i class=\"icon btn__close\" data-id=\"44ce87dd\"  aria-hidden=\"true\">\n\t<svg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http:\/\/www.w3.org\/2000\/svg'><path d='M15 5L5.00103 14.999' stroke='#6A1D57' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'\/><path d='M15 14.998L5.00103 4.99907' stroke='#6A1D57' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'\/><\/svg><\/i>\n\t\n\t<\/button>\t\t<\/div>\n\t<\/div>\n<\/div><\/div><p class=\"paragraph block-course-hero__description\" data-id=\"8d685442\">\n\tASP.NET Core 8 is Microsoft\u2019s premier platform to build web applications. In this course, you\u2019ll get a good understanding of ASP.NET \u00a0Core, ASP.NET \u00a0Core MVC, Blazor and Web API. This course uses .NET 8 and is fully updated for the new version of the underlying frameworks.<\/p>\t\t\t\t<div class=\"block-course-hero__trainers-list\" aria-hidden=\"true\">\n\t\t\t\t\t<a href=\"https:\/\/example.com\" class=\"author-meta block-course-hero__author-meta author-meta__make-flex author-meta__link author-meta__make-flex\" rel=\"nofollow noopener\" target=\"_blank\">\n\t\t<picture class=\"image author-meta__image\" data-id=\"558b9b3d\">\n\n\t\n\t\n\t<img\n\t\tsrc=\"https:\/\/example.com\"\n\t\talt=\"\"\n\t\tclass=\"image__img author-meta__image-img\"\n\t\/>\n<\/picture><h2\tclass=\"heading author-meta__heading\"\n\tdata-id=\"0466c87e\"\n>\n\tTrainer Title<\/h2>\t<\/a>\t\t\t\t<\/div>\n\t\t\t\t<div\n\t\t\t\t\tclass=\"block-course-hero__review-widget block-course-hero__review-widget-spacing\"\n\t\t\t\t\taria-hidden=\"true\">\n\t\t\t\t\t<div class=\"springest-review-widget springest-review-widget-width:300 springest-review-widget-bg:FFFFFF\">\n\t<a href=\"\">\n\t\t\t<\/a>\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t<div class=\"block-course-hero__booking-container\">\n\t\t\t\t<div class=\"booking js-booking block-course-hero__booking booking__single-column\" data-id=\"a207f8bf\">\n\t\t<div class=\"booking__info\">\n\t\t<h2\tclass=\"heading booking__heading\"\n\tdata-id=\"4889ce93\"\n>\n\t<strong>Any questions?\u00a0\u00a0<\/strong><\/h2><p class=\"paragraph booking__paragraph\" data-id=\"fbcace3d\">\n\tBrijesh will gladly help you further with any personal or in-company needs you might have.<\/p><div class=\"author-meta booking__author-meta\">\n\t\t<picture class=\"image author-meta__image\" data-id=\"91fcbf1a\">\n\n\t\n\t\n\t<img\n\t\tsrc=\"\/wp-content\/uploads\/sites\/21\/2025\/05\/Brijesh-Kohli-Profile-Picture-2-e1757405354999.jpeg\"\n\t\talt=\"\"\n\t\tclass=\"image__img author-meta__image-img\"\n\t\/>\n<\/picture>\t\t<h2\tclass=\"heading author-meta__heading\"\n\tdata-id=\"45aae1aa\"\n>\n\t<strong>Brijesh Kohli<\/strong><br>Training Advisor<\/h2>\t\t<p class=\"paragraph author-meta__paragraph\" data-id=\"061ddc56\">\n\t<a href=\"tel:09999644790\" data-type=\"tel\" data-id=\"tel:09999644790\">+1 (404) 988-3790<\/a><br><a href=\"mailto:Surat.wahal@xebia.com\" data-type=\"mailto\" data-id=\"mailto:Surat.wahal@xebia.com\"><a href=\"mailto:Brijesh.kohli@xebia.com\">Brijesh.kohli@xebia.com<\/a><\/a><br><a href=\"https:\/\/www.linkedin.com\/in\/surat-wahal-12996513\" target=\"_blank\" rel=\"noreferrer noopener nofollow\"><a href=\"https:\/\/www.linkedin.com\/in\/brijesh-kohli\/\" rel=\"nofollow noopener\" target=\"_blank\">https:\/\/www.linkedin.com\/in\/brijesh-kohli\/<\/a><\/a><\/p>\t<\/div><a class=\"btn booking__contact\" title=\"Get in touch\" data-id=\"49c85885\" href=\"https:\/\/academy.xebia.com\/us\/about-us\/contact-us\/\">\n\t\n\t\t\t<span>Get in touch<\/span>\n\t\n\t<\/a>\t<\/div>\n<\/div>\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\t\t<\/div>\n\t<\/div>\n\n\t<\/div>\n<\/div>\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper\" \n\tdata-id=\"ff5328da\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-course-stats\" \n\tdata-id=\"da7450fb\" \n\taria-hidden=\"1\"\n\t>\n\t\n\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper\" \n\tdata-id=\"485c5db2\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-columns\" data-id=\"a8e59dea\">\n\t\n\n<div class=\"block-column\" data-id=\"8d86e5bb\">\n\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"ec711823\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-heading\" data-id=\"c80d123f\">\n\t<h2\tclass=\"heading block-heading__heading\"\n\tdata-id=\"5327f791\"\n>\n\tWhat will you learn?<\/h2><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"65838621\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"ae40e11f\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"f9f503f5\">\n\tYou want to build web apps using ASP.NET Core, Microsoft\u2019s premier web development platform?<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"74dfc40c\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"d2586d72\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"f60da2c2\">\n\tThis course will teach you all you need to know on the ASP.NET Core framework, including ASP.NET Core MVC, Razor Pages, Blazor and APIs. After this course, you will feel confident to build your own applications based on this framework.<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n<\/div>\n\n\n\n<div class=\"block-column\" data-id=\"e051105e\">\n\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"167a2a21\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-group\" data-id=\"186bd6df\">\n\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"f5e7767c\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-heading\" data-id=\"bf4b14b9\">\n\t<h2\tclass=\"heading block-heading__heading\"\n\tdata-id=\"dfae38d5\"\n>\n\tKey takeaways<\/h2><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"62c647c7\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-lists\" data-id=\"7787321c\">\n\t<ol\tclass=\"lists block-lists__lists\"\n\tdata-id=\"871cfde5\"\n>\n\t<li>Learn how to build web applications based on ASP.NET Core<\/li><li>Build a real-world application throughout the course<\/li><li>Learn about best practices and patterns you should apply in your own development<\/li><\/ol><\/div>\n\t\t<\/div>\n\t<\/div>\n\n<\/div>\t\t<\/div>\n\t<\/div>\n\n<\/div>\n\n<\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper\" \n\tdata-id=\"cbd096d4\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-columns\" data-id=\"e0d22696\">\n\t\n\n<div class=\"block-column\" data-id=\"f7d06fc7\">\n\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"f48495af\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-heading\" data-id=\"2cad39a1\">\n\t<h2\tclass=\"heading block-heading__heading\"\n\tdata-id=\"274070f7\"\n>\n\tProgram<\/h2><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"00671588\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"d6526b2f\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"cdf3ec9f\">\n\tThis course will give students a solid understanding of the ASP.NET \u00a0Core 8 platform including ASP.NET \u00a0Core MVC, ASP.NET \u00a0Core APIs and ASP.NET \u00a0Core Blazor. It requires that students are familiar with C# and have at least basic web development skills. This course can act both as an introduction to students new to ASP.NET \u00a0Core who want to get started with the newest version of the framework as well as an overview for seasoned ASP.NET \u00a0developers willing to learn what\u2019s new in this version of the framework. This course is also ideal for teams who are currently using older technologies such as ASP.NET \u00a0WebForms or other web development technologies, not on the Microsoft stack.<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"5e2b6013\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"fda5bc07\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"855bf21c\">\n\tAfter taking this course, developers will have a good understanding of the different options to build web applications on the .NET 8 stack. You will walk away with a good understanding of the different options, covering the full stack, to create apps using ASP.NET Core.<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n<\/div>\n\n\n\n<div class=\"block-column\" data-id=\"d527b45a\">\n\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"d169479d\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div\n\tclass=\"block-accordion js-block-accordion\"\n\tdata-close-adjacent=\"false\"\n>\n\t\t\n\n<div class=\"block-accordion-item js-block-accordion-item\" \n\taria-expanded=\"true\"\n>\n\t<button class=\"block-accordion-item__trigger js-block-accordion-item-trigger\" \n\t\taria-label=\"Day 1\" \n\t\taria-controls=\"2af24c18\" \n\t\taria-expanded=\"true\" \n\t\tid=\"f7a7a98c\"\n\t>\n\t\t<h2\tclass=\"heading block-accordion-item__title\"\n\tdata-id=\"7da9fa31\"\n>\n\tDay 1<\/h2>\t\t\n\t\t<span class=\"block-accordion-item__wrap-icon\" aria-hidden=\"true\">\n\t\t\t<i class=\"icon block-accordion-item__icon\" data-id=\"cdc29797\"  aria-hidden=\"true\">\n\t<svg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http:\/\/www.w3.org\/2000\/svg'><path d='M13 5.5a1 1 0 1 0-2 0h2Zm-1.707 13.707a1 1 0 0 0 1.414 0l6.364-6.364a1 1 0 0 0-1.414-1.414L12 17.086l-5.657-5.657a1 1 0 0 0-1.414 1.414l6.364 6.364ZM11 5.5v13h2v-13h-2Z' fill='currentColor'\/><\/svg><\/i>\t\t<\/span>\n\t<\/button>\n\n\t<div role=\"region\" class=\"block-accordion-item__panel js-block-accordion-item-panel\" \n\t\taria-hidden=\"false\" \n\t\taria-labelledby=\"f7a7a98c\" \n\t\tid=\"2af24c18\"\n\t>\n\t\t<div class=\"block-accordion-item__content\">\n\t\t\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"27514362\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"d740889a\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"1e541bea\">\n\tThis first module will give you an overview of the .NET 8 platform and its components. You will understand the rational behind the .NET 8 philosophy and its cross-platform capabilities. We will also explore the different options that we have to create ASP.NET Core apps including Visual Studio 2022 and VS Code on Mac and Linux. Features such as Hot Reload will be explored here too and you\u2019ll end this module with a well configured environment to get started on building your first ASP.NET Core app.<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"10c85e98\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"556a508e\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"76b30efd\">\n\tTopics<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"c8afa3ad\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-lists\" data-id=\"016f773a\">\n\t<ul\tclass=\"lists block-lists__lists\"\n\tdata-id=\"151c910e\"\n>\n\t<li>.NET 8 and ASP.NET Core 8<\/li><li>Sharing code in .NET 8<\/li><li>Setting up your environment using VS or VS Code (with C# Dev Kit)<\/li><li>Working with Visual Studio 2022 and ASP.NET Core<\/li><\/ul><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"6b322add\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"72aff94b\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"bbb5d346\">\n\t<strong>Finding your way around ASP NET Core<\/strong><br>In this module, we will together create the File &gt; new project and see what is getting generated. You\u2019ll learn about the new files, workflow and configuration options that come with ASP.NET Core. You will also learn about the dependency injection system and the middleware request pipeline and how these can be configured from the Program.cs class. Along the way, you will learn about static files middleware and how this helps in terms of performance for your application, basic routing and other middleware. You\u2019ll also learn about the different environments that are supported with ASP.NET Core. We will also touch on loading application settings as a means to configure your application.<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"b29503a3\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"f86a48c1\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"7ef4fbd1\">\n\tTopic: <\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"fec34b8e\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-lists\" data-id=\"a45d7df4\">\n\t<ul\tclass=\"lists block-lists__lists\"\n\tdata-id=\"86eb2b90\"\n>\n\t<li>Exploring a new ASP.NET Core project<\/li><li>The Program.cs class<\/li><li>Working with dependency injection<\/li><li>Using middleware<\/li><li>Creating an app from scratch and adding DI and middleware<\/li><\/ul><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"bfd2df79\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"ea318fa8\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"1f99631e\">\n\t<strong>Creating our first page<\/strong><br>In this module, we\u2019ll be building our first ASP.NET Core pages. We\u2019ll start with basic configuration and add a first view, model and a controller. You\u2019ll see how routing works as well as how we can allow users to authenticate with the site. After this module, you\u2019ll already have a good understanding of how an ASP.NET Core MVC app is built and you\u2019ll be able to identify its major building blocks such as controllers, routing and views.<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"1f51f95f\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"c8225237\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"b36770ac\">\n\tTopics:<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"5f8e3c33\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-lists\" data-id=\"2211f9a8\">\n\t<ul\tclass=\"lists block-lists__lists\"\n\tdata-id=\"39b6b73b\"\n>\n\t<li>Understanding MVC concepts<\/li><li>Using the Model with mock data<\/li><li>Creating a controller<\/li><li>Adding views<\/li><li>Using Layouts and view models<\/li><li>Adding client-side packages<\/li><\/ul><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"b39afed4\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"59b1e0e7\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"27fe4b5c\">\n\t<strong>An introduction to EF Core<\/strong><br>ASP.NET Core comes backed with support of a new version of Entity Framework Core 8. This new version of the framework has been redesigned from scratch to target .NET 8. In this module, we are exploring the new framework. We\u2019ll see how it focuses entirely on code-first approaches and we will change our first pages now to use database interactions. You\u2019ll learn about concepts such as the data context and you\u2019ll start using LINQ to interact with the database.<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"1fb96b68\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"b4707e28\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"4b9b92cb\">\n\tTopics:<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"deabff79\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-lists\" data-id=\"8dc56f57\">\n\t<ul\tclass=\"lists block-lists__lists\"\n\tdata-id=\"d59d9008\"\n>\n\t<li>Understand EF Core as an ORM<\/li><li>Using the Database Context and unit of work<\/li><li>Apply LINQ statements to work with the database<\/li><li>Migrations and data seeding<\/li><\/ul><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n\n<div class=\"block-accordion-item js-block-accordion-item\" \n\taria-expanded=\"false\"\n>\n\t<button class=\"block-accordion-item__trigger js-block-accordion-item-trigger\" \n\t\taria-label=\"Day 2\" \n\t\taria-controls=\"776c1ae7\" \n\t\taria-expanded=\"false\" \n\t\tid=\"7b8804cc\"\n\t>\n\t\t<h2\tclass=\"heading block-accordion-item__title\"\n\tdata-id=\"ca51660f\"\n>\n\tDay 2<\/h2>\t\t\n\t\t<span class=\"block-accordion-item__wrap-icon\" aria-hidden=\"true\">\n\t\t\t<i class=\"icon block-accordion-item__icon\" data-id=\"a53040c9\"  aria-hidden=\"true\">\n\t<svg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http:\/\/www.w3.org\/2000\/svg'><path d='M13 5.5a1 1 0 1 0-2 0h2Zm-1.707 13.707a1 1 0 0 0 1.414 0l6.364-6.364a1 1 0 0 0-1.414-1.414L12 17.086l-5.657-5.657a1 1 0 0 0-1.414 1.414l6.364 6.364ZM11 5.5v13h2v-13h-2Z' fill='currentColor'\/><\/svg><\/i>\t\t<\/span>\n\t<\/button>\n\n\t<div role=\"region\" class=\"block-accordion-item__panel js-block-accordion-item-panel\" \n\t\taria-hidden=\"true\" \n\t\taria-labelledby=\"7b8804cc\" \n\t\tid=\"776c1ae7\"\n\t>\n\t\t<div class=\"block-accordion-item__content\">\n\t\t\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"341041d3\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"02d35e62\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"504992f6\">\n\t<strong>Navigation and Routing<\/strong><br>Routing is something specific to the ASP.NET Core MVC framework. In this chapter, you\u2019ll learn about the options that are offered by the ASP.NET Core MVC framework to navigate to pages as well as creating well-formatted URLs for reasons of SEO.<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"a5f53f5a\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"2eedce3d\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"6dbb882e\">\n\tTopics:<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"d22dfdca\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-lists\" data-id=\"32036ec9\">\n\t<ul\tclass=\"lists block-lists__lists\"\n\tdata-id=\"18ada2d3\"\n>\n\t<li>Understand the concept of routing<\/li><li>Tag helpers for navigation<\/li><li>Routing constrains<\/li><\/ul><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"e373a594\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"d79202f9\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"b848cdab\">\n\t<strong>Creating a Form<\/strong><br>Forms are the basic building block of the web to accept input from users. Accepting incoming data from the browser can be a tedious and error prone task. That\u2019s one of the reasons why ASP.NET Core comes with model binding. ASP.NET Core also comes with several controls to make it easy to validate the entered data, allowing for visualization of any entry errors made by the user. In this chapter, we will look at the model binding and its many capabilities, all while creating a form in the application.<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"fc06cd69\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"2a7a179f\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"8bd15e46\">\n\tTopics:<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"ce107ca9\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-lists\" data-id=\"7f074cd4\">\n\t<ul\tclass=\"lists block-lists__lists\"\n\tdata-id=\"c6893c91\"\n>\n\t<li>Creating a form<\/li><li>Using form tag helpers<\/li><li>Using validation<\/li><\/ul><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"8359791b\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"809ac8ef\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"1e7825b8\">\n\t<strong>An introduction to ASP.NET Identity<\/strong><br>ASP.NET Core comes with ASP.NET Identity, a built-in framework that allows authenticating users from different sources. In this module, we\u2019ll explore how we can authenticate users and how we can authorize them to perform actions within our site. We\u2019ll use ASP.NET Core Identity which has many features built-in to perform authentication and authorization tasks.<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"e3efe019\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"25c7dfe1\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"8f136f9a\">\n\tTopics: <\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"a91b568d\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-lists\" data-id=\"f0084fee\">\n\t<ul\tclass=\"lists block-lists__lists\"\n\tdata-id=\"37ea033a\"\n>\n\t<li>Using the scaffolding to create login and registration forms<\/li><li>Applying authorization to exclude pages from being accessed<\/li><\/ul><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"59e74b6b\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"1f3085fd\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"56257009\">\n\t<strong>Tackling security risks with ASP.NET Core<\/strong><br>ASP.NET sites will be under attack, that\u2019s for sure. We of course as the developers of the site need to make sure that we tackle risks before it\u2019s deployed. In this module, we\u2019ll see how we can tackle XSS, CSRF\u2026 as the most common security risks in our application.<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"2f46335b\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"f6ba63ba\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"6711f5a2\">\n\tTopics:<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"e9616434\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-lists\" data-id=\"0e36b711\">\n\t<ul\tclass=\"lists block-lists__lists\"\n\tdata-id=\"721bb197\"\n>\n\t<li>Protecting against XSS<\/li><li>Protecting against CSRF<\/li><\/ul><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n\n<div class=\"block-accordion-item js-block-accordion-item\" \n\taria-expanded=\"false\"\n>\n\t<button class=\"block-accordion-item__trigger js-block-accordion-item-trigger\" \n\t\taria-label=\"Day 3\" \n\t\taria-controls=\"72f781d9\" \n\t\taria-expanded=\"false\" \n\t\tid=\"0586bb31\"\n\t>\n\t\t<h2\tclass=\"heading block-accordion-item__title\"\n\tdata-id=\"81d439e3\"\n>\n\tDay 3<\/h2>\t\t\n\t\t<span class=\"block-accordion-item__wrap-icon\" aria-hidden=\"true\">\n\t\t\t<i class=\"icon block-accordion-item__icon\" data-id=\"eb24a523\"  aria-hidden=\"true\">\n\t<svg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http:\/\/www.w3.org\/2000\/svg'><path d='M13 5.5a1 1 0 1 0-2 0h2Zm-1.707 13.707a1 1 0 0 0 1.414 0l6.364-6.364a1 1 0 0 0-1.414-1.414L12 17.086l-5.657-5.657a1 1 0 0 0-1.414 1.414l6.364 6.364ZM11 5.5v13h2v-13h-2Z' fill='currentColor'\/><\/svg><\/i>\t\t<\/span>\n\t<\/button>\n\n\t<div role=\"region\" class=\"block-accordion-item__panel js-block-accordion-item-panel\" \n\t\taria-hidden=\"true\" \n\t\taria-labelledby=\"0586bb31\" \n\t\tid=\"72f781d9\"\n\t>\n\t\t<div class=\"block-accordion-item__content\">\n\t\t\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"f4df013f\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"6d68c4c7\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"836ccdd7\">\n\t<strong>Extending the views in ASP.NET Core<\/strong><br>We at this point have several pages in our application and basically, creating simple pages will always be the same. In this chapter, we will extend on the view part. ASP.NET Core comes with tag helpers, we\u2019ve already seen those. But we can create them ourselves and we\u2019ll see why that would be useful. Next to tag helpers, view components can also be used to wrap functionality and reuse it. Partial views, also covered in this chapter, will do the same but on a simpler level. Understanding what to choose when is an important task too and that will be explained here as well.<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"832edfc4\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"723bea71\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"d48cdd98\">\n\tTopics:<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"0ee8b2c1\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-lists\" data-id=\"46f72eca\">\n\t<ul\tclass=\"lists block-lists__lists\"\n\tdata-id=\"fb61a7dd\"\n>\n\t<li>Creating custom tag helpers<\/li><li>Creating and using view components<\/li><li>Using partial views<\/li><\/ul><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"fb6c1465\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"b2e2298f\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"775f3853\">\n\t<strong>Advanced concepts in ASP.NET Core<\/strong><br>In this chapter, we will cover in more detail several more advanced topics such as model binding (in more depth as it was already covered earlier), complex tag helpers, attribute routing, filters and background services. ASP.NET Core is very extensible and one of the often used extension points is custom middleware. All of these and more are covered in this chapter so that after completing this one, you are capable of creating a real-life ASP.NET Core application.<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"69f19b0d\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"2fa25eb5\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"902ee3cc\">\n\tTopics:<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"e01b8b6c\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-lists\" data-id=\"c73ced9f\">\n\t<ul\tclass=\"lists block-lists__lists\"\n\tdata-id=\"61923520\"\n>\n\t<li>Complex tag helpers<\/li><li>Custom middleware<\/li><li>Different options for routing<\/li><li>Creating background services<\/li><li>Using and creating filters<\/li><\/ul><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"a6899f36\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"53013959\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"fb766cd9\">\n\t<strong>Unit testing in ASP.NET Core<\/strong><br>Building enterprise applications with ASP.NET Core without a good set of tests is far from a recommended approach. Through the use of unit tests, we check that the functionality we intended to create is effectively delivered and works as expected and continues to do so, even after making changes. In this chapter, we will explore how you can write unit tests for an A ASP.NET Core MVC application using xUnit. We\u2019ll learn how we can test different building blocks, of course including the controllers.<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"0ed8c93c\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-lists\" data-id=\"c371e8de\">\n\t<ul\tclass=\"lists block-lists__lists\"\n\tdata-id=\"28659fbd\"\n>\n\t<li>Understanding the why and how of unit tests<\/li><li>Creating unit tests for the different building blocks of the application<\/li><\/ul><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"8829e943\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"c58cda8e\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"db6084c7\">\n\t<strong>Creating a REST API using ASP.NET Core<\/strong><br>ASP.NET Core MVC now has unified the API and regular controller model, making the creation of APIs even simpler. APIs power the world and creating them is pretty easy with ASP.NET Core, especially since the knowledge you have gained so far in this course carries forward to creating APIs In this module, we are therefore focusing on the aspects that are closely related to RESTful Web APIs, built with the controller-based API model.<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"57e87816\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-lists\" data-id=\"bf31ee17\">\n\t<ul\tclass=\"lists block-lists__lists\"\n\tdata-id=\"475922a4\"\n>\n\t<li>Understanding the principles of REST APIs<\/li><li>Creating an API with ASP.NET Core<\/li><li>Working with response and status codes<\/li><\/ul><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"7ee1ce23\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"187ea73a\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"853c8549\">\n\t<strong>Advanced concepts for creating APIs with ASP.NET Core<\/strong><br>Once you know the basics of how to create an API, we\u2019ll look at more advanced concepts such as using APIs (from clients), documenting APIs and authenticating with APIs. We\u2019ll also explore how to create a Minimal API, which were introduced in ASP.NET Core 6.<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"9275e471\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-lists\" data-id=\"eccb418d\">\n\t<ul\tclass=\"lists block-lists__lists\"\n\tdata-id=\"de1e8859\"\n>\n\t<li>Working with APIs from the client<\/li><li>Creating a Swagger endpoint<\/li><li>Documenting an API<\/li><\/ul><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n\n<div class=\"block-accordion-item js-block-accordion-item\" \n\taria-expanded=\"false\"\n>\n\t<button class=\"block-accordion-item__trigger js-block-accordion-item-trigger\" \n\t\taria-label=\"Day 4\" \n\t\taria-controls=\"db653311\" \n\t\taria-expanded=\"false\" \n\t\tid=\"0519da30\"\n\t>\n\t\t<h2\tclass=\"heading block-accordion-item__title\"\n\tdata-id=\"29dd706d\"\n>\n\tDay 4<\/h2>\t\t\n\t\t<span class=\"block-accordion-item__wrap-icon\" aria-hidden=\"true\">\n\t\t\t<i class=\"icon block-accordion-item__icon\" data-id=\"d496c830\"  aria-hidden=\"true\">\n\t<svg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http:\/\/www.w3.org\/2000\/svg'><path d='M13 5.5a1 1 0 1 0-2 0h2Zm-1.707 13.707a1 1 0 0 0 1.414 0l6.364-6.364a1 1 0 0 0-1.414-1.414L12 17.086l-5.657-5.657a1 1 0 0 0-1.414 1.414l6.364 6.364ZM11 5.5v13h2v-13h-2Z' fill='currentColor'\/><\/svg><\/i>\t\t<\/span>\n\t<\/button>\n\n\t<div role=\"region\" class=\"block-accordion-item__panel js-block-accordion-item-panel\" \n\t\taria-hidden=\"true\" \n\t\taria-labelledby=\"0519da30\" \n\t\tid=\"db653311\"\n\t>\n\t\t<div class=\"block-accordion-item__content\">\n\t\t\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"f1f21a42\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"1631abd2\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"30e7093d\">\n\t<strong>Understanding Blazor apps<\/strong><br>Blazor introduces a radical new way for .NET developers to build client-side applications and since .NET 8, also server-side rendered applications. In this module, we will understand the concepts behind this new technology. You\u2019ll understand the different hosting models which your Blazor code can run under and you\u2019ll see the different files that make up a new project. You\u2019ll create also your first Blazor component.<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"a4fec7af\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"7520f7d3\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"f039a620\">\n\tTopics:<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"8e7dbfd9\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-lists\" data-id=\"06f31feb\">\n\t<ul\tclass=\"lists block-lists__lists\"\n\tdata-id=\"c8b4d0c7\"\n>\n\t<li>Understanding the different Blazor hosting models<\/li><li>Exploring a new project in the different models<\/li><li>Creating a first Blazor component<\/li><li>Looking at Blazor Full-stack Web UI<\/li><\/ul><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"e1d681b7\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"2d2df155\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"3ff82f8d\">\n\t<strong>Building components with Blazor<\/strong><br>Blazor uses components to build the UI. Using APIs, we can connect these component with live data. And using the data binding features in Blazor, it\u2019s easy to create data-driven UIs. This module will show us how we can build these in detail. We\u2019ll also create a simple form, again driven by some of the built-in components in Blazor.<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"e2b21f2a\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"a9cf92de\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"f6473bdd\">\n\tTopics: <\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"6a2781db\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-lists\" data-id=\"c161044a\">\n\t<ul\tclass=\"lists block-lists__lists\"\n\tdata-id=\"a4e5ad2c\"\n>\n\t<li>Data binding in Blazor components<\/li><li>Accessing data behind a REST service<\/li><li>Creating a form using built-in Blazor components<\/li><li>Posting data to an endpoint from a Blazor application<\/li><\/ul><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"9cfabb91\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"4625f06b\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"905f61ae\">\n\t<strong>Diagnostics and Logging in ASP.NET Core apps<\/strong><br>Through middleware, ASP.NET Core applications can be configured to give diagnostic information to the users. Also, ASP.NET Core comes with a built-in logging system that we\u2019ll explore in this module as well. We\u2019ll also add some third-party logging providers here as well (Serilog).<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"ea09fd16\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-lists\" data-id=\"9a1a95f6\">\n\t<ul\tclass=\"lists block-lists__lists\"\n\tdata-id=\"ca9f87bd\"\n>\n\t<li>Adding diagnostics middleware to your application<\/li><li>Implementing logging in the application using built-in log providers<\/li><li>Adding Serilog as log provider<\/li><\/ul><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"200eec72\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"b883e644\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"dc8e289a\">\n\t<strong>Caching and performance in ASP.NET Core<\/strong><br>Performance is vital for ASP.NET Core applications. In this chapter, we will learn how we can make use of the different ways of adding caching to our site, including in-memory caching, distributed caching and response caching. This way, we have several points in the application\u2019s architecture where logging can be added to improve its performance.<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"45502a55\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-lists\" data-id=\"851322e3\">\n\t<ul\tclass=\"lists block-lists__lists\"\n\tdata-id=\"a3557bda\"\n>\n\t<li>Understanding the principles of caching<\/li><li>Adding in-memory caching<\/li><li>Using response caching<\/li><li>Implementing a distributed cache<\/li><\/ul><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n<\/div>\n\t\t<\/div>\n\t<\/div>\n\n<\/div>\n\n<\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper\" \n\tdata-id=\"aaabfdf1\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-heading\" data-id=\"67aeb233\">\n\t<h2\tclass=\"heading block-heading__heading\"\n\tdata-id=\"1ff4ddf9\"\n>\n\tWho is it for?<\/h2><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper\" \n\tdata-id=\"f189128c\" \n\tdata-bg-on-inner=\"true\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-group\" data-id=\"16fc6bb3\">\n\t<\/div>\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper\" \n\tdata-id=\"eabc8eb1\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-heading\" data-id=\"b0ad1520\">\n\t<h2\tclass=\"heading block-heading__heading\"\n\tdata-id=\"663fad21\"\n>\n\tWhy should I follow this training?<\/h2><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper\" \n\tdata-id=\"96724dbf\" \n\tdata-bg-on-inner=\"true\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-columns\" data-id=\"ebf68c56\">\n\t\n\n<div class=\"block-column\" data-id=\"37a86424\">\n\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"4ed46683\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-icon\">\n\t<i class=\"icon block-icon__icon\" data-id=\"b263f3bb\"  aria-hidden=\"true\">\n\t<svg xmlns='http:\/\/www.w3.org\/2000\/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'><path d='M10.97 4.97a.75.75 0 0 1 1.07 1.05l-3.99 4.99a.75.75 0 0 1-1.08.02L4.324 8.384a.75.75 0 1 1 1.06-1.06l2.094 2.093 3.473-4.425a.267.267 0 0 1 .02-.022z'\/><\/svg><\/i><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"6be26151\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-heading\" data-id=\"bf36d216\">\n\t<h2\tclass=\"heading block-heading__heading\"\n\tdata-id=\"90e94bde\"\n>\n\tLearn about ASP.NET Core<\/h2><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"c2e178b5\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"946a4ac3\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"2bf72aec\">\n\tCreate apps based on the popular framework of Microsoft<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n<\/div>\n\n\n\n<div class=\"block-column\" data-id=\"b81be769\">\n\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"486eb62a\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-icon\">\n\t<i class=\"icon block-icon__icon\" data-id=\"cdc96380\"  aria-hidden=\"true\">\n\t<svg xmlns='http:\/\/www.w3.org\/2000\/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'><path d='M10.97 4.97a.75.75 0 0 1 1.07 1.05l-3.99 4.99a.75.75 0 0 1-1.08.02L4.324 8.384a.75.75 0 1 1 1.06-1.06l2.094 2.093 3.473-4.425a.267.267 0 0 1 .02-.022z'\/><\/svg><\/i><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"8107084a\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-heading\" data-id=\"cdec1ea0\">\n\t<h2\tclass=\"heading block-heading__heading\"\n\tdata-id=\"1a800e7c\"\n>\n\tBuild a real-world web apps<\/h2><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"87024330\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"e92a9c4c\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"688a009d\">\n\tThis course will guide you in the end-to-end building of a real world application<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n<\/div>\n\n\n\n<div class=\"block-column\" data-id=\"f0824fbe\">\n\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"c51b31e3\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-icon\">\n\t<i class=\"icon block-icon__icon\" data-id=\"061b2971\"  aria-hidden=\"true\">\n\t<svg xmlns='http:\/\/www.w3.org\/2000\/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'><path d='M10.97 4.97a.75.75 0 0 1 1.07 1.05l-3.99 4.99a.75.75 0 0 1-1.08.02L4.324 8.384a.75.75 0 1 1 1.06-1.06l2.094 2.093 3.473-4.425a.267.267 0 0 1 .02-.022z'\/><\/svg><\/i><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"38b7caf8\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-heading\" data-id=\"66681c6d\">\n\t<h2\tclass=\"heading block-heading__heading\"\n\tdata-id=\"2465643c\"\n>\n\tGet the full picture<\/h2><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"9fd19d28\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"883965d2\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"e65fbdc4\">\n\tASP.NET Core is a full-stack framework. You\u2019ll see all the different frameworks that make up the entire stack<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n<\/div>\n\n<\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper\" \n\tdata-id=\"72cc5d21\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-image-carousel js-block-image-carousel\" data-id=\"58ffcdab\">\n\t\t<h2\tclass=\"heading block-image-carousel__heading\"\n\tdata-id=\"4c27bb51\"\n>\n\tWhat does it look like?<\/h2>\n\t\t<div class=\"block-image-carousel__navigation\">\n\t\t\t<button\tclass=\"btn block-image-carousel__btn js-block-image-carousel-prev\"\n\tdata-id=\"09ca1f90\">\n\t<i class=\"icon btn__icon\" data-id=\"1100be6f\"  aria-hidden=\"true\">\n\t<svg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http:\/\/www.w3.org\/2000\/svg'><path d='M18.5 13a1 1 0 1 0 0-2v2ZM4.793 11.293a1 1 0 0 0 0 1.414l6.364 6.364a1 1 0 0 0 1.414-1.414L6.914 12l5.657-5.657a1 1 0 0 0-1.414-1.414l-6.364 6.364ZM18.5 11h-13v2h13v-2Z' fill='currentColor'\/><\/svg><\/i>\n\t\n\t<\/button><button\tclass=\"btn block-image-carousel__btn js-block-image-carousel-next\"\n\tdata-id=\"5eed5327\">\n\t<i class=\"icon btn__icon\" data-id=\"07f3047f\"  aria-hidden=\"true\">\n\t<svg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http:\/\/www.w3.org\/2000\/svg'><path d='M5.5 11a1 1 0 1 0 0 2v-2Zm13.707 1.707a1 1 0 0 0 0-1.414l-6.364-6.364a1 1 0 1 0-1.414 1.414L17.086 12l-5.657 5.657a1 1 0 0 0 1.414 1.414l6.364-6.364ZM5.5 13h13v-2h-13v2Z' fill='currentColor'\/><\/svg><\/i>\n\t\n\t<\/button>\t\t<\/div>\n\n\t\t<div class=\"swiper block-image-carousel__container js-block-image-carousel-container\">\n\t\t\n\t\t\t<div class=\"swiper-wrapper\">\n\t\t\t\t\n<div class=\"js-block-image-carousel-item swiper-slide block-image-carousel__item\">\n\t\t\t<div class=\"js-block-image-carousel-item swiper-slide block-image-carousel__item-inner\">\n<div class=\"block-image\" data-id=\"03fb65e9\">\n\t<picture class=\"image block-image__image\" data-id=\"6aa6df27\">\n\n\t\n\t\n\t<img\n\t\tsrc=\"\/academy\/wp-content\/uploads\/sites\/4\/2024\/04\/Belgium-office-2-scaled.jpg\"\n\t\talt=\"\"\n\t\tclass=\"image__img block-image__image-img\"\n\t\/>\n<\/picture><\/div>\n<\/div>\n\t\t<\/div>\n\n<div class=\"js-block-image-carousel-item swiper-slide block-image-carousel__item\">\n\t\t\t<div class=\"js-block-image-carousel-item swiper-slide block-image-carousel__item-inner\">\n<div class=\"block-image\" data-id=\"8e7d788d\">\n\t<picture class=\"image block-image__image\" data-id=\"f546bdef\">\n\n\t\n\t\n\t<img\n\t\tsrc=\"\/academy\/wp-content\/uploads\/sites\/4\/2023\/10\/Header-OutSystems-6.jpg\"\n\t\talt=\"\"\n\t\tclass=\"image__img block-image__image-img\"\n\t\/>\n<\/picture><\/div>\n<\/div>\n\t\t<\/div>\n\n<div class=\"js-block-image-carousel-item swiper-slide block-image-carousel__item\">\n\t\t\t<div class=\"js-block-image-carousel-item swiper-slide block-image-carousel__item-inner\">\n<div class=\"block-image\" data-id=\"2425f800\">\n\t<picture class=\"image block-image__image\" data-id=\"e1b3ab35\">\n\n\t\n\t\n\t<img\n\t\tsrc=\"https:\/\/academy.xebia.com\/wp-content\/uploads\/sites\/4\/2023\/08\/20230328-191741-JTI-scaled.jpg\"\n\t\talt=\"\"\n\t\tclass=\"image__img block-image__image-img\"\n\t\/>\n<\/picture><\/div>\n<\/div>\n\t\t<\/div>\n\n<div class=\"js-block-image-carousel-item swiper-slide block-image-carousel__item\">\n\t\t\t<div class=\"js-block-image-carousel-item swiper-slide block-image-carousel__item-inner\">\n<div class=\"block-image\" data-id=\"3166b040\">\n\t<picture class=\"image block-image__image\" data-id=\"0decc15b\">\n\n\t\n\t\n\t<img\n\t\tsrc=\"https:\/\/academy.xebia.com\/wp-content\/uploads\/sites\/4\/2023\/09\/Xebia-Stock-Amsterdam-100_2560.jpg\"\n\t\talt=\"\"\n\t\tclass=\"image__img block-image__image-img\"\n\t\/>\n<\/picture><\/div>\n<\/div>\n\t\t<\/div>\n\n<div class=\"js-block-image-carousel-item swiper-slide block-image-carousel__item\">\n\t\t\t<div class=\"js-block-image-carousel-item swiper-slide block-image-carousel__item-inner\">\n<div class=\"block-image\" data-id=\"53b02452\">\n\t<picture class=\"image block-image__image\" data-id=\"b7caa0a6\">\n\n\t\n\t\n\t<img\n\t\tsrc=\"\/academy\/wp-content\/uploads\/sites\/4\/2023\/09\/Xebia-Lead-7-scaled.jpg\"\n\t\talt=\"\"\n\t\tclass=\"image__img block-image__image-img\"\n\t\/>\n<\/picture><\/div>\n<\/div>\n\t\t<\/div>\n\n<div class=\"js-block-image-carousel-item swiper-slide block-image-carousel__item\">\n\t\t\t<div class=\"js-block-image-carousel-item swiper-slide block-image-carousel__item-inner\">\n<div class=\"block-image\" data-id=\"6b96bdf5\">\n\t<picture class=\"image block-image__image\" data-id=\"819d51e4\">\n\n\t\n\t\n\t<img\n\t\tsrc=\"\/academy\/wp-content\/uploads\/sites\/4\/2023\/09\/Xebia-Hilversum-office-scaled.jpg\"\n\t\talt=\"\"\n\t\tclass=\"image__img block-image__image-img\"\n\t\/>\n<\/picture><\/div>\n<\/div>\n\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\n\t<div class=\"block-image-carousel__pagination js-block-image-carousel-pagination swiper-pagination\"><\/div>\n<\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper\" \n\tdata-id=\"bdd1a075\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-heading\" data-id=\"102c3d04\">\n\t<h2\tclass=\"heading block-heading__heading\"\n\tdata-id=\"c7d7c460\"\n>\n\tWhat else <br>should I know?<\/h2><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper\" \n\tdata-id=\"e2fb27c6\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-columns\" data-id=\"1f57682d\">\n\t\n\n<div class=\"block-column\" data-id=\"e9c29ec7\">\n\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"7f5aeb76\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"c84c3b02\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"bd28f7bb\">\n\tAfter registration for this training, you will receive a confirmation email with practical information. A week before the training, we will ask you about any dietary wishes.<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"d3e605cc\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"972ad4b6\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"d54e720d\">\n\tSee you soon!<br><br><\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n<\/div>\n\n\n\n<div class=\"block-column\" data-id=\"f405bb57\">\n\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"586a27a5\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-bullet-list\">\n\t\t\t<p class=\"paragraph block-bullet-list__paragraph\" data-id=\"e9962288\">\n\tCourse information<\/p>\t<div class=\"block-bullet-list__columns\">\n\t\t\n\n<div class=\"block-bullet-item js-block-bullet-item\" data-id=\"09534d4c\">\n\t<i class=\"icon block-bullet-item__icon\" data-id=\"ab20ac77\"  aria-hidden=\"true\">\n\t<svg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http:\/\/www.w3.org\/2000\/svg'><path d='M11.25 11.25C11.4489 11.25 11.6397 11.329 11.7803 11.4697C11.921 11.6103 12 11.8011 12 12V15.75C12 15.9489 12.079 16.1397 12.2197 16.2803C12.3603 16.421 12.5511 16.5 12.75 16.5' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'\/><path d='M11.625 9C12.2463 9 12.75 8.49632 12.75 7.875C12.75 7.25368 12.2463 6.75 11.625 6.75C11.0037 6.75 10.5 7.25368 10.5 7.875C10.5 8.49632 11.0037 9 11.625 9Z' fill='currentColor'\/><\/svg><\/i><p class=\"paragraph block-bullet-item__paragraph\" data-id=\"476acefc\">\n\tTraining will consist of a healthy mix of theory, examples, and exercises<\/p><\/div>\n\n\n\n<div class=\"block-bullet-item js-block-bullet-item\" data-id=\"ded332e9\">\n\t<i class=\"icon block-bullet-item__icon\" data-id=\"3c5b8ec5\"  aria-hidden=\"true\">\n\t<svg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http:\/\/www.w3.org\/2000\/svg'><path d='M11.25 11.25C11.4489 11.25 11.6397 11.329 11.7803 11.4697C11.921 11.6103 12 11.8011 12 12V15.75C12 15.9489 12.079 16.1397 12.2197 16.2803C12.3603 16.421 12.5511 16.5 12.75 16.5' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'\/><path d='M11.625 9C12.2463 9 12.75 8.49632 12.75 7.875C12.75 7.25368 12.2463 6.75 11.625 6.75C11.0037 6.75 10.5 7.25368 10.5 7.875C10.5 8.49632 11.0037 9 11.625 9Z' fill='currentColor'\/><\/svg><\/i><p class=\"paragraph block-bullet-item__paragraph\" data-id=\"f2d1cbd2\">\n\tLunch is included<\/p><\/div>\n\n\n\n<div class=\"block-bullet-item js-block-bullet-item\" data-id=\"32fca33b\">\n\t<i class=\"icon block-bullet-item__icon\" data-id=\"65e4e403\"  aria-hidden=\"true\">\n\t<svg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http:\/\/www.w3.org\/2000\/svg'><path d='M11.25 11.25C11.4489 11.25 11.6397 11.329 11.7803 11.4697C11.921 11.6103 12 11.8011 12 12V15.75C12 15.9489 12.079 16.1397 12.2197 16.2803C12.3603 16.421 12.5511 16.5 12.75 16.5' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'\/><path d='M11.625 9C12.2463 9 12.75 8.49632 12.75 7.875C12.75 7.25368 12.2463 6.75 11.625 6.75C11.0037 6.75 10.5 7.25368 10.5 7.875C10.5 8.49632 11.0037 9 11.625 9Z' fill='currentColor'\/><\/svg><\/i><p class=\"paragraph block-bullet-item__paragraph\" data-id=\"a5c55ef4\">\n\tLearn from author who created the popular Pluralsight course on ASP.NET Core<\/p><\/div>\n\n\n\n<div class=\"block-bullet-item js-block-bullet-item\" data-id=\"e77125ea\">\n\t<i class=\"icon block-bullet-item__icon\" data-id=\"465a6791\"  aria-hidden=\"true\">\n\t<svg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http:\/\/www.w3.org\/2000\/svg'><path d='M11.25 11.25C11.4489 11.25 11.6397 11.329 11.7803 11.4697C11.921 11.6103 12 11.8011 12 12V15.75C12 15.9489 12.079 16.1397 12.2197 16.2803C12.3603 16.421 12.5511 16.5 12.75 16.5' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'\/><path d='M11.625 9C12.2463 9 12.75 8.49632 12.75 7.875C12.75 7.25368 12.2463 6.75 11.625 6.75C11.0037 6.75 10.5 7.25368 10.5 7.875C10.5 8.49632 11.0037 9 11.625 9Z' fill='currentColor'\/><\/svg><\/i><p class=\"paragraph block-bullet-item__paragraph\" data-id=\"ffb5c132\">\n\tTravel and accommodation expenses are not included<\/p><\/div>\n\n\n\n<div class=\"block-bullet-item js-block-bullet-item\" data-id=\"9b391320\">\n\t<i class=\"icon block-bullet-item__icon\" data-id=\"3ad16ce2\"  aria-hidden=\"true\">\n\t<svg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http:\/\/www.w3.org\/2000\/svg'><path d='M11.25 11.25C11.4489 11.25 11.6397 11.329 11.7803 11.4697C11.921 11.6103 12 11.8011 12 12V15.75C12 15.9489 12.079 16.1397 12.2197 16.2803C12.3603 16.421 12.5511 16.5 12.75 16.5' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'\/><path d='M11.625 9C12.2463 9 12.75 8.49632 12.75 7.875C12.75 7.25368 12.2463 6.75 11.625 6.75C11.0037 6.75 10.5 7.25368 10.5 7.875C10.5 8.49632 11.0037 9 11.625 9Z' fill='currentColor'\/><\/svg><\/i><p class=\"paragraph block-bullet-item__paragraph\" data-id=\"1bf604f5\">\n\tNo previous knowledge on ASP.NET Core required!<\/p><\/div>\n\n\t<\/div>\n<\/div>\n\t\t<\/div>\n\t<\/div>\n\n<\/div>\n\n<\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper\" \n\tdata-id=\"20a91143\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div\n\tdata-id=\"9d073c9b\"\n\tclass=\"block-course-list js-block-course-list js-block-course-list-9d073c9b\"\n\t>\n\t<h2\tclass=\"heading block-course-list__heading\"\n\tdata-id=\"c2714598\"\n>\n\tAlso interesting for you<\/h2><a class=\"btn block-course-list__btn\" title=\"View all training courses\" data-id=\"499359fd\" href=\"https:\/\/academy.xebia.com\/us\/training\/\">\n\t\n\t\t\t<span>View all training courses<\/span>\n\t\n\t<\/a>\n\t<div class=\"block-course-list__slider-wrapper\">\n\t\t<div class=\"block-course-list__slider\">\n\t\t\t<div\n\t\t\t\tclass=\"block-course-list__swiper js-block-course-list-swiper swiper\"\n\t\t\t\tdata-allow-keyboard-controls=\"1\"\n\t\t\t>\n\t\t\t\t<div class=\"swiper-wrapper block-course-list__swiper-wrapper\">\n\t\t\t\t\t<div class=\"course-list-item swiper-slide js-tippy-container-isolated\" data-id=\"54fa421e\">\n\t<a class=\"btn course-list-item__btn course-list-item__heading-link\" title=\"Building Modern Web Applications with ASP.NET Core 8 (BE)\" data-id=\"7b37c70b\" href=\"https:\/\/academy.xebia.com\/us\/training\/building-modern-web-applications-with-asp-net-core-8-be\/\">\n\t\n\t\t\t<span>Building Modern Web Applications with ASP.NET Core 8 (BE)<\/span>\n\t\n\t<\/a>\t\t\n\t<div class=\"course-list-item__details-row\">\n\t\t\t\t\t<div class=\"course-list-item__date\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<a class=\"btn course-list-item__btn\" title=\"View training\" data-id=\"0464f64c\" href=\"https:\/\/academy.xebia.com\/us\/training\/building-modern-web-applications-with-asp-net-core-8-be\/\">\n\t\n\t\t\t<span>View training<\/span>\n\t\n\t<\/a>\t<\/div>\n\n<\/div><div class=\"course-list-item swiper-slide js-tippy-container-isolated\" data-id=\"627e9ecc\">\n\t<a class=\"btn course-list-item__btn course-list-item__heading-link\" title=\"Building Modern Web Applications with ASP.NET Core 8 (BE)\" data-id=\"6544441c\" href=\"https:\/\/academy.xebia.com\/us\/training\/building-modern-web-applications-with-asp-net-core-8-be\/\">\n\t\n\t\t\t<span>Building Modern Web Applications with ASP.NET Core 8 (BE)<\/span>\n\t\n\t<\/a>\t\t\n\t<div class=\"course-list-item__details-row\">\n\t\t\t\t\t<div class=\"course-list-item__date\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<a class=\"btn course-list-item__btn\" title=\"View training\" data-id=\"8d4a9718\" href=\"https:\/\/academy.xebia.com\/us\/training\/building-modern-web-applications-with-asp-net-core-8-be\/\">\n\t\n\t\t\t<span>View training<\/span>\n\t\n\t<\/a>\t<\/div>\n\n<\/div><div class=\"course-list-item swiper-slide js-tippy-container-isolated\" data-id=\"9e5d9a96\">\n\t<a class=\"btn course-list-item__btn course-list-item__heading-link\" title=\"Building Modern Web Applications with ASP.NET Core 8 (BE)\" data-id=\"f9672df2\" href=\"https:\/\/academy.xebia.com\/us\/training\/building-modern-web-applications-with-asp-net-core-8-be\/\">\n\t\n\t\t\t<span>Building Modern Web Applications with ASP.NET Core 8 (BE)<\/span>\n\t\n\t<\/a>\t\t\n\t<div class=\"course-list-item__details-row\">\n\t\t\t\t\t<div class=\"course-list-item__date\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<a class=\"btn course-list-item__btn\" title=\"View training\" data-id=\"7413964e\" href=\"https:\/\/academy.xebia.com\/us\/training\/building-modern-web-applications-with-asp-net-core-8-be\/\">\n\t\n\t\t\t<span>View training<\/span>\n\t\n\t<\/a>\t<\/div>\n\n<\/div><div class=\"course-list-item swiper-slide js-tippy-container-isolated\" data-id=\"907a2de4\">\n\t<a class=\"btn course-list-item__btn course-list-item__heading-link\" title=\"Building Modern Web Applications with ASP.NET Core 8 (BE)\" data-id=\"bd4496b1\" href=\"https:\/\/academy.xebia.com\/us\/training\/building-modern-web-applications-with-asp-net-core-8-be\/\">\n\t\n\t\t\t<span>Building Modern Web Applications with ASP.NET Core 8 (BE)<\/span>\n\t\n\t<\/a>\t\t\n\t<div class=\"course-list-item__details-row\">\n\t\t\t\t\t<div class=\"course-list-item__date\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<a class=\"btn course-list-item__btn\" title=\"View training\" data-id=\"dc66f258\" href=\"https:\/\/academy.xebia.com\/us\/training\/building-modern-web-applications-with-asp-net-core-8-be\/\">\n\t\n\t\t\t<span>View training<\/span>\n\t\n\t<\/a>\t<\/div>\n\n<\/div><div class=\"course-list-item swiper-slide js-tippy-container-isolated\" data-id=\"f9b9e936\">\n\t<a class=\"btn course-list-item__btn course-list-item__heading-link\" title=\"Building Modern Web Applications with ASP.NET Core 8 (BE)\" data-id=\"3dda1d21\" href=\"https:\/\/academy.xebia.com\/us\/training\/building-modern-web-applications-with-asp-net-core-8-be\/\">\n\t\n\t\t\t<span>Building Modern Web Applications with ASP.NET Core 8 (BE)<\/span>\n\t\n\t<\/a>\t\t\n\t<div class=\"course-list-item__details-row\">\n\t\t\t\t\t<div class=\"course-list-item__date\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<a class=\"btn course-list-item__btn\" title=\"View training\" data-id=\"c7dc2d57\" href=\"https:\/\/academy.xebia.com\/us\/training\/building-modern-web-applications-with-asp-net-core-8-be\/\">\n\t\n\t\t\t<span>View training<\/span>\n\t\n\t<\/a>\t<\/div>\n\n<\/div><div class=\"course-list-item swiper-slide js-tippy-container-isolated\" data-id=\"b57cde55\">\n\t<h2\tclass=\"heading course-list-item__heading\"\n\tdata-id=\"854d717e\"\n>\n\tCan\u2019t find the course you\u2019re looking for? There\u2019s more!<\/h2>\t\t\n\t<div class=\"course-list-item__details-row\">\n\t\t\t\t\t<div class=\"course-list-item__date\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<a class=\"btn course-list-item__btn\" title=\"View all courses\" data-id=\"20526afa\" href=\"https:\/\/academy.xebia.com\/us\/training\/\">\n\t\n\t\t\t<span>View all courses<\/span>\n\t\n\t<\/a>\t<\/div>\n\n<\/div>\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\n\t<div class=\"block-course-list__controls swiper-pagination\"><\/div>\n<\/div>\n\t\t<\/div>\n\t<\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":105,"featured_media":0,"template":"","tags":[],"class_list":["post-54008","course","type-course","status-publish","hentry"],"acf":{"field_BrokersfeedIntroduction":"","field_BrokersfeedDescription":"","field_BrokersfeedFormat":"","field_BrokersfeedSubjects":"","field_BrokersfeedTakeaways":"","field_BrokersfeedTargetAudience":"","field_BrokersfeedPrerequisites":"","field_BrokersfeedCertificationValue":"","field_BrokersfeedNextSteps":"","field_BrokersfeedBanner":"","course_xebia_event_ids":"","course_xebia_event_group_id":"","course_xebia_discipline":"","course_xebia_sorting_order":5},"raw_content":null,"_links":{"self":[{"href":"https:\/\/academy.xebia.com\/us\/wp-json\/wp\/v2\/courses\/54008","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/academy.xebia.com\/us\/wp-json\/wp\/v2\/courses"}],"about":[{"href":"https:\/\/academy.xebia.com\/us\/wp-json\/wp\/v2\/types\/course"}],"author":[{"embeddable":true,"href":"https:\/\/academy.xebia.com\/us\/wp-json\/wp\/v2\/users\/105"}],"version-history":[{"count":4,"href":"https:\/\/academy.xebia.com\/us\/wp-json\/wp\/v2\/courses\/54008\/revisions"}],"predecessor-version":[{"id":56705,"href":"https:\/\/academy.xebia.com\/us\/wp-json\/wp\/v2\/courses\/54008\/revisions\/56705"}],"wp:attachment":[{"href":"https:\/\/academy.xebia.com\/us\/wp-json\/wp\/v2\/media?parent=54008"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/academy.xebia.com\/us\/wp-json\/wp\/v2\/tags?post=54008"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}