The single-page app you will build in this course is a shopping list application that uses every CRUD operation with HTTP requests, calling a RESTful web service - using ASP.NET Web API 2 - which saves your data persistently in a SQL Server database.
Make yourself ready to learn some jQuery, HTML and CSS for the front end. And for the back end you will use Microsoft's ASP.NET Web API 2 for the RESTful web service and Entity Framework with Code First Migrations to communicate with the database.
On top of that you will learn how to publish your single-page app to Internet Information Services (IIS) so that everyone can access your new single-page application.
Patrick, the author of this course, has built several web applications professionally as freelancer and employee and over the years he learned many things that you just don’t have to do to succeed in building a single-page application. This course will save you time, because you will learn the crucial and most important parts quick, so that you can get your single-page app out there in no time!
Sound’s good? Let’s get started!
What kind of single-page application will be built?
During this course you will learn how to build a complete single-page application by building a simple shopping list web application - an app that comes in quite handy for almost everybody. In this web application the user will start by creating a new shopping list. After that she will be able to add items to her list, check them off and delete them. If the user wants to access a certain shopping list, she can do so by adding the id of the list in the URL - which will be delivered by your web app, of course. That way the user is able to create the list at her computer and open it afterwards with her smartphone when she is actually in the grocery store.
What technology is used for the front end?
There are so many frameworks out there that you simply don't need or are just too big to start learning how to build single-page applications. In this course you will learn the basics that you will also need to know when you want to understand how frameworks like Angular work. Because when you start with Angular for example, you might get results sooner or later, but maybe you won't know what actually happens under the hood.
In this hands-on course you will learn and understand the essence of single-page applications by using the following technologies:
- HTML - You will build the application like any other website with plain old HTML.
- CSS - To change the appearance of the application you will use a little cascading style sheets.
- Ajax - With the help of jQuery and Ajax you will make the actual calls to the web service which returns data from the database.
What technology is used for the back end?
The back end or server side will be implemented with .NET technologies. You will need a RESTful web service you will call from the front end, a framework that maps your C# models or classes to database tables and of course a database. The following technologies will be used for that matter:
- ASP.NET Web API 2 - It's the state-of-the-art framework that helps you build HTTP services easily. With Web API 2 you will build a RESTful web service that enables the front end (or any other client you want to reach in the future) to make all CRUD (create, read, update, delete) operations by using GET, POST, PUT and DELETE HTTP requests.
- Entity Framework - An object-relational mapping (ORM) framework that allows you to map your C# models with actual database tables. This part is crucial to save your data persistently.
- SQL Server - At first the database you will use in this course is a file that will be generated by Visual Studio. But later on, especially when you want to publish your app to IIS and make it available to the world, you will use a SQL Server database.
So far for the server-side. Don't worry, every technology is available for free!
What tools do I need?
The entire course uses the Microsoft stack to develop the single-page application - apart from the browser, which is Google Chrome. The following tools will be used and are totally free:
- Visual Studio 2017 Community Edition - Most of the time you will develop the application in Visual Studio. It might help if you already know this IDE. Older versions of Visual Studio also work.
- SQL Server Express Edition - This will be your database. The Express Edition is available for free and absolutely suits your needs.
- SQL Server Management Studio - This application is perfect to manage your database. Don't worry, you will learn how to use it step by step in this course.
- Google Chrome - As mentioned above, during this course Google Chrome and its developer tools will be used to access the web application. But any other browser with developer tools available will also do the trick. This means you can also use Firefox, of course. Even Internet Explorer would work... but honestly, it's not recommended.
- Internet Information Services (IIS) - Not really a tool for developing the application but for publishing it. If you have no access to IIS you can still follow the steps of publishing and use the results later on with a Microsoft Hyper-V Server for free! Everything is taught in the lectures.
Why should I pay for this course although there are so many free tutorials available?
A good question! Indeed there are lots and lots of tutorials available online that might get you the information you are looking for. The advantage of this course is that you will get this one big package out-of-the-box. You will see every single step from start to finish on how to build your single-page application. Starting from the front end, then building the perfectly fitting solution for the back end and even publishing it on a server. You can't miss anything, because you're able to watch the whole development process. And if something is still unclear, you can always ask a question in the forums. And if you are still not happy you can get your money back - no questions asked.
- Introduction (0:40)
- Create a new web application project (2:59)
- First some HTML & CSS (3:51)
- Some more HTML & CSS (7:01)
- Create a new shopping list (10:20)
- DOM inspection (1:24)
- Add items to the list (11:27)
- Checking and deleting items (7:52)
- Load a list on startup by ID (7:27)
- Improving usability (5:17)
- Summary (0:58)
- Introduction (1:11)
- Model-View-Controller pattern (1:54)
- Adding the models (3:50)
- Controllers & CRUD (3:30)
- HTTP GET - Receiving a single shopping list (4:15)
- HTTP GET - The AJAX call (3:45)
- JSON serialization (5:33)
- Error handling & testing (5:54)
- HTTP POST - Create a new shopping list (2:47)
- HTTP POST - The client part (3:28)
- Networking & routing (3:44)
- Add item controller (1:37)
- Add items to a list - another POST request (3:07)
- Add items to a list - The client part (3:16)
- HTTP PUT - Check items off (5:49)
- HTTP PUT - The client part (1) (4:05)
- HTTP PUT - The client part (2) (3:43)
- HTTP DELETE - Remove items from a list (2:30)
- HTTP DELETE - The client part (2:08)
- Summary (1:25)
- Web Service Quiz
- Introduction (2:17)
- Preparations & a new controller (4:33)
- Code first migration (8:29)
- HTTP GET - Receive a shopping list from the database (3:37)
- HTTP POST - Create a shopping list (5:20)
- Manipulating the browser history (12:09)
- HTTP POST - Add items to a list (4:02)
- HTTP PUT - Check items off (3:23)
- HTTP DELETE - Remove items from a list (2:52)
- Summary (1:04)
Hi, I'm Patrick.
Writing code is what drives me. Creating software out of nothing is a skill I truly am passionate about and I want to share this astonishing feeling of making stuff with you.
I started to learn several programming languages as a teenager and always wanted to create software ever since I first played a game on a Commodore 64. During my bachelor and master studies, I joined various companies, made desktop and web applications as well as video games professionally and was always anxious to improve my craft, which I have been doing for more than 15 years now.
For me, the most important part of writing and teaching code is to have fun. If certain ways work for you and the results are maintainable and you have fun with your results, you're doing it the right way. I don't care if you always use your keyboard or switch to the mouse from time to time, so-called best practices are not always best or practical, I want to teach you to develop software in a way it works in the industry, a way it works for you and in a way that makes you happy.