Tag Archives: MVP Summit

ASP.NET MVC6 – Zápisky z MVP Summitu 2014 (non-NDA session)

Protože session o MVC6 na Microsoft MVP Summitu není pod NDA, vystavuji rovnou svoje neformální „raw“ zápisky.

Základní info

MVC6 = MVC + WebAPI + Web Pages (unifikace do jednoho společného API)

Build on ASP.NET 5

  • poběží na .NET core s jeho podporou side-by-side verzování
  • cross-platform
  • IIS/self-hosted

nativní Dependency Injection

  • unified abstraction

plně Async

command-line scaffolding

Enhanced Razor

  • @inject, @using, @inherits
  • async views
  • flush pointes
  • tag helpers

Get Started

project.json

přidat do sekce dependencies

  • „Microsoft.AspNet.Mvc“: „6.0.0-beta1“

Startup.cs

Configure(IApplicationBuilder app) – app.UseMvc(routes => routes.MapRoute(…))

ConfigureServices(IServiceCollection services)

services.AddMvc()

services.Configure<MvcOptions>(options => …)

  • options.Filters
  • options.InputFormatters
  • options.ModelViewBinders
  • options.OutputFormatters
  • options.ValueProviderFactories

Routes

  • default routes, constratints: „{area:exists}/{controller=HomeControler}/{action=Index}/{id?int?}“
  • all routes fall through to next route, if the action is not found
  • attribute routing enabled by default [Route], [HttpXxx], concat route pro controller a action, inherited
  • route tokes [controller], [action], …

Samples

Areas

[Area] atribut na controlleru, nemusí být ve složce Area

stává se pouze informací pro routing, kde se to musí potkat s {area}

Model binding, formatting

[FromBody[ – formatters

[FromQuery], [FromRoute], [FromForm], [FromHeader] – restrikce

[Produces] na action – restrikce media types výstupu

WebAPI

shim-package pro podporu legacy WebAPI projektů (např. konvence pojmenování action–method, atp.)

View Components !!

partial view s controller action

vrací View nebo formatted data

Async, DI

Dependency Injection

POCO controller bez dědění Controller třídy

[Activate] atribut k property-based injection, např [Activate] public ActionContext ActionContext

service filters: [ServiceFilter(typeof(MyFilter)]

type filters: [TypeFilter(typeof(MyFilter)]

Application Model, conventions

described through ActionDescriptorCollection

tweak conventions (ála EF)

  • IApplicationModelConvention
  • IControllerModelConvention

MVP Summit 2013 – Day 1 – ASP.NET – Notes

…non-NDA pracovní poznámky z Microsoft MVP Summitu 2013, první den, ASP.NET tématika.

Tooling

  • Web Essentials 2012 & ASP.NET and Web Tools 2012.2
    • super LESS editor (včetně generování minified verze, atp.)
      • Trik: pokud se soubor pojmenuje s podtržítkem na začátku, nekompiluje se do .css (hodí se např. pro include soubory s variables, které nemají mít vlastní .css výstup).
    • podstatně vylepšené Intellisense
    • spousta prima udělátek do webových editorů
    • ZenCoding – pozoruhodná syntaxe pro rychlopsaní kódu
    • code-snippets v .css

ASP.NET Core

  • Friendly URLs 1.0.0 – released live this morning
    • Adds a mobile master page and a view switcher user control to enable switching between mobile and desktop views using ASP.NET Friendly URLs.
  • ScriptManager.EnableCdnFallback
  • ControlBuilderInterceptor – cesta, jakou je možné ovlivnit C# code generovaný control-builderem z markup-kódu při compile-time
    • override OnProcessGeneratedCode()

Windows Azure Web Sites

  • Download Publish Profile – možnost stáhnout .PublishSettings z Azure Portalu pro Visual Studio