ASP.NET 2.0 Layered Application : Introduction
Melihat code yang campur aduk adalah hal yang memusingkan apalagi code tersebut dibuat oleh programmer lain. Salah satu teknik yang saya lihat cukup berguna adalah sebuah teknik yang disebut layered application. Dari namanya saja sudah dapat diterka yaitu aplikasi yang berlapis, apa siy maxutnya? oke please bear on me.
Secara kasar dapat kita katakan bahwa aplikasi yang dibuat oleh para developer pada intinya adalah menyimpan data ke database dan kemudian menampilkan data yang telah di simpan tersebut. Pada jaman "jahiliyah" dulu biasanya saya menaruh semua code pada sebuah file kelas dan biasanya merupakan code behind dari file aspx. Code yang berhubungan dengan UI saya taro di sana, code yang berhubungan dengan akses data ke database saya taro juga disana, code yang berhubungan dengan bisnis proses saya taro juga disana, pokoknya saya campurkan semuanya. Aplikasi siy bisa berjalan lancar, namun ketika satu minggu kemudian saya lihat kembali itu source code, mendadak kepala ini jadi puyeng.
Beruntung pada masa awal karir profesional, saya bergabung dengan sekelompok developer hebat, arsitek hebat dan projek yang hebat pula. Disitu saya melihat code di pisah-pisahkan berdasarkan fungsi yang diemban oleh si code. Code yang berhubungan dengan data akses dibuat menjadi sebuah projek tersendiri. Code yang berhubungan dengan Bisnis Proses dibuat menjadi sebuah projek sendiri dan tentu saja UI nya juga dibuat menjadi sebuah projek tersendiri. Memang, it a little bit slow at first, tapi kemudian progressnya saya lihat bagus sekali. Let stop talking and let see picture ( i love picture):

Gambar diatas adalah gambar yang tergambar di kepala saya setelah melihat sorce code sebuah solution. Database digunakan untuk menyimpan data aktual. UI digunakan untuk "melihat" dan "memanipulasi" data yang telah tersimpan. DAL adalah sebuah project (yang terdiri dari banyak kelas) yang khusus memiliki fungsi akses data yaitu akses langsung ke database. Disinilah berkumpul code-code yang memanggil stored procedure di database. BLL adalah sebuah project (yang terdiri dari banyak kelas juga) yang khusus mengakses semua code yang berada di DAL. Code-code yang berada di BLL akan digunakan secara langsung oleh UI. BO adalah sebuah project yang terdiri dari kelas-kelas yang menggambarkan sebuah record dari suatu tabel. Ketika DAL memanggil SP yang mengembalikan banyak record maka kelas yang terdapat di BO akan dibungkus menjadi sebuah List. Cukup rapih bukan?
Kelas-kelas yang terdapat dalam project BO dapat digunakan pada setiap lapis (layer). Jadi, DAL dapat menggunakan BO, BLL dapat menggunakan BO dan UI dapat menggunakan BO. Berikut adalah gambar dari sebuah solution explorer yang telah menerapkan konsep layered application:

dan dibawah adalah gambar yang memperlihatkan code dari BLL:

dari code diatas dapat dilihat bahwa kelas BO dibungkus menjadi sebuah List, yang tentu saja dapat dipahami karena method GETALLEMPLOYEE akan mengembalikan banyak record. Dari code diatas juga dapat dilihat bagaimana BLL menggunakan method yang terdapat dalam DAL yang diakses dengan sangat mudah, cukup dengan di-"dot" :-)