You are on page 1of 15

MTUG(Javier Caceres);

Sr Solutions Architect
http://jacace.wordpress.com/ (en & es)

ASP.NET & Open Standards


OWIN: Microsoft has embraced open standard for constructing and
assembling web components to allow you to assemble flexible web
stacks as you need them.

ASP.NET & Open Source


ASP.NET MVC vNext is OWIN compliant, which means that you can plug
components in all parts of the pipeline (e.g. authentication from different
providers) - it is not tied to Windows
ASP.Net web stack is open source:
http://aspnetwebstack.codeplex.com/SourceControl/latest#src/System.Web.
Mvc/ControllerBase.cs
Starting point for ASP.NET 5: https://github.com/aspnet/home
The following popular framework are open source too:

Entity Framework
MVC
SignalR
KRuntime

New features (1 out of 5)


Built-in support for third-party tools: your projects automatically take
advantage of modern client-side utilities like
Bower or npm: package managers
Grunt or gulp: to automate repetitive tasks like minification, compilation, unit
testing, linting (warns against questionable coding practices)

All static files go to the wwwroot folder


MVC 6 will merge Web API + Web Pages
Everything is being moved to NuGet (even the CLR, can be deploy
within the website)

Demo #1
NuGet packages and
class libraries are
treated the same:
bower.json: clientside packages
project.json: NuGet
packages
package.json: npm
packages
gruntfile.js. configures
Grunt tasks

New project system (2 out of 5)

.csproj
files

System.
Web

2nd largest
assembly in
the base
class library
(BCL) ~5mb

New project system (3 out of 5)


ASP.NET 5 gives you greater flexibility by being
able to run on different runtimes:
Full .NET CLR
Core CLR (cloud/server-optimized runtime):
use the components you need using NuGet
packages (~11 megabytes)
One app with new libraries cant break an app
next door with a different version
Cross-platform runtime for:
Linux: Mono
Mac OS X: at the moment you can
development ASP.NET vNext apps on MAC
using the Kestrel web server.

K10: Core CLR & Compilation (4 out of 5)


Roslyn recompiles on the fly.
The assemblies never exist on the disk. Its actually faster and easier to have
the compiler do all the work in memory.
The code is compiled N times depending on the number of configurations
It does not touch the registry, GAC,
Dependency Injection through the entire stack.
kre: self-contained ASP.NET vNext runtime environment
kvm: K version manager to install different versions of the ASP.NET vNext
runtime and switch between them:
C:\WINDOWS\system32>@powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object
net.webclient).DownloadString('https://raw.githubusercontent.com/aspnet/Home/master/kvminstall.ps1'))"

MS .NET NuGet PCLs


Released (5 out of 5)
Async for .NET Framework 4, SL 4
and 5, and WP 7.5 and 8
Microsoft ASP.NET SignalR .NET
Client
Microsoft BCL Build Components
Microsoft BCL Portability Pack
Microsoft Composition
Microsoft Compression
Microsoft HTTP Client Libraries
Microsoft Immutable Collections
ODataLib
Some libs arent fully portable today,
like EF and all of the Microsoft
AspNet packages. Because they
target the full .NET Framework

Demo #2
Deploy your own
version of the .NET
Framework on an appby-app-basis

Demo #2
Deploy your own
version of the .NET
Framework on an appby-app-basis

I have lots of dreams!


One day we won't need to run
creepy commands

aspnet_regiis -i
One day we wont need to
document / provide workarounds
One day REST API security will be
provided out of the box

A new old friend: Dependency Injection


Dependency Inversion Principle: is a practice; its the D in the
S.O.L.I.D. mnemonic acronym. It suggests us to depend on abstractions,
no specific types.
We can favour loosely coupling using any of the following design
patterns: PlugIn, Adapter or Inversion of Control / Dependency
Injection.
Dependency Injection is about injecting dependencies into dependent
objects.
DI is similar to the Hollywood principle: "don't call us, we'll call you
ASP.NET vNext is DI-friendly and includes a minimalistic DI container.
You can also Bring Your Own Container.

How do you you use DI? Which


Framework do you use?

Donald E. Knuth
Donald defined an
algorithm that
creates a sequence
of pseudorandomized
number

You might also like