Pembuatan Aplikasi Client Server dengan Arsitektur 3-tier Part 2
Setelah selesai dengan project SmartLibraryLib akan kita lanjutkan dengan pembuatan project SmartLibraryServer.
Untuk menyederhanakan pembahasan, project SmartLibraryServer ini dibuat dengan memanfaatkan project bertipe Console Application (implementasi aslinya bisa kita jadikan sebuah service).
Isi dari project ini hanya berupa class DAO (Data Access Object) :
Semua class DAO diatas mengimplementasikan interface IDao yang diambil dari file SmartLibraryLib.dll, selain itu class-class tersebut merupakan turunan dari class MarshalByRefObject. Sebuah class yang merupakan turunan dari class MarshalByRefObject, semua method-methodnya bisa diakses secara remote.
Aktifkan kembali solution SmartLibrarynya dimana didalamnya sudah ada project SmartLibraryLib
kita akan menambahkan project SmartLibraryServer masih di solution yang sama
-
Klik kanan Solution SmartLibrary -> Add -> New Project
-
Pada dialog Add New Project aktifkan pilihan Visual C# kemudian pada pilihan Templates pilih Console Application
Pada isian Name isikan SmartLibraryServer untuk isian Location dibiarkan saja setelah itu klik Ok
Jika langkah sebelumnya berhasil maka pada solution SmartLibrary akan ketambahan 1 project baru yaitu SmartLibraryServer
Menambahkan Folder Dao
Pada folder ini kita akan menyimpan semua class Dao yang mengimplementasikan interface IDao yang kita ambil dari file SmartLibraryLib.dll
-
Klik kanan project SmartLibraryServer -> Add -> New Folder
Menambahkan Class BukuDao dan PenerbitDao
Tidak seperti class model yang hanya berisi property-property, pada class Dao hanya berisi method-method yang mendefinisikan semua method-method abstract dari interface yang diimplementasikannya, method-method inilah yg dikenal dengan istilah method-method CRUD.
Sebagai contoh kita akan menambahkan class BukuDao dan PenerbitDao. Kedua class tersebut masing-masing mengimplementasikan interface IBukuDao dan IPenerbitDao.
-
Klik kanan folder Dao -> Add -> Class..
-
Untuk isian Name diisi BukuDao.
Setelah itu akan tampil editor code class BukuDao
Jangan lupa untuk menambahkan access modifier public.
Sebelum kita bisa melengkapi kode dari class BukuDao terlebih dulu kita harus menambahkan referensi SmartLibraryLib.dll yang sudah kita bahas pada postingan sebelumnya, tujuannya adalah agar class BukuDao bisa mengakses class model Buku dan interface IBukuDao untuk kemudian mengimplementasikan semua method abstractnya.
-
Klik kanan folder References -> Add Reference…
-
Aktifkan tab Projects kemudian pilih project SmartLibraryLib
-
Jika langkah sebelumnya berhasil akan ketambahan 1 buah node dengan nama SmartLibraryLib pada folder References
Selanjutnya kita mulai melengkapi kode dari class BukuDao.
Sampai disini kita sudah bisa mencoba untuk menjalankan program dengan menekan tombol F5 (Start Debugging).
Apa yang terjadi ??? Masih error bukan ?
Error ini terjadi karena class BukuDao mengimplementasikan interface IBukuDao sedangkan method-method abstractnya belum kita definisikan di class BukuDao.
Berikut method-method abstract interface IBukuDao yang harus diimplementasikan oleh class BukuDao.
Mengimplementasikan Method Abastract Interface IBukuDao secara Otomatis.
Untuk mengatasi error pada langkah sebelumnya kita tinggal klik kanan pada tulisan interface IBukuDo ->Implement Interface -> Implement Interface
Kemudian secara otomatis semua method abstract dari interface IBukuDao akan ditambahkan.
Selanjutnya kita tinggal melengkapi masing-masing method diatas.
Jika kita perhatikan pada kode diatas, ada beberapa baris kode yang sama tersebar dibeberapa method (GetAll, GetByID, dan GetByName) yaitu kode untuk proses mapping dari hasil SELECT yg tersimpan di dalam object DataReader ke objek buku
Nah dari beberapa referensi yg ada, katanya harus dilakukan proses refactoring, apa itu refactoring ?
Refactoring is the process of improving your code after it has been written by changing the internal structure of the code without changing the external behavior of the code.
Sumber : Refactoring (C#)
Sesuai dg pembahasan kasus kita yang perlu dilakukan cukup refactoring method.
Sebagai contoh kita akan melakukan proses refactoring pada method GetAll, caranya gampang tinggal blok kode yang akan direfactoring kemudian klik kanan -> Refactor -> Extract Method.
kemudian pada isian New method name isikan MappingDtrToObject
jika proses refactoringnya berhasil, satu buah method dengan nama MappingDtrToObject otomatis ditambahkan, selain itu kode yang ada di method GetAll juga otomatis menyesuaikan.
selanjutnya kita tinggal menyesuaikan untuk method-method yang lain (GetByID dan GetByName)
Untuk sementara project SmartLibraryServer ini kita cukupkan dulu sampe disini, masih ada beberapa kode yg belum terselesaikan dan insya Allah akan menjadi PR sy pada postingan berikutnya dan mudah-mudahan sudah bisa memberikan sedikit gambaran bagaimana project ini bekerja.
Untuk class Penerbit enggak perlu kita bahas karena langkah-langkah pembuatannya sama seperti diatas.
Selamat mencoba
Comments