Pengontrol Inti ASP.NET, Tampilan dan Model Tampilan di DLL Terpisah

Saya memiliki pengaturan situs web ASP Core MVC menggunakan Fitur, jadi pada dasarnya masing-masing pengontrol dan tampilan terkait serta model tampilan berada dalam satu folder. Saya ingin memperluas ini agar setiap Fitur dalam DLL terpisah. Jadi misalnya, saya akan memiliki dll "Akun" yang memiliki AccountController dan Tampilan terkait dan saya bahkan akan memiliki dll "Berbagi" yang memiliki tampilan bersama seperti _Layout.cshtml

Untuk mengilustrasikan apa yang saya coba lakukan, gambar di bawah ini diambil dari tutorial ini. Saya ingin setiap kotak merah menjadi dll yang terpisah.

kotak merah di dll terpisah

Adakah yang tahu cara melakukan ini?


person Zeus82    schedule 22.12.2017    source sumber
comment
Sesuatu yang perlu Anda baca: en.wikipedia.org/wiki/KISS_principle   -  person R. Richards    schedule 23.12.2017
comment
Jadi apa masalahmu? Ada postingan dokumentasi tentang penemuan semacam itu: Aplikasi Bagian di ASP.NET Core   -  person Set    schedule 24.12.2017
comment
Folder Fitur adalah ide bagus. Tapi proyek per fitur, akan menambah banyak pekerjaan. Jika Anda memerlukan satu Fitur untuk menjadi layanan mikro. Saya sarankan mengekstraknya saat Anda membutuhkannya. Saya sebenarnya berusaha untuk menyebarkan semuanya sebagai satu dll jika memungkinkan.   -  person Steven T. Cramer    schedule 06.08.2018


Jawaban (1)


Coba yang berikut ini:

  1. Buat aplikasi ASP.NET Core baru yang hanya berisi satu folder bernama Area.
  2. Di dalam folder Areas, tambahkan folder baru (nama fitur). Misalnya, Ninja.
  3. Tambahkan referensi ke proyek ini ke dalam proyek Web utama.
  4. Konfigurasikan aplikasi Web untuk menangani Area di Rute, seperti ini:

    app.UseMvc(routes =>
    {
        routes.MapRoute(
            name: "areaRoute", 
            template: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
    
        routes.MapRoute(
            name: "default",
            template: "{controller=Home}/{action=Index}/{id?}");
    });
    
person Bill    schedule 17.09.2018