Apa yang baru dalam ASP.NET Core 2.0

Artikel ini menyoroti perubahan paling signifikan dalam ASP.NET Core 2.0, dengan tautan ke dokumentasi yang relevan.

Razor Pages

Razor Pages adalah fitur baru ASP.NET Core MVC yang membuat skenario berfokus pada halaman pengkodian lebih mudah dan lebih produktif.

Untuk informasi selengkapnya, lihat pengantar dan tutorial:

ASP.NET Core metapackage

Metapaket inti ASP.NET baru mencakup semua paket yang dibuat dan didukung oleh tim Core core dan Entity Framework Core ASP.NET, bersama dengan dependensi internal dan pihak ketiga mereka. Anda tidak perlu lagi memilih masing-masing fitur ASP.NET Core berdasarkan paket. Semua fitur disertakan dalam paket Microsoft.AspNetCore.All . Templat default menggunakan paket ini.

Untuk informasi selengkapnya, lihat Metapackage Microsoft.AspNetCore.All untuk ASP.NET Core 2.0.

Penyimpanan Runtime

Aplikasi yang menggunakan Microsoft.AspNetCore.All metapackage secara otomatis memanfaatkan .NET Core Runtime Store baru. Penyimpanan berisi semua aset runtime yang diperlukan untuk menjalankan aplikasi ASP.NET Core 2.0. Saat Anda menggunakan Microsoft.AspNetCore.All metapackage, tidak ada aset dari paket ASP.NET Core NuGet yang direferensikan disebarkan dengan aplikasi karena sudah berada di sistem target. Aset di Runtime Store juga telah dikombinasikan sebelumnya untuk meningkatkan waktu startup aplikasi.

Untuk informasi selengkapnya, lihat Penyimpanan runtime

.NET Standar 2.0

Paket ASP.NET Core 2.0 menargetkan .NET Standard 2.0. Paket dapat direferensikan oleh pustaka .NET Standard 2.0 lainnya, dan dapat berjalan pada implementasi .NET Standard 2.0-compliant dari .NET, termasuk .NET Core 2.0 dan .NET Framework 4.6.1.

Microsoft.AspNetCore.All Metapackage menargetkan .NET Core 2.0 saja, karena dimaksudkan untuk digunakan dengan .NET Core 2.0 Runtime Store.

Pembaruan konfigurasi

Instans IConfiguration ditambahkan ke kontainer layanan secara default di ASP.NET Core 2.0. IConfiguration dalam kontainer layanan memudahkan aplikasi untuk mengambil nilai konfigurasi dari kontainer.

Untuk informasi tentang status dokumentasi yang direncanakan, lihat masalah GitHub.

Pembaruan pengelogan

Dalam ASP.NET Core 2.0, pengelogan dimasukkan ke dalam sistem injeksi dependensi (DI) secara default. Anda menambahkan penyedia dan mengonfigurasi pemfilteran dalam Program.cs file alih-alih dalam Startup.cs file. Dan default ILoggerFactory mendukung pemfilteran dengan cara yang memungkinkan Anda menggunakan satu pendekatan fleksibel untuk pemfilteran lintas penyedia dan pemfilteran penyedia tertentu.

Untuk informasi selengkapnya, lihat Pengenalan Pengelogan.

Pembaruan autentikasi

Model autentikasi baru memudahkan konfigurasi autentikasi untuk aplikasi menggunakan DI.

Templat baru tersedia untuk mengonfigurasi autentikasi untuk aplikasi web dan API web menggunakan Azure AD B2C.

Untuk informasi tentang status dokumentasi yang direncanakan, lihat masalah GitHub.

Identity Update

Kami telah mempermudah untuk membangun API web yang aman menggunakan Identity di ASP.NET Core 2.0. Anda dapat memperoleh token akses untuk mengakses API web Anda menggunakan Microsoft Authentication Library (MSAL).

Untuk informasi selengkapnya tentang perubahan autentikasi di 2.0, lihat sumber daya berikut ini:

Templat SPA

Templat proyek Aplikasi Halaman Tunggal (SPA) untuk Angular, Aurelia, Knockout.js, React.js, dan React.js dengan Redux tersedia. Templat Angular telah diperbarui ke Angular 4. Templat Angular dan React tersedia secara default; untuk informasi tentang cara mendapatkan templat lain, lihat Membuat proyek SPA baru. Untuk informasi tentang cara membangun SPA di ASP.NET Core, lihat Fitur yang dijelaskan dalam artikel ini usang pada ASP.NET Core 3.0.

Peningkatan Kestrel

Server Kestrel web memiliki fitur baru yang membuatnya lebih cocok sebagai server yang terhubung ke Internet. Sejumlah opsi konfigurasi batasan server ditambahkan di KestrelServerOptions properti baru Limits kelas. Tambahkan batasan untuk hal berikut:

  • Koneksi klien maksimum
  • Ukuran isi permintaan maksimum
  • Tingkat data isi permintaan minimum

