ASP.NET MVC Dependency Injection Dengan Unity

Sudah pernah saya tulis sebelumnya tulisan membahas konsep dasar dari Dependency Injection di sini. Semoga pembaca bisa memahaminya dan siap untuk menerapkannya pada aplikasi yang dibuat. Sekarang pada tulisan ini pembaca akan belajar bagaimana menerapkan DI pada ASP.NET MVC 4 menggunakan Unity.

MVC DI Unity

Pada MVC walaupun sudah ada pemisahan fungsi antara Model dan Controller namun Controller bergantung pada Model untuk mengeksekusi logika bisnis. Kode di bawah ini tidak akan asing lagi

Terlihat kalau BookController bergantung pada BookRepository.
Artikel ini akan menjelaskan cara untuk men-decouple layer model pada layer controller dengan bantuan Unity.

Membuat Project

Langkah pertama buat projectnya terlebih dahulu. Di sini saya menggunakan Visual Studio 2013. Visual Studio 2012 juga gak akan bermasalah.

1. Create Project

2. Basic Template

Instal Unity

Pasang Unity.Mvc4 pada project menggunakan Package Manager Console (Tools->Library Package Manager->Package Manager Console)

3. PMC

Bisa juga lewat GUI dengan cara klik kanan pada node project di Solution Explorer dan pilih Manage Nuget Pakcages.. kemudian search Unity.Mvc4 dan klik install.

Ketika sudah terpasang maka project akan memiliki 2 buah reference baru dan sebuah file baru dengan nama Bootstrapper.cs

4. Unity References

Isi dari file Bootstrapper.cs seperti di bawah ini

Repository

Supaya sederhana maka pada repository saya hanya menggunakan in memory data. Nantinya repository ini yang akan di-inject ke controller.

Buat dahulu kelas modelnya pada folder Models

Tambahkan interface IBookRepository pada folder Repository (buat terlebih dahulu folder ini)

Buat sekalian implementasinya BookRepository

Register Dependency

Supaya repository dapat di-inject ke dalam controller maka kita perlu mendaftarkannya terlebih dahulu pada file Bootstrapper.cs tadi. Tambahkan sebaris kode yang saya tandai di bawah ini

Inject Repository ke Controller

Sekarang kita sudah siap untuk meng-inject repository ke dalam controller menggunakan constructor injection.

Buat kelas BookController pada folder Controllers

Setting Global.asax.cs

Langkah terakhir supaya DI dapat berjalan adalah menginisialiasi Bootstrapper tadi dengan cara menambahkan sebaris kode yang saya tandai ini pada file Global.asax.cs

Jalankan

Running aplikasi dan see how everything is good, running well 😀

5. running

Facebook Comments
 

Agung Setiawan

Halo, perkenalkan saya Agung Setiawan. Seorang software developer, penulis buku, blogger, gunpla builder, tech educator dan yang paling penting console gamer.

 
Halo, perkenalkan saya Agung Setiawan.
Seorang software developer, penulis buku, blogger, gunpla builder, tech educator dan yang paling penting console gamer.
Selain di blog ini saya cukp aktif juga main di Twitter @agungsetiawanmu dan Facebook serta Instagram.
Mau belajar programming bareng? Cek YouTube channel saya.
Mau belajar Vim bareng saya?

Leave a Reply

Your email address will not be published. Required fields are marked *