Saturday, September 01, 2007

ASP .Net, Mimpi Yang Jadi Kenyataan

Udah beberapa tahun belakangan ini gw selalu mikirin disain framework untuk pengembangan aplikasi. Mikirin hal ini, tepatnya dari tahun 2003, sewaktu kerja di Gamatechno.

Awalnya mikirin framework buat web application, lalu sekarang berkembang ke framework yang umum yang bisa dipake di pengembangan aplikasi apapun. Framework umum ini dipikirin awalnya karena "kenalan" sama MVC pattern.

Setelah punya Azpiration sama temen-temen, akhirnya pengembangan aplikasi web dengan PHP maupun pengembangan aplikasi dekstop dengan java dilakukan dengan menggunakan MVC pattern.

Mikirin framework, karena punya impian kalo development jauh lebih mudah dan gak perlu mikirin hal-hal yang selalu berulang. Karena di framework seharusnya sudah ada class-class dasar.

Alesan berikutnya adalah keseragaman dalam disain dan coding. Dengan adanya framework, semua orang akan memrogram dengan gaya yang sama. Dengan demikian, siapapun bisa maintain kode siapapun. Hmm, idealnya begitu tapi biasalah dunia ini kan tidak ideal :)

Minggu ini, kami kedatangan prospek pekerjaan. Pekerjaan ini harus dikembangkan menggunakan ASP .Net dan Oracle. Karena kita blank sama sekali, akhirnya kit susun strateginya nih untuk belajar cepat. Diutuslah Bapak Harry. the fastest programmer in Azpiration untuk belajar. Jadwal belajar dari hari Kamis, lalu hari Sabtu setelah Ashar harus presentasi ke kami berdua. Nah, gw nulis ini setelah presentasi dan diskusi :)

