Tur Mini ASP.NET 5 : Bagian 2 – Startup

Pada tulisan sebelumnya kita sudah belajar struktur terbaru dari project ASP.NET 5. Selanjutnya pada tulisan yang merupakan seri kedua ini saya akan menjelaskan mengenai apa yang sudah saya pahami dari Startup di ASP.NET 5.

ASP.NET 5 Mini Tour

Tulisan ini merupakan bagian dari tulisan berseri yang terdiri dari beberapa artikel di bawah
1. Memulai
2. Startup (Tulisan ini)
3. MVC 6
4. Dependency Injection
5. Web API
6. Entity Framework 7 (Coming soon)

Startup

Secara garis besar Startup berfungsi seperti namanya yakni pertama kali dijalankan untuk mengkonfigurasi apa yang kita butuhkan untuk aplikasi web kita, ya kurang lebih seperti file Global.asax yang dulu.

Di file Startup.cs ini terdapat 2 buah method (3 jika ditambah dengan constructor) yang sangat penting yang digunakan untuk melakukan konfigurasi-konfigurasi yang dibutuhkan. Kedua method tersebut bernama Configure dan ConfigureServices.

Contoh kode konfigurasi yang ada pada tulisan ini merupakan bawaan dari template Web Site pada project ASP.NET 5

Constructor

Dari sumber-sumber yang saya pelajari, constructor digunakan untuk me-load konfigurasi yang diletakkan pada sebuah file, seringnya bernama config.json. Mungkin pembaca ingat bahwa dulu konfigurasi semacam ini semisal connection string diletakkan di file Web.config.

Berikut contohnya.

Pada baris keempat yang saya tandai dapat dilihat kalau konfigurasi yang ada di file config.json dimasukkan supaya bisa dibaca nilainya. Bagaimana cara membaca nilai yang ada di file konfigurasi json?. Nanti juga akan sampai situ 😉

ConfigureServices

Method ini tidak lain digunakan untuk mendaftarkan service-service apa saja yang akan kita gunakan pada aplikasi website kita. IServiceCollection interface bertanggung jawab untuk mengetahui servis-servis mana saja yang sudah didaftarkan kemudian meng-inject-nya ke bagian yang membutuhkan (Dependency Injection). Jadi dengan kalimat lain method ini berguna untuk mendaftarkan servis-servis ke Dependecy Injection container.

Misal di aplikasi kita membutuhkan Entity Framework, maka Entity Framework perlu diinject kan? supaya bisa digunakan.

Intinya seperti itu. Sedangkan apa nama method untuk menambahkan servis ini dan itu silahkan baca dokumentasi dan atau googling 😀

Ngomong-ngomong apakah Anda memperhatikan adanya bagian Configuration[“Data:DefaultConnection:ConnectionString”]?

Ya!, kode tersebut digunakan untuk membaca data yang sudah dimasukkan ke konfigurasi, dalam hal ini yang berada di dalam file config.json.

Configure

Setelah mengeksekusi method ConfigureServices berikutnya method yang dieksekusi adalah Configure. Method ini digunakan untuk mendaftarkan/memasukkan middleware ke dalam pipeline dari ASP.NET. Pusing dengan bahasanya?

Saya jelaskan dengan bahasa lain. Pipeline anggap saja sebuah aliran kejadian yang dimulai dari request oleh klien yang kemudian masuk ke dalam ASP.NET kemudian di dalamnya diolah dan selanjutnya dibalikkan lagi ke klien berupa response.

Client -> Request -> ASP.NET 5
Client <- Response <- ASP.NET 5

Bagian ASP.NET 5 menganggap di awal tidak akan ada pengolahan apa-apa karena memang tidak ada komponen yang mengolah (middleware). Oleh karena itu, dibutuhkan middleware untuk mengolah request menjadi response yang diinginkan dan middelware perlu didafatrkan, itulah gunanya method ConfigureServices.

Contoh paling sederhana dari middleware adalah misalnya seperti ini

Contoh lain lagi misal untuk menambahkan middleware MVC

Penutup

Semoga tulisan ini bermanfaat dan jika ada pertanyaan mari kita diskusikan bersama 🙂
Nantikan tulisan seri lanjutannya.

Facebook Comments
 

Agung Setiawan

Agung Setiawan adalah software engineer di BukaLapak.com, penulis sekaligus pecinta sastra, dan pembaca buku

 
Halo, perkenalkan saya Agung Setiawan.
Saya Software Engineer di BukaLapak.
Simak pemikian saya soal dunia Software Engineering via Twitter di @agungsetiawanmu dan facebook
Blog ini saya update seminggu sekali jadi sering-sering saja mampir
Mau belajar Vim bareng saya?
Belajar ngoding dari nol menggunakan PHP

Leave a Reply

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