Saturday, May 1, 2010

Konsep Mendevelop Software Dengan Dot Net Framework [ Part 1 ]

Ini sekedar catetan gw aja. Tapi bagi yang membaca, diharapkan sudah mengerti konsep2 berikut, basic lah minimal:
- 3 Tier Architecture / MVC (Model - View Controller)
- Object Oriented Programming
- Dot Net Programming
- Object Relationship Model (ORM, menjadi nilai plus jika mengetahui konsep ini)


Sewaktu gw training dari bos gw, orang yg berpengalaman, mantan senior .net (dot net) developer di salah satu anak perusahaan Microsoft Singapore dan kantor pajak Singapore. Gw mendapat suatu pelajaran yang berharga dalam mendevelop software/system yang reliable, easy to maintain and secure.


Yup, konsep ini disebut sebagai konsep yang menggunakan dot net entity framework.
Hampir semua (bahkan semua) manipulasi database menggunakan perantara entity framework.
Dulu mah waktu belajar buat proyek dari software house gw mana blom tau apa2 soal develop project seperti ini, apalagi pas kuliah. hahaha.. Yang penting jadi!
Tapi disini, gw bisa belajar hal "wah" untuk level perusahaan yang masih "baru berdiri ini" ..
Katanya sih ini salah satu konsep develop project yang paling reliable selama dia research sampai saat ini.

Konsep 1 : Simple Architecture
Di dalam konsep ini, (sayang gambarnya gw blom dapet ) dibagi menjadi 3 layer (konsepnya 3-tier : Client - Application Server - Database)


1. Layer 1 : USER INTERFACE
Dalam UI ini, dibagi menjadi 2 komponen lagi:
  • User Interface (.aspx , .aspx.cs)
    Disinilah UI dari client, lokasi dari penempatan tiap2 User Control Form (UCF), proses menampilkan, redirect, validasi, dan semacamnya, kedalam 1 page aspx. Dengan adanya fitur master page yang built in dr ASP.NET, akan lebih memudahkan mendevelop aplikasi yang dinamis.
  • User Control Form (.ascx , ascx.cs)
    UCF, bisa disebut sebagai template dari form-form yang umum dan jarang berubah. Contoh: form register, forget password, login, dll. Jika ada perubahan page (UI), maka form ini tidak perlu berubah, dari segi struktur dan coding.
2. Layer 2 : OPERATIONAL
Dalam bagian ini, terdapat 2 komponen:

  • Business Facade Component (BFC)
    Di dalam komponen ini, dilakukan segala hal mengenai proses/logika bisnis. Biasanya untuk proses yang lebih kompleks dari DAC. BFC akan terhubung dengan DAC dan UI.
  • Data Access Component (DAC)
    Selain terhubung dengan BFC, DAC ini akan langsung berhubungan dengan ADO.NET / Entity Framework. Disinilah di define proses sederhana seperti CRUD (create, retreive, update, delete) yang terhubung ke ENTITY FRAMEWORK.
    Dalam Konsep-1 Simple Architecture, DAC juga dapat terhubung langsung dengan UI.
3. Layer 3 : ADO.NET / ENTITY FRAMEWORK
Disinilah tempat bernaungnya excact copy dari database (strukturnya). Di bagian ini lah, entity akan berhubungan langsung dengan database. Seluruh proses yang dilakukan oleh DAC, akan dilakukan/diterjemahkan oleh layer ini.

4. Layer 4 (hampir sama dengan layer 3) : DATABASE
Uda cukup mengertilah kalo ini, tempat database itu berada. No touch from other world :p
Only ENTITY FRAMEWORK can access this place :) :)

Tiap-tiap layer akan berhubungan melalui DataSet (kecuali layer 3 dan 4).
Pada layer 3 di define DataModel sebagai excact copy dari database (ORM - object relationship model), sehingga segala akses perubahan di DataModel (yang dilakukan dari DataSet di DAC) harus melalui layer 3 dahulu, baru dilakukan perubahan ke database.

Jika kita liat dari model seperti ini, maka security lebih terjamin dan software lebih mudah di maintenance. Dari segi peforma , juga sangat reliable, karena masing-masing layer bisa dibuat 1 server. Selain itu, programmer juga lebih dibebaskan dari SQL, karena menggunakan LINQ sebagai penggantinya.

Tentunya setiap konsep develop project memiliki kelebihan dan kekurangan:
- Kesulitan dalam melakukan SQL yang kompleks. Penanggulangannya menggunakan Stored Procedure.
Dan masih banyak lainnya yang belum gw temukan pada saat tulisan ini dibuat. hahaha

Bagian ke-2 adalah konsep yang lebih complex.
Tapi uda capek nih, lanjut di artikel selanjutnya aja :
Konsep Mendevelop Project Dengan Dot Net Framework ( Advanced ) [ Part 1 ]



Maaf kalo ada salah (terutama layernya), cuman mao sharing yang saya tau :p

No comments:

Post a Comment