Đỉnh NGUYỄN

life's a journey not a destination

[VS2015] – Các tính năng mới trong Visual Studio 2015 Preview và VS2013 Update 4

Leave a comment


ASP.NET 5 Preview runtime

Visual Studio hỗ trợ tạo và phát triển ASP.NET 5 Preview apps. ASP.NET 5 Preview là .NET stack xây dựng các ứng dụng web hiện đại cho cloud và on-premises server.

·         ASP.NET MVC và Web API được gom vào 1 mô hình lập trình đơn nhất.

·         Phát triển không cần biên dịch

·         Cấu hình môi trường cho các chuyển đổi đến cloud

·         Dependency injection out-of-the-box.

·         NuGet tất cả mọi thứ, thậm chí chính runtime của nó.

·         Chạy trong IIS, hoặc self-hosted trong tiến trình

·         Tất cả mã nguồn mở thông qua .NET Foundation, đóng góp trong GitHub.

·         ASP.NET 5 chạy trên Windows với .NET Framework hoặc .NET Core.

·         .NET Core là 1 runtime mới được tối ưu hóa cho cloud.

·         ASP.NET 5 chạy trên OS X và Linux với Mono runtime.

Visual Studio 2015 Preview gồm Beta1 runtime của ASP.NET 5.

Một số liên kết hữu ích để bắt đầu với ASP.NET 5 Preview.

·         Introduction: https://github.com/aspnet/Home

·         Documentation: https://github.com/aspnet/Home/wiki

·         Music Store Sample: https://github.com/aspnet/musicstore

ASP.NET 5 Preview tooling features

Để tối ưu hóa việc phát triển ASP.NET 5 Preview, xem các tính năng mới khi tạo project gồm các template mới, project system mới, combined IntelliSense hỗ trợ multi-framework targeting, và NuGet package manager mới.

Template

ASP.NET 5 Template

“ASP.NET 5 Empty” và “ASP.NET 5 Starter Web” template được thêm vào hộp thoại “New ASP.NET Project”.

clip_image001

“ASP.NET 5 Class Library” và “ASP.NET 5 Console Application” template được thêm vào “New Project” dialog dưới “Visual C#/Web”.

clip_image002

ASP.NET 5 Template dùng project structure mới

ASP.NET 5 project structure chứa tập tin cấu hình project.json, và tập tin project “.kproj”. ASP.NET 5 project template dùng project layout mới, tạo 1 project folder dưới <solutionFolder>\src, và dùng tập tin global.json để chỉ định project preference folder.

Global.json chứa “source”:[“src”], chỉ ra folder “src” làm parent folder của project reference. Mặc định, project-to-project preference lookup sẽ dùng parent directory, cộng với các thư mục được định nghĩa global.json. Ví dụ, chúng ta có solution structure và project.json dependency:

 

Solution1\global.json

Content: {" sources": ["src"] }

Solution1\src\WebApp1

Possible Dependencies: "ClassLib1 " : ""

Solution1\src\ClassLib1

Possible Dependencies: "WebApp1" : ""

Solution1\test\TestProj1

Possible Dependencies: "WebApp1" : "", "ClassLib1 " : "", "TestProj2 " : ""

Solution1\test\TestProj2

Possible Dependencies: "WebApp1" : "", "ClassLib1 " : "", "TestProj1 " : ""

 

 

ASP.NET 5 application template chứa target framework “aspnet50” và “aspnetcore50” được chỉ định trong project.json. Chúng hiển thị như “ASP.NET 5.0” và “ASP.NET Core 5.0” dưới Reference của solution explorer.

clip_image003

ASP.NET 5 web project template

ASP.NET 5 web project template chứa layout được tối ưu hóa cho cả static content và package restore từ NPMBower. Template đặt static content dưới wwwroot folder được xác định bởi thành phần webroot của project.json.

“ASP.NET 5 Starter Web” template chứa bower.json để dùng với Bower để lấy frontend package, package.json dùng với NPM để lấy Grunt, và gruntfile.js để quản lý task được định nghĩa bởi project.json script. File project.json của template chứa “postrestore” và “prepare” script để dùng NPM, cũng như Grunt và Bower để cài đặt các package cần thiết cho project trong khi build. Nó cũng dùng thành phần “packExclude” để định nghĩa các folder và file sẽ được excluded trong suốt “KPM pack”.

clip_image004

ASP.NET 5 Starter Web template và EF

ASP.NET 5 Starter Web template chứa code first migration cho Entity Framework 7.0.0-beta.

