Thursday, September 30, 2010

Idea kelebihan/bakat atau kesungguhan

Kebelakangan ini aku sering terfikir mencari sesuatu "benda" yang aku boleh buat berdasarkan kemahiran ilmu teknologi yang diberikan Allah pada aku. Tapi masih buntu. So disekeliling kita hari ini penuh dengan teknologi sama ada datang dari barat atau datang dari kelompok masyarakat kita. Penghasilan teknologi pun datang dari secebis idea yang dikembangkan dan kemudian menjadi realiti .Aku pernah terdengar yang kebanyakkan manusia hanya mengguna 10% dari kebolehan otak/akal yang Allah bagi pada kita. Lagi 90% masih tersimpan di cell-cell otak yang belum dirangsang.

Kalau kita dapat menggunakan atau meningkatkan penggunaan kelebihan tersebut kepada 20%, banyak idea yang kreatif boleh dibangunkan. Aku juga tak pasti adakah faktor bahasa mempengaruhi tahap idea seseorang? Orang yang kreatif yang banyak idea, otak kanan banyak memainkan peranan.

Wednesday, September 29, 2010

Versi mudah mendapatkan NHibernate session

Aku boleh dikategori sebagai developer yang percaya pada code mesti nampak mudah dari penglihatan dan mudah untuk ditulis dan kemudian mudah untuk difahami. Kenkadang aku terfikir kenapa perlu membina sesuatu yang komplex sekadar untuk nampak cantik dan tujuan tersebut boleh dicapai dengan cara lain walau tak se "stylish". Walau pun fungsi tersebut dibina didalam ertikata "framework", tetapi jika over engineered mengkibatkan framework tersebut susah untuk di extends untuk fungsi-fungsi yang lain. Aku ada rancangan nak tulis dalam entri yang lain berkaitan pendahaluan perenggan ini , kemungkinan bertajuk "Business logic algorithm tidak sepatutnya berselerak dimerata tempat dalam solution project anda", agak penjang rasanya tajuk tersebut. Ok anyway, kesinambungan dari itu aku nak cerita sedikit pasal pengawalan session didalam NHibernate dalam versi yang mudah.

NHibernate session amat penting apabila kita hendak melakukan sesuatu aktiviti berkaitan data dan objek.Objek dan data adalah dua benda yang berlainan walau nampak seakan sama. Boleh google untuk tahu perbezaan.

Untuk demo, aku akan tulis code yang akan digunakan didalam projek ASP.Net MVC. Ada 2 library penting yang diperlukan yang pertama library pakej NHibernate dan yang kedua library pakej FluentNHibernate. Tiada IoC dalam contoh ini, ini adalah bertujuan menunjukkan tanpa IoC, tujuan untuk mendapatkan NHibernate session tetap boleh dilakukan.

Sebaik anda berjaya create ASP.Net MVC Web solution, dan andaian bahawa semua library pakej tadi dah berjaya dimasukkan didalam solution tersebut, maka perkara yang pertama ialah dengan mengedit Global.asax.cs dan code akhirnya ialah seperti ini


Perhatikan pada line 21, aku declare ISessionFactory dan kemudian pada line 42 aku panggil method CreateSessionFactory(), code ini berada didalam method Application_Start, dan untuk pengetahuan Application_Start ini akan hanya execute sekali ianya seperti Singleton pattern, ianya hanya akan execute semula jika IIS web server di "restart" dan oleh sebab itu penghasilan SessionFactory sesuai berada didalam method ini.

Pada line 68, disini aku menggunakan FluentNHibernate untuk membina SessionFactory, dan pada line 72, kena tulis connection string dan maklumat tersebut di simpan didalam Web.config. Ini untuk memudahkan jika ada sebarang pertukaran, anda hanya perlu tukar di config file dan bukan didalam code. Lihat pula pada line 82, kita perlu setkan session tersebut digunakan dalam web process dan NHibernate ada mekanisma untuk simpan session yang akan digunakan dalam Http protokol.

Selanjutnya pada line 50, method Application_BeginRequest ini pula akan berfungsi hanya setiap kali terdapat page request dan ianya unik untuk setiap request. Dalam ertikata yang lain jika aku request dan pada masa yang sama terdapat sepuluh orang lain yang request aku akan dapat dapat session nhibernate yang berlainan dan unik tetapi SessionFactory yang sama. Pada line 54, kita perlu bind session kepada CurrentSessionContext dan berdasarkan configuration iaitu Web, maka NHibernate akan menggunakan web session mekanisma untuk simpan maklumat session yang telah di "open" maka apabila diperlukan pada component yang lain permintaan session tersebut akan di beri kepada peminta tersebut ialah session yang di simpan didalam web context.

Perhatikan pula pada line 57, method Application_EndRequest pula bertindak untuk tutup session dan membebaskan memory web context terhadap session seperti yang berlaku padal line 59.

