Fitur baru di MVC 6

Pola Model View Controller adalah salah satu pola desain paling populer yang membantu Anda membangun aplikasi yang lebih mudah untuk diuji dan dipelihara. Kerangka kerja Model View Controller (umumnya dikenal sebagai MVC) mempromosikan kemudahan pengujian dan penggunaan ulang kode. Kerangka kerja ASP.Net MVC dibangun di atas runtime ASP.Net dan mengikuti pola desain MVC. Pada postingan kali ini saya akan membahas pola desain Model View Controller dan juga menyajikan gambaran umum fitur-fitur baru di ASP.Net MVC 6.

Pola desain Model View Controller seperti namanya, terdiri dari tiga komponen utama. Ini termasuk yang berikut:

  1. Model - ini adalah lapisan yang mewakili data aplikasi
  2. View - ini mewakili presentasi atau lapisan antarmuka pengguna
  3. Pengontrol - lapisan ini biasanya berisi logika bisnis aplikasi Anda

Pola desain Model View Controller memungkinkan Anda mengisolasi masalah dan membuat kode aplikasi Anda lebih mudah untuk diuji dan dipelihara.

Versi terbaru dari framework ini adalah MVC 6. Dengan MVC 6, ketergantungan pada System.Web.dll telah dihilangkan - Anda harus menyertakan namespace Microsoft.AspNet.Mvc tidak seperti System.Web.Mvc yang Anda lakukan di versi sebelumnya kerangka ASP.Net MVC. Ketergantungan pada System.Web telah dihapus karena sangat mahal - MVC 6 memberi Anda kerangka kerja yang jauh lebih ramping, waktu startup yang lebih cepat, dan konsumsi sumber daya yang lebih rendah.

Kerangka MVC 6 dirancang untuk awan dan digabungkan sebagai bagian dari runtime ASP.Net 5 yang dioptimalkan awan yang pada gilirannya akan tersedia sebagai bagian dari Visual Studio 2015. Keuntungan memiliki kerangka kerja yang dioptimalkan di awan adalah Anda dapat memiliki kerangka kerja yang berbeda versi CLR berada berdampingan untuk berbagai situs web yang berjalan di awan. Dengan ASP.Net 5, kerangka kerja MVC dan Web API telah disatukan menjadi model pemrograman tunggal. Jadi, MVC, API Web, dan runtime ASP.Net sekarang semuanya digabungkan menjadi satu model pemrograman terpadu. MVC 6 adalah host agnostik - selain memiliki kemampuan untuk dihosting di IIS, MVC 6 juga dapat dihosting sendiri. MVC 6 juga menyediakan dukungan untuk abstraksi OWIN dan menyertakan API Web dan Halaman Web untuk menghilangkan tumpang tindih antara ketiga kerangka kerja ini.

Injeksi dependensi (juga dikenal sebagai Inversion of Control) adalah pola desain perangkat lunak yang digunakan untuk mengimplementasikan objek yang digabungkan secara longgar, dapat diuji, dan dapat digunakan kembali dalam aplikasi Anda. Anda dapat memanfaatkan antarmuka IServiceProvider untuk menambahkan container injeksi dependensi kustom Anda. Antarmuka ini memberikan tingkat abstraksi atas implementasi wadah injeksi ketergantungan yang sebenarnya. Perhatikan bahwa Anda memiliki wadah injeksi ketergantungan default tetapi dengan fungsi terbatas. Anda dapat menggunakan penampung injeksi dependensi default ini jika Anda memerlukan fungsionalitas terbatas. Jika Anda memerlukan fungsionalitas tambahan, Anda dapat membuat wadah injeksi ketergantungan Anda sendiri dan menggunakan antarmuka IServiceProvider untuk menambahkan wadah injeksi ketergantungan khusus yang telah Anda buat.

Tidak seperti rekan-rekan sebelumnya, MVC 6 mendukung sistem konfigurasi berbasis lingkungan - menyebarkan aplikasi MVC 6 di cloud sekarang sederhana. Ketika Anda membuat proyek MVC 6 baru di Visual Studio, kumpulan baru file konfigurasi yang akan Anda amati meliputi berikut ini:

  1. Config.json - ini biasanya berisi konfigurasi aplikasi
  2. Project.json - file ini berisi informasi ketergantungan proyek
  3. Startup.cs - file ini berisi kelas Startup yang pada gilirannya berisi metode Configure
  4. Global.json - file ini berisi informasi tentang referensi proyek

Setelah Anda membuat proyek MVC 6 di Visual Studio, file Startup.cs terlihat seperti ini:

menggunakan Microsoft.Owin;

menggunakan Owin;

[perakitan: OwinStartupAttribute (typeof (.Startup))]

namespace

{

    publik kelas parsial Startup

    {

        Konfigurasi public void (aplikasi IAppBuilder)

        {

        }

    }

}

Cuplikan kode berikut menggambarkan bagaimana metode Config pada kelas Startup terlihat.

Konfigurasi public void (aplikasi IApplicationBuilder)      

    {   

       var configuration = new Configuration (). AddJsonFile ("config.json"). AddEnvironmentVariables ();

    }

Perhatikan parameter IApplicationBuilder (parameter ini dilewatkan oleh host saat aplikasi dimulai) dalam metode Configure. Sebuah instance dari kelas Konfigurasi dibuat dan sumber konfigurasi diteruskan. Anda dapat memiliki sejumlah sumber konfigurasi - setiap sumber konfigurasi dikaitkan dengan penyedia nilai konfigurasi. Pendekatan ini memfasilitasi pemindahan aplikasi Anda ke cloud jika perlu, dengan mulus.

Anda juga dapat menggunakan metode ConfigureServices untuk menambahkan layanan Entity Framework ke wadah layanan. Cuplikan kode berikut menunjukkan bagaimana metode ConfigureServices khas akan terlihat.

public void ConfigureServices (layanan IServiceCollection)

        {

          services.AddEntityFramework (). AddSqlServer (). AddDbContext ();

          services.AddMvc ();

          // Kode lain

        }

Anda juga dapat menentukan informasi rute menggunakan metode ekstensi UseMvc seperti yang ditunjukkan pada cuplikan kode di bawah ini.

            {

                routes.MapRoute (

                    nama: "default",

                    template: "{controller} / {action} / {id}",

                    default: baru {controller = "", action = "Index"});

Perhatikan bahwa AddEntityFramework () dan AddMvc () adalah metode ekstensi yang ditentukan dalam antarmuka IServiceCollection.

Saya akan menulis lebih banyak artikel tentang MVC 6 di posting blog saya selanjutnya di sini. Jadi, pantau terus!