Ridi Ferdiana

Another Technical Fellows Survivor :)
See also: Other Geeks@INDC

October 2008 - Posts

Chart… Chart .NET 3.5

Kemarin baru aja posting tentang impian mengintegrasikan Silverlight Toolkit dengan Sharepoint .. tengok ke MSDN download ternyata ada Chart khusus yang dinamakan Microsoft Chart. Microsoft Chart ini sesuai dengan namanya member solusi representasi data melalui konep diagram dengan pembukusan dari sisi logis control yang cukup baik. Anda dapat mengunduhnya dari site berikut.

Instalasinya cukup menarik, pertama Anda dapat mendownload

Hasilnya kontrol sudah muncul di bagian toolbox dan Anda siap drag and drop..sayangnya chart ini tidak jalan pada WPF atau SilverLight, mau tahu solusinya.. tunggu posting berikutnya Smile

Share this post: | | | |
Empowered your WPF Apps with Enterprise Library 4.1

 

Entah merasa teracuni semenjak kenal seseorang atau memang teracuni karena pustaka di dalam-nya memang wah, but anyway beberapa hari yang lalu Enterprise Library 4.1 di rilis, tak lain dan tak bukan berisi sekumpulan pusataka business layer dan DAL yang siap membantu pengembang dalam melakukan rutinitas-rutinitas yang mungkin seringkali dilakukan seperti.

  • Mekanisme caching
  • Mekanisme keamanan data melalui kriptografi
  • Mekanisme akses data melalui pustaka DAL
  • Mekanisme penanganan kesalahan
  • Mekanisme pencatatan (log) aktifitas aplikasi
  • Mekanisme validasi data
  • Dsb.

Bila Anda termasuk salah satu pengguna fitur-fitur di atas dan juga seringkali melakukan rutinitas yang sama untuk hal-hal di atas cob deh Enterprise Library 4.1 yang diunduh disini

Share this post: | | | |
Plain XML on SilverLight | FastBreak Series

Pada posting tentang data binding di SilverLight, tampak jelas bahwa kemudahan menggunakan SilverLight di sisi binding xml adalah terletak pada DataTemplate nya. Pendekatan tersebut memang mudah tetapi mungkin tidak sefleksibel yang dibayangkan. Apabila suatu saat pengembang hendak membaca XML secara "apa adanya" maka terdapat banyak jalan menuju roma, yakni

  • Menggunakan XMLReader and XMLWriter (cepat! cocok untuk lingkungan berbandwidth kecil)
  • Menggunakan XML to LINQ (akses objek dengan kemudahan yang manusiawi)
  • XMLXAPResolver dan XMLPreloaderResolver (akses paling sederhana dan memudahkan pengembang)

Baik untuk menyingkat bahasan silahkan mengeksplorasi kode sederhana berikut ini,

Salam Hangat | Ridi

Share this post: | | | |
Posted: Oct 30 2008, 04:12 AM by ridi | with no comments
Filed under:
SilverLight Toolkit

Setelah rilisnya WPF Toolkit, ikut lahir pulalah SilverLight toolkit, sekumpulan control siap pakai yang dapat memangkas sebagian rutinitas pengembang dalam melakukan representasi antarmuka dan data. Hal yang paling menyenangkan bagi penulis adalah hadirnya fitur charting. Bagaimana tidak upaya menampilkan secara visual suatu data adalah upaya yang nyata mengenai konsep RIA (Rich Internet Apps). Pada masa lalu masih penulis ingat untuk mengimplementasikan sebuah chart custom di SharePoint saja , harus dikembangkan sebuah chart yang setidaknya menggunakan komponen pihak ketiga seperti Dundas. Berkat adanya SL toolkit ini tampak bahwa terdapat alternatif solusi untuk mengembangkannya dengan lebih efisien.

 

Solusi Chart Silverlight pada Office SharePoint melalui pendekatan Web Parts. Bila ingin membayangkan bayangkanlah rumus matematika sederhana ini

RIA Charting SharePoint = SL2 + SL2 Toolkit + SilverPart + ADO.NET Data Services / WCF

