Saya mencoba untuk mencari tahu apa hubungan proyek "ASP.NET 5 Class Library" (vNext) C # dengan ASP.NET. Mengapa membuat proyek dengan template ini daripada hanya proyek "Perpustakaan Kelas" C # biasa?
Saya menyukai fitur-fitur baru, seperti file project.json daripada file .csproj dll, tetapi tampaknya tidak benar untuk membuat pustaka kelas "ASP.NET" ketika proyek tidak ada hubungannya dengan ASP.NET atau IIS dll. Ini hanya sebuah proyek untuk lapisan logika bisnis. Sebuah situs web WebApi ASP.NET pada akhirnya akan mereferensikan proyek ini, tetapi itu tidak relevan pada saat ini.
Apakah itu hanya nama yang buruk? Haruskah itu hanya disebut "Perpustakaan Kelas vNext" dan tidak menggunakan ikon yang terlihat seperti aplikasi web?
Jawaban:
Mengapa membuat proyek Perpustakaan Kelas ASP.NET 5?
Ada sejumlah manfaat proyek Perpustakaan Kelas ASP.NET 5 ( .kproj) dibandingkan proyek Perpustakaan Kelas ( .csproj):
aspnet50
,aspnetcore50
,net45
, dan berbagai variasi perpustakaan kelas portabel lainnya. Ini termasuk dukungan Visual Studio yang kaya untuk Intellisense untuk memberi tahu Anda API mana yang tersedia untuk target mana.Anda dapat mereferensikan proyek * .csproj dari proyek * .kproj (ini hanya menjadi jauh lebih mudah dengan pratinjau baru Visual Studio 2015), tetapi selalu memungkinkan dengan beberapa langkah manual.
Mengapa nama tersebut memiliki "ASP.NET" di dalamnya?
Sejauh namanya, itu adalah peninggalan sejarah yang akan segera dibenahi. Jenis proyek baru berguna jauh melampaui aplikasi ASP.NET 5. Berharap untuk melihat nama baru di pratinjau Visual Studio masa depan:
Perbarui 5/13/2015
Dengan rilis Visual Studio 2015 RC Anda dapat melihat nama template proyek yang diperbarui:
Ini menggunakan
project.json
file dan .NET Execution Environment (DNX) untuk membangun, menjalankan, dan mengemas (ke dalam paket NuGet) proyek.Template proyek ini terus muncul di dialog Proyek Baru di bawah node "Web", tetapi sekarang juga muncul di node "Visual C #" utama juga.
sumber
Ini adalah pengamatan yang menarik, template saat ini akan menghasilkan perpustakaan kelas yang kompatibel dengan runtime ASP.NET 5. Anda tidak mendapatkannya dari perpustakaan kelas C # normal.
Saya mengajukan masalah berikut untuk melacak pertanyaan desain ini - https://github.com/aspnet/Home/issues/281
sumber
Dari apa yang saya pahami, satu manfaat adalah bahwa produk akhir proyek Perpustakaan Kelas ASP.NET 5 adalah paket NuGet (bukan hanya rakitan .dll).
Anda dapat membuat paket NuGet dengan mengklik kanan proyek di Visual Studio 2015 dan memilih opsi "Publikasikan ...". Atau Anda dapat menggunakan "paket KPM" di baris perintah.
Selain itu, Anda memiliki kemampuan untuk menggunakan runtime ASP.NET 5 Core sehingga perpustakaan Anda dapat berjalan lintas platform.
sumber