Ada beberapa hal penting yang tadi di sampein, dan sebagiannya sangat menakjubkan, begini:
  • ASP .Net itu bukan adiknya ASP yang dulu. Tapi bener-bener makhluk baru dengan fisik dan jiwa yang jauh sekali bedanya. ASP yang dulu, adalah bahasa scripting yang dieksekusi oleh web server (seperti PHP). Sedangkan ASP .Net adalah framework :) Pertama kali si Harry bilang gitu, gw bingung "kok framework?". Jadi untuk ngembangin aplikasi di ASP .Net kita pake framework ASP .Net itu. Kalo di PHP, kita pake bahasa PHP lalu pake Prado, Mojafi, GTFW, atau Azpiration Framework misalnya. ASP .Net adalah suatu framework untuk mengembangkan aplikasi berbasis web di environment .Net. Kalo kata si Harry, ASP .Net ini serasa coding PHP pake framework Prado. Jadi, kita coding web application ini udah kaya coding aplikasi dekstop. Kalo udah pernah coding VB atau Delphi, nah udah rasanya persis kaya gitu. Lebih detil lagi gini, di web application ada action di form berupa POST atau GET. Pada saat action, browser akan meminta file tertentu sambil mengirim variabel yang ada di form. Lalu file tersebut memroses action tersebut. Hal ini di-encapsulate oleh ASP .Net. Caranya, mereka punya web control, jadi buat bikin button enggak lagi pake input type="" tapi pake asp:...runat="server". Tinggal drag drop, set propertiesnya. Kalo kita buka source HTMLnya isinya tag tadi. Tapi nanti kalo kita akses halaman itu dari browser, sampe ke browser bentuknya udah jadi HTML campur Java Script. Lalu ada code di file lain (diluar file html ini) yang kerjanya sebagai event handler dari setiap kontrol yang ada. Jadi udah kaya development aplikasi desktop persis.
  • Visual Studio .Net 2005 Express Edition (VSEE 2005), betul-betul cukup buat kami ngembangin aplikasi ASP .Net. Karena ini versi gratis, tadinya takut gak cukup. Takut gini takut gitu, nanti udah coding cape-cape di tengah jalah ketauanlah kurangnya. Tapi akhirnya tadi setelah liat, VSEE 2005 ini cukup (lebih dari cukup malah). Dulu untuk disain tampilan kami selalu pake Macromedia Dreamweaver. Tapi setelah gw masuk ke Gamatechno dan belajar tableless layout dari Nicko, kami ngerasa gak perlu lagi. Tapi akhir-akhir ini tampilan sistem yang dibuat udah semakin advance. Misalnya, bisa nambah row di table, lalu di setiap row table ada kolom input, lalu ada blok filter, dsb dsb. Mulailah kerasa cape lagi. Tahun lalu bikin tools buat GUI, dan sudah dipake. Cuma masih jauh dari cukup. Nah di VSEE 2005 ini, bikin tampilan web itu udah kaya bikin form di desktop. Dan bisa dengan berbagai mekanisme: bisa pake table untuk layout, bisa pake absolute position dsb. Lalu kontrol-kontrol dari .Net-nya (yang tadi diceritain di atas (asp:...runat="server"..)
  • Pengaksesan database. Tadi penjelasan belum terlalu dalam, karena Harry belum sempet mendalami ADO .Net. Baru sekilas aja. Tapi dari sekilas itu aja udah luar biasa. Dulu kita bikin relasi antar table di database lalu ngakses dengan SQL. Sekarang itu tetap bisa sih, tapi bisa relasi antar objek ADO .Net. Gila gak tuh. Relasinya terjadi bukan pake SQL, tapi ada objek A dan B yang diambil dari database, lalu pas coding butuh relasi, nah bisa deh direlasi-in. Udah gitu, VSEE 2005nya juga luar biasa. Di situ ada Datasource Pannel. Kalo dibuka, tampil daftar server yang bisa diakses (kaya pgadminya postgresql). Lalu gimana cara membuat paling mudah untuk membuat CUFD di satu halaman? Gampang. Drag tabel yang dipilih, terus drop deh di halaman disain web. Konfigurasi properties. Jadi deh. Bisa Create data, Update, dan Delete. Untuk filter, tinggal ambil kontrol filter, konfigurasi dikit, jadi tuh filter tabel tadi (sampe bengong liatnya). Tapi disain seperti itu gak bagus kata Harry (Harry kata Microsoft). Jadi, research akan diteruskan ke ADO .Net.
Setelah beres presentasi dan diskusi, gw ngerasa impian yang udah lama ada jadi kenyataan. Sering banget di sini cerita-cerita masalah efisiensi pengembangan software. Umumnya bicara masalah framework dan tools. Nah sebagian besar yang diobrolin, udah ada semua di ASP .Net dan VSEE 2005, bahkan lebih bagus dari yang kita bayangin. Ini yang tadi kita liat bikin aplikasi web aja semudah itu. Gimana kalo desktop apps ya.

Sampe keluar omongan, "kalo gini, gimana kalo kita migrasi aja semua ke .Net". Belum disimpulkan apa-apa. Tapi omongan itu bukan cuma sekedar omongan. Kayanya Microsoft mulai berhasil mencuci otak kami betiga nih :)

11 comments:

Akhmad Fathonih said...

Bikin framework yang bisa diceklak-ceklik itu susah banget Sam. Dan sialnya, framework yag sudah gampng di ceklak ceklik ini jadi merepotkan waktu kita menuntut greater flexibility :D

Hehehe, my two cents of pessimistic currency ;)

There's no silver bullet for anything. Hehehhe, yak mari kita bikin OS pake PHP!!

Isaam Khalid said...

@akhmad fathonih
Memang gak gampang sih mas. Tapi kalo dibandingin sama manfaatnya, layak banget kok.

Hehe, kemaren waktu ngobrol sama Nicko ujung2nya ke flexibility juga. Makanya prinsipku lebih ke code generation daripada sebagian besar code ada di framework (seperti ruby on rails). Dengan begitu, flexibility jadi lebih baik.

Don't be pessimist, it just stop us to be a superhuman :) If someone can do it, why can't we?

Ngomong2 OS pake PHP, jadi inget liat demo2 webos diinternet. Tadinya kurasa idenya aneh, tapi ternyata gila juga ya.

Anonymous said...

Welcome to .Net zone.
xixixix....