Chart adalah bagian yang menarik tetapi sebenarnya terdapat berbagai control menarik seperti

  • TreeView
  • AutoCompleteBox
  • DockPanel
  • WraPanel
  • Label
  • Expander
  • HeaderedItemControl
  • HeaderedContentControl
  • NumericUpDown
  • ViewBox
  • ButtonSpinner
  • ImplicitStyleManager

Berbagai kode cntohnya dapat di ambil disini (charting) dan disini (control lainnya)

Happy Exploring

Ciao | Ridi

Share this post: | | | |
Posted: Oct 30 2008, 03:56 AM by ridi | with no comments
Filed under: ,
Smiling with SilverLight | Episode One

During the first session of the code, I always figure it out that every single code started with our willing and our smile into the code… Here they are the code

Welcome to the series about SilverLight … and we started by smile

 

Share this post: | | | |
Posted: Oct 29 2008, 03:34 AM by ridi | with no comments
Filed under: ,
SilverLight Data Binding Simply Just Work | FastBreak Series

Bukan sebuah rahasia lagi bila data binding menjadi sesuatu fitur mendasar di teknologi direktif Windows Presentation Foundations, Salah seorang senior penulis telah membuat ungkapan yang cukup baik tentang Data Binding di teknologi WPF , lalu bagaimana dengan SilverLights? Jawabannyapun cukup dua kata yakni "hampir sama".

Bicara tentang pengikatan data (data binding). SilverLight mendukung pengikatan data yang merupakan subset dari WPF, ya subset artinya pengikatan datanya tidaklah sekaya yang dimiliki WPF. Pengikatan data yang pada umumnya didukung SilverLight adalah sebagai berikut.

  • Pengikatan data dari koleksi dan variable
  • Pengikatan data melalui sumber data XML
  • ADO.NET Services
  • External Data Source (WCF, HTTP Web Services, dsb)

Hal pertama dan kedua adalah satu hal yang mungkin sudah Anda dengar sebelumnya, lalu bagaimana dengan ADO.NET Services, untuk memahami teori awalnya silahkan membaca artikel yang pernah penulis di kisaran bulan September tentang Entity Framework. Baik fokus kita pada posting kali ini adalah mengekloprasi opsi pertama dan kedua sementara opsi yang ketiga dan keempat, akan penulis pisahkan pada posting-posting setelah ini.

Pemahaman terbaik adalah dengan mencoba kode contoh yang dapat diunduh berikut

Kode berikut akan memberikan contoh pengikatan sederhana kemudian ditampilkan dalam antarmuka SL , Untuk mengkompile-nya penulis sarankan untuk

  • Kode contoh ini menggunakan beberapa video jadi disarankan pengunduh menyiapkan video (.wmv), Penulis tak sertakan untuk menghemat waktu unduh
  • Kode contoh ini menggunakan data xml yang dapat dimodifikasi di bagian ClientBin

Selamat belajat ya

Ciao | Ridi

Share this post: | | | |
Posted: Oct 28 2008, 03:32 AM by ridi | with 1 comment(s)
Filed under: ,
WPF Arsitektur yang akan selalu Natif | FastBreak Series

 

Sore ini dikala agak ngantuk, membaca tulisan ini dalam sebuah ebook 

"Seperti halnya dengan teknologi .NET, arsitektur Windows Presentation Foundation sebagian besar berada dalam wilayah kode terkelola, dan sedikit diantaranya memanfaatkan komponen-komponen kode natif. Meskipun demikian, API publik yang terekspos hanya dapat diakses melalui kode terkelola. Sementara mayoritas dari WPF berada didalam kode terkelola, teknik penampilan aplikasi-aplikasi WPF sendiri berupa sebuah komponen natif. Komponen ini bernama Media Integration Layer (MIL) dan terletak didalam milcore.dll. Komponen ini berhubungan langsung dengan DirectX dan memberikan dukungan dasar untuk permukaan 2D dan 3D, manipulasi konten antarmuka 2D dan 3D, serta menggabungkan elemen-elemen individual dari sebuah aplikasi WPF kedalam sebuah "cuplikan" 3D final yang merepresentasikan antarmuka pengguna aplikasi dan merendernya ke layar. Penampilan pemutaran media dengan Media codecs juga diimplementasikan dalam kode tidak terkelola, dan diberikan sebagai windowscodecs.dll. "

