Posted by: Eru | January 24, 2008

Codesmith And NetTiers

Hari ini belajar dua mahluk yang namanya CodeSmith dan NetTiers.. so di situsnya http://codesmithtools.com disebut-sebut CodeSmith adalah

CodeSmith is a template-based code generator that allows you to generate code for any text language. The code generated can be customized by the use of properties. A property can be any .NET object that has a designer (most built in .NET types have designers already) and can be as simple as a boolean property that allows you to conditionally add or remove code from the result, to an object such as the TableSchema object (included in SchemaExplorer) which provides access to everything you could possibly want to know about a database table. CodeSmith comes with many standard property types and is 100% extensible by allowing the user to create custom property types.

Dalam bahasa gw CodeSmith adalah code-generation tool, so tools ini membantu kita dalam menggenerate kode-kode tertentu dengan menggunakan Template. so kalo misalnya dalam .NET programming kita sering banget ketik kode-kode tertentu yang Generic, berulang dan bisa dibuat common.. kenapa ga bikin templatenya pake CodeSmith dan next-time we need such code.. kita tinggalm masukan parameter2 yang diperlukan dan voila! kode akan tergenerate :)

Yah lumayan mengurangi menial stuff :) sayangnya CodeSmith tidak gratis :(

and NetTiers.. well NetTiers menurut http://docs.nettiers.com/ adalah

.netTiers is a set of open source code generation templates that simplify the tasks of creating customized Application Tiers for your Microsoft.Net applications in just a few minutes.

dalam bahasa sederhana.. NetTiers adalah template generation tools yang berjalan diatas CodeSmith.. well intinya NetTiers akan melakukan proses mapping dari Database Relasional ke bentuk Kelas dan Objek.. mirip sama Hybernate-Java atau engine Rake dari Ruby On Rails :) dia akan memetakan tabel-tabel di database kita menjadi bentuk kelas yang bisa kita gunakan.. misalnya tabel Customer menjadi kelas Customer…

Kupikir dengan pendekatan seperti ini DAL (Data Access Layer) akan lebih dekat dengan Business Object yang ada di dunia nyata.. dan memudahkan kita untuk melihat sistem dalam greater view :)

Ini daftar kelebihan NetTiers

  • Otomatis membuatkan Objek Entity dan Objek Relasi untuk kita sebagai domain dan dibuat berdasarkan tabel dan relasi yang ada di database
  • Ada Validasi! yang bisa kita manfaatkan atau manipulasi agar custom
  • Beberapa Kelas dibuat dalam bentuk partial sehingga kita bisa menambahkan logic baru tanpa
    harus override behaviour standard dari kelas itu
  • Menggunakan generic List custom (TList) yang mendukung .net ComponentModel dan memiliki behaviour Bindable, Sortable dan Filterable
  • Membuat unit-test untuk data provider. Test ini kompatibel dengan nUnit atau VSS Team Edition
  • Kode terdokumentasi lengkap dan bisa langsung digenerate ke bentuk dokumentasi, mengikuti konvensi Microsoft
  • Stored procedure punya kita akan didetect dan dibuatkan Wrapper pemanggil sehingga kita tinggal panggil layaknya method biasa :) (walau dalam pendeteksian informasi Meta dalam Stored Procedure tidak selalu akurat)
  • API mendukung Query yang memperhatikan faktor PK, FK, Index, relasi, Paging, GetAll, Filter dan Pencarian plus operasi standar macam CRUD

Dan proses CRUD (manipulasi database seperti Create, Update, Delete) juga menjadi lebih mudah..
ne salah satu cara untuk membuat elemen baru

Customers customer = new Customers();
customer.Address = “102 West Main Street”;
customer.City = “Atlantis”;
customer.Region = “Sea”;
customer.Phone = “230-555-0909″;
DataRepository.CustomersProvider.Save(customer);

bisa dilihat kalau kita tinggal buat objek customer (hasil generate NetTiers dari Customer table), isi propertinya dengan data yang diinginkan, dan tinggal Save.. done!

kemudian Customer tadi kita buat seperti ini…

customer.Region = “Under The Sea”;
Response.Write(customer.EntityState); // EntityState.Changed;
DataRepository.CustomersProvider.Save(customer);

itu untuk edit… dan kalo delete? oo.. mudah

DataRepository.CustomersProvider.Delete(customer);

you see.. HOW it simplify the CRUD :) dan bukan cuma itu kowk… NetTiers otomatis mendetect bagaimana tabel berelasi dengan memanfaatkan MetaExplorer-nya CodeSmith :)

Isn’t it cool :)

Responses

Yoh!!….
Berjuang , Win…..
meski selayaknya MAJIBU….
tapi…. demi masa depan oke,lah…..

wakaka mik :) demi masa depan :)

Leave a response

Your response:

Categories