MVC 6 Introduction

ASP.NET MVC -
6
http://Sharma-
NareshIT.blogspot.com
DESIGN PATTERNS /
ARCHITECTURAL PATTERNS
Becoming a Chess Master
„ First learn rules and physical requirements
– e.g., names of pieces, legal movements, chess board
geometry and orientation, etc. „
Then learn principles
– e.g., relative value of certain pieces, strategic value of
center squares, power of a threat, etc. „
However, to become a master of chess, one
must study the games of other masters
– These games contain patterns that must be
understood, memorized, and applied repeatedly „There
are hundreds of these patterns
Becoming a Software Designer
Master
First learn the rules –
e.g., the algorithms, data structures and
languages of software „
Then learn the principles –
e.g., structured programming, modular
programming, object oriented programming,
generic programming, etc. „
However, to truly master software
design, one must study the designs of
other masters –
These designs contain patterns must be
understood, memorized, and applied repeatedly „
Design Patterns
Design patterns are solutions to software
design problems you find again and again in
real-world application development. Patterns
are about reusable designs and interactions of
objects..
The 23 Gang of Four (GoF) patterns are
generally considered the foundation for all other
patterns. They are categorized in three groups:
 Creational,
 Structural, and
 Behavioral
Creational Patterns
Abstract
Factory
Creates an instance of several families of classes
Builder Separates object construction from its representation
Factory
Method
Creates an instance of several derived classes
Prototype A fully initialized instance to be copied or cloned
Singleton A class of which only a single instance can exist
Structural Patterns
Adapter Match interfaces of different classes
Bridge Separates an object’s interface from its implementation
Composite A tree structure of simple and composite objects
Decorator Add responsibilities to objects dynamically
Facade A single class that represents an entire subsystem
Flyweight A fine-grained instance used for efficient sharing
Proxy An object representing another object
Behavioral Patterns
Chain of
Resp.
A way of passing a request between a chain of objects
Command Encapsulate a command request as an object
Interpreter A way to include language elements in a program
Iterator Sequentially access the elements of a collection
Mediator Defines simplified communication between classes
Memento Capture and restore an object's internal state
Observer A way of notifying change to a number of classes
State Alter an object's behavior when its state changes
Strategy Encapsulates an algorithm inside a class
Template
Method
Defer the exact steps of an algorithm to a subclass
Visitor Defines a new operation to a class without change
The Model-View-Controller (MVC) architectural pattern separates an
application into three main components: the model, the view, and the
controller.
The ASP.NET MVC framework provides an alternative to the ASP.NET Web
Forms pattern for creating Web applications.
The MVC Pattern
13
 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
Father of MVC
http://heim.ifi.uio.no/~trygver/2007/MVC_Originals.pdf
Model
16
 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
View
17
 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
 Controlled by View Engines
Controller
18
 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"
MVC Steps
19
 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)
20
The MVC Pattern for Web
21
MVC Pattern in ASP.NET MVC
ASP.NET MVC Request
22
Request Flow
Request View Controller Model
HTTP
Select
ViewHTML
Routing
Select Controller
Stage Details
Receive first request for
the application
In the Global.asax file, Route objects are added to
the RouteTable object.
Perform routing The UrlRoutingModule module uses the first
matching Route object in theRouteTable collection to
create the RouteData object, which it then uses to create
aRequestContext (IHttpContext) object.
Create MVC request
handler
The MvcRouteHandler object creates an instance of
the MvcHandler class and passes it
the RequestContext instance.
Create controller The MvcHandler object uses
the RequestContext instance to identify
theIControllerFactory object (typically an instance of
the DefaultControllerFactoryclass) to create the
controller instance with.
Execute controller The MvcHandler instance calls the controller
s Execute method.
Invoke action Most controllers inherit from the Controller base class.
For controllers that do so,
theControllerActionInvoker object that is associated
with the controller determines which action method of the
controller class to call, and then calls that method.
Execute result A typical action method might receive user input, prepare
the appropriate response data, and then execute the
result by returning a result type. The built-in result types
that can be executed include the
following: ViewResult (which renders a view and is the
most-often used result
type), RedirectToRouteResult, RedirectResult,Content
MVC 6 Introduction
MVC Frameworks
26
 CakePHP (PHP)
 CodeIgniter (PHP)
 Spring (Java)
 Perl: Catalyst, Dancer
 Python: Django, Flask, Grok
 Ruby: Ruby on Rails, Camping, Nitro, Sinatra
 JavaScript: AngularJS, JavaScriptMVC, Spine
 ASP.NET MVC (.NET Framework)
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
ASP.NET MVC
28
 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
ASP.NET MVC (2)
29
 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#, LINQ, HTML, etc.)
 Application-based (not scripts like PHP)