Bạn có thể dùng k command từ command line để thực hiện Entity Framework code first migration nếu bạn chỉ định “ef”:”EntityFramework.Commands” là 1 lệnh của project.json. Ví dụ:

“k ef migration” từ command line sẽ trả về:

 

Usage: ef migration [options] [command]

Options:

-h|–help Show help information

Commands:

add Add a new migration

apply Apply migrations to the database

list List the migrations

script Generate a SQL script from migrations

 

Sample commands:

 

k ef migration add MyMigrationWithOnly1ContextInCode

k ef migration add MyMigration –context MyContext

        k ef migration script –context MyContext

        k ef migration apply –context MyContext

 

“ASP.NET 5 Stater Web” template và command line scaffolding

Bạn có thể dùng command line scaffolding bởi vì “gen”:”Microsoft.Framework.CodeGeneration” được chỉ định là 1 thành phần của project.json.

Projects and Builds

Project file không còn gồm các project directory item và reference

ASP.NET 5 project dùng <projectName>.kproj làm tập tin project. File .kproj không gồm bất kỳ tập tin nào trong thư mục hiện tại hay các thư mục con.

Project.json được dùng định nghĩa project information

Visual Studio dùng tập tin project.json cho reference và package dependencies, version definition, framework configuration, compile option, build event, package creation meta-data, và run command,… Bằng cách này, project được chỉnh sửa để chạy trên Linux và Mac OS X mà không có Visual Studio.

Dependencies node cho Bower và NPM dependencies

Solution Explorer cho ASP.NET 5 Web Application có 1 Dependencies node để hiển thị Bower và NPM dependencies. Bower dependencies là từ bower.json trong project folder. NPM dependencies là từ package.json trong project folder.

Trong Dependencies node, dưới Bower và NPM node, bạn có thể uninstall 1 package thông qua context menu, nó sẽ được loại bỏ khỏi tập tin JSON.

clip_image005

References node hiển thị tất cả framework được định nghĩa trong project.json

Trong solution explorer, References node   hiển thị tất cả framework được định nghĩa trong project.json.

Project’s property page được dùng định nghĩa runtime info

Property Page dùng chỉ định KRE target version, debug target, và binary và NuGet package sẽ được tạo ra khi Visual Studio build.

clip_image006

clip_image007

clip_image008

Fast build time với Visual Studio

Visual Studio dùng Roslyn engine để biên dịch ASP.NET 5 project lúc design time. Vì thế project đã được biên dịch trước khi bạn dùng “build”. Trong Visual Studio 2015 Preview, Visual Studio đơn giản truyền các output của design time compiler đến build request. Điều này tránh việc chờ đợi build và tăng hiệu suất khi build, run, hoặc debug.

Hỗ trợ NuGet Package Manager

Visual Studio hỗ trợ NuGet Package Manager và NuGet Package Console.

Hỗ trợ xUnit test trong Text Explorer

Visual Studio hỗ trợ chạy và debug cho ASP.NET 5 xUnit test thông qua test explorer. Tất cả những gì cần làm là thêm xUnit dependencies và test command vào project.json như bên dưới (GHI CHÚ: để cài đặt xUnit package, cần phải thêm https://www.myget.org/F/aspnetvnext/api/v2 vào NuGet package source).

 

"dependencies": {

"Xunit.KRunner": "1.0.0-beta1"

},

"commands": {

"test": "Xunit.KRunner"

},

 

clip_image009

Từ command line, dùng k test để lấy running result, k.cmd là từ targeting hiện tại K Runtime Environment.

clip_image010

Hỗ trợ Task Runner Explorer

Task Runner Explorer được tích hợp vào Visual Studio, có thể enabled bằng cách chọn context menu của gruntfile.js trong Task Runner Explorer, hoặc thông qua menu View>Other Windows>Task Runner Explorer.

clip_image011

IntelliSense và Error list

IntelliSense có khả năng chỉ ra framework được hỗ trợ và không.

clip_image012

Build error hiển thị lỗi liên quan đến target framework

clip_image013

NuGet Package Manager

NuGet Package Manager được viết lại dùng tool window style và có thể được xem trên mỗi project và solution. Mỗi project có thể mở 1 NuGet Package Manager window tại 1 thời điểm.

clip_image014

(Theo www.asp.net)

Advertisements

Author: dinhnn

Senior software developer, a technical leader. You can be reached at via email to dinhnguyenngoc@gmail.com, via my blog at dinhnguyenngoc.wordpress.com, and on Twitter @dinhnguyenngoc.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s