Untuk informasi selengkapnya, lihat Kestrel implementasi server web di ASP.NET Core.

WebListener diganti namanya menjadi HTTP.sys

Paket Microsoft.AspNetCore.Server.WebListener dan Microsoft.Net.Http.Server telah digabungkan ke dalam paket Microsoft.AspNetCore.Server.HttpSysbaru . Namespace telah diperbarui agar cocok.

Untuk informasi lebih lanjut, lihat implementasi server web HTTP.sys di ASP.NET Core.

Dukungan header HTTP yang disempurnakan

Saat menggunakan MVC untuk mengirimkan FileStreamResult atau FileContentResult, Anda sekarang memiliki opsi untuk mengatur ETag atau tanggal pada konten yang LastModified Anda kirimkan. Anda dapat mengatur nilai-nilai ini pada konten yang dikembalikan dengan kode yang mirip dengan yang berikut ini:

var data = Encoding.UTF8.GetBytes("This is a sample text from a binary array");
var entityTag = new EntityTagHeaderValue("\"MyCalculatedEtagValue\"");
return File(data, "text/plain", "downloadName.txt", lastModified: DateTime.UtcNow.AddSeconds(-5), entityTag: entityTag);

File yang dikembalikan kepada pengunjung Anda memiliki header HTTP yang sesuai untuk ETag nilai dan LastModified .

Jika pengunjung aplikasi meminta konten dengan header Permintaan Rentang, ASP.NET Core mengenali permintaan dan menangani header. Jika konten yang diminta dapat dikirim sebagian, ASP.NET Core dengan tepat melompati dan mengembalikan hanya sekumpulan byte yang diminta. Anda tidak perlu menulis penangan khusus apa pun ke dalam metode Anda untuk beradaptasi atau menangani fitur ini; secara otomatis ditangani untuk Anda.

Memulai hosting dan Application Insights

Lingkungan hosting sekarang dapat menyuntikkan dependensi paket tambahan dan menjalankan kode selama startup aplikasi, tanpa aplikasi perlu secara eksplisit mengambil dependensi atau memanggil metode apa pun. Fitur ini dapat digunakan untuk memungkinkan lingkungan tertentu untuk "menyalakan" fitur yang unik untuk lingkungan tersebut tanpa perlu diketahui aplikasi sebelumnya.

Di ASP.NET Core 2.0, fitur ini digunakan untuk mengaktifkan diagnostik Application Insights secara otomatis saat men-debug di Visual Studio dan (setelah ikut serta) saat berjalan di Azure App Services. Akibatnya, templat proyek tidak lagi menambahkan paket dan kode Application Insights secara default.

Untuk informasi tentang status dokumentasi yang direncanakan, lihat masalah GitHub.

Penggunaan otomatis token anti-pemalsuan

ASP.NET Core selalu membantu konten pengodean HTML secara default, tetapi dengan versi baru, langkah tambahan diambil untuk membantu mencegah serangan pemalsuan permintaan lintas situs (XSRF). ASP.NET Core sekarang akan memancarkan token anti-pemalsuan secara default dan memvalidasinya pada tindakan post formulir dan halaman tanpa konfigurasi tambahan.

Untuk informasi selengkapnya, lihat Mencegah serangan Pemalsuan Permintaan Antar Situs (XSRF/CSRF) di ASP.NET Core.

Prakomprekomilasi otomatis

Razor lihat prakompilasi diaktifkan selama penerbitan secara default, mengurangi ukuran output penerbitan dan waktu mulai aplikasi.

Untuk informasi selengkapnya, lihat Razor melihat kompilasi dan prakomprekomilasi di ASP.NET Core.

Razor dukungan untuk C# 7.1

Mesin Razor tampilan telah diperbarui untuk bekerja dengan kompilator Roslyn baru. Itu termasuk dukungan untuk fitur C# 7.1 seperti Ekspresi Default, Nama Tuple Yang Disimpulkan, dan Pencocokan Pola dengan Generik. Untuk menggunakan C# 7.1 di proyek Anda, tambahkan properti berikut di file proyek Anda lalu muat ulang solusinya:

<LangVersion>latest</LangVersion>

Untuk informasi tentang status fitur C# 7.1, lihat repositori Roslyn GitHub.

Pembaruan dokumentasi lainnya untuk 2.0

Panduan migrasi

Untuk panduan tentang cara memigrasikan aplikasi ASP.NET Core 1.x ke ASP.NET Core 2.0, lihat sumber daya berikut:

Informasi Tambahan

Untuk daftar lengkap perubahan, lihat Catatan Rilis ASP.NET Core 2.0.

Untuk terhubung dengan kemajuan dan rencana tim pengembangan ASP.NET Core, sesuaikan dengan ASP.NET Community Standup.