12. Conclusion
This document has presented the construction of a MVC web application using the [NestJS] framework: an application whose HTML pages are generated by the server, without a browser-side [JavaScript] framework. It followed the progression of the “Introduction to ASP.NET MVC” course through examples: controllers and routing to views, forms, internationalization, security, and data access, followed by a complete case study.
There are numerous parallels between the two frameworks:
ASP.NET MVC (2013) | NestJS (2026) |
controller, action ([ActionResult]) | controller [@Controller], action [@Get], [@Post] |
action template, [[Required]], [[Range]]... | Class DTO, decorators of [class-validator] |
[ModelState.IsValid] | [validate()] and form redispatch |
views [Razor] ([.cshtml]), [_Layout.cshtml] | views [Handlebars] ([.hbs]), [layout.hbs] |
partial views, helpers HTML | Partials [{{> name}}], helpers [hbs.registerHelper] |
[TempData] | Flash message in a cookie |
session | cookies (token JWT, language): stateless server |
action filters, [[Authorize]] | middleware, guards ([@UseGuards], [@Roles]), interceptors |
resource files ([.resx]) | dictionaries JSON, helper [t] |
[Entity Framework] | [TypeORM] |
The case study shows that a classic HTML application, without the essential [JavaScript], remains a simple and robust solution: each page is a URL, the browser’s “Back” button works, and the server controls everything. The minimal use of [JavaScript] (the confirmation window) enhances the user experience without being necessary for the application to function.
To learn more, you can consult the [NestJS] documentation (docs.nestjs.com), and compare this application to its two sister applications, which use the same [NestJS] server in version JSON with a [Angular] or [Flutter] client.