ZZ BC#7 asp.net mvc practice and guideline by NineMvp

Uploaded on


More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads


Total Views
On Slideshare
From Embeds
Number of Embeds



Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide


  • 1. ASP.NET MVCPractice and GuidelineZubzib Black Coffee #7
  • 2. About me • Chalermpon Areepong (Nine) • Microsoft MVP ASP.NET • Work @
  • 3. Session Level 300Audience Skill• HTML• JavaScript• C#• OOP• LINQ
  • 4. Agenda• Basic ASP.NET MVC Programming o Model o View o Controller o Routes• NuGet Package Manager• Entity Framework 4.x Code First Introduce• Application Layer Architecture• Repository Pattern• Dependency Injection
  • 5. Basic of ASP.NET MVCPrograming• Model : o Class Model, Domain Transfer Object (DTO), View Model o Model Validation • Validation Attribute, IValidationObject Interface• View : User Interface o Engine : ASPX ViewEngine, Razor ViewEngine, Etc…… o HTML, CSS, JavaScript• Controller o Control logic, o Data access, o Prepare parameters for view render o call view to render output
  • 6. Basic of ASP.NET MVCPrograming• DEMO
  • 7. Basic of ASP.NET MVC Programing• Routes o 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 o blog/Archive/12-25-2009 “{controller}/{action}/{date}” http://www.zz.com/blog/Archive/12-25-2009 Public ActionResult Archive(DateTime date) o 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)
  • 8. Basic of ASP.NET MVC Programing• Routes DEMO
  • 9. NuGet Package Manager• Library Utility for o Search o Install / Update / Uninstall o Execute library command (PowerShell)• VS - > Menu -> Tools -> Extension Manager -> Find NuGet and install• How to use o Project Reference o Package Manager Console • Install-Package <package name> • Uninstall-Package <package name> • Get-Package
  • 10. NuGet Package Manager• DEMO
  • 11. 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• Demo…..
  • 12. EF 4.x Code First• DEMO
  • 13. MVC UI LibraryAll will render to HTML/ CSS / JavaScript• JQuery UI• Telerik MVC Extension (current not full support HTML5)• Knockout (MVVM)• Kendo UI (HTML5)• Wijmo (HTML5)
  • 14. MVC UI Library• DEMO
  • 15. 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
  • 16. Software Design:Repository Pattern• DEMO
  • 17. Software Design:Core Layer ArchitectureMotivation – Logical layers separate the majorconcerns 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.
  • 18. Software Design:Core Layer Architecture
  • 19. Software Design:Core Layer Architecture• DEMO
  • 20. Dependency Injection• Dependency Injection - one example of IoC design principle.• Also known as the Hollywood Principle o 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 Extensibility o Testability o ReusabilityPS>Not so easy to achieve!
  • 21. Dependency Injection• Demo
  • 22. Summary• ASP.NET MVC• NuGet• EF Code First• JavaScript Framework• AutoFac MVC Integration• Bye…