0% found this document useful (0 votes)
297 views37 pages

ASP - Net MVC Overview

The document discusses ASP.NET MVC, including an overview of the MVC pattern, how ASP.NET MVC compares to ASP.NET Web Forms, and advantages of ASP.NET MVC such as testability and clean URLs. It also covers creating an ASP.NET MVC project in Visual Studio, using NuGet for package management, and the server profiling tool Glimpse.

Uploaded by

Kamran khan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
297 views37 pages

ASP - Net MVC Overview

The document discusses ASP.NET MVC, including an overview of the MVC pattern, how ASP.NET MVC compares to ASP.NET Web Forms, and advantages of ASP.NET MVC such as testability and clean URLs. It also covers creating an ASP.NET MVC project in Visual Studio, using NuGet for package management, and the server profiling tool Glimpse.

Uploaded by

Kamran khan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 37

ASP.

NET MVC

Telerik Academy
http://academy.telerik.com
Table of Contents

• The MVC Pattern


• Model, View, Controller
• The MVC Pattern for Web and Examples
• ASP.NET MVC
• Comparison with ASP.NET
• ASP.NET MVC Advantages
• Creating ASP.NET MVC Project
• NuGet Package Management
• Server Information with Glimpse

2
The MVC Pattern
The MVC Pattern

• Model–view–controller (MVC) is a software architecture


pattern
• Originally formulated in the late 1970s by Trygve
Reenskaug as part of the Smalltalk
• Code reusability and separation of concerns
• Originally developed for
desktop, then adapted
for internet applications

4
Model

• Set of classes that describes the data we are working with as well as the
business
• Rules for how the data can be
changed and manipulated
• May contain data validation rules
• Often encapsulate data stored in a database as well as code used to
manipulate the data
• Most likely a Data Access Layer of some kind
• Apart from giving the data objects, it doesn't have significance in the
framework

5
View

• Defines how the application’s user interface (UI) will


be displayed
• May support master views (layouts) and sub-views
(partial views or controls)
• Web: Template to dynamically generate HTML

6
Controller

• The core MVC component


• Process the requests with the help of views and models
• A set of classes that handles
• Communication from the user
• Overall application flow
• Application-specific logic
• Every controller has one or more "Actions"

7
MVC Steps

• Incoming request routed to Controller


• For web: HTTP request
• Controller processes request and creates presentation Model
• Controller also selects appropriate result (view)
• Model is passed to View
• View transforms Model into appropriate output format (HTML)
• Response is rendered (HTTP Response)

8
The MVC Pattern for Web

9
MVC Frameworks

• CakePHP (PHP)
• CodeIgniter (PHP)
• Spring (Java)
• Perl: Catalyst, Dancer
• Python: Django, Flask, Grok
• Ruby: Ruby on Rails, Camping, Nitro, Sinatra
• JavaScript: AngularJS, JavaScriptMVC, Spine
• NodeJS: Express
• ASP.NET MVC (.NET Framework)

10
ASP.NET MVC
ASP.NET Core

Presentation

ASP.NET
Caching .NET Globalization

Pages Controls Master Pages Runtime


Profile Roles Membership

Routes Handlers Etc...

12
ASP.NET Web Forms

• Stable and mature, supported by heaps of third party


controls and tools
• Event driven web development
• Postbacks
• Viewstate
• Less control over the HTML
• Hard to test
• Rapid development

13
ASP.NET MVC

• Runs on top of ASP.NET


• Not a replacement for WebForms
• Leverage the benefits of ASP.NET
• Embrace the web
• User/SEO friendly URLs, HTML 5, SPA
• Adopt REST concepts
• Uses MVC pattern
• Conventions and Guidance
• Separation of concerns

14
ASP.NET MVC

• Tight control over markup