Kenapa pakai natif?

pertama belum ditemukan bahwa suatu kode terkelola dapat berjalan tanpa kode tak terkelola

alasan kedua

Performa, nothing beat the native :)

Apa pesan penulis, ya tetap belajar sesuatu yang natif ..... jangan tinggal natif 100% karena suatu saat pasti dibutuhkan walaupun hanya untuk memanggil shell32 dengan pinvoke membutuhkan pengetahuan tentang natif juga bukan

 

Share this post: | | | |
SilverLight 2.0 RTW + MOSS 2007 = SilverPart RTW | FastBreak Series

 

Bagi rekan yang sudah terbiasa dengan pengembangan web parts untuk SharePoints mungkin sudah tidak asing lagi merasa bahwa moss SDK, hingga saat ini belum memiliki template yang dikhususkan untuk Visual Studio 2008. Bila Anda mengalami ini maka yang seharusnya anda lakukan adalah membuat class library beserta rutinitas tampilan yang layak bagi sebuah Sharepoints.

SilverLights kini sudah mencapai versi 2.0 RTW, tampak di umur mudanya sudah cukup bagi kita menyandingkannya sebagai sebuah bagian dari suatu platform web kolaborasi kaya seperti Sharepoint. Keberadaan SilverLight di Sharepoints tentu akan memberikan suatu UX yang lebih intuitif, estetik, dan tentu lebih informative.

Apabila pada langkah ini Anda memiliki keinginan untuk melakukan wrappers SilverLight di MOSS, maka tunggu dulu. Pada situs ternama Codeplex terdapat SilverLight Blueprint, suatu usaha pengembangan komponen integrasi SilverLight dengan MOSS. Pada situs yang sama Anda dapat pula mengunduh SilverPart, SilverPart adalah subset dari SilverLight Blueprints misinya hanya satu untuk memudahkan penggunaan SilverLight Blueprints yang mungkin agak rumit bagi newbie seperti kita. Tetapi tampaknya Anda harus sedikit bersabar karena keduanya masih berada dalam jalur beta 2.0,

Tetapi bila Anda sudah tidak sabar menggunakan SilverPart untuk versi RTW, maka khusus pembaca geeks silahkan unduh versi SilverPart modifikasi untuk RTW ini.

Ciao | Ridi

Share this post: | | | |
Posted: Oct 26 2008, 08:40 PM by ridi | with no comments
Filed under: , ,
Component Development on WPF | Fastbreak Series

Dalam desain dan pengembangan komponen terdapat dua jenis komponen yang mungkin kita kembangkan, yakni state-full komponen dan state-less komponen.

  • Komponen state-full adalah komponen yang dikenal juga dengan object komponen, berisi entitas-entitas bisnis yang menyimpan status suatu objek dari seluruh siklus hidup yang ia miliki, mulai dari dia di-instance hingga dia harus digiring oleh garbage collector.
  • Komponen stateless adalah komponen yang dikenal dengan utility komponen, di dalamnya terdapat sekumpulan fungs-fungsi yang berguna sebagai pelengkap program dalam melakukan aktifitas yang tidak membutuhkan suatu objek. Pada komponen ini biasanya yang dilakukan meliputi perhitungan-perhitungan sederhana, kriptografi, ataupun enkripsi. Intinya pada komponen jenis ini tidak dibutuhkan suatu aliran di tingkat objek (reference), aliran yang ada hanyalah aliran suatu nilai (value).

Secara logis maupun fisik sebaiknya pengembangan komponen ini dipisahkan dalam komponen package yang berbeda. Dengan kata lain keduanya bisa berbeda ditingkat class maupun ditingkat berkas komponen (.dll). Pada WPF hal ini dapat diimplementasikan dengan menggunakan class Library dan beberapa konsep dasar bahasa OOP seperti C# atau VB.NET . Bagaimana mengimplementasikanbya silahkan segera unduh kode contoh berikut.

Ciao | Ridi

Share this post: | | | |
SilverLight Template and Style WPF model| Fastbreak series

