Basic technical requirements:
Your solution should consist of three layers:
1. Presentation layer – web application (ASP.NET web forms, MVC etc. – your choice). No database connection here, use calls to business layer (web service) instead.
2. Business layer – web service (ASP.NET web services, WCF, WebAPI etc. – once again, the choice is yours). Covers connection to the database layer.
3. Database layer – data should be stored in relational database engine (Microsoft SQL Server Express is preferred here), although other persistent storage, such as file, is allowed as well.
Presentation layer and business layer should not be in the same Visual Studio project – create two separate projects, one for web application and one for web service.
All the functionality should be implemented in C# programming language, using .NET framework. Avoid using using third-party components (OR mappers or visual components for example).
Database should store the licenses in this structure:
1. Date of creation
2. Customer name
3. Customer email
4. License key (10 chars long string)
Populate the license catalogue with at least 50 records to allow paging (see below). Include DDL and data population scripts in your solution.
Access to the application should be protected by using username/password authentication. Store the user passwords in a secure way.
After succesful login, user will be presented with an interface, which allows to search the licenses stored in database, using these parameters:
1. Customer email address
2. License key
Results of the search will be presented as paged list with 10 records on page
User can consequently view and edit the records shown (single-page approach, modal windows, whatever suits you)
Your solution will be evaluated in various aspects, particularly:
Purity of the code – readability and consistency, using best practices
Please send your solution to: firstname.lastname@example.org