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 ![]()
Posted in Programming | Tags: .NET, CodeSmith, Learn, NetTiers, Programming