Bila rekan-rekan membaca tentang artikel antara cinta dan realita episode 6, maka dasar teori tersebut dapat diimplementasikan di SilverLight RTW. Kebetulan sempat bermain-main dengan SL 2 RTW hari ini dan seperti pada kaidah hirarkisnya bahwa permodelan di SL 2 RTW mengikuti permodelan resources milik WPF, sebagai contoh App rosources dapat juga diterapkan di semua page page di sebuah project SL, Page Resources dapat diadopsikan ditingkat resources.. untuk melihat implementasinya di SL , silahkan unduh contoh kode suplemen ini.

Ciao | Ridi

Share this post: | | | |
Posted: Oct 21 2008, 09:35 PM by ridi | with no comments
Filed under: ,
WPF antara Cinta dan Realita | Episode 6

Pada episode 4 seri Cinta dan Realita telah dikemukakan tentang Application Object Model. Pada teknologi WPF selain Application Object Model terdapat juga Programming Object Model. Bila Applications Object Model memfokuskan pada dukungan permodelan pustaka aplikasi WPF dari sisi antarmuka dan presentasi aplikasi, maka Programming Object Model lebih menekankan pada dukungan permodelan pustaka aplikasi WPF dari sisi pemograman aplikasi seperti penanganan events, akses resources, hingga pengikatan data. Seri Cinta dan Reailta kali ini akan membahas beberapa model yang diusung oleh Programming Object Model.

WPF Base Objects

Sebagian besar class pada WPF berasal dari turunan class dasar lainnya. Sebagai contoh pada base objects WPF, sebagian besar berasal dari class DependencyObject, apabila rekan hendak membuat object pemograman silahkan menurunkannya dari class tersebut. DepedencyObject class berisi berbagai cara untuk melakukan komputasi properties yang terkait dengan model pemograman WPF, plus didalamnya juga terdapat dukungan event notifikasi perubahan nilai yang mungkin terjadi pada object yang bersangkutan. Gambar 1 menjelaskan hirarkis DependencyObject terhadap class-class base object lainnya.

 

Gambar 1. Hirarkis DepedencyObject

Tabel Berikut menjelaskan fungsi setiap class-class base objects turunan DependencyObject

Nama Class

Deskripsi

Visual

Sesuai dengan namanya, class ini terkait dengan semua tampilan visual pada control-kontrol WPF

Freezable

Class ini adalah class yang memfokuskan pada peningkatan performa aplikasi untuk tampilan grafis yang dibuat oleh brush atau pen. Intinya class ini memberikan notifikasi pada sistem untuk tidak merender bagian-bagian aplikasi yang bersifat frozen (tidak berubah) ataupun sebaliknya (unfrozen)

UIElement

Class ini mendukung untuk animasi, commands, event masukan, dan juga event-event antarmuka yang dimiliki oleh dependency objek

ContentElement

Class ini mendukung konsep isi (content) yang dimiliki sebuah aplikasi. Sebagai contoh penggunaan class ini adalah class-class reader yang merupakan class yang membutuhkan content

FrameworkElement

Memberikan dukungan layanan untuk animasi, story boards, pengikatan data. FrameworkElement adalah subclass dari UIElement

FrameworkContentElement

Memberikan layanan yang sama dengan FrameworkElement hanya saja, FrameworkContentElement merupakan subsclass dari ContentElement, dengan kata lain di dalamnya terdapat dukungan fungsi dari ContentElement

WPF Events

Aplikasi merespon terhadap setiap aksi pengguna melalui suatu konsep yang dikenal dengan events. Pada aplikasi berbasis WPF, XAML dan Code Behind, saling terhubung melalui penamaan event yang memiliki signature sama, konsep ini dikenal dengan delegate. Sebagai contoh apabila rekan-mengklik tombol maka respond logika bisnis dieksekusi. Event bersifat one-to many artinya respon sebuah event dapat berpengaruh pada lebih dari satu control.

private void btnHitung_Click(object sender, RoutedEventArgs e)

{

MessageBox.Show("Test");

}

WPF Resources

