
Discover enduring software development principles from object oriented design to clean architecture, and learn how to build with ASP.NET Core MVC and Ajax, without chasing every new tool.
This course demonstrates building a clean, ergonomic user interface with ASP.NET Core MVC and Ajax, prioritizing minimal client-side code, jQuery usage, and maintainable, responsive pages.
Explore the model–view–controller pattern in ASP.NET Core MVC, detailing the model, view, and controller roles and how Ajax delivers the final browser page.
Discover how ajax enables asynchronous JavaScript and Xml calls to load and save data without reloading the whole page, with operations running in the background.
Discover how ASP.NET Core differs from earlier versions with a complete redesign, lightweight cross‑platform design, and evolving project structure up to version 3.1.1, with ajax integration and new package management.
Choose tools for the project, notably visual studio 2019 community edition, with notes on 2017 differences, and use jquery, jquery ui, jquery data tables, and ajax unobtrusive for dynamic pages.
Explore how Ajax with asp.net mvc core enables lightweight, extensible web apps, compare mvc with angular or react, and learn to extend it with JavaScript libraries for business applications.
Build a simple book catalogue app with ASP.NET Core MVC and Ajax, implementing CRUD operations for books and related entities (like authors) to demonstrate asynchronous Ajax workflows.
Explore an out of the box net core mvc solution by building a simple crud app with entity framework, a database, and Visual Studio 2019 on Windows.
Explore the new ASP.NET Core MVC structure, including the wwwroot folder with static assets, bootstrap and jquery, appsettings.json, startup.cs, and the role of dependency injection, versus razor pages.
Explore MVC and Razor Pages, showing how pages combine model and controller in one class beside the view, with structurally different yet functionally identical outcomes and MVC preference.
Explore the starting point of a very simple .NET MVC app, review the home index and shared layout, then delete and recreate a basic home controller with placeholder CRUD actions.
Create view models tailored for the view, not entities, and pass them from the controller; use server-side formatting with C# and maintain separate view, list item, and edit models.
Create a light book list item model for display and dedicated book view and edit models, with author and genre collections for dropdowns and year published and checked out handling.
Create basic views for a book list using placeholder data in the controller. Scaffold the index view and wire list, details, and edit templates to demonstrate a simple UI.
Use local mock entities and a mark repository to format and display books in a page app with asp net core mvc and ajax, using hard coded data for listing.
Create a basic NBC project reflecting the NBC application's structure, using mock data for the initial view and noting in-memory databases for development, with a real database planned next.
Examine whether a data access layer and repository are necessary in ASP.NET Core apps, balancing abstractions, identity framework and entity framework usage, and project structure for simple versus complex applications.
Explore a repository as a loosely coupled data access MVC layer that retrieves and saves domain objects from a database, favoring a specific repository over a generic one.
Create a separate data access layer project to talk to the database, and use a shared connector to break circular dependencies with the web layer via dependency injection.
Add Entity Framework Core to the project and design Book, Author, and Genre classes with navigation properties. Configure DbContext and a local SQL Server connection, then enable migrations.
A repository class uses the db context to fetch and save records, returning instantiated objects while staying agnostic to data sources, and the speaker critiques generic repositories.
Implement basic CRUD operations using Entity Framework Core in an ASP.NET Core MVC app, building a book repository with interfaces and view models to manage books.
Configure startup to inject the book repository via dependency injection, wire the controller to the repository, and display a razor-based book list using interface-based view models.
Edit the book flow in a single-page ASP.NET Core MVC app by wiring add and save methods and populating author and genre dropdowns with select list items.
Define web page labels by replacing default property-name headers with custom column names using data annotations, for read-only views or edit models via a simple repository.
Finish the repository for a single page asp net core mvc app with ajax. Implement add, edit, and delete for books via http post, using view models and repository methods.
Examine a flawed yet functional asp.net core mvc book entry flow, showing form validation and dropdown pitfalls, and how ajax can improve refresh behavior in a single page app.
Learn how to add ajax to an ASP NET Core MVC application to update authors and genres without leaving the edited book view, refreshing drop-downs with updated lists.
Install and configure ajax libraries for an ASP.NET Core MVC project using npm to add jQuery, unobtrusive ajax, and DataTables, and expose node_modules via static file configuration.
Create a new books spa controller and its index view, wire it into the site menu, and verify the spa entry point renders the default index page.
Using DataTables in an ASP.NET Core MVC app, create a books list with search, pagination, and column sorting. Prepare for AJAX-based data loading in future steps.
Refactor index to expose a get book list JSON endpoint and configure data tables to fetch data via ajax, using camel case JSON from a repository and guard the controller.
Add clickable links to a data table using the render method with an Ajax data source, then test with a JavaScript function that shows a message box.
Introduce JavaScript and jQuery in a single page app, define a books namespace with a self-executing closure, exposing a view model via an object literal for future jQuery UI.
Discover how to import jQuery UI, use its widgets, and integrate the library into an ASP.NET Core MVC app via the dotnet client-side library manager and layout references.
View a book via AJAX in a single-page ASP.NET Core MVC app by loading a partial view into a modal jQuery UI dialog with a title reflecting the book idea.
Learn to edit a book with ajax calls in a single page web app, using partial views, ajax forms, and dialog boxes to update the book list without page refresh.
Add and delete book operations are implemented via ajax in a single-page asp.net core mvc app, using a repository, return flags, and dynamic list refresh without reloading the page.
Learn how to build reusable mvc partial views as ajax-enabled components, with nested partials for author and genre dropdowns, and maintain selection state during edits.
Utilize ajax to enhance a single page app by adding new authors and genres through dialog-based forms, partial views, and dynamic dropdown updates via controller methods and repositories.
Explore how Ajax with ASP.NET Core MVC creates a single-page web app feel, enabling updates like adding an author or genre without leaving the main window.
Review the final chapter on Ajax in a single-page app, covering custom return types and result handling, and discuss maintainability choices to keep growing projects organized.
Use an option type to replace null returns in repository methods, always delivering a collection or a single item, with guard clauses and status codes for robust error handling.
Design better user communication by using Ajax callbacks, handle success and error gracefully, and render meaningful status codes and partial views from the controller in a single-page app.
Leverage AutoMapper and dependency injection in ASP.NET Core MVC with Ajax to streamline model-to-model transfers and reduce boilerplate.
Build a single page web app with asp net core mvc and ajax, using controller-driven partial views for asynchronous updates and error partials in clean architecture with C sharp language.
In one sentence, this course is about creating User Interface for C# developers (not designers) by a developer. My goal is not to teach you how to create an eye-catching fancy web site, but rather how to develop a very functional, flexible and intuitive user interface for business applications using the tools you are used to - primarily C# with a minimum amount of jQuery and JavaScript.
The course begins with a very short overview of ASP.NET MVC structure, a difference between .NET standard and .NET Core, and a difference between two types of .NET Web applications: MVC and Razor Pages.
After we discuss some pros and cons of out-of-the-box MVC project, we will spend two chapters creating a very simple database application using CRUD (Create Read Update Delete) operations with Entity Framework Core and SQL Server database. The purpose of the first project is to demonstrate how easy it is to work with ASP NET MVC. However, even creating an extremely simple application, we will face a real life obstacle which cannot be overcome with ASP NET alone.
The solution can be easily introduced by adding asynchronous operations to our project. We will talk about AJAX and spend the whole chapter creating SPA - Single Page Application, which will perform all operations of the first project plus additional functionality we were unable to implement before. All that will be done without leaving the main page.
In the final section we will talk about several techniques to make the whole application cleaner and more maintainable.
The course was done using Visual Studio Community Edition 2019 in .NET Core 3.1. However, we will discuss some difference between versions 2019 and 2017, so it can be done on VS 2017 using ASP NET Core 2.2
By the end of the course, you will learn how to use asynchronous partial web page updates without leaving or reloading the main page. Following the same simple pattern, you will be able to create very flexible easy to maintain user interface for your web based business applications that will behave, look and feel similar to desktop applications.
Even though this is a beginner level course, I believe that intermediate developers may find a couple of interesting thoughts about overall solution architecture, defensive programming and clean code.