• Testable
• Loosely coupled and extensible
• Convention over configuration
• Razor view engine
• One of the greatest view engines
• With intellisense, integrated in Visual Studio
• Reuse of current skills (C#, EF, LINQ, JS, etc.)
• Application-based (not scripts like PHP)

15
Separation of Concerns

• Each component has one responsibility


• SRP – Single Responsibility Principle
• DRY – Don’t Repeat Yourself
• More easily testable
• TDD – Test-driven development
• Helps with concurrent development
• Performing tasks concurrently
• One developer works on views
• Another works on controllers

16
Extensible

• Replace any component of the system


• Interface-based architecture
• Almost anything can be replaced or extended
• Model binders (request data to CLR objects)
• Action/result filters (e.g. OnActionExecuting)
• Custom action result types
• View engine (Razor, WebForms, NHaml, Spark)
• View helpers (HTML, AJAX, URL, etc.)
• Custom data providers (ADO.NET), etc.

17
Clean URLs

• REST-like
• /products/update
• /blog/posts/2013/01/28/mvc-is-cool
• Friendlier to humans
• /product.aspx?catId=123 or post.php?id=123
• Becomes /products/chocolate/
• Friendlier to web crawlers
• Search engine optimization (SEO)

18
Community-based

• ASP.NET MVC, Web API, and Web Pages source code


is available in CodePlex
• http://aspnetwebstack.codeplex.com/
• You can vote for new features in ASP.NET UserVoice
site
• http://aspnet.uservoice.com/forums/41199-general-asp-net
• vNext is on GitHub
• https://github.com/aspnet

19
MVC Pattern in ASP.NET MVC

20
Creating ASP.NET MVC Project
The Tools

• Tools that we need:


• IDE: Visual Studio 2013 (2012 is also OK)
• Framework: .NET Framework 4.5
• Web server: IIS 8.5 (Express)
• Data: Microsoft SQL Sever (Express or LocalDB)
• Visual Studio installer will install everything we need
• http://www.microsoft.com/visualstudio/eng/2013-downloads

22
The Technologies

• Technologies that ASP.NET MVC uses


• C# (OOP, unit testing, async, etc.)
• ASP.NET
• HTML(5) and CSS
• JavaScript (jQuery, KendoUI, AngularJS, etc.)
• AJAX, Single-page apps
• Databases (MS SQL)
• ORM (Entity Framework and LINQ)
• Web and HTTP

23
Visual Studio 2012: New Project

24
VS 2012: Default Layout

25
Visual Studio 2013: New Project

26
VS 2013: Default Layout

27
Internet App Project Files
Static files (CSS, Images, etc.)

All controllers and actions

JavaScript files (jQuery, Modernizr, knockout, etc.)

View templates

_Layout.cshtml – master page (main template)

Application_Start() – The entry point of the application

Web.config – Configuration file


28
Demo: Internet application
NuGet Package Management
NuGet package management

• Free, open source package management


• Makes it easy to install and update open source libraries and
tools
• Part of Visual Studio 2012/2013
• Configurable package sources
• Simple as adding a reference
• GUI-based package installer
• Package manager console

31
Demo: NuGet
Server Information with Glimpse
Server Info with Glimpse

• Glimpse shows execution timings, server


configuration, request data and more
• Showed inside browser (like FireBug)
• With no changes to the application code
• Supports ASP.NET MVC, WebForms and EF

34
Install Glimpse

1. Install NuGet packages:


• Glimpse.Mvc5
• Glimpse.EF6
2. Run the project
3. Configure it:
• http://localhost:port/Glimpse.axd

35
Demo: Glimpse
Summary

• HTTP is a client-server protocol for transferring web


resources via Internet
• Model–view–controller (MVC) is a software architecture
pattern
• ASP.NET MVC is a great platform for developing Internet
applications
• Visual Studio is the main development tool for creating
ASP.NET MVC applications
• Almost everything in ASP.NET MVC is a package
• Glimpse is a tool that helps with debugging

37

You might also like