There’s some really cool stuff going on on the ASP.NET and Web Tools
team. The team has been pushing open stuff at Microsoft for a few years
now and we've joined forces with the amazing innovators from the .NET
core team and beyond! Some of these features are 10+ years in the making
from a host of technical wizards across many teams and disciplines.
Today we’re announcing a preview (read: alpha) of the next generation of .NET on the Server.
You may have heard about some of these announcements at Build:
Nextgen JIT - All new optimized JITter for the latest processors
ASP.NET
vNext will take things to the next level. Today, you run ASP.NET using
the same CLR that desktop apps use. We’re adding a cloud-optimized (my
cloud, your cloud, their cloud - server stuff) version optimized for
server scenarios like low-memory and high-throughput.
ASP.NET vNext will let you deploy your own version of the .NET Framework on an app-by-app-basis.
One app with new libraries can’t break an app next door with a
different version. Different apps can even have their own
cloud-optimized CLR of their own version. The CLR and cloud-optimized libraries are NuGet packages!
In
this screenshot you can see build 418 and build 420 of the new
framework (note how small they are) in my packages folder. These NuGet
packages include the complete "Core CLR" and the cloud-optimized .NET
Framework. You can deploy your own CLR and .NET Framework with your app as a NuGet.
I
can run ASP.NET vNext apps within Visual Studio, of course, and within
IIS, but I can also easily "self-host" them from the command line or
within my own application. This alpha includes command line tools for
running and managing ASP.NET vNext apps.
The "kvm" command
allows me to control my environment. I run "kvm list" to see what
versions of the ASP.NET vNext are available. I can switch between them
on a per-environment basis:
C:\>kvm list
Active Version Runtime Architecture Location
------ ------- ------- ------------ --------
0.1-alpha-build-0418 svr50 x86 C:\Users\scottha\.kre\packages
* 0.1-alpha-build-0418 svrc50 x86 C:\Users\scottha\.kre\packages
0.1-alpha-build-0420 svr50 x86 C:\Users\scottha\.kre\packages
0.1-alpha-build-0420 svrc50 x86 C:\Users\scottha\.kre\packages
I set the active version with "kvm use version" and opened two command prompts, setting different CLR and .NET versions in each.
I’m running the same app twice, once per command prompt. I put version 420 on port 5420 and version 418 on port 5418.
This little app below outputs the current running version of ASP.NET vNext. Here I’m running the same app at the same time under different builds of the next generation of ASP.NET
The project system is also changing - we’re integrating
packages.config, NuGet specifications (nuspec), and project files
(csprojs) into a unified view of your project dependencies expressed in a project.json file.
NuGet packages and class libraries are treated the same. You get full
intellisense in the project.json file and NuGet packages come down
automatically and transparently. Even better, let’s say NuGet package
Foo.Bar has a bug but you’ve only got the NuGet package. You can make a
folder called Foo.Bar in our local project and put the source via "git
clone" in that folder. This is great for open source projects. That local version overrides the NuGet, allowing you to easily patch bugs locally in libraries while you wait for a new release. When a new fixed NuGet-distributed version shows up, update the version and delete the local source.
One of the great aspects of environments like node or rails is that
they are "no compile." Just change some code and hit refresh. With the
next version of ASP.NET you get the power and throughput of the .NET runtime plus the "Roslyn" compiler-as-a-service for a "no-compile compile." That
means means during development time you can just change your C# classes
and hit Refresh in the browser. It's the power of .NET with the
dynamism of a refresh-and-go development experience.
NOTE: This isn't ASP.NET Websites, or Razor View
compilation - this is the whole thing, compiled in memory. You can use
Visual Studio for development, or text editors like Sublime, or freakin'
Notepad. (Of course, if you want assemblies on disk, you can do that
too.)
See my web app’s bin folder in the screenshot below? There’s no assemblies in there because the assemblies never exist on the disk. It’s
actually faster and easier to have the compiler do all the work in
memory. This way you don’t have to read source, write out dlls, then
read the dlls in again. (That DLL is part of the magic that makes it all
happen.)
If you like, when your web projects build for deployment, they can
also build as NuGet packages. You publish your project and every needed
dependency comes along.
You’ll be able to put ASP.NET vNext on your existing servers, any hoster, and Azure of course.
You can opt in or out of the cloud optimized framework for
compatibility. The next version of ASP.NET is modular and all about
choice. your choice of framework, your choice of runtime, your choice of
operating system, your choice of text editor.
ASP.NET vNext is:
Cloud and server-optimized
ASP.NET MVC and Web API have been unified into a single programming model
No-compile developer experience
Dependency injection out of the box
Side by side - deploy the runtime and framework with your application
NuGet everything - even the runtime itself
All Open Source via the .NET Foundation and takes contributions
Oh, and by the way
ASP.NET vNext (and Rosyln) runs on Mono, on both Mac and Linux
today. While Mono isn't a project from Microsoft, we'll collaborate with
the Mono team, plus Mono will be added to our test matrix. It's our
aspiration that it "just work."
There will be lots of new information and details coming out over the next several months!
Source:
http://www.hanselman.com/
Published By
S.G.Godwin Dinesh.MCA Sr.System Administrator
No comments:
Post a Comment