WPF resources mengemukakan tentang sekumpulan sumberdaya yang bersifat reusable, pada umumnya WPF Resources terbagi menjadi tiga kategori.

  • Standard Resources, resources ini melekat pada element dengan ditandai x:key , sebuah kunci element yang unik untuk standard resources. Pada umumnya standard resource diletakkan pada sebuah root element sebagai contoh diletkkan di stackpanel atatupun grid, hal ini menjamin tujuan dari resources sendiri yakni "Resources"
  • Application Resources, resources ini terletak pada aplikasi, lebih tepatnya diletakkan pada Applications Object Model (app.xaml)
  • System Resources, resources ini terletak pada sistem dan sudah dimiliki oleh WPF, sebagai contoh resources systemcolor (pewarnaan) atau resources systemfont (font)

Kode Contoh

Kode contoh ini menunjukkan penggunaan events, resources, yang telah dikemas dalam satu solusi

Selamat belajar

Ciao | Ridi

Share this post: | | | |
Profiling the Rich Internet Application (SilverLight)

Doing little research how we profiled and tuning our existing web applications and this draft paper is created for you who want to modified your RIA (Web App + SilverLight + Ajax) in semi engineering style. Just download it while it's free

Ciao | Ridi

Share this post: | | | |
Posted: Oct 18 2008, 12:09 AM by ridi | with no comments
Filed under: ,
SilverLight RTW Extensions Tools for Visual Studio 2008 SP1

Siapa yang tidak kenal dengan SilverLight teknologi ini membuat developer .NET cinta (dengan kekayaan programming modelnya) dan juga benci (dengan ketidakkonsistenan backward compatible-nya). Bila rekan-rekan pernah bermain SilverLight semenjak jaman doloe (sewaktu Scotguu masih imut (maap om sekarang juga masih imut kok)) pasti rekan-rekan ingat betapa lumayan "pain" pada saat

Merubah

SilVerLight 1.0 -> 1.1 (ya jelas wong pendekatannya beda)

SilverLight 1.1 -> 2.0 (berdarah darah dengan perpindahan namespaces)

SilverLight 2.0 beta 1 -> 2.0 beta 2 (ndak terlalu pain tapi nyebelin)

SilverLight 2.0 beta 2.0 -> 2.0 RC0 (hua ngerubah lagi ini pain kalau dikejer deadlink eh deadline)

 

Tetapi Alhamdulillahnya dari RC0 ke RTW , ndak ada breaking changes yang besar kecuali annoying label yang mengatakan seperti ini

"SilverLight yang dikembangkan situs ini udah basi, tolong hubungi si pembuat situs, atau ndak kami (selaku pihak Microsoft) akan menghubungi si pembuat situs untuk membantu merubahnya (seperti ada divisi charity untuk mengupgrade SL kita..mungkin temen-temen MS indo mo bantuin ngupgrade :p)"

Baik-baik terlepas dari itu SilverLight udah bisa di download baik Runtime maupun SDK nya .. silahkan mengacu pada pos rekan-rekan lainnya (soalnya ada post yang sama lebih dari dua untuk link download)

Tapi sayangnya di dalam SDKnya belum terdapat Extension Toolsnya.. untuk mengunduh extensions toolsnya teman-teman bisa mengekstract dari Silverlight tOlls RC1 ini atau pakai yang RC0 juga bisa caranya cukup

  1. Buka command prompt lalu arahkan ke lokasi silverligh chainer anda dan ketikkan silverlight_tools.exe /x
  2. Kemudian dilanjutkan dengan memasang VS_SilverlightTools_*.exe

Tapi sebelumnya install runtime dan sdknya yach

Ini tools masih RC1 tapi sudah kompatibe dengan versi final J

 

Ciao | Ridi

 

Share this post: | | | |
Posted: Oct 14 2008, 11:33 AM by ridi | with no comments
Filed under: ,
WPF Theme | Fastbreak Series

Salah satu hal yang menarik dari WPF adalah dukungan theme. Hal ini mengingatkan kita pada pemograman web yang cukup interakrif dari sisi antarmuka dan tata letak dengan hadirnya layout dengan CSS dan ASP.NET. Pada WPF terdapat juga konsep theme dengan menggunakan resources model.

Pendekatannya secara umum terbagi menjadi dua pendekatan theme

  • Pendekatan Statis, menggunakan resource model yang ditanamkan pada Applications Object Model
  • Pendekatan Dinamis, menggunakan pendekatan model yang mengoverride startup events pada app object model