Pake ASP.Net memang serasa coding desktop. Buat aku yang berbackground desktop programming, aku bisa lebih merasa "feel at home" ketika coding ASP.Net dibanding php atau java. :D

Tapi bener juga tuh kata pak toni, ntar repot kalau pingin buat aplikasi yang flexible.
Tapi itu tergantung desain aplikasi juga koq.

Aku aja yang dulunya terbiasa tempel komponen delphi di sana-sini, malah sekarang mulai meninggalkan kebiasan tempel-tempelan ituh. hihihi....

Tapi selagi masih hangat dan serasa menyenangkan, enjoy aja lagih. :D

Isaam Khalid said...

Wah sesepuh Delphi udah kesurupan Microsoft nih sekarang :)

Adityo Hidayat St. Majo Kayo said...

dulu aku juga mainan C# .net, dan ada sesuatu yang membuat mentok. sialnya aku ngga bisa menemukan url postinganku yang dulu.

ku paste disini aja ya:
"There is one reason what made me walk-away from C# when developing database applications. I haven’t find a way to create my own persistent field at dataset level. The datasource explorer provides a strong persistent field, and it’s fun to work with. But it is too strong, so that I cannot make my own persistent field (e.g. a lookup field). C# does allow the creation of unbounded column (your own customized field) in DataGridView, by activating VirtualMode. But if you see the code samples, whew… it’s way too complicated for a newbie like me.

Well, I’m quite stuck here with C#. if perhaps, someday, you are a C# expert who happens to read this post, I would be gladful to have some insights on how to resolve this issues :)
".

any ideas?

Unknown said...

Gw tertarik waktu lu bilang dengan .Net, coding web aja jadi gampang apalagi desktop.... Wah itu bener banget Sam, Gw absolutly setuju.... tapi tetep aja ada kekurangannya, Lama.....
Nah, ini dia masalah gw, setelah semua aplikasi yang kita bangun pake keluarga .Net (ASP.Net).

Thanks for sharing

Jadi pengen kenalan ama Harry :)

Isaam Khalid said...

@adityo
Belum ngerti sih mas :). Tapi dari dulu, kami kalo pake ADO gak suka pake control yang disediain sama MS. Biasanya kami pake librarynya langsung. Supaya lebih flexible

@dian
Kenalan aja, tapi dia udah punya istri lho :p Blognya Harry di http://harrykartono.web.id.

Jay said...

Isaam.. hmmm... huehehe... congradz!! Your brain is successfully washed by Oom Gates, ahiak ahiak..

Welcome to the club, sam. Gw juga.. aaah tidaaak!!

Terdengar di Kejauhan sana Oom Gates memanggil.. "Come to papa..."

Gw juga baru beberapa minggu ini belajar Orcas (programmingnya cuman blajar C#) dan antek2nya. Kesimpulannya, gw dapet rumus cantik:

C# + VSTS 2008 + TFS + Team Explorer + ReSharper + NDoc + CruiseControl.NET = kewl ;D

LeluconIT said...

klo dipikir-pikir,
Masalah IDE
(Integrated Development Environment)
sepertinya mikocok memang belum terkalahkan mas.
klo saya balik lagi ke tujuan di awalnya,

where we will move and stay ?
- Open Source Way, or
- Microsoft way.

kan ada Java dengan NetBeans nya.

Surya said...

wah.. mas.. bukan munapikk niyy... Kita idup perlu duit mas.. ya terpaksa dehhh pake punyanya billgate. Ya kadang sih dipikir2 enak pake yang preee alias gratis. Tp kalo seperti bos saya yang notabena doyannya Microsoft.. n mintanya ASP.Net mo gimana lagi, n dia mau bayar lebih mahal ketimbang pake PHP. Hayo.. pilih mana..???? Idealis vs Market Oriented. xixixixixix

Anonymous said...

@surya
Ah Indonesia, apa2 bisa dibeli, termasuk hati...
Hiks

Semakin g mungkin nemuin richard stallman junior, yang ada gate2 junior yg doyan duit bejibun. Hiyyy

Dikit-dikit realitas....