Learning ASP.NET Core MVC Programming
5/5
()
About this ebook
No knowledge of the ASP.NET platform or the .NET platform is required. Even though you do not need to have experience in C#, an understanding of the basic constructs (loops, conditionals, classes, and objects) of any modern programming language would be helpful.
Related to Learning ASP.NET Core MVC Programming
Related ebooks
.NET Design Patterns Rating: 3 out of 5 stars3/5Functional C# Rating: 5 out of 5 stars5/5Bootstrap for ASP.NET MVC - Second Edition Rating: 5 out of 5 stars5/5Code like a Pro in C# Rating: 0 out of 5 stars0 ratingsBlazor in Action Rating: 0 out of 5 stars0 ratingsBuilding a Web App with Blazor and ASP .Net Core: Create a Single Page App with Blazor Server and Entity Framework Core Rating: 0 out of 5 stars0 ratingsASP.NET Core 3 and React: Hands-On full stack web development using ASP.NET Core, React, and TypeScript 3 Rating: 0 out of 5 stars0 ratingsASP.NET For Beginners: The Simple Guide to Learning ASP.NET Web Programming Fast! Rating: 0 out of 5 stars0 ratingsMastering Windows Presentation Foundation Rating: 4 out of 5 stars4/5Learning Angular for .NET Developers Rating: 0 out of 5 stars0 ratingsASP.NET Web API Security Essentials Rating: 0 out of 5 stars0 ratingsASP.NET Core for Jobseekers: Build Career in Designing Cross-Platform Web Applications Using Razor and Entity Framework Core Rating: 0 out of 5 stars0 ratingsNode.js Design Patterns - Second Edition Rating: 4 out of 5 stars4/5JavaScript for .NET Developers Rating: 0 out of 5 stars0 ratingsJavaScript Unlocked Rating: 5 out of 5 stars5/5Deploying Node.js Rating: 5 out of 5 stars5/5Learning .NET High-performance Programming Rating: 0 out of 5 stars0 ratingsNode.js Web Development - Third Edition Rating: 2 out of 5 stars2/5Node.js By Example Rating: 2 out of 5 stars2/5C# Programming Cookbook Rating: 0 out of 5 stars0 ratingsReact.js Essentials Rating: 4 out of 5 stars4/5Learning PHP 7 Rating: 4 out of 5 stars4/5Mongoose for Application Development Rating: 5 out of 5 stars5/5Modern JavaScript Applications Rating: 0 out of 5 stars0 ratingsLearning Microsoft Azure Rating: 4 out of 5 stars4/5Learn ASP.NET Core MVC - Be Ready Next Week Using Visual Studio 2017 Rating: 5 out of 5 stars5/5Mastering Symfony Rating: 0 out of 5 stars0 ratingsC# 7 and .NET Core: Modern Cross-Platform Development - Second Edition Rating: 5 out of 5 stars5/5
Programming For You
Java for Beginners: A Crash Course to Learn Java Programming in 1 Week Rating: 5 out of 5 stars5/5Game Development with Unreal Engine 5: Learn the Basics of Game Development in Unreal Engine 5 (English Edition) Rating: 0 out of 5 stars0 ratingsExcel : The Ultimate Comprehensive Step-By-Step Guide to the Basics of Excel Programming: 1 Rating: 5 out of 5 stars5/5Coding All-in-One For Dummies Rating: 4 out of 5 stars4/5SQL QuickStart Guide: The Simplified Beginner's Guide to Managing, Analyzing, and Manipulating Data With SQL Rating: 4 out of 5 stars4/5HTML & CSS: Learn the Fundaments in 7 Days Rating: 4 out of 5 stars4/5C# Programming from Zero to Proficiency (Beginner): C# from Zero to Proficiency, #2 Rating: 0 out of 5 stars0 ratingsPython Programming : How to Code Python Fast In Just 24 Hours With 7 Simple Steps Rating: 4 out of 5 stars4/5Python: For Beginners A Crash Course Guide To Learn Python in 1 Week Rating: 4 out of 5 stars4/5Grokking Algorithms: An illustrated guide for programmers and other curious people Rating: 4 out of 5 stars4/5Learn to Code. Get a Job. The Ultimate Guide to Learning and Getting Hired as a Developer. Rating: 5 out of 5 stars5/5Learn JavaScript in 24 Hours Rating: 3 out of 5 stars3/5Python QuickStart Guide: The Simplified Beginner's Guide to Python Programming Using Hands-On Projects and Real-World Applications Rating: 0 out of 5 stars0 ratingsPYTHON: Practical Python Programming For Beginners & Experts With Hands-on Project Rating: 5 out of 5 stars5/5Python Machine Learning By Example Rating: 4 out of 5 stars4/5Problem Solving in C and Python: Programming Exercises and Solutions, Part 1 Rating: 5 out of 5 stars5/5Python Data Structures and Algorithms Rating: 5 out of 5 stars5/5Linux: Learn in 24 Hours Rating: 5 out of 5 stars5/5The Unofficial Guide to Open Broadcaster Software: OBS: The World's Most Popular Free Live-Streaming Application Rating: 0 out of 5 stars0 ratingsPython GUI Programming Cookbook - Second Edition Rating: 5 out of 5 stars5/5Learn SQL in 24 Hours Rating: 5 out of 5 stars5/5
Reviews for Learning ASP.NET Core MVC Programming
4 ratings1 review
- Rating: 5 out of 5 stars5/5The book is easy to understand and great for biginners.
Book preview
Learning ASP.NET Core MVC Programming - Mugilan T. S. Ragupathi
Table of Contents
Learning ASP.NET Core MVC Programming
Credits
About the Author
About the Reviewers
www.PacktPub.com
Why subscribe?
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Downloading the color images of this book
Errata
Piracy
Questions
1. Introduction to ASP.NET Core
How web applications work
So what is an HTTP protocol?
Request-response pattern
Stateless nature of HTTP
Client-side and server-side
HTTP methods
GET method
POST method
What is ASP.NET?
ASP.NET Web Forms
ASP.NET Web Pages
ASP.NET MVC
Features of ASP.NET MVC
Convention over configuration
Separation of concerns
Control over the generated HTML
Better support for unit testing
ASP.NET 5
Features of ASP.NET 5
Summary
2. Setting Up the Environment
Purpose of IDE
Visual Studio offerings
System requirements
Visual Studio Community 2015
Visual Studio Professional
Visual Studio Enterprise
Visual Studio Test Professional
Installing Visual Studio Community
Installing ASP.NET 5
Project structure in ASP.NET 5 application
File-based project
Support for full .NET and .NET core
The Project.json package
Controllers
Models
Views
Migrations
The wwwroot folder
Other files
Summary
3. Controllers
Role of the Controller in ASP.NET MVC applications
Introduction to routing
Creating ASP.NET 5 application
Installing the ASP.NET Core NuGet package in your application
Our first Controller
IActionResult
Adding Views
Adding Models
Passing data from Controller to View
Filters
Authorization filters
Resource filters
Action filters
Exception filters
Result filters
Summary
4. Views
The View engine and the Razor View engine
Razor View engine
Programming in Razor View engine
Variables in Razor View
The for loop
The while loop
The foreach loop
The if condition
Layout
Creating _ViewStart.cshtml
Creating _Layout.cshtml
Adding a page-specific View
Generating HTML
HTML Helpers
Partial View
Calling the Partial View
View components
Creating a View component
Tag Helpers
Creating custom Tag Helpers
Summary
5. Models
Models
Models specific to a View component
Note on ViewModels
Data flow with respect to a Model
Model binding
The Entity Framework
The Entity Framework is independent of ASP.NET MVC
Creating console applications with the Entity Framework
Installing the Entity Framework 7 NuGet package
Using the NuGet Package Manager
Using the Package Manager Console
Installing Entity Framework commands
Creating Model classes
Creating the DbContext class
Create a migration
How the SaveChanges method works
Updating the record
Deleting the record
Using the Entity Framework in ASP.NET MVC applications
Database migration
Summary
6. Validation
Client-side and server-side validation
Server-side validation
Updating View models with the Data Annotation attribute
Updating the View model to display the validation error message
Updating the controller action method to verify the model state
Client-side validation
Implementation
Summary
7. Routing
Convention-based routing
Example 1
Example 2
Example 3
Example 4
Attribute-based routing
Route attribute at the controller level
Passing routing values in HTTP action verbs in the Controller
Route Constraints
Summary
8. Beautifying ASP.NET MVC Applications with Bootstrap
Knowing HTML and CSS
Bootstrap
Bootstrap Grid system
Forms
Inline forms
Horizontal forms
Table CSS classes
Striped tables
Hover tables
Bordered tables
Contextual classes in table
Buttons
Button sizes
Contextual colors
Using Bootstrap in your ASP.NET MVC application
Installing with Bower
HTML doctype
Summary
9. Deployment of ASP.NET Core Application
The project.json file
The dependencies node
The frameworks node
Microsoft Azure
Signing up to Microsoft Azure
Prerequisites to Azure deployment
Deploying the ASP.NET Core application in Azure
Deploying the ASP.NET Core web application in the Linux environment
Creating a Linux machine
Installing the PuTTY client
Installing of .NET Core in a Linux machine
Creating a new ASP.NET 5 project
Configuring the Nginx server
Summary
10. Building HTTP-based Web Services Using ASP.NET Web API
HTTP basics
HTTP verbs
GET method
PUT method
POST method
DELETE method
Fiddler tool
Dependency Injection
Delete method
The Web API method for deleting a resource
Web Repository layer code for deleting the employee data
Summary
11. Improving Performance of an ASP.NET Core Application
The UI layer
Reducing the number of HTTP requests
Using GZip compression
Using the Content Delivery Network (CDN)
Using JavaScript wherever possible
Using CSS stylesheets
Minification of JavaScript and CSS files and their combination
The caching process
Client-side caching
Response caching
The web/application layer
No business logic in Views
Using asynchronous logging
The DB layer
Understanding the queries generated by the ORM
Using classic ADO.NET if you really want to
Return only the required data
Fine tuning the indices
Using the correct column type and size for your database columns
Avoiding correlated subqueries
Generic performance improvement tips
Avoiding the Response.Redirect method
Using string builder
Summary
12. ASP.NET Core Identity
Authentication
Authorization
Adding the relevant dependencies to the project.json file
Adding ApplicationUser and ApplicationDbContext classes
Configuring the application to use Identity
Creating ViewModels
Creating Controllers and associated action methods
Creating Views
E-mail and SMS services
Securing an action method in a Controller
Summary
Learning ASP.NET Core MVC Programming
Learning ASP.NET Core MVC Programming
Copyright © 2016 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
First published: November 2016
Production reference: 1101116
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham
B3 2PB, UK.
ISBN 978-1-78646-383-8
www.packtpub.com
Credits
About the Author
Mugilan T. S. Ragupathi has been working on building web-based applications using Microsoft technology for more than a decade. He has been active in the ASP.NET community and has been running a successful blog, www.dotnetodyssey.com to help his fellow .NET developers.
His free beginners' course for ASP.NET MVC 5 (http://www.dotnetodyssey.com/asp-net-mvc-5-free-course/) was well received and is referred to as a concrete reference for beginners. He can be seen at csharp subreddit / Stack Overflow. He has written free micro eBooks, The 7 Most Popular Recipes of jQuery with ASP.NET Web Forms and Value & Reference types in C# (http://www.dotnetodyssey.com/free-ebooks/).
His book has received a good response and you can see the proof from one of his readers at https://twitter.com/jeffadamez. He is also an active contributor in Quora to the ASP.NET community (https://www.quora.com/profile/Mugil-Ragu). He likes to help readers with queries regarding ASP.NET.
About the Reviewers
Anuraj Parameswaran is a technical architect with Suyati Technologies (http://suyati.com/), Kochi. He has more than 12 years of extensive experience of working on different technologies, mostly in Microsoft space. He has been working on the .NET platform since its early days. He is a Microsoft Most Valuable Professional (MVP) in Visual Studio and Development Technologies. His focus areas are data analytics, architecture, and cloud computing. He is a K-MUG Community council member and an active volunteer in the Microsoft Technology Community. You can find his blog at http://dotnetthoughts.net.
Anuraj is also a reviewer of books and videos, namely, ASP.NET Web API Security Essentials, Learning ASP.NET Web API, and so on by Packt.
Mustafa Erhan Ersoy is a software team leader who is constantly evaluating new technologies and techniques in software development. He has been developing software professionally for 12 years and working mostly on ASP.NET web applications. He is very familiar with all aspects of transaction banking applications, BPM, and business workflows. He also blogs about web technologies, answers questions at stackoverflow.com, and participates in talks about ASP.NET and web technologies.
Anand Ranjan Pandey is currently working as a senior software developer for Dell. He is passionate about all aspects of software development, primarily and exclusively in the Microsoft .NET framework. He defines himself as an innovative technologist and visionary software developer with a passion for creating successful software products. He has comprehensive expertise in planning, managing, and achieving strategic business goals. Deep foundation in user-centered design, information architecture, and interactive new media.
He is an expert at building and leading cross-disciplinary technical teams and developing highly scalable and sustainable systems. He is successful at delivering technically challenging projects including enterprise e-commerce systems, secure exam portals, numerous software applications (web and shrink-wrap), content management systems, QA systems, networked publishing systems, and large-scale interactive multimedia learning exhibits.
www.PacktPub.com
For support files and downloads related to your book, please visit www.PacktPub.com.
Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at service@packtpub.com for more details.
At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters and receive exclusive discounts and offers on Packt books and eBooks.
https://www.packtpub.com/mapt
Get the most in-demand software skills with Mapt. Mapt gives you full access to all Packt books and video courses, as well as industry-leading tools to help you plan your personal development and advance your career.
Why subscribe?
Fully searchable across every book published by Packt
Copy and paste, print, and bookmark content
On demand and accessible via a web browser
Preface
The book aims to help you learn the fundamentals of ASP.NET Core MVC and apply that knowledge to building applications using ASP.NET Core. This book also aims to serve as a solid guide for beginners who want to learn ASP.NET MVC. In detail, the following topics are going to be covered in the book:
Fundamentals and objectives of ASP.NET Core MVC
Philosophies (separation of concerns, convention over configuration) of ASP.NET Core
Components of ASP.NET Core MVC—Controllers, Models, and Views
Interacting with the database using Entity Framework
Validating the user’s input, both at the client-side and the server-side
Provide a face-lift to the application using Bootstrap
Making use of different deployment options provided by ASP.NET Core MVC
What this book covers
Chapter 1, Introduction to ASP.NET Core, covers the fundamentals of ASP.NET MVC and how it fits in the ASP.NET ecosystem. This chapter explains the basics of web development, including client-side components and server-side components and what a programmer can do and can’t do in either layer
Chapter 2, Setting up the Environment, shows the reader how to set up the development environment, including the installation of Visual Studio and ASP.NET Core. Hardware and software requirements for setting up the development environment is also discussed and the anatomy of ASP.NET MVC applications is presented.
Chapter 3, Controllers, explains about what constitutes a Controller and action method along with its roles and responsibilities. In this chapter, a simple Controller along with an action method will be created. It will explain to the readers what an action method and a Controller does from the perspective of an overall ASP.NET MVC application.
Chapter 4, Views, presents what the Razor View engine does and explains the various basic programming constructs (conditionals, loops, and so on) with the examples using Razor view engine.
Chapter 5, Models, presents the role of Models in ASP.NET Core application. The concept of ViewModel is discussed along with how it provides flexibility and data compartmentalization to your applications.
Chapter 6, Validation, explains client-side and server-side validation with JavaScript and by using the jQuery libraries.
Chapter 7, Routing, explains about the routing module, which selects the appropriate controller from the received request with an example. Various options and features of routing are presented. This chapter will also guide you through building a custom route for ASP.NET MVC application based on business logic or for SEO purposes.
Chapter 8, Beautifying ASP.NET Application with Bootstrap, teaches how to use Bootstrap, a responsive frontend framework, to prettify your applications. You will be guided through the creation of HTML form controls.
Chapter 9, Deployment of ASP.NET Core Application, explains how the project.json library handles all of the dependencies of ASP.NET Core applications, along with the versions. It also explains how the K runtime (the latest option in ASP.NET Core application) so that an ASP.NET MVC application could be deployed in a non-Windows environment as well.
Chapter 10, Building Web Services Using Web API, explains HTTP-based services and how to implement them using the Web API. It will also introduce you to the Fiddler, and to compose an HTTP request using it.
Chapter 11, Improving Performance of an ASP.NET Core Application, explains the approaches to analyzing of performance and measures for improvement in various layers of your application.
Chapter 12, ASP.NET Core Identity, explains the security aspects of your application and implementing security identity of an application using Entity Framework.
What you need for this book
To start programming the ASP.NET MVC applications, you will need Visual Studio Community 2015 IDE. This is a fully featured IDE available for building desktops and web applications. You will also need various packages and frameworks, such as NuGet, Bootstrap, and project.json, the installation and configuration of which will be explained in the book.
Who this book is for
This book is for developers who want to learn how to build web applications using ASP.NET Core, developers who want to make a career building web applications using Microsoft technology, and developers who are working in Ruby on Rails or other web frameworks and want to learn how to use ASP.NET Core MVC.
No knowledge of the ASP.NET platform or the .NET platform is required. Even though you do not need to have experience with C#, an understanding of the basic constructs (loops, conditionals, classes, and objects) of any modern programming language would be helpful.
Conventions
In this book, you will find a number of text styles that distinguish between different kinds of information. Here are some examples of these styles and an explanation of their meaning.
Code words in text, database table names, folder names, filenames, file extensions, path names, dummy URLs, user input, and Twitter handles are shown as follows: We need to add the Kestrel HTTP Server package as a dependency in the project.json framework
A block of code is set as follows:
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel()
}
Any command-line input or output is written as follows:
vi project.json
New terms and important words are shown in bold. Words that you see on the screen, for example, in menus or dialog boxes, appear in the text like this: The shortcuts in this book are based on the Mac OS X 10.5+ scheme.
Note
Warnings or important notes appear in a box like this.
Tip
Tips and tricks appear like this.
Reader feedback
Feedback from our readers is always welcome. Let us know what you think about this book-what you liked or disliked. Reader feedback is important for us as it helps us develop titles that you will really get the most out of. To send us general feedback, simply e-mail feedback@packtpub.com, and mention the book's title in the subject