Separation of Concerns
30
 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
Extensible
31
 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.
Clean URLs
32
 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)
ASP.NET Web Forms ASP.NET MVC
Asp.Net Web Form follow a traditional event
driven development model.
Asp.Net MVC is a lightweight and follow MVC
(Model, View, Controller) pattern based
development model.
Asp.Net Web Form has server controls. Asp.Net MVC has html helpers.
Asp.Net Web Form supports view state for
state management at client side.
Asp.Net MVC does not support view state.
Asp.Net Web Form has file-based URLs means
file name exist in the URLs must have its
physically existence.
Asp.Net MVC has route-based URLs means
URLs are divided into controllers and actions
and moreover it is based on controller not on
physical file.
Asp.Net Web Form follows Web Forms Syntax
Asp.Net MVC follow customizable syntax
(Razor as default)
In Asp.Net Web Form, Web Forms(ASPX) i.e.
views are tightly coupled to Code
behind(ASPX.CS) i.e. logic.
In Asp.Net MVC, Views and logic are kept
separately.
Asp.Net Web Form has Master Pages for
consistent look and feels.
Asp.Net MVC has Layouts for consistent look
and feels.
Asp.Net Web Form has User Controls for code
re-usability.
Asp.Net MVC has Partial Views for code re-
usability.
Asp.Net Web Form has built-in data controls
and best for rapid development with powerful
data access.
Asp.Net MVC is lightweight, provide full control
over markup and support many features that
allow fast & agile development. Hence it is best
for developing interactive web application with
latest web standards.
Asp.Net Web Form is not Open Source. Asp.Net Web MVC is an Open Source.
The ASP.NET MVC History
34
Date Version
10 December 2007 ASP.NET MVC
13 March 2009 ASP.NET MVC 1.0
16 December 2009 ASP.NET MVC 2 RC
4 February 2010 ASP.NET MVC 2 RC 2
10 March 2010 ASP.NET MVC 2
6 October 2010 ASP.NET MVC 3 Beta
9 November 2010 ASP.NET MVC 3 RC
10 December 2010 ASP.NET MVC 3 RC 2
13 January 2011 ASP.NET MVC 3
20 September 2011
ASP.NET MVC 4 Developer
Preview
15 February 2012 ASP.NET MVC 4 Beta
31 May 2012 ASP.NET MVC 4 RC
15 August 2012 ASP.NET MVC 4
30 May 2013 ASP.NET MVC 4 4.0.30506.0
26 June 2013 ASP.NET MVC 5 Preview
23 August 2013 ASP.NET MVC 5 RC 1
17 October 2013 ASP.NET MVC 5
17 January 2014 ASP.NET MVC 5.1
10 February 2014 ASP.NET MVC 5.1.1
4 April 2014 ASP.NET MVC 5.1.2
22 June 2014 ASP.NET MVC 5.1.3
The Technologies
36
 Technologies that ASP.NET MVC uses
 C# (OOP, Unit Testing, async, etc.)
 HTML(5) and CSS
 JavaScript (jQuery, KendoUI, etc.)
 AJAX, Single-page apps
 Databases (MS SQL)
 ORM (Entity Framework and LINQ)
 Web and HTTP
The Tools
 Tools that we need:
 IDE: Visual Studio 2012 (Express for Web)
 JustCode and Web Essentals
 Framework: .NET Framework 4.5
 Web server: IIS 8 (Express)
 Data: Microsoft SQL Sever (Express or LocalDB)
 Web Platform Installer 4.0 will install
everything we need for us
 microsoft.com/web/downloads/platform.aspx
 Install Visual Studio Express 2012 for Web
NuGet package management
38
 Free, open source package management
 Makes it easy to install and update open
source libraries and tools
 Part of Visual Studio 2012
 Configurable package sources
 Simple as adding a reference
 GUI-based package installer
 Package manager console
What’s New in MVC 4 ?
 ASP.NET Web API
 Refreshed and modernized default project
templates
 New mobile project template
 Many new features to support mobile apps
 Enhanced support for asynchronous methods
What’s New in MVC 5 ?
 Attribute routing improvements
 Bootstrap support for editor templates
 Enum support in views
 Unobtrusive validation for
MinLength/MaxLength Attributes
 Supporting the ‘this’ context in Unobtrusive
Ajax
What’s new in MVC 6
Rebuilt from the Ground Up
 MVC, Web API, and Web Pages are merged into
one framework, called MVC 6. The new
framework uses a common set of abstractions for
routing, action selection, filters, model binding,
and so on.
 Dependency injection is built into the framework.
Use your preferred IoC container to register
dependencies.
 vNext is host agnostic. You can host your app in
IIS, or self-host in a custom process. (Web API 2
and SignalR 2 already support self-hosting; vNext
brings this same capability to MVC.)
 vNext is open source and cross platform.
Leaner, Faster
 MVC 6 has no dependency on System.Web.dll. The result is
a leaner framework, with faster startup time and lower
memory consumption.
 vNext apps can use a cloud-optimized runtime and subset of
the .NET Framework. This subset of the framework is about
11 megabytes in size compared to 200 megabytes for the full
framework, and is composed of a collection of NuGet
packages.
 Because the cloud-optimized framework is a collection of
NuGet packages, your app can include only the packages
you actually need. No unnecessary memory, disk space,
loading time, etc.
 Microsoft can deliver updates to the framework on a faster
cadence, because each part can be updated independently.
True Side-by-Side Deployment
 The reduced footprint of the cloud-optimized
runtime makes it practical to deploy the framework
with your app.
 You can run apps side-by-side with different
versions of the framework on the same server.
 Your apps are insulated from framework changes
on the server.
 You can make framework updates for each app on
its own schedule.
 No errors when you deploy to production resulting
from a mismatch between the framework patch
level on the development machine and the
production server.
New Development Experience
 vNext uses the Roslyn compiler to compile
code dynamically.
 You can edit a code file, refresh the browser,
and see the changes without rebuilding the
project.
 Besides streamlining the development
process, dynamic code compilation enables
development scenarios that were not possible
before, such as editing code on the server
using Visual Studio Online (“Monaco”).
 You can choose your own editors and tools.
The ASP.NET MVC framework supports
four different types of filters:
 Authorization filters – Implements
the IAuthorizationFilter attribute.
 Action filters – Implements
the IActionFilter attribute.
 Result filters – Implements
the IResultFilter attribute.
 Exception filters – Implements
the IExceptionFilter attribute.
1 von 45

Recomendados

Discuss About ASP.NET MVC 6 and ASP.NET MVC 5 von
Discuss About ASP.NET MVC 6 and ASP.NET MVC 5Discuss About ASP.NET MVC 6 and ASP.NET MVC 5
Discuss About ASP.NET MVC 6 and ASP.NET MVC 5Aaron Jacobson
885 views13 Folien
Asp.net mvc 5 course module 1 overview von
Asp.net mvc 5 course   module 1 overviewAsp.net mvc 5 course   module 1 overview
Asp.net mvc 5 course module 1 overviewSergey Seletsky
2.8K views20 Folien
MVC - Introduction von
MVC - IntroductionMVC - Introduction
MVC - IntroductionSudhakar Sharma
8.7K views28 Folien
Angular on ASP.NET MVC 6 von
Angular on ASP.NET MVC 6Angular on ASP.NET MVC 6
Angular on ASP.NET MVC 6Noam Kfir
2K views24 Folien
Learning ASP.NET 5 and MVC 6 von
Learning ASP.NET 5 and MVC 6Learning ASP.NET 5 and MVC 6
Learning ASP.NET 5 and MVC 6Ido Flatow
6.4K views58 Folien
ASP.NET MVC Presentation von
ASP.NET MVC PresentationASP.NET MVC Presentation
ASP.NET MVC Presentationivpol
23.6K views11 Folien

Más contenido relacionado

Was ist angesagt?

Asp.net mvc presentation by Nitin Sawant von
Asp.net mvc presentation by Nitin SawantAsp.net mvc presentation by Nitin Sawant
Asp.net mvc presentation by Nitin SawantNitin Sawant
2.3K views27 Folien
ASP .NET MVC von
ASP .NET MVC ASP .NET MVC
ASP .NET MVC eldorina
1K views13 Folien
ASP.NET Brief History von
ASP.NET Brief HistoryASP.NET Brief History
ASP.NET Brief HistorySudhakar Sharma
1.9K views18 Folien
Introduction to ASP.NET MVC von
Introduction to ASP.NET MVCIntroduction to ASP.NET MVC
Introduction to ASP.NET MVCKhaled Musaied
13.7K views15 Folien
ASP.NET MVC 5 - EF 6 - VS2015 von
ASP.NET MVC 5 - EF 6 - VS2015ASP.NET MVC 5 - EF 6 - VS2015
ASP.NET MVC 5 - EF 6 - VS2015Hossein Zahed
3.4K views148 Folien
Introduction to ASP.NET MVC 1.0 von
Introduction to ASP.NET MVC 1.0Introduction to ASP.NET MVC 1.0
Introduction to ASP.NET MVC 1.0Shiju Varghese
1.6K views28 Folien

Was ist angesagt?(19)

Asp.net mvc presentation by Nitin Sawant von Nitin Sawant
Asp.net mvc presentation by Nitin SawantAsp.net mvc presentation by Nitin Sawant
Asp.net mvc presentation by Nitin Sawant
Nitin Sawant2.3K views
ASP .NET MVC von eldorina
ASP .NET MVC ASP .NET MVC
ASP .NET MVC
eldorina1K views
Introduction to ASP.NET MVC von Khaled Musaied
Introduction to ASP.NET MVCIntroduction to ASP.NET MVC
Introduction to ASP.NET MVC
Khaled Musaied13.7K views
ASP.NET MVC 5 - EF 6 - VS2015 von Hossein Zahed
ASP.NET MVC 5 - EF 6 - VS2015ASP.NET MVC 5 - EF 6 - VS2015
ASP.NET MVC 5 - EF 6 - VS2015
Hossein Zahed3.4K views
Introduction to ASP.NET MVC 1.0 von Shiju Varghese
Introduction to ASP.NET MVC 1.0Introduction to ASP.NET MVC 1.0
Introduction to ASP.NET MVC 1.0
Shiju Varghese1.6K views
ASP.NET MVC 3 von Buu Nguyen
ASP.NET MVC 3ASP.NET MVC 3
ASP.NET MVC 3
Buu Nguyen6.2K views
Introduction to ASP.NET von Rajkumarsoy
Introduction to ASP.NETIntroduction to ASP.NET
Introduction to ASP.NET
Rajkumarsoy16.8K views
ASP .NET MVC Introduction & Guidelines von Dev Raj Gautam
ASP .NET MVC Introduction & Guidelines  ASP .NET MVC Introduction & Guidelines
ASP .NET MVC Introduction & Guidelines
Dev Raj Gautam1.2K views

Destacado

Dotnet Basics Presentation von
Dotnet Basics PresentationDotnet Basics Presentation
Dotnet Basics PresentationSudhakar Sharma
18.6K views150 Folien
Top 9 c#.net interview questions answers von
Top 9 c#.net interview questions answersTop 9 c#.net interview questions answers
Top 9 c#.net interview questions answersJobinterviews
3.2K views13 Folien
.NET Framework Overview von
.NET Framework Overview.NET Framework Overview
.NET Framework OverviewDoncho Minkov
19.3K views48 Folien
Introduction to .net framework von
Introduction to .net frameworkIntroduction to .net framework
Introduction to .net frameworkArun Prasad
88.2K views48 Folien
Architecture of .net framework von
Architecture of .net frameworkArchitecture of .net framework
Architecture of .net frameworkThen Murugeshwari
97.6K views16 Folien
Building Next Generation Web Apps and Services using ASP.NET 5 von
Building Next Generation Web Apps and Services using ASP.NET 5Building Next Generation Web Apps and Services using ASP.NET 5
Building Next Generation Web Apps and Services using ASP.NET 5Shravan Kumar Kasagoni
904 views21 Folien

Destacado(17)

Top 9 c#.net interview questions answers von Jobinterviews
Top 9 c#.net interview questions answersTop 9 c#.net interview questions answers
Top 9 c#.net interview questions answers
Jobinterviews3.2K views
.NET Framework Overview von Doncho Minkov
.NET Framework Overview.NET Framework Overview
.NET Framework Overview
Doncho Minkov19.3K views
Introduction to .net framework von Arun Prasad
Introduction to .net frameworkIntroduction to .net framework
Introduction to .net framework
Arun Prasad88.2K views
Building Next Generation Web Apps and Services using ASP.NET 5 von Shravan Kumar Kasagoni
Building Next Generation Web Apps and Services using ASP.NET 5Building Next Generation Web Apps and Services using ASP.NET 5
Building Next Generation Web Apps and Services using ASP.NET 5
Introduction to SignalR von Adam Mokan
Introduction to SignalRIntroduction to SignalR
Introduction to SignalR
Adam Mokan7.1K views
Advanced Tips & Tricks for using Angular JS von Simon Guest
Advanced Tips & Tricks for using Angular JSAdvanced Tips & Tricks for using Angular JS
Advanced Tips & Tricks for using Angular JS
Simon Guest19.4K views
Getting Started with Angular JS von Akshay Mathur
Getting Started with Angular JSGetting Started with Angular JS
Getting Started with Angular JS
Akshay Mathur2.6K views
How to implement camera recording for USB webcam or IP camera in C#.NET von Ozeki Informatics Ltd.
How to implement camera recording for USB webcam or IP camera in C#.NETHow to implement camera recording for USB webcam or IP camera in C#.NET
How to implement camera recording for USB webcam or IP camera in C#.NET
C#, OOP introduction and examples von agni_agbc
C#, OOP introduction and examplesC#, OOP introduction and examples
C#, OOP introduction and examples
agni_agbc4K views
Refreshing Your UI with HTML5, Bootstrap and CSS3 von Matt Raible
Refreshing Your UI with HTML5, Bootstrap and CSS3Refreshing Your UI with HTML5, Bootstrap and CSS3
Refreshing Your UI with HTML5, Bootstrap and CSS3
Matt Raible38.4K views
C# OOP Advanced Concepts von agni_agbc
C# OOP Advanced ConceptsC# OOP Advanced Concepts
C# OOP Advanced Concepts
agni_agbc14.7K views
Dotnet Interview Questions von maddinapudi
Dotnet Interview QuestionsDotnet Interview Questions
Dotnet Interview Questions
maddinapudi1.5K views

Similar a MVC 6 Introduction

Asp.net c# MVC-5 Training-Day-1 of Day-9 von
Asp.net c# MVC-5 Training-Day-1 of Day-9Asp.net c# MVC-5 Training-Day-1 of Day-9
Asp.net c# MVC-5 Training-Day-1 of Day-9AHM Pervej Kabir
923 views39 Folien
Jinal desai .net von
Jinal desai .netJinal desai .net
Jinal desai .netrohitkumar1987in
321 views4 Folien
Asp.net With mvc handson von
Asp.net With mvc handsonAsp.net With mvc handson
Asp.net With mvc handsonPrashant Kumar
454 views64 Folien
Asp.net mvc von
Asp.net mvcAsp.net mvc
Asp.net mvcTaranjeet Singh
248 views21 Folien
Session 1 von
Session 1Session 1
Session 1Asif Atick
521 views10 Folien
Introduction To Mvc von
Introduction To MvcIntroduction To Mvc
Introduction To MvcVolkan Uzun
2.4K views28 Folien

Similar a MVC 6 Introduction(20)

Asp.net c# MVC-5 Training-Day-1 of Day-9 von AHM Pervej Kabir
Asp.net c# MVC-5 Training-Day-1 of Day-9Asp.net c# MVC-5 Training-Day-1 of Day-9
Asp.net c# MVC-5 Training-Day-1 of Day-9
AHM Pervej Kabir923 views
Introduction To Mvc von Volkan Uzun
Introduction To MvcIntroduction To Mvc
Introduction To Mvc
Volkan Uzun2.4K views
SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web... von SoftServe
SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web...SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web...
SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web...
SoftServe1.2K views
ASP.NET MVC Fundamental von ldcphuc
ASP.NET MVC FundamentalASP.NET MVC Fundamental
ASP.NET MVC Fundamental
ldcphuc4.9K views
MVC von akshin
MVCMVC
MVC
akshin2K views
Mvc von abhigad
MvcMvc
Mvc
abhigad579 views
Technoligent providing custom ASP.NET MVC development services von Aaron Jacobson
Technoligent providing custom ASP.NET MVC development servicesTechnoligent providing custom ASP.NET MVC development services
Technoligent providing custom ASP.NET MVC development services
Aaron Jacobson878 views
ASP.NET Presentation von Rasel Khan
ASP.NET PresentationASP.NET Presentation
ASP.NET Presentation
Rasel Khan2.5K views
ASP.NET MVC as the next step in web development von Volodymyr Voytyshyn
ASP.NET MVC as the next step in web developmentASP.NET MVC as the next step in web development
ASP.NET MVC as the next step in web development
Volodymyr Voytyshyn2.7K views
Programming is Fun with ASP.NET MVC von Ian Carnaghan
Programming is Fun with ASP.NET MVCProgramming is Fun with ASP.NET MVC
Programming is Fun with ASP.NET MVC
Ian Carnaghan10.7K views
Head first asp.net mvc 2.0 rtt von Lanvige Jiang
Head first asp.net mvc 2.0 rttHead first asp.net mvc 2.0 rtt
Head first asp.net mvc 2.0 rtt
Lanvige Jiang3.6K views

Último

Recap of our Class von
Recap of our ClassRecap of our Class
Recap of our ClassCorinne Weisgerber
74 views15 Folien
American Psychological Association 7th Edition.pptx von
American Psychological Association  7th Edition.pptxAmerican Psychological Association  7th Edition.pptx
American Psychological Association 7th Edition.pptxSamiullahAfridi4
82 views8 Folien
ACTIVITY BOOK key water sports.pptx von
ACTIVITY BOOK key water sports.pptxACTIVITY BOOK key water sports.pptx
ACTIVITY BOOK key water sports.pptxMar Caston Palacio
511 views4 Folien
Scope of Biochemistry.pptx von
Scope of Biochemistry.pptxScope of Biochemistry.pptx
Scope of Biochemistry.pptxshoba shoba
126 views55 Folien
ANATOMY AND PHYSIOLOGY UNIT 1 { PART-1} von
ANATOMY AND PHYSIOLOGY UNIT 1 { PART-1}ANATOMY AND PHYSIOLOGY UNIT 1 { PART-1}
ANATOMY AND PHYSIOLOGY UNIT 1 { PART-1}DR .PALLAVI PATHANIA
244 views195 Folien
Use of Probiotics in Aquaculture.pptx von
Use of Probiotics in Aquaculture.pptxUse of Probiotics in Aquaculture.pptx
Use of Probiotics in Aquaculture.pptxAKSHAY MANDAL
95 views15 Folien

Último(20)

American Psychological Association 7th Edition.pptx von SamiullahAfridi4
American Psychological Association  7th Edition.pptxAmerican Psychological Association  7th Edition.pptx
American Psychological Association 7th Edition.pptx
SamiullahAfridi482 views
Scope of Biochemistry.pptx von shoba shoba
Scope of Biochemistry.pptxScope of Biochemistry.pptx
Scope of Biochemistry.pptx
shoba shoba126 views
Use of Probiotics in Aquaculture.pptx von AKSHAY MANDAL
Use of Probiotics in Aquaculture.pptxUse of Probiotics in Aquaculture.pptx
Use of Probiotics in Aquaculture.pptx
AKSHAY MANDAL95 views
AI Tools for Business and Startups von Svetlin Nakov
AI Tools for Business and StartupsAI Tools for Business and Startups
AI Tools for Business and Startups
Svetlin Nakov105 views
JiscOAWeek_LAIR_slides_October2023.pptx von Jisc
JiscOAWeek_LAIR_slides_October2023.pptxJiscOAWeek_LAIR_slides_October2023.pptx
JiscOAWeek_LAIR_slides_October2023.pptx
Jisc93 views
The basics - information, data, technology and systems.pdf von JonathanCovena1
The basics - information, data, technology and systems.pdfThe basics - information, data, technology and systems.pdf
The basics - information, data, technology and systems.pdf
JonathanCovena1106 views
Lecture: Open Innovation von Michal Hron
Lecture: Open InnovationLecture: Open Innovation
Lecture: Open Innovation
Michal Hron99 views
Create a Structure in VBNet.pptx von Breach_P
Create a Structure in VBNet.pptxCreate a Structure in VBNet.pptx
Create a Structure in VBNet.pptx
Breach_P72 views
11.30.23 Poverty and Inequality in America.pptx von mary850239
11.30.23 Poverty and Inequality in America.pptx11.30.23 Poverty and Inequality in America.pptx
11.30.23 Poverty and Inequality in America.pptx
mary850239149 views
The Open Access Community Framework (OACF) 2023 (1).pptx von Jisc
The Open Access Community Framework (OACF) 2023 (1).pptxThe Open Access Community Framework (OACF) 2023 (1).pptx
The Open Access Community Framework (OACF) 2023 (1).pptx
Jisc107 views
Are we onboard yet University of Sussex.pptx von Jisc
Are we onboard yet University of Sussex.pptxAre we onboard yet University of Sussex.pptx
Are we onboard yet University of Sussex.pptx
Jisc93 views
Dance KS5 Breakdown von WestHatch
Dance KS5 BreakdownDance KS5 Breakdown
Dance KS5 Breakdown
WestHatch69 views
Community-led Open Access Publishing webinar.pptx von Jisc
Community-led Open Access Publishing webinar.pptxCommunity-led Open Access Publishing webinar.pptx
Community-led Open Access Publishing webinar.pptx
Jisc91 views

MVC 6 Introduction

  • 4. „ First learn rules and physical requirements – e.g., names of pieces, legal movements, chess board geometry and orientation, etc. „ Then learn principles – e.g., relative value of certain pieces, strategic value of center squares, power of a threat, etc. „ However, to become a master of chess, one must study the games of other masters – These games contain patterns that must be understood, memorized, and applied repeatedly „There are hundreds of these patterns
  • 5. Becoming a Software Designer Master
  • 6. First learn the rules – e.g., the algorithms, data structures and languages of software „ Then learn the principles – e.g., structured programming, modular programming, object oriented programming, generic programming, etc. „ However, to truly master software design, one must study the designs of other masters – These designs contain patterns must be understood, memorized, and applied repeatedly „
  • 7. Design Patterns Design patterns are solutions to software design problems you find again and again in real-world application development. Patterns are about reusable designs and interactions of objects..
  • 8. The 23 Gang of Four (GoF) patterns are generally considered the foundation for all other patterns. They are categorized in three groups:  Creational,  Structural, and  Behavioral
  • 9. Creational Patterns Abstract Factory Creates an instance of several families of classes Builder Separates object construction from its representation Factory Method Creates an instance of several derived classes Prototype A fully initialized instance to be copied or cloned Singleton A class of which only a single instance can exist
  • 10. Structural Patterns Adapter Match interfaces of different classes Bridge Separates an object’s interface from its implementation Composite A tree structure of simple and composite objects Decorator Add responsibilities to objects dynamically Facade A single class that represents an entire subsystem Flyweight A fine-grained instance used for efficient sharing Proxy An object representing another object
  • 11. Behavioral Patterns Chain of Resp. A way of passing a request between a chain of objects Command Encapsulate a command request as an object Interpreter A way to include language elements in a program Iterator Sequentially access the elements of a collection Mediator Defines simplified communication between classes Memento Capture and restore an object's internal state Observer A way of notifying change to a number of classes State Alter an object's behavior when its state changes Strategy Encapsulates an algorithm inside a class Template Method Defer the exact steps of an algorithm to a subclass Visitor Defines a new operation to a class without change
  • 12. The Model-View-Controller (MVC) architectural pattern separates an application into three main components: the model, the view, and the controller. The ASP.NET MVC framework provides an alternative to the ASP.NET Web Forms pattern for creating Web applications.
  • 13. The MVC Pattern 13  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
  • 16. Model 16  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
  • 17. View 17  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  Controlled by View Engines
  • 18. Controller 18  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"
  • 19. MVC Steps 19  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)
  • 21. 21 MVC Pattern in ASP.NET MVC
  • 23. Request Flow Request View Controller Model HTTP Select ViewHTML Routing Select Controller
  • 24. Stage Details Receive first request for the application In the Global.asax file, Route objects are added to the RouteTable object. Perform routing The UrlRoutingModule module uses the first matching Route object in theRouteTable collection to create the RouteData object, which it then uses to create aRequestContext (IHttpContext) object. Create MVC request handler The MvcRouteHandler object creates an instance of the MvcHandler class and passes it the RequestContext instance. Create controller The MvcHandler object uses the RequestContext instance to identify theIControllerFactory object (typically an instance of the DefaultControllerFactoryclass) to create the controller instance with. Execute controller The MvcHandler instance calls the controller s Execute method. Invoke action Most controllers inherit from the Controller base class. For controllers that do so, theControllerActionInvoker object that is associated with the controller determines which action method of the controller class to call, and then calls that method. Execute result A typical action method might receive user input, prepare the appropriate response data, and then execute the result by returning a result type. The built-in result types that can be executed include the following: ViewResult (which renders a view and is the most-often used result type), RedirectToRouteResult, RedirectResult,Content
  • 26. MVC Frameworks 26  CakePHP (PHP)  CodeIgniter (PHP)  Spring (Java)  Perl: Catalyst, Dancer  Python: Django, Flask, Grok  Ruby: Ruby on Rails, Camping, Nitro, Sinatra  JavaScript: AngularJS, JavaScriptMVC, Spine  ASP.NET MVC (.NET Framework)
  • 27. 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
  • 28. ASP.NET MVC 28  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
  • 29. ASP.NET MVC (2) 29  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#, LINQ, HTML, etc.)  Application-based (not scripts like PHP)
  • 30. Separation of Concerns 30  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
  • 31. Extensible 31  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.
  • 32. Clean URLs 32  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)
  • 33. ASP.NET Web Forms ASP.NET MVC Asp.Net Web Form follow a traditional event driven development model. Asp.Net MVC is a lightweight and follow MVC (Model, View, Controller) pattern based development model. Asp.Net Web Form has server controls. Asp.Net MVC has html helpers. Asp.Net Web Form supports view state for state management at client side. Asp.Net MVC does not support view state. Asp.Net Web Form has file-based URLs means file name exist in the URLs must have its physically existence. Asp.Net MVC has route-based URLs means URLs are divided into controllers and actions and moreover it is based on controller not on physical file. Asp.Net Web Form follows Web Forms Syntax Asp.Net MVC follow customizable syntax (Razor as default) In Asp.Net Web Form, Web Forms(ASPX) i.e. views are tightly coupled to Code behind(ASPX.CS) i.e. logic. In Asp.Net MVC, Views and logic are kept separately. Asp.Net Web Form has Master Pages for consistent look and feels. Asp.Net MVC has Layouts for consistent look and feels. Asp.Net Web Form has User Controls for code re-usability. Asp.Net MVC has Partial Views for code re- usability. Asp.Net Web Form has built-in data controls and best for rapid development with powerful data access. Asp.Net MVC is lightweight, provide full control over markup and support many features that allow fast & agile development. Hence it is best for developing interactive web application with latest web standards. Asp.Net Web Form is not Open Source. Asp.Net Web MVC is an Open Source.
  • 34. The ASP.NET MVC History 34
  • 35. Date Version 10 December 2007 ASP.NET MVC 13 March 2009 ASP.NET MVC 1.0 16 December 2009 ASP.NET MVC 2 RC 4 February 2010 ASP.NET MVC 2 RC 2 10 March 2010 ASP.NET MVC 2 6 October 2010 ASP.NET MVC 3 Beta 9 November 2010 ASP.NET MVC 3 RC 10 December 2010 ASP.NET MVC 3 RC 2 13 January 2011 ASP.NET MVC 3 20 September 2011 ASP.NET MVC 4 Developer Preview 15 February 2012 ASP.NET MVC 4 Beta 31 May 2012 ASP.NET MVC 4 RC 15 August 2012 ASP.NET MVC 4 30 May 2013 ASP.NET MVC 4 4.0.30506.0 26 June 2013 ASP.NET MVC 5 Preview 23 August 2013 ASP.NET MVC 5 RC 1 17 October 2013 ASP.NET MVC 5 17 January 2014 ASP.NET MVC 5.1 10 February 2014 ASP.NET MVC 5.1.1 4 April 2014 ASP.NET MVC 5.1.2 22 June 2014 ASP.NET MVC 5.1.3
  • 36. The Technologies 36  Technologies that ASP.NET MVC uses  C# (OOP, Unit Testing, async, etc.)  HTML(5) and CSS  JavaScript (jQuery, KendoUI, etc.)  AJAX, Single-page apps  Databases (MS SQL)  ORM (Entity Framework and LINQ)  Web and HTTP
  • 37. The Tools  Tools that we need:  IDE: Visual Studio 2012 (Express for Web)  JustCode and Web Essentals  Framework: .NET Framework 4.5  Web server: IIS 8 (Express)  Data: Microsoft SQL Sever (Express or LocalDB)  Web Platform Installer 4.0 will install everything we need for us  microsoft.com/web/downloads/platform.aspx  Install Visual Studio Express 2012 for Web
  • 38. NuGet package management 38  Free, open source package management  Makes it easy to install and update open source libraries and tools  Part of Visual Studio 2012  Configurable package sources  Simple as adding a reference  GUI-based package installer  Package manager console
  • 39. What’s New in MVC 4 ?  ASP.NET Web API  Refreshed and modernized default project templates  New mobile project template  Many new features to support mobile apps  Enhanced support for asynchronous methods
  • 40. What’s New in MVC 5 ?  Attribute routing improvements  Bootstrap support for editor templates  Enum support in views  Unobtrusive validation for MinLength/MaxLength Attributes  Supporting the ‘this’ context in Unobtrusive Ajax
  • 41. What’s new in MVC 6 Rebuilt from the Ground Up  MVC, Web API, and Web Pages are merged into one framework, called MVC 6. The new framework uses a common set of abstractions for routing, action selection, filters, model binding, and so on.  Dependency injection is built into the framework. Use your preferred IoC container to register dependencies.  vNext is host agnostic. You can host your app in IIS, or self-host in a custom process. (Web API 2 and SignalR 2 already support self-hosting; vNext brings this same capability to MVC.)  vNext is open source and cross platform.
  • 42. Leaner, Faster  MVC 6 has no dependency on System.Web.dll. The result is a leaner framework, with faster startup time and lower memory consumption.  vNext apps can use a cloud-optimized runtime and subset of the .NET Framework. This subset of the framework is about 11 megabytes in size compared to 200 megabytes for the full framework, and is composed of a collection of NuGet packages.  Because the cloud-optimized framework is a collection of NuGet packages, your app can include only the packages you actually need. No unnecessary memory, disk space, loading time, etc.  Microsoft can deliver updates to the framework on a faster cadence, because each part can be updated independently.
  • 43. True Side-by-Side Deployment  The reduced footprint of the cloud-optimized runtime makes it practical to deploy the framework with your app.  You can run apps side-by-side with different versions of the framework on the same server.  Your apps are insulated from framework changes on the server.  You can make framework updates for each app on its own schedule.  No errors when you deploy to production resulting from a mismatch between the framework patch level on the development machine and the production server.
  • 44. New Development Experience  vNext uses the Roslyn compiler to compile code dynamically.  You can edit a code file, refresh the browser, and see the changes without rebuilding the project.  Besides streamlining the development process, dynamic code compilation enables development scenarios that were not possible before, such as editing code on the server using Visual Studio Online (“Monaco”).  You can choose your own editors and tools.
  • 45. The ASP.NET MVC framework supports four different types of filters:  Authorization filters – Implements the IAuthorizationFilter attribute.  Action filters – Implements the IActionFilter attribute.  Result filters – Implements the IResultFilter attribute.  Exception filters – Implements the IExceptionFilter attribute.