Friday, May 22, 2009

NHibernate: Satu analisis perkembangan di Malaysia


Hibernate ialah Object Relational Mapper dimana project ini dimulakan oleh community Java lebih dari 6 tahun yang lepas. Sekarang ini Hibernate dibawah kelolaan JBoss group, kedua-dua pengasas awal mereka bekerja dengan JBoss sekrang ini.NHibernate pula ialah versi Hibernate yang di tulis semula dan dipadankan dengan teknologi .Net Framework (Microsoft). NHibernate core development sudah menjangkau usia 5 tahun bermula dari tahun 2004 dan sepanjang itu telah keluar banyak versi kepada pengguna. Latest versi ialah NHibernate 2.1 dan keupayaan NHibernate versi ini hampir sama dengan Hibernate 3.0

Penerimaan konsep ORM dalam Java community lebih ketara berbanding didalam community .Net. Ini berdasarkan community Java telah lebih lama terlibat dan bermula dengan project-project sebegini. Project open source dalam Java community lebih ketara, cuma selepas beberapa tindakan dari community .Net yang ingin melihat perkembangan sihat dalam .Net software development dan dengan penglibatan Microsoft sendiri yang sekarang ini sudah mula boleh menerima open source sebagai cara baru memperlihatkan cara tindakan, cara berfikir yang berlainan dari kebiasaan yang diamalkan oleh developer-developer yang mendapat didikan terus dari amalan software development Microsoft. Pattern & Practice Microsoft sebelum ini, selalu dikritik oleh lead-lead developer yang memcabar bahawa cara tersebut tidak berapa sesuai dalam perkembangan software untuk enterprise era.

Tertubuhnya community yang menggelarkan diri mereka sebagai ALT.Net ialah sebagai interpretasi mereka untuk memperkenalkan cara yang lebih bagus dari segi design, penggunaan tools, corak berfikir dalam ruang yang lebih bebas dan pengawalan life cycle software itu sendiri. NHibernate sendiri lebih mendapat tempat dalam community ini berbanding dengan Entity Framework atau Linq to SQL. Sudah semestinya mereka-mereka ini mempunyai pendapat kenapa mereka menolak product ORM Entity Framework yang diperkenalkan oleh Microsoft. sebab itu ialah EntityFramework tidak support POCO dan persistence ignorance. POCO ialah Plain Old CLR Object, iaitu simple basic class yang mengandungi setter/getter dan behavior. EntityFramework sebelum version 4.0 penggunaan entity perlulah di extend kepada persistence class dan di sinilah timbulnya masalah besar apabila hendak melakukan unit test.

Perkembangan NHibernate di Malaysia sendiri cukup perlahan dan pada aku ini adalah kerana maklumat yang ada pada software developer dalam community .Net di Malaysia lebih tertumpu kepada core cara yang diperkenalkan oleh Microsoft. Mircosoft Malaysia sendiri dibawah department consulting services (Aku pernah berkerja sebagai contract developer 8 bulan) tiada pengetahuan tentang NHibernate dan seminar, training tiada langsung menyentuh tentang NHibernate. Forum-forum lain juga kurang bercerita tentang NHibernate apatah lagi bercerita tentang Unit Test, Domain Design dan Agile. Forum disini lebih terarah kepada basic programming atau "Getting Started". Aku tidak menafikan kepentingan forum yang membincangankan maklumat tersebut, tapi pada aku developer di Malaysia sendiri perlulah membuka mata dengan lebih luas dan mencari cara yang lebih efficien dalam software development. Aku tujukan pada developer yang menjadikan Microsoft sebagi platform. Developer dari community lain aku percaya mereka jika bercerita tentang software development lebih advance dari segi framework, cara dan lotaran kotak pemikiran mereka.

Ada beberapa company di Malaysia yang telah pun menggunakan NHibernate didalam production code mereka, sebagai contoh Security Commision (SC), POS Malaysia,TMNet, Al-Madinah International University, IIUM (Research & Management). Company software development yang lain ada beberapa tapi project yang mereka handle aku tak berapa pasti. Hibernate mungkin lebih lagi wallahu'alam, mungkin member java boleh update.

Aku berhasrat agar banyak lagi software company di Malaysia yang akan menggunakan NHibernate sebagai ORM mereka. Sebagai permulaan aku cuba menulis NHibernate Siri dalam usaha aku hendak memperkenalkan NHibernate, dan insyAllah kalau ada masa dan jika ada yang berminat aku rancang hendak adakan NHibernate training. Aku ada terfikir hendak berbincang dengan pihak management company aku untuk buat NHibernate Short Course tapi masih tersimpan dalam hati sahaja.

5 comments:

livewire said...

POCO = Plain Old CLR Object

Berkenaan dengan EntityFramework, the latest version 4.0 sudah boleh implement POCO.
Tapi perlu generate 3 files (csdl, ssdl, msl) untuk mapping.
Masih belum berapa boleh untuk 'code-first' development (read from the ado.net blog)

LINQ dan NHibernate ada property attribute tapi dalam EF macam takde

LINQ ada CreateDatabase(), NHibernate ada CreateSchema() dalam EF macam takde


p/s: 'macam takde' merujuk kepada mungkin ada tapi saya yang masih belum jumpa atau akan diadakan pada masa hadapan.

ryzam said...

Opps thanks betulkan POCO = Plain Old CLR Object

peysal @ peysource said...

takper tuan guru. teruskan usaha menyampaikan kepada orang ramai tentang ORM utk .net .

ryzam said...

insyAllah, aku memang harap lagi banyak melayu/muslim developer kat m'sia nie yang dapat ilmu nie..

Anonymous said...

Hi! Your blog is simply super. you have create a differentiate. Thanks for the sharing this website. it is very useful professional knowledge. Great idea you know about company background.
Increasing your web traffic and page views Add, add your website in www.itsolusenz.com