Dari kita. Buat kita.

#16 Diskusi tentang Microsoft Windows Presentation Foundation

Posted: September 28th, 2009 | Author: Ronald Widha | Filed under: transkrip | Comments

Contents

[ hide ]

    ingin kontribusi membantu teman macet? ketik bagian podcast yang kamu suka di post ini ala WIKI dengan login di facebook connect disamping kanan dan klik edit this. Dengan membantu teman macet, kamu ikut berpartisipasi dalam membuat konten ini lebih mudah diakses untuk orang-orang yang tidak bisa mengkonsumsi audio

    RW: Wely adalah developer advisor pada Microsoft Indonesia. Sehari hari Wely membantu komunitas technical, developer dan It pro melalui portal, event, article dan berbagi resource lainnya. Apa kabar Wely?

    W: Hi Ronald. Baik baik aja.

    RW: Jadi hari ini kita ingin bicara tentang salah satu library terbaru yang masuk dalam .NET framework yah sejak .NET 3.0. Aku rasa banyak orang yang sudah tau WPF itu apa tapi gw rasa gw pengen Wely jelasin sedikit, WPF itu apa, definisinya apa, buat apa frameworknya biar ga ada orang yang salah kaprah.

    W: Oke, jadi podcast yang pertama ini kita mungkin bakal ngomongin at very high level dulu. Awal2nya WPF atau Windows Presentation Foundation itu sebenarnya adalah ABI yang menggunkan Markup language nyang kita sebut sebagai zamel untuk menampilkan UI yang sangat rich gitu yah, jadi Windows Presentation Foundation itu sudah ada di .NET framework 3.0, jadi .NET 3.0 itu sudah ada pas pertama kali keluar. Dulu yang dari WPF adalah Avalon setelah itu .NET 3.5 WPF nya di enhance dari sisi performance dan library dengan .NET 3.5 as well upcoming .NET 4, itu termasuk salah satu product yang bakal dijaguhkan sama Microsoft. Bahkan nanti the next coming 2010, text editor kita, code editor kita akan menggunakan WPF. Jadi llebih rich featurenya.

    RW: Wah sangat keren.Tapi kenapa menurut lo kita butuh UI framework lagi, kan sudah ada windows form obviously untuk web sudah ada ASP .NET dan juga recently Silverlight dan sebagainya. Dan yang menarik itu kan WPF dan Silverlight kan lumayan saling apa yah subset, katanya Silverlight itu subset dari WPF. Kenapa menurut lo kita butuh WPF?

    W: Okay, kalau kita perhatikan trend di akhir tahun 2000an gitu yah, user sudah get bored dengan tampilan yang layar abu abu terus sudut kanan ada tombol x, gitu kan, diatas ada maximize minimize, terus ada button warna abu abu gitu kan. Kan getting bored. Apa lagi perusahaan yang lebih kearah multimedia atau kaya semacam, jadi kita pernah lakukan semacam POC atau technology technology customer yah. Waktu itu client kita salah satu vendor yang keluar di product, make up, untuk women make up dan segala macemnya. Sori saya ga bisa sebut namanya, dia show bahwa aplikasi dia. Teman kita bikin WPF dan kasih liat managernya, dan tanggapannya adalah bisa gitu yah ternyata? Jadi kebutuhan WPF adalah kita butuh user experience yang lebih wow gitu. Why we need user experience gitu, yang paling similar adalah website, website biasa itu ada visit gitu yah, tampilannya cuman biasa biasa doang, yah udah gitu. Kalau misalnya anda punya sesuatu yang bisa menajubkan orang, yang membuat anda wow gitu yah, next time dia bakal visit lagi atau bakal tell another people ada barang itu. Windows Presentation Foundation di design untuk bisa deliver next generation user experience.

    RW: Jadi target audience nya sendiri mungkin lebih ke public yah dari pada ke enterprise?

    W: Sebenernya targetnya ga hanya ke public atau ke enterprise, sebenernya multi channel. Kalau saya bilang kenapa karena Windows Presentation Foundation itu bisa untuk di gunakan untuk aplikasi LOB juga, visualisasi datanya yang sangat bagus. Kita ngomong di podcast yah jadi saya ga bisa tunjukan demo nya, kalau bisa saya tunjukan demo yang pada tau itu namanya Wood Group Financial, itu untuk LOB tapi keren banget. Wood Group Financial itu untuk kaya semacem finance application gitu, lalu kalau rekan rekan tau juga ada yang namanya yahoo messenger yang dibangun dengan WPF, itu ada itu. Nah visualisasinya juga luar biasa, beda banget yahoo messenger existence yang skarang gitu. Jadi berbagai channel lah yang saya bilang.

    RW: Salah satu yang Wely bilang adalah WPF pengen buat mengatasi kebosanan orang terhadap windows form biasa yang abu abu dengan silang yang di sebelah kanan atas yah.

    W: Salah satu doang itu.

    RW: Berarti WPF ini lebih mendukung semua yang kaya 3D, animasi dan sebagainya yah?

    W: Betul.

    RW: Jadi fair to say ga, kita misalnya mau bikin something, mau bikin game gitu yah. Kita ga perlu tau lagi tentang direct x, kita ga perlu tau lagi tentang native code, bisa ga dibuat pake WPF?

    W: Menurut saya ga bisa juga di bilang seperti itu yah, kalau mau buat game gitu yah, aplikasi nya bisa anda full gunakan Windows Presentation Foundation, WPF. Tapi it would be great kalau misalnya anda menggunakan lebih dari itu. Karena suatu technology somehow pasti punya batasan tertentu. Contohnya ini bener bener case salah satu project di Indonesia yang bakal dipakai di Education Department. Mereka itu bikin untuk education, gitu itu seru banget. Di project itu, base nya menggunakan Windows Presentation Foundation tapi dia juga butuh interog gitu.

    RW: Jadi nyambung ke sequel reporting services juga?

    W: Iyah itu bisa, Jadi one thing, satu technology itu good or not harus kita perhatikan adalah interog probabilities. Jadi kita bisa bikin control yang running win control di WPF dan WPF running di win control itu memungkinkan.

    RW: Itu alasannya kenapa tuh Wil? Kenapa ada situasi apa yang supaya lo pengen itu? Berarti menyatakan ada something yang ga bisa dilakukan di WPF tapi bisa dilakukan di winform?

    W: Yang sangat fundamental adalah dulu kita bikin aplikasi, library banyak banget yah pake aktif Xcom, ketika kita migrate ke .NET pusing kepala, garuk garuk kepala. Tapi gimana yah, apakah saya bisa gunakan dengan library yang lain gitu, Microsoft menjawab dengan interog gitu. IPI.net bisa di consume sama VB 6 dan VB 6 punya dll, itu bisa di consume sama .NET. Nah kasus serupa ternyata di Windows Persentation Foundation juga, gimana sekarang kalau misalnya saya sudah bikin sebuah windows form nih. Nah form nya itu sudah ada, form itu somehow saya ga mau migrate itu menjadi WPF karena itu repot yah. Bisa ga saya doing interog. Ya bisa ajah. Kita gunakan satu item yang namanya kalau Window itu namanya Windows host box, untuk nge host yang WPF.

    RW: Jadi lebih lebih legalacy support yah, jadi minimized risk buat satu perusahaan untuk nge adopt WPF. Kayanya WPF berarti di posisiin untuk menggusur winform, yang technology nya lumayan gusur kan sekarang. Tapi yang aku denger juga, masi banyak orang yang mempunyai kesulitan buat mempelajari WPF ini yah. Karena denger denger perbedaannya lumayan drastis dengan winform. Bisa ngomong sedikit kira kira perbedaannya apa dan kenapa itu sulit dan kalau misalnya mungkin ada juga tips oleh Wely gimana cara supaya memudahkan belajar WPF

    W: Oke, saya akan kaitan pertanyaan itu dengan application module WPF nya sendiri dan tools yang digunakan untuk aplikasi WPF. Application model WPF, WPF menfaatkan satu Markup language yang namanya XAML atau yang biasanya di sebut dengan zamel. Zamel itu just xml, yah sama seperti xml tapi dia punya panduran tertentu yang mengharuskan kita untuk comply ke dia gitu. Jadi untuk kita bisa buat contoh gitu, untuk bikin sebuah button kita bisa bikin dari Markup language atau kita bisa bikin dari impractive code dari atau C sharp code. Pertanyaannya why do we need zamel gitu yah? Itu untuk gini, kalau misalnya selama ini designer, apa yang designer design yah dia sudah bikin button cantik cantik, grid cantik cantik, ketika di serahin ke developer apa yang terjadi, potong potong jadi image. kalau misalnya saya mau sytle yang bagusan, ketika sampai ditangan developer juga jadi kurang bagus, diakalan paling juga misalnya imagenya jpg disusun gitu kan. Ya somehow ada keterbatasan yang membuat itu jadi kurang perfect gitu.

    RW: Terutama yang bikin CSS gitu kan, frustasi ga browser compatible

    W: Karena menggunakan zamel, designer bisa design menggunakan satu tools yang namanya Expression design, dia bisa design dan menggunakan untuk slicing atau membikin animation dan ketika apa yang dikeluarin dari itu adalah Markup language, sebuah zamel. Zamel itu di mengerti sama developmer dan sama designer. Mungkin designer ga ngerti zamel gapapa, dia gambar ajah yang bagus bagus, hasilnya toh zamel gitu. Begitu diserahin ke developer, developer tinggal meng enhance zamel dengan menambahkan code. Jadi application model itu at very high level itu, zamel gitu. Mungkin kita bisa ngomong artisektur

    RW: Coba boleh skarang dibahas sekarang dikit.

    W: Kalau kita masuk ke arsitektur, WPF sendiri, jadi WPF itu punya 3 dll yang penting. Kalau kita perhatikan Windows. Windows at the very fundamental itu adalah apa, adalah Kernel Windows. Dimana whatever program atau aplikasi yang kita run di atas Kernel,  Kernel yang manage sebuah activitas operational di sebuah OS gitu kan. Di atas Kernel ada a lot of dll, a lot of run time library, salah satu nya direct x, which is tugasnya untuk menampilan graphic ke UI. Nah di atas direct x, ada 1 component yang namanya milcor, which is salah satu component dll yang running diatas direct x sendiri. Nah milcor ini adalah native, artinya dia running tidak diatas CLR, tapi dibawah .NET. Jadi salah satu, ternyata salah satu library dari WPF itu running dibawah CLR, bukan diatas. Lalu diatasnya lagi, diatas milcor.

    RW: Jadi ini equivalent sama MSIL kalau C sharp, VB dan sebagainya atau totally different thing?

    W: Ga, dibawahnya. Itu akhirnya ga running diatas CLR. Saya kasih tau dulu, ada 3 dll, ada 3 component utama dari WPF, yang pertama yang running di bawah CLR yaitu milcor, lalu ketika di level CLR, yang tugasnya untuk menterjemahkan code kita yah dari MSIL ke native code. Nah diatas CLR ada 2 dll penting lagi, namanya presentation core. Presentation core itu dll nya WPF juga yang tugasnya untuk mengimelementnya element WPF.

    RW: Jadi form dan button nya itu sendiri yah?

    W: Sori, saya ketinggalan yah. Yang milcor itu tugasnya untuk rendering purpose, jadi running di direct x. Dia kan menghandle 2D 3D animation dengan bantuan direct x .

    RW: Jadi ini sudah pixel by pixel operationnya lah yah?

    W: Iyah, lalu setelah presentation core ada lagi yang namanya presentation framework. Presentation framework itulah yang kita familiar yang terdiri dari UI componentnya. Jadi arsitekturnya ada 3 component yang membuat WPF happens. Ketika kita running sebuah aplikasi web, ada kan sebuah presentation host yang akan jalan di service kita

    RW: Perbedaan yang mendasar winform sama WPF itu apa Wel?

    W: Jadi tergantung purposenya gitu lagi, yang pertama purpose dari winform sama WPF itu berbeda. Selain itu dari sisi technology, winform pure running diatas CLR tanpa ada barang barang seperti presentation host, presentation core, presentation framework dan segala macem. Winform itu running natively diatas CLR dan running dengan control yang kita sudah familiar, bahkan di VB 6 sudah ada control yang serupa. Basicly perbedaannya itu siy, sebetulnya masih banyak yang bisa kita drill down yah.

    RW: Jadi WPF lebih yang multimedia rich nya, tapi misalnya mungkin lebih satu perusahaan yang lebih peduli sama productivity dan team nya mereka sudah lancar sama winform ngapain pindah ke WPF langsung gitu yah.

    W: Dan kalau mereka ga care tentang UI, it’s fine gitu. Bahkan sometimes bahkan consule bakal jalan gitu kan. Kita kembali lagi ke customer gitu.

    RW: Salah satu topic yang sangat close to my heart salah testibility. Aku pernah punya pengalaman untuk nge produce winform yah, bagi aku sangat sangat susah banget buat nge test nya. Di WPF ada fungsi fungsi baru yang buat memudahkan untuk testibility ga?

    W: Testibility mungkin saya ga bisa share terlalu banyak. Yang pasti WPF itu punya beberapa pattern, yang biasa bikin itu dari pattern practice yang namanya application guidance atau disebut dengan prisom. Itu sangat cocok buat kita, gimana yah. Jadi kita ngikutin pattern pattern tersebut buat module module WPF yang lebih ter structure, Itu paling yang bisa saya share, tapi saya belon explore lebih jauh tentang prisom itu. Dan untuk testibility saya juga belon main terlalu jauh tentang itu.

    RW: Ada tips tips terakhir untung orang yang mau mulai WPF?

    W: Ohh, ada ada. Jadi gimana yah saya tulisnya gimana, saya sebutin satu per satu atau gimana ni?

    RW: Sebuatin ajah dulu, ntar kita bakal masukin ke record notesnya,

    W: Okay, anda masuk ke http://windowsclient.net. Jadi windowsclient.net itu contain winform dan WPF karena 2 technology itu berapa di sisi client, client side. Jadi beda dengan ASP .NET yang lain. Ini winform dan WPF. Anda bisa masuk ke sana website itu, itu sangat lengkap, Kalau misalnya bagi teman teman yang belon pernah coba WPF, anda bisa get started, itu ada tutorial dalam berbagai media siy, itu ada video, ada hands on lab, bahkan ada contoh contoh sample code. Itu sangat menarik, Itu yang pertama. Selain itu, anda bisa, saya pernah nulis beberapa blog tentang WPF itu alamatnya http://geeks.netindonesia.net/blogs/wely Itu blog saya. Anda cari yang tag Windows Presentation Foundation, tagnya itu. Saya pernah nulis post yang related dengan WPF.

    RW: Wely terima kasih sudah ngeluangin waktu nya buat ngobrol bersama kita. Ada pesan pesan terakhir?

    W: Pesan pesan terakhir, kalau teman teman mau blajar WPF, teman teman masuk ke search engine di internet, anda terserah mau pakai search engine apa. Cari aja Windows Presentation Foundation, enter itu resource nya sangat banyak gitu,

    berbagi dengan yang lain?
    • FriendFeed
    • TwitThis
    • del.icio.us
    • email
    • Facebook
    This page is wiki editable click here to edit this page.
    • lukman
      thank's for your information.....
    blog comments powered by Disqus
    Get Adobe Flash playerPlugin by wpburn.com wordpress themes