A Very Simple Application
In this lesson, we will use a simple application to put the basics of using controllers into practice.
We'll cover the following...
In this lesson, we will modify the customer-list example we saw in previous lessons to turn it into a complete toy-application. More specifically, we will give the user the ability to edit and add new customers.
The application is a toy because it is very simple and we will not store customers in an actual database, but we use a simple class that simulates a customers database table. Our database class implements the singleton pattern and contains the instance of the table-simulation class in an Instance
property. Moreover, we add a principal key Id
property to give a unique identity to each customer. The Id
property will contain a string created by converting a Guid
to a string. This way, we ensure that the Id
is unique without using difficult-to-manage auto-increment counters.
The Guid
strings are not just a trick for the easy implementation of a database simulation but are used in popular distributed databases such as MongoDB and Cosmos DB to avoid the burden of centralized counting.
We also added a Salary
decimal
field in order to show how non-integer numerical fields are dealt with.
The application structure
The HomeController
contains an Index
method that returns all customers and the [HttpGet]
and [HttpHost]
versions of both an Edit
method and an Add
method. The Edit
method modifies existing users while Add
adds new customers.
The user enters the Edit
page by clicking a link in a new column we added to the HTML table that lists all users:
The a
tag refers to our newly added Edit
method. We used nameof
to avoid writing the name of the method as a constant string, which would be an error-prone practice. Moreover, method names written as constant strings cannot be retrieved by engineering tools during code maintenance (tools like ...