Theme dikembangkan dalam bentuk XAML resources dictionary, tentu template ini sudah tersedia pada Visual Studio 2008. Sehingga hal yang dapat dilakukan adalah membuat berkas xaml berisi theme kemudian disimpan dalam berkas .xaml yang kemudian di load baik secara statis maupun dinamis.

Selain dukungan theme custom, Microsoft juga menyediakan theme default seperti aero , royale (win media center), luna, dan classic. Referensi untuk ini dapat dilihat di sini

Berikut adalah code contoh untuk sesi fastbreak

Share this post: | | | |
WPF antara Cinta dan Realita | Episode 5

Happy Ied, selamat lebaran. Liburan lebaran yang indah telah berlalu, kegiatan nge-lab kembali berlangsung. Hal yang menarik pada saat pertama kali ngelab adalah diselenggarakannya sebuah Events mingguan di Lab MIC dengan nama Internal Skill Accelerator UX development and foundations with WPF. Sebuah pola pertanyaan yang nyata pada setiap pembelajaran WPF adalah "mengapa saya harus mengadopsi WPF" pertanyaan ini tampaknya sudah dijawab pada WPF Cinta dan Realita episode 1. Pertanyaan yang menarik lainnya adalah "Bagaimana mempertahankan investasi kode yang telah dimiliki oleh kita yang dikembangkan dengan teknologi sebelum WPF yakni Windows Forms, Win32, ataupun control lain seperti ActiveX. Dan ini yang akan kita bahas pada episode kali ini.

Interoperabilitas di tingkat Managed Code

Teknologi WPF menghadirkan konsep interoperabilitas dengan teknologi sebelumnya. Interoperabilitas didefinisikan sebagai kemampuan suatu platform/teknologi untuk dapat berkomunikasi dengan platform/teknologi lain, baik secara langsung atau melalui suatu broker yang dikenal dengan middleware. WPF secara langsung mendukung dua teknik yang memungkinkan terjadinya interopreabilitas antara teknologi Windows sebelumnya, yakni.

  • Host WPF Content di Windows Form, pada bagian ini kunci utamanya adalah class ElementHost yang menangani komunikasi control WPF di Windows Form
  • Host Windows Forms Control di WPF Applications, pada mekanisme ini kunci utamanya adalah class WindowsFormHost yang menjadi container control Windows Form di WPF

Kedua kemampuan ini menarik sebagai contoh melakukan hosting wpf control ke Windows Form akan memfasilitasi pihak-pihak yang telah memiliki investasi kode di Windows Form untuk meningkatkan UX aplikasinya dengan menambahkan WPF Contents, hal yang sebaliknya juga berlaku pada kondisi-kondisi tertentu.

Interoperabilitas di tingkat Unmanaged Code

Bagaimana dengan Interop dengan teknologi sebelum Windows Form. Secara umum memang tidak ada jalur yang "mudah" untuk ini tetapi bila kita sama-sama mengacu pada kemampuan .NET Framework dalam memfasilitasi komunikasi berbasis interop melalui mekanisme COM Interop dan Platform Invoke, maka kita dapat melakukannnya dengan dua pendekatan umum yakni.

  • Mengkonversi terlebih dahulu program yang kita miliki menjadi program yang memiliki dukungan .NET. Sebagai contoh kita dapat mengkompilasi aplikasi Win32 kita dengan flag /CLI kemudian melakukan pemanggilan fungsi-fungsi yang dibutuhkan dengan menggunakan P-Invoke
  • Mengenkapsulasi terlebih dahulu control yang berbasis win32 / ActiveX menjadi User control .NET Framework kemudian memanggilnya di aplikasi WPF

Kode Sumber

Konsep-konsep di atas penulis tampilkan dalam kode-kode berikut, kode pada solusi ini memang cukup panjang mengingat topic interop memang cukup luas dan menarik dalam pembahasannya. Pada kode sumber ini pembaca dapat memperoleh berbagai proyek-proyek contoh interop antara.

  • WPF ke Window Form
  • Windows Form ke WPF
  • ActiveX ke WPF
  • Win32 ke WPF

Unduh di

Share this post: | | | |
More Posts Next page »