Satu lagi method yang penting ialah GetCurrentSession yang terdapat pada line 45, method ini bertujuan untuk mendapatkan Session terkini yang berada dalam web context.

Penggunaan di Controller
Aku akan tulis base controller untuk semua controller lain inherits base controller ini.


Dan anda perlulah mempunyai domain, permulaan ini boleh tulis domain yang simple seperti ini


Untuk perhatian anda, line 27 untuk code diatas ialah class mapping, sebelum ini mapping dalam Nhibernate boleh dibuat melalui xml mapping dan juga code attribute mapping, tetapi 2 cara ini agak susah dan leceh berbanding dengan cara fluentnhibernate.

Code ini pula ialah code StudentController, lihat bagaimana mudah untuk menggunakan NHibernate Session


So diharap sedikit penerangan dapat membuka minda dan boleh menjadi pengerak untuk anda menggunakan NHibernate untuk project-project yang lain. InsyAllah jika diberi keizinan Allah saya akan lanjutkan lagi demo/contoh penggunaan NHibernate untuk tahap yang lagi advance.




Tuesday, September 21, 2010

UI ke Business Process - 60% project lewat

UI masih lagi menjadi masalah utama kalau tidak pada developer lain tapi pada diri aku sendiri. Walau ada pelbagai framework yang dikategorikan sebagai Rapid Applicaton Development, tapi aku masih lagi mengambil masa yang lama untuk membolehkan UI code work dengan back end code dgn lancar.Nie bukan bermaksud UI design tetapi lebih kepada UI funcionality, bagaimana UI kawal state dan sebagainya. Kalau setakat untuk look and feel memang tidak dinafikan banyak UI framework yang lain hasilkan look and feel yang awesome. Itu dari sudut layout dan color. Dari sudut application developer, anda masih lagi perlu menyentuh UI code setidak-tidaknya untuk sesuatu event itu trigger dari tindakan user, seperti click button untuk hantar maklumat ke database. Cuma jika fully plain html form, rasanya kurang sedikit masalah-masalah ini.


Kepopularan Ajax pun tidak banyak membantu, kenkadang lebih membebankan dgn ketiadaan IDE yang betul-betul WYSIWYG.

So apabila tiba pada level nak menghubungkan code-code ini ke business logic, pengalaman aku memang akan ada sedikit rintangan.

Aku tak berapa sure dari camp Ruby atau any Rails followers yang lain seperti grails etc. Masih lagi mencari UI framework yang seperti ASP.Net yang laju dari segi development dan laju dari segi performance loading.

Dicussion/pandangan aku dari context enterprise/product bukan pet project suka-suka, but something yang anda boleh jual dan customer boleh terima dari segi penampilan dan juga dari segi core business process.

Monday, September 20, 2010

Update

Kebelakangan nie sifat malas nak update web page nie semakin menjadi-jadi, kenkangan kerja dan sebagainya menjadi halangan kuat dan kekurangan idea, maybe otak kanan aku tak digunakan sepenuhnya untuk lebih kreatif.., sudah lebih 2 bulan aku tak menulis dalam blog.


Minggu lepas selepas seminggu cuti hari raya, aku mula bekerja tanpa kawan rapat aku, dimana selama lebih kurang 3 tahun banyak membantu dalam melicinkan proses soft dev di tempat kerja, seorang yang aku respect dari segi knowledge dan juga komitmen. InsyAllah semoga perpindahan ketempat lain lebih bermakna dan keberkatan Allah sentiasa ada bersama.

Walau kerja banyak tapi, masih slow bila nak mula buat soft dev, ntah le..hujung minggu lepas aku plan nak buat something berkaitan programming, tak juga menjadi, aku lebih bnyk browse web site kereta, agaknya minat aku dah kearah bidang kerata.. hahahah, minggu lpeas juga aku hantar kereta elysion aku tukar minyak, fikirkan nak tukar minyak fully synthetic biasa, sekali dah pergi kat After 12 Motorsport, mata dah rambang tgk bnyk sgt acessories kereta, pusing punya pusing..technician kat situ cucuk jarum ..suruh aku tukar minyak engine Mugen, aku pun memang dah ada plan nak tukar minyak, cuma minyak nie mahal sikit. Belakang kedai lagi satu tgk bebrapa technician tgh tune VW Golf GTI, perghh..dia nyer bunyi engine.. mak oii. Fikir punya fikir last last aku setuju tukar minyak engine mugen tu. Then dah beberapa hari pakai, Alhamdulillah terasa lagi lancar bila memecut yang best bila RPM cecah 3.5.. ivtec dia open ...warghh..

Malam tadi, dapat video VW Scirocco dari youtube, nie lagi satu penyakit.. aku dah terpaku depan komputer 2 jam, layan semua video Scirocco TSI Turbo.., bila kau nak start buat programming??????????? :(