zz bc#7.5 asp.net mvc practice and guideline refresh!
DESCRIPTION
15/01/2012 ZZ BC#7.5 : Slide Presentation Code Sample : ZZBC#7.5_ASPNETMVC http://tinyurl.com/834choxTRANSCRIPT
![Page 1: ZZ BC#7.5 asp.net mvc practice and guideline refresh!](https://reader033.vdocuments.site/reader033/viewer/2022042601/554f8ce1b4c9052a518b51c9/html5/thumbnails/1.jpg)
ASP.NET MVC Practice and Guideline Refresh!
Zubzib Black Coffee #7.5 กิ�น กิาแฟเขียนเว็�บ !
![Page 2: ZZ BC#7.5 asp.net mvc practice and guideline refresh!](https://reader033.vdocuments.site/reader033/viewer/2022042601/554f8ce1b4c9052a518b51c9/html5/thumbnails/2.jpg)
About me
Chalermpon Areepong (Nine)
Microsoft MVP ASP.NET
Work @
![Page 3: ZZ BC#7.5 asp.net mvc practice and guideline refresh!](https://reader033.vdocuments.site/reader033/viewer/2022042601/554f8ce1b4c9052a518b51c9/html5/thumbnails/3.jpg)
Session Level 300Audience Skill HTML/JS/CSS JavaScript C# OOP LINQ
![Page 4: ZZ BC#7.5 asp.net mvc practice and guideline refresh!](https://reader033.vdocuments.site/reader033/viewer/2022042601/554f8ce1b4c9052a518b51c9/html5/thumbnails/4.jpg)
Agenda Basic ASP.NET MVC Programming NuGet Package Manager Entity Framework 4.x Code First Introduce EF Migration Deep in Model Deep in Controller Deep in View UI JavaScript Framework Application Layer Architecture Repository Pattern Dependency Injection Security ASP.NET MVC 4 Preview
![Page 5: ZZ BC#7.5 asp.net mvc practice and guideline refresh!](https://reader033.vdocuments.site/reader033/viewer/2022042601/554f8ce1b4c9052a518b51c9/html5/thumbnails/5.jpg)
Basic of ASP.NET MVC Programing
Model : o Class Modelo Entity Modelo Domain Transfer Object (DTO)o View Model
View : User Interfaceo Engine : ASPX ViewEngine, Razor ViewEngine, Etc……o Output: HTML, CSS, JavaScript, JSON, Text
Controllero Control logic, o Data access, o Prepare parameters for view rendero call view to render output
![Page 6: ZZ BC#7.5 asp.net mvc practice and guideline refresh!](https://reader033.vdocuments.site/reader033/viewer/2022042601/554f8ce1b4c9052a518b51c9/html5/thumbnails/6.jpg)
Basic of ASP.NET MVC Programing
DEMO
![Page 7: ZZ BC#7.5 asp.net mvc practice and guideline refresh!](https://reader033.vdocuments.site/reader033/viewer/2022042601/554f8ce1b4c9052a518b51c9/html5/thumbnails/7.jpg)
Basic of ASP.NET MVC Programing
Routeso Catch URL to parameter by pattern
• Default “{controller}/{action}/{id}”http://www.zz.com/blog/get/1
• Fix route value
new { controller = “blog”, action = “get”, id = 1 }
• Custom Routes• blog/Archive/12-25-2009
“{controller}/{action}/{date}”http://www.zz.com/blog/Archive/12-25-2009
Public ActionResult Archive(DateTime date)
• blog/Archive/12-25-2009_12-17-2011“{controller}/{action}/{dateFrom}_{dateTo}”http://www.zz.com/blog/Archive/12-25-2009_12-17-2011 public ActionResult Archive(DateTime dateFrom, DateTime DateTo)
![Page 8: ZZ BC#7.5 asp.net mvc practice and guideline refresh!](https://reader033.vdocuments.site/reader033/viewer/2022042601/554f8ce1b4c9052a518b51c9/html5/thumbnails/8.jpg)
Basic of ASP.NET MVC Programing
Routes DEMO
![Page 9: ZZ BC#7.5 asp.net mvc practice and guideline refresh!](https://reader033.vdocuments.site/reader033/viewer/2022042601/554f8ce1b4c9052a518b51c9/html5/thumbnails/9.jpg)
NuGet Package Manager
Manage Library for o Searcho Install / Update / Uninstallo Execute library command (PowerShell)
VS - > Menu -> Tools -> Extension Manager -> Find NuGet and install
How to useo Solution->Project -> right click on +Reference -> nuget
packageo Package Manager Console
• Install-Package <package name>• Uninstall-Package <package name>• Get-Package• Update-Package //all available
![Page 10: ZZ BC#7.5 asp.net mvc practice and guideline refresh!](https://reader033.vdocuments.site/reader033/viewer/2022042601/554f8ce1b4c9052a518b51c9/html5/thumbnails/10.jpg)
NuGet Package Manager
DEMO
![Page 11: ZZ BC#7.5 asp.net mvc practice and guideline refresh!](https://reader033.vdocuments.site/reader033/viewer/2022042601/554f8ce1b4c9052a518b51c9/html5/thumbnails/11.jpg)
EF 4.x Code First
Object Relational Mapping POCO Convention Over Configuration LINQ Support Working with various database (3rd party driver) Fluent API to fully customize the persistence
mapping Database Installation Database Migration
![Page 12: ZZ BC#7.5 asp.net mvc practice and guideline refresh!](https://reader033.vdocuments.site/reader033/viewer/2022042601/554f8ce1b4c9052a518b51c9/html5/thumbnails/12.jpg)
EF 4.x Code First
DEMO
![Page 13: ZZ BC#7.5 asp.net mvc practice and guideline refresh!](https://reader033.vdocuments.site/reader033/viewer/2022042601/554f8ce1b4c9052a518b51c9/html5/thumbnails/13.jpg)
Deep in Model
Model?o Rich Domain? o Model Entity?o DTO?
Validation?o Server Side
• DataAnotation Attribute• IValidationObject• FluentValidate
o Client Side• ClientValidation• IClientValidatable
Demo
![Page 14: ZZ BC#7.5 asp.net mvc practice and guideline refresh!](https://reader033.vdocuments.site/reader033/viewer/2022042601/554f8ce1b4c9052a518b51c9/html5/thumbnails/14.jpg)
Deep in Controller
Controller ActionResult
Demo
![Page 15: ZZ BC#7.5 asp.net mvc practice and guideline refresh!](https://reader033.vdocuments.site/reader033/viewer/2022042601/554f8ce1b4c9052a518b51c9/html5/thumbnails/15.jpg)
Deep in View
ViewEngineo Razor ViewEngine (WebPage)o Aspx ViewEngineo 3rd Party ViewEngine
JavaScript
Demo
![Page 16: ZZ BC#7.5 asp.net mvc practice and guideline refresh!](https://reader033.vdocuments.site/reader033/viewer/2022042601/554f8ce1b4c9052a518b51c9/html5/thumbnails/16.jpg)
UI JavaScript Framework
All will render to HTML/ CSS / JavaScript JQuery UI Telerik MVC Extension (strong type helper) Knockout (MVVM) Kendo UI (HTML5)
![Page 17: ZZ BC#7.5 asp.net mvc practice and guideline refresh!](https://reader033.vdocuments.site/reader033/viewer/2022042601/554f8ce1b4c9052a518b51c9/html5/thumbnails/17.jpg)
UI JavaScript Framework
DEMO
![Page 18: ZZ BC#7.5 asp.net mvc practice and guideline refresh!](https://reader033.vdocuments.site/reader033/viewer/2022042601/554f8ce1b4c9052a518b51c9/html5/thumbnails/18.jpg)
Software Design: Repository Pattern
Encapsulate data access Simple collection like interface Should only return aggregate roots Provide for adding and removing entities Provide methods to select objects based on some
criteria Allow easy substitution
![Page 19: ZZ BC#7.5 asp.net mvc practice and guideline refresh!](https://reader033.vdocuments.site/reader033/viewer/2022042601/554f8ce1b4c9052a518b51c9/html5/thumbnails/19.jpg)
Software Design: Repository Pattern
DEMO
![Page 20: ZZ BC#7.5 asp.net mvc practice and guideline refresh!](https://reader033.vdocuments.site/reader033/viewer/2022042601/554f8ce1b4c9052a518b51c9/html5/thumbnails/20.jpg)
Software Design: Core Layer Architecture
Motivation – Logical layers separate the major concerns of the application: 1. Modularity, low-coupling – easier maintenance. 2. Business-logic is separated from presentation –
reuse. 3. General technical services, e.g., database, are
separated from the business-logic – reused, replaced.
4. Low coupling, separation of concerns – evolving functionality, system scaling-up, adapt to new technologies.
![Page 21: ZZ BC#7.5 asp.net mvc practice and guideline refresh!](https://reader033.vdocuments.site/reader033/viewer/2022042601/554f8ce1b4c9052a518b51c9/html5/thumbnails/21.jpg)
Software Design: Core Layer Architecture
![Page 22: ZZ BC#7.5 asp.net mvc practice and guideline refresh!](https://reader033.vdocuments.site/reader033/viewer/2022042601/554f8ce1b4c9052a518b51c9/html5/thumbnails/22.jpg)
Software Design: Core Layer Architecture
DEMO
![Page 23: ZZ BC#7.5 asp.net mvc practice and guideline refresh!](https://reader033.vdocuments.site/reader033/viewer/2022042601/554f8ce1b4c9052a518b51c9/html5/thumbnails/23.jpg)
Dependency Injection
Dependency Injection - one example of IoC design principle.
Also known as the Hollywood Principleo Don’t call us, we’ll call you!
Good OO Systems – organised as web of interacting objects
Goal – High cohesion, low coupling Advantages of low coupling
o Extensibilityo Testabilityo Reusability
PS>Not so easy to achieve!
![Page 24: ZZ BC#7.5 asp.net mvc practice and guideline refresh!](https://reader033.vdocuments.site/reader033/viewer/2022042601/554f8ce1b4c9052a518b51c9/html5/thumbnails/24.jpg)
Dependency Injection
AutoFac AutoFac MVC Integration
Demo
![Page 25: ZZ BC#7.5 asp.net mvc practice and guideline refresh!](https://reader033.vdocuments.site/reader033/viewer/2022042601/554f8ce1b4c9052a518b51c9/html5/thumbnails/25.jpg)
Security
Windows Authentication Form Authentication Asp.net Membership Provider Controller and Action
o Authorize Attributeo FluentSecurity (robust, fluent syntax)
![Page 26: ZZ BC#7.5 asp.net mvc practice and guideline refresh!](https://reader033.vdocuments.site/reader033/viewer/2022042601/554f8ce1b4c9052a518b51c9/html5/thumbnails/26.jpg)
ASP.NET MVC 4 Preview
New Default project templates New mobile project template Recipes to customize code generation Asynchronous methods
![Page 27: ZZ BC#7.5 asp.net mvc practice and guideline refresh!](https://reader033.vdocuments.site/reader033/viewer/2022042601/554f8ce1b4c9052a518b51c9/html5/thumbnails/27.jpg)
Summary
Bye…