Reyza

tenang, senang, sederhana
See also: Other Geeks@INDC
New ASP.NET 3.5 Control : Generated Image

Kadang pada aplikasi yang dibangun terdapat fasilitas untuk melakukan upload foto atau gambar dan tentu saja  ada kemampuan untuk menampil foto atau gambar tersebut. Foto atau gambar tersebut dapat ditampilkan berupa tumbnail.

Disalah satu aplikasi yang kami bangun, gambar yang menjadi tumbnail dibuat dengan 'hanya me-resize' ukuran gambar/foto yang telah di-upload dengan menggunakan atribut Width dan Height pada tagl <img> atau pada control <asp:Image>. Artinya setiap file yang ditampilkan masih mempunyai ukuran file yang sama. Bayangkan bila 1 file gambar yang diupload sebesar 1MB kemudian 'tumbnail bohongan' yang ditampilkan ada 13 buah, maka satu halaman akan berukuran 13MB.....'keren bukan' ? :)

Jadi harus dicari solusi untuk menghilangkan hal 'keren' ini, dari hasil jalan-jalan dengan mengedarai 'mesin pencarian terpercaya' maka bertemulah dengan project ASP.NET di CodePlex, url-nya dapat dikunjungi di sini. Pada halaman tersebut dapat ditemui satu project yang baru saja keluar tidak lebih 1 bulan (sejak tulisan ini di-publish), yaitu tanggal 19 Agustus 2008.

Apa saja yang dijanjikan oleh ASP.NET Generated Image Futures? Berikut hal-hal penting yang bisa didapat :

  • Control ini menjanjikan dapat menampilkan gambar yang ada di dalam tabel dalam suatu database dengan lebih cepat.
  • Membuat gambar secara on-the-fly.
  • Memodifikasi gambar yang sudah ada, seperti mengubah ukuran secara on-the-fly, memberikan tulisan dan lain-lain.
  • Cache untuk mempercepat load gambar.
  • etc.

{Yang Perlu Disiapkan}

Terlebih dahulu yang perlu disiapkan adalah mengunduh Microsoft.Web.GeneratedImage.dll di sini. File-file contoh program juga bisa ditemui pada url tersebut, termasuk database yang berisi gambar untuk latihan.

geeks1

File Microsoft.Web.GeneratedImage.dll dapat digunakan untuk menambah control baru pada toolbox VS2008, seperti yang terlihat pada gambar berikut :

geeks3

{Hello World with ASP.NET Generated Image Futures}

Apa yang harus dilakukan?

Pertama tentu saja membuat project Web Application atau cukup dengan membuat Website. Setelah itu tambahkan file Microsoft.Web.GeneratedImage.dll sebagai reference website atau web application.

Langkah kedua adalah membuat Image Http Handler, dengan isi seperti ini :

<%@ WebHandler Language="C#" Class="HelloWorldImageHandler" %>

using System;
using System.Collections.Specialized;
using System.Drawing;
using System.Web;
using Microsoft.Web;

public class HelloWorldImageHandler : ImageHandler
{

public HelloWorldImageHandler()
{
}

public override ImageInfo GenerateImage(NameValueCollection parameters)
{

}

}

Pada construktor, hal yang bisa diisikan adalah konfigurasi cache dan juga format image yang diinginkan. Sedangkan pada method GenerateImage, seperti namanya adalah method yang akan berfungsi 'apa saja yang dilakukan' untuk men-generate gambar yang akan ditampilkan. Di dalam method ini dapat ditambahkan baris-baris untuk mengambil data gambar dari database. Atau dituliskan baris-baris yang berfungsi untuk mengambil gambar dari filesystem kemudian melakukan proses modifikasi gambar seperti memberikan tambahan text pada gambar dan secara on-the-fly gambar dengan text yang diinginkan ditampilkan pada halaman web.

Jangan lupa tambahkan baris berikut pada Image Handler :

using System.Drawing;
using System.Web;
using Microsoft.Web;

Berikut contoh yang paling sederhana dari file Image Handler.

<%@ WebHandler Language="C#" Class="HelloWorldImageHandler" %>

using System;
using System.Collections.Specialized;
using System.Drawing;
using System.Web;
using Microsoft.Web;

public class HelloWorldImageHandler : ImageHandler
{

public HelloWorldImageHandler()
{
this.ContentType = System.Drawing.Imaging.ImageFormat.Gif;
}

public override ImageInfo GenerateImage(NameValueCollection parameters)
{
Bitmap bitmap = new Bitmap(232, 213);
Graphics graphic = Graphics.FromImage(bitmap);
graphic.Clear(Color.Red);
graphic.DrawString(parameters["myText"],
new Font(FontFamily.GenericSansSerif, 16),
Brushes.Black, 0, 0);

return new ImageInfo(bitmap);
}

}

Bila diperhatikan pada construktor terdapat baris yang mendefinisikan format file gambar yang akan digunakan, pada kasus ini format file gambar adalah GIF.  Artinya nanti ketika gambar sudah muncul pada web browser dapat dicoba untuk mengklik kanan gambar tersebut dan perhatikan extension dari gambar tersebut, dipastikan adalah GIF.  Selain format GIF dapat pula digunakan format :

  • BMP.
  • EMF.
  • Exif.
  • Icon.
  • Jpeg.
  • PNG.

Setelah itu, tinggal buat file ASPX yang akan menampilkan gambar tersebut.

<%@ Page Language="C#" AutoEventWireup="true" 
CodeFile="Default.aspx.cs" Inherits="_Default" %>

<%@ Register Assembly="Microsoft.Web.GeneratedImage"
Namespace="Microsoft.Web" TagPrefix="asp" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GeneratedImage ID="GeneratedImage1"
runat="server"
ImageHandlerUrl="~/HelloWorldImageHandler.ashx">
<Parameters>
<asp:imageparameter name="myText" value="Hello World" />
</Parameters>
</asp:GeneratedImage>
</div>
</form>
</body>
</html>

Tidak perlu penjelasan lagi bukan maksud dari baris-baris pada halaman ASPX di atas? Mungkin yang mesti diperhatikan adalah :

  • Mesti didaftarkan control GeneratedImage (dapan dilihat pada bagian atas).
  • Pada control GeneratedImage, atribut ImageHandlerUrl adalah file dari Image Hander yang telah dibuat.
  • Nama parameter myText yang ada pada control GeneratedImage mesti didaftarkan terlebih dahulu pada file Image Handler. Disini parameter ini berfungsi untuk menampung text yang akan ditampilkan pada gambar.

Berikut hasil dari contoh kode di atas.

geeks2

{Membuat Image Handler Otomatis}

Bila pada toolbox sudah ditambahkan control GeneratedImage, maka control itu dapat dimanfaatkan untuk membuat Image Handler secara otomatis, caranya  cukup dengan melakukan drag-n-drop control GeneratedImage pada halaman ASPX, kemudian pada mode design dapat dilihat control GeneratedImage seperti pada gambar berikut.

geeks4

Klik "Create Image Handler" maka secara otomatis file Image Handler akan dibuatkan dengan isi seperti berikut ini :

<%@ WebHandler Language="C#" Class="ImageHandler1" %>

using System;
using System.Collections.Specialized;
using System.Drawing;
using System.Web;
using Microsoft.Web;

public class ImageHandler1 : ImageHandler {

public ImageHandler1() {
// Set caching settings and add image transformations here
// EnableServerCache = true;
}

public override ImageInfo GenerateImage(NameValueCollection parameters) {
// Add image generation logic here and return an instance of ImageInfo
throw new NotImplementedException();
}
}

{Menampilkan Dan Memodifikasi Gambar}

Paga bagian ini akan diberikan contoh untuk menampilkan gambar yang sudah ada kemudian dicoba untuk memodifikasi seperti memberikan tulisan atau mengubah ukuran lebar & tinggi gambar.

Berikut ini contoh Image Handler untuk mengubah ukuran lebar dan tinggi gambar.

<%@ WebHandler Language="C#" Class="ImageHandler1" %>

using System;
using System.Collections.Specialized;
using System.Drawing;
using System.Web;
using Microsoft.Web;

public class ImageHandler1 : ImageHandler
{

public ImageHandler1()
{
this.ContentType = System.Drawing.Imaging.ImageFormat.Png;
}

public override ImageInfo GenerateImage(NameValueCollection parameters)
{
string imageUrl = Convert.ToString(parameters["imageUrl"]);
Bitmap original = new Bitmap(imageUrl);
Bitmap bitmap = new Bitmap(original, 100, 100);

return new ImageInfo(bitmap);
}
}

Dan berikut ini contoh control GeneratedImage yang digunakan.

<asp:GeneratedImage ID="GeneratedImage1" runat="server" 
ImageHandlerUrl="~/ImageHandler1.ashx">
<Parameters>
<asp:ImageParameter Name="imageUrl" Value="C:\fn1.JPG" />
</Parameters>
</asp:GeneratedImage>

Hasilnya :

geeks5

Gambar disebelah kiri adalah gambar original, sedangkan gambar sebelah kanan adalah output dari Image Handler dan control Generated Image. Sedangkan dari ukuran dapat dilihat pada gambar berikut.

geeks6

Terbukti ukuran menjadi lebih kecil.

Sekarang akan dicoba untuk memberikan sebuah text pada gambar tersebut. Berikut contoh Image Handler yang digunakan.

<%@ WebHandler Language="C#" Class="ImageHandler2" %>

using System;
using System.Collections.Specialized;
using System.Drawing;
using System.Web;
using Microsoft.Web;

public class ImageHandler2 : ImageHandler
{

public ImageHandler2()
{
this.ContentType = System.Drawing.Imaging.ImageFormat.Png;
}

public override ImageInfo GenerateImage(NameValueCollection parameters)
{
string imageUrl = Convert.ToString(parameters["imageUrl"]);
Bitmap bitmap = new Bitmap(imageUrl);

Graphics gra = Graphics.FromImage(bitmap);
gra.DrawString("www.TerangWangi.net",
new Font("Verdana", 32, FontStyle.Bold),
new SolidBrush(Color.Red), 30, bitmap.Height / 2);

return new ImageInfo(bitmap);
}
}

Dan berikut contoh kode control GeneratedImage yang digunakan :

<asp:GeneratedImage ID="GeneratedImage1" runat="server" 
ImageHandlerUrl="~/ImageHandler2.ashx">
<Parameters>
<asp:ImageParameter Name="imageUrl" Value="C:\DSC_0708.JPG" />
</Parameters>
</asp:GeneratedImage>

Hasilnya dapat dilihat pada gambar berikut ini.

geeks7

{jangan komentarin fotonya yg nge-blur ya, ini cuma quick shoot saat bertemu pertama kali dengan lensa 50mm f1.4}

{Mengambil dan Menampilkan Image dari Database}

Contoh pada bagian ini mengambil dari contoh yang terdapat pada CodePlex. Contoh berikut ini menggunakan LINQ to SQL. Maka dapat dilihat tabel dan class LINQ to SQL seperti pada gambar berikut.

geeks8

Dan berikut ini contoh kode Image Handler untuk mengambil data dari database sekaligus men-'GenerateImage'-nya agar bisa ditampilkan pada halaman ASPX.

<%@ WebHandler Language="C#" Class="ProductImageHandler" %>
using System;
using System.Collections.Specialized;
using System.Drawing;
using System.Web;
using System.Linq;
using Microsoft.Web;

public class ProductImageHandler : ImageHandler
{

public ProductImageHandler()
{
this.ImageTransforms.Add(new ImageResizeTransform
{
Width = 300,
Mode = ImageResizeMode.Fit
});
this.EnableClientCache = true;
this.EnableServerCache = true;

}

public override ImageInfo GenerateImage(NameValueCollection parameters)
{
using (DataClassesDataContext db = new DataClassesDataContext())
{

return new ImageInfo(db.MyImages.Single(x =>
x.ImageID == int.Parse(parameters["imageid"])).ImageData.ToArray());
}
}
}

Dan berikut ini contoh penggunaan control DataList dan GeneratedImage untuk menampilkan gambar.

<asp:DataList ID="DataList1" runat="server" DataSourceID="LinqDataSource1">
<ItemTemplate>
<cc1:GeneratedImage ID="GeneratedImage1" runat="server"
ImageHandlerUrl="~/ProductImageHandler.ashx"
Timestamp='<%# Eval("TimeLastModified") %>'>
<Parameters>
<cc1:ImageParameter Name="imageid" Value='<%# Eval("ImageID") %>'/>
</Parameters>
</cc1:GeneratedImage>
<br />
</ItemTemplate>
</asp:DataList>
<asp:LinqDataSource ID="LinqDataSource1" runat="server"
ContextTypeName="DataClassesDataContext"
Select="new (ImageID, TimeLastModified)"
TableName="MyImages">
</asp:LinqDataSource>

{Yang Baru Kutahu : Upload dan Menyimpan Data Ke Dalam Database Dengan Mudah}

Hal ini baru kutahu ketika melihat contoh kode "DatabaseImages", salah satu contoh penggunaan control GeneratedImage yang bisa ditemui pada CodePlex. Pada contoh ini terdapat contoh untuk mengupload file (dalam kasus ini adalah file gambar) dan kemudian menyimpan data gambar tersebut kedalam database. Caranya sangat simple bila ditulis dengan LINQ to SQL.

Berikut adalah isi kode file ASPX :

<asp:FileUpload ID="ImageUploader" runat="server" />
<br />
<asp:Button ID="SaveImage" runat="server"
Text="Save Image" onclick="SaveImage_Click" />

Dan berikut ini code file dari file ASPX ini :

protected void SaveImage_Click(object sender, EventArgs e)
{
using (DataClassesDataContext db = new DataClassesDataContext())
{
db.MyImages.InsertOnSubmit(
new MyImage
{
ImageData = this.ImageUploader.FileBytes
});
db.SubmitChanges();
}
}

Sangat pendek dan sederhana untuk ditulis, tetapi tetap belum tertarik untuk menyimpan gambar di dalam database.

{Selamat mencoba & selamat menunaikan ibadah puasa, mohon maaf lahir batin dan semoga puasa bulan ini lebih baik dari bulan-bulan sebelumnya}

Share this post: | | | |
Posted: Aug 31 2008, 09:13 AM by reyza | with no comments
Filed under: ,
TechEd SEA 2008 : Slides, Hands - on lab, Instructor - led lab, event's archives

Sekarang materi-materi TechEd SEA 2008 seperti slide, hands on lab manuals, instructor led lab manuals sudah bisa diundung dengan mengunjungi langsung url berikut : http://www.microsoft.com/malaysia/techedsea2008/

Atau dapat pula langsung klik kanan url-url di bawah dan dimasukkan ke dalam Flashget atau IDM yang rakus bandwidth itu :

Sebenarnya masih banyak lagi slide track tapi masih dalam proses upload.

Berikut ini materi Hands on lab manuals dan instructor led lab manuals :

Selain itu juga tersedia video TechEd di sini.

Selain itu ada arsip-arsip event yang ada saat TechEd SEA 2008, seperti berikut :

  • Sha-Zaam Pictures.
  • Zap Pictures, ini adalah kompetisi foto dengan menggunakan toy yang sudah disediakan. Pertama dipilih 10 besar foto yang masuk seleksi pertama untuk kemudian partisipan TechEd akan memilih kesepuluh foto tersebut untuk masuk 3 besar. Dan tentu saja ketiga posisi itu di tempati oleh partisipan dari Indonesia. Foto Om Danny, Om Binsar dan satu lagi lupa.
  • MCP Photo Session Pictures.
Share this post: | | | |
Interactive Silverlight Chart Application

Pada posting sebelumnya di sini, telah diberikan pengetahuan bagianmana membuat project Silverlight 2 pada VS2008. Selain itu juga diberikan contoh untuk menggunakan control-control Silverlight 2 seperti TextBlock, TextBox dan juga Button. Setelah itu juga telah diberikan contoh untuk membuat chart dengan menggunakan Visifire for Silverlight Application.

Berikut ini akan dibuat chart iteraktif yang sederhana. Hasil akhirnya adalah seperti gambar berikut ini.

geek1

Idenya adalah nilai-nilai dimasukkan ke dalam TextBox yang telah tersedia, kemudian ketika tombol Submit maka nilai-nilai pada chart akan diupdate.

Berikut ini adalah kode yang terdapat pada file Page.xaml :

<UserControl x:Class="VisifireSilverlightApplication.Page"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="400" Height="500">
<Grid x:Name="LayoutRoot" Background="White">
<TextBlock x:Name="Label1" Text="C#"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Margin="5,5,0,0" />
<TextBox x:Name="TextBox1" Width="50"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Margin="75,5,0,0"/>

<TextBlock x:Name="Label2" Text="VB.NET"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Margin="5,32,0,0" />
<TextBox x:Name="TextBox2" Width="50"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Margin="75,32,0,0"/>

<TextBlock x:Name="Label3" Text="Java"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Margin="5,60,0,0" />
<TextBox x:Name="TextBox3" Width="50"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Margin="75,60,0,0"/>

<TextBlock x:Name="Label4" Text="PHP"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Margin="5,90,0,0" />
<TextBox x:Name="TextBox4" Width="50"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Margin="75,90,0,0"/>

<Button x:Name="Button1" HorizontalAlignment="Left"
VerticalAlignment="Top"
Margin="5,123,0,0"
Click="Button1_Click"
Content="Submit"
Width="75" Height="30"/>

<Grid x:Name="ChartContainer" Background="Black"
Width="390" Height="330"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Margin="5,160,0,0">
</Grid>
</Grid>
</UserControl>

Ada beberapa hal yang baru disini yang belum ditemu pada posting sebelumnya, yaitu pengaturan tata letak. Dari beberapa pengaturan tata letak suatu control, pada contoh di atas adalah cara pengaturan tata letak dengan posisi abolut. Perhatikan baris berikut ini :

<TextBlock x:Name="Label1" Text="C#" 
HorizontalAlignment="Left"
VerticalAlignment="Top"
Margin="5,5,0,0" />

Pada baris di atas, dapat dilihat untuk mengatur tata letak suatu kontrol secara absolut terlebih dahulu tentukan nilai dari atribut HorizontalAlignment dan VerticalAlignment sebagai penunjuk titik acuan (0,0). Setelah itu baru berikan nilai pada atribut Margin.

Pola dari nilai atribut Margin adalah : valueLeft, valueTop, valueRight, valueBottom.

Dengan memberikan nilai HorizontalAlignment="Left" dan VerticalAlignment="Top", maka dapat dibilang titik acuan (0,0) berada di ujung kiri atas, sehingga dengan memberikan nilai Margin="5,5,0,0" maka control akan akan berada 5 pixel dari atas dan 5 pixel dari sisi kiri.

Pada file Page.xaml (kode di atas), terdapat area yang akan digunakan untuk menggambar chart, area yang akan digunakan memanfaatkan control Grid.

<Grid x:Name="ChartContainer" Background="Black" 
Width="390" Height="330"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Margin="5,160,0,0">

Selanjutnya adalah kode pada file Page.xaml.cs yang untuk menggambar chart secara pemrograman. Caranya hampir sama dengan yang telah ditulis pada posting sebelumnya. Pada contoh berikut ini, akan dibuat sebuah method untuk menggambar chart, yaitu CreateChart.

protected void CreateChart(string value1, string value2, string value3, string value4)
{
// create chart object
Visifire.Charts.Chart visiChart = new Visifire.Charts.Chart();
Visifire.Charts.DataSeries dataSeries = new Visifire.Charts.DataSeries();
Visifire.Charts.DataPoint dataPoint;
Visifire.Charts.Title title = new Visifire.Charts.Title();

// Title Chart
title.Text = "Most Popular Programming Language";
visiChart.Children.Add(title);

// set widht and height
visiChart.Width = 390;
visiChart.Height = 330;

// set value for C#
dataPoint = new Visifire.Charts.DataPoint();
dataPoint.YValue = Convert.ToDouble(value1);
dataPoint.AxisLabel = "C#";
dataSeries.Children.Add(dataPoint);

// set value for VB.NET
dataPoint = new Visifire.Charts.DataPoint();
dataPoint.YValue = Convert.ToDouble(value2);
dataPoint.AxisLabel = "VB.NET";
dataSeries.Children.Add(dataPoint);

// set value for Java
dataPoint = new Visifire.Charts.DataPoint();
dataPoint.YValue = Convert.ToDouble(value3);
dataPoint.AxisLabel = "Java";
dataSeries.Children.Add(dataPoint);

// set value for PHP
dataPoint = new Visifire.Charts.DataPoint();
dataPoint.YValue = Convert.ToDouble(value4);
dataPoint.AxisLabel = "PHP";
dataSeries.Children.Add(dataPoint);

// Mengisi data point ke dalam data series
dataSeries.RenderAs = "Column";
visiChart.Children.Add(dataSeries);

// Set theme
visiChart.Theme = "Theme3";

// Add chart to Grid
// ChartContainer is Grid's ID
// look into Page.xaml
ChartContainer.Children.Clear();
ChartContainer.Children.Add(visiChart);
}

Yang berbeda dari kode pada posting sebelumnya adalah baris-baris berikut :

   1:  // set value for C#
   2:  dataPoint = new Visifire.Charts.DataPoint();
   3:  dataPoint.YValue = Convert.ToDouble(value1);
   4:  dataPoint.AxisLabel = "C#";
   5:  dataSeries.Children.Add(dataPoint);

Pada baris ke-3, diisikan nilai dari data point dan pada baris ke-4 memberikan nilai label yang akan menjadi lable dari sumbu X untuk data point tersebut. Selanjutnya tidak menambah method-method berikut pada file Page.xaml.cs.

using System;
using System.Windows;
using System.Windows.Controls;

namespace VisifireSilverlightApplication
{
public partial class Page : UserControl
{
public Page()
{
InitializeComponent();
InitChart();
}

private void Button1_Click(object sender, RoutedEventArgs e)
{
CreateChart(TextBox1.Text, TextBox2.Text, TextBox3.Text, TextBox4.Text);
}

protected void InitChart()
{
CreateChart("0", "0", "0", "0");
}

protected void CreateChart(string value1, string value2, string value3, string value4)
{
. . .
}
}
}

Source code untuk contoh di atas dapat di-download di sisi.

Selanjutnya akan dibuat modifikasi aplikasi sederhana di atas akan lebih terlihat interaktif dan menarik dengan menggunakan theme dan animasi yang telah dimiliki oleh Visifire.  Tambahan yang akan ditambahkan meliputi :

  • Control untuk pemilihan jenis chart yang akan digunakan, seperti Bar, Line, Pie, Doughnut dan lain-lain.
  • Control untuk memilih apakah chart yang ditampilkan dalam 2D atau 3D.

Antarmuka dari hasil modifikasi ini akan dilihat seperti pada gambar berikut ini.

 geek2

Pada contoh ini kita akan berkenalan dengan 2 control baru, yaitu :

  • RadioButton.
  • CheckBox.

{RadioButton}

Berikut contoh control RadioButton pada file XAML.

<RadioButton x:Name="RadioButton_Bar" Content="Bar" 
HorizontalAlignment="Left"
VerticalAlignment="Top"
Margin="235,3,0,0"
Checked="RadioButton_Bar_Checked"/>

Pada control di atas terdapat event Checked. Dan berikut contoh method yang dipanggil oleh event Checked.

private void RadioButton_Bar_Checked(object sender, RoutedEventArgs e)
{
. . .
}

{CheckBox}

Berikut contoh penulisan control CheckBox pada file XAML.

<CheckBox x:Name="CheckBox1" 
Unchecked="CheckBox1_Checked"
Checked="CheckBox1_Checked"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Margin="180,35,0,0" />

Pada control di atas terdapat 2 event, yaitu Unchecked dan Checked, kedua event tersebut memanggil 1 method yang sama, yaitu CheckBox1_Checked, seperti contoh di bawah ini.

private void CheckBox1_Checked(object sender, RoutedEventArgs e)
{
. . .
}

untuk lebih jelasnya dapat mengunduh contoh code aplikasi lengkap di sini.

Pada posting berikutnya masih akan bercerita tentanga Visifire for Silverlight Application dengan mencoba mengambil data dari database dengan menggunakan ASP.NET Ajax, ADO Data Service AJAX Client atau Astoria.

Akan dicoba pula posting-posting lain yang membahas Silverlight untuk membangun potongan-potongan aplikasi bisnis.

Share this post: | | | |
Posted: Aug 29 2008, 12:54 AM by reyza | with 2 comment(s)
Filed under:
First date with Silverlight 2 Application and Visifire for Silverlight Applications

Ini kencan double dengan Silverlight 2 Application dan kombinasi Visifire for Silverlight Applications didalamnya (nya = Silverlight 2). Niatnya adalah ingin membuat aplikasi seperti Java Applet dengan memanfaatkan Silverlight 2 seperti yang telah diniatkan di sini.

{Silverlight 2 Application says "Hello World" }

Sambil menunggu proses download silverlight_chainer.exe (update tanggal 11 Agustus 2008) selesai, sambil nonton F4 (bukan F4 yang ini, tetapi yang ini), mencoba membayangkan bagainaman langkah-langkah pembuatan aplikasi dengan Silverlight 2 pada Visual Studio 2008. Apakah seperti saat membangun web application atau website ASP.NET ? Atau seperti membangun aplikasi Win Form?

Membayangkan control-control di drag-n-drop dari Toolbox yang sudah ada pada VS2008, kemudian untuk mengumbah property atau menambahkan event tinggal menuju bagian Properties. Atau dengan cara klik double pada control tersebut, misalnya pada Button untuk menambahkan event Click tinggal klik double pada Button yang diinginkan.

Apakah semua itu tersedia juga ketika membuat aplikasi dengan Silverlight 2 pada VS2008 ? Hmm....mari kita lihat saja. Ingat sebelum membuat aplikasi Silverlight 2 pada VS2008 baca dulu posting ini, setelah itu maka dapat ditemui template project Silverlight seperti pada gambar berikut :

geeks1

Langsung saja....pilih template Silverlight Application dan ikuti sarat-sarat selanjutnya, seperti berikut :

geeks2

Artinya, secara otomatis akan dibuatkan Website untuk menampilkan aplikasi/control Silverlight dibuat pada project Silverlight Application.

Hasilnya pada solution akan dapat dilihat dua item yaitu :

  • Silverlight Application Project.
  • Website.

geeks3

Bila pada Editor sedang aktif file XAML (misalnya Page.xaml) maka akan dapat dilihat sebuat windows yang "ter-split" untuk menampilkan design dan code seperti pada gambar berikut.

geeks4

Ternyata VS2008 sudah menyediakan Toolbox Silverlight XAML Control, tetapi jangan berharap untuk menarik control-control tersebut ke bagian design. Control-control pada Toolbox hanya dapat di drag-n-drop pada bagian code XAML saja.

Berikut ini adalah contoh code Page.xaml dengan tambahan control TextBlock.

<UserControl x:Class="SilverlightApplication7.Page"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="400" Height="300">
<Grid x:Name="LayoutRoot" Background="White">
<TextBlock x:Name="TextBlock1" Text="Hello World"></TextBlock>
</Grid>
</UserControl>

Untuk melihat hasilnya pada web browser, build solution dan kemudian klik kanan pada file *.html (misal SilverlightApplication7TestPage.html) yang ada pada website, dan pilih "View in Browser". Kita sudah dapat melihat text "Hello World" yang ditampilkan oleh control Silverlight.

Tapi tahukan apa saja yang terjadi sebelum kalimat "Hello World" ditayangkan dan apa saja yang mesti diperhatikan ?

Pertama yang mesti diperhatikan, bila melakukan perubahan atau penambahan pada XAML atau file-file lainnya pada project Silverlight Application, selain mesti melakukan proses Build solution, jangan lupa untuk menutup web browser kemudian lakukan langkah lagi seperti yang telah dilakukan di atas. Karena tanpa melakukan langkah ini perubahan yang telah dilakukan tidak dapat dilihat dengan mata :)

Kedua, ketika baris ini ditambahkan :

<TextBlock x:Name="TextBlock1" Text="Hello World!!"></TextBlock>

Yang mesti diketahui dari baris di atas adalah terdapat atribut x:Name yang berfungsi sama dengan atribut ID pada server control yang sering ditemui pada ASP.NET. Ketika suatu control diberikan atribut x:Name, maka secara otomatis VS2008 akan menambah bagis berikut pada method InitializeComponent yang ada pada file *.g.cs (contoh Page.g.cs).  Berikut contoh code lengkap dari file *.g.cs.

   1:  #pragma checksum "D:\My Projects\Eraseable\SilverlightApplication7\SilverlightApplication7\Page.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "D9A9333A209ECFC78C64B91C8003B4B4"
   2:  //------------------------------------------------------------------------------
   3:  // <auto-generated>
   4:  //     This code was generated by a tool.
   5:  //     Runtime Version:2.0.50727.3053
   6:  //
   7:  //     Changes to this file may cause incorrect behavior and will be lost if
   8:  //     the code is regenerated.
   9:  // </auto-generated>
  10:  //------------------------------------------------------------------------------
  11:   
  12:  using System;
  13:  using System.Windows;
  14:  using System.Windows.Controls;
  15:  using System.Windows.Controls.Primitives;
  16:  using System.Windows.Data;
  17:  using System.Windows.Documents;
  18:  using System.Windows.Hosting;
  19:  using System.Windows.Ink;
  20:  using System.Windows.Input;
  21:  using System.Windows.Interop;
  22:  using System.Windows.Markup;
  23:  using System.Windows.Media;
  24:  using System.Windows.Media.Animation;
  25:  using System.Windows.Media.Imaging;
  26:  using System.Windows.Resources;
  27:  using System.Windows.Shapes;
  28:  using System.Windows.Threading;
  29:   
  30:   
  31:  namespace SilverlightApplication7 {
  32:      
  33:      
  34:      public partial class Page : System.Windows.Controls.UserControl {
  35:          
  36:          internal System.Windows.Controls.Grid LayoutRoot;
  37:          
  38:          internal System.Windows.Controls.TextBlock TextBlock1;
  39:          
  40:          private bool _contentLoaded;
  41:          
  42:          /// <summary>
  43:          /// InitializeComponent
  44:          /// </summary>
  45:          [System.Diagnostics.DebuggerNonUserCodeAttribute()]
  46:          public void InitializeComponent() {
  47:              if (_contentLoaded) {
  48:                  return;
  49:              }
  50:              _contentLoaded = true;
  51:              System.Windows.Application.LoadComponent(this, new System.Uri("/SilverlightApplication7;component/Page.xaml", System.UriKind.Relative));
  52:              this.LayoutRoot = ((System.Windows.Controls.Grid)(this.FindName("LayoutRoot")));
  53:              this.TextBlock1 = ((System.Windows.Controls.TextBlock)(this.FindName("TextBlock1")));
  54:          }
  55:      }
  56:  }

Lihat baris ke 53, untuk melihat baris yang berhubungan dengan baris yang ditambahkan pada file XAML. Keberadaan baris ke-53 ini akan sangat membantu untuk mengakses property-property control TextBlock1 dari code file milik *.xaml yaitu *.xaml.cs (contohnya : code file dari Page.xaml adalah Page.xaml.cs).

geeks5

Berikut adalah contoh mengubah property TextBlock1 dari code file :

   1:  namespace SilverlightApplication7
   2:  {
   3:      public partial class Page : UserControl
   4:      {
   5:          public Page()
   6:          {
   7:              InitializeComponent();
   8:   
   9:              TextBlock1.Text = "Hello World form Code File";
  10:          }
  11:      }
  12:  }

Baris ke-12 adalah contoh cara akses control yang ada pada file *.xaml dari code file *.xaml.cs, tidak berbeda dengan yang sering dilakukan saat bekerja dengan Web Form ASP.NET atau Win Form bukan?

Ketiga, ketika proses Build solution atau Silverlight Application Project selesai maka perhatikan pada direktori ClientBin, dapat kita temui file *.xap. Yang sebenarnya didalamnya terdiri atas file *.DLL dan teman-temannya. Tidak percaya ? Cukup ubah extension XAP menjadi ZIP dan ekstrak, maka dapat ditemui beberapa file didalamnya.

 

Contoh berikutnya akan diberikan pencerahan bagaimana VS2008 membantu untuk menambahkan event pada control Silverlight yang diinginkan. Sebagai contoh ditambahkan control Button pada halaman XAML.

Sebelumnya tambahkan terlebih dahulu baris seperti berikut :

<Button x:Name="Button1" Content="Submit" Width="100" Height="30"></Button>

Selanjutnya tambahkan atribut Click pada control ini maka VS2008 akan membantu seperti pada gambar berikut.

geeks6

Cukup bilang "IYA" dengan menekan tombol Enter, maka secara otomatis baris di atas akan berikut seperti berikut :

<Button x:Name="Button1" Click="Button1_Click" Content="Submit" Width="100" Height="30"></Button>

Bukan hanya itu, VS2008 juga akan membantu membuatkan method Button1_Click pada code file seperti berikut :

private void Button1_Click(object sender, RoutedEventArgs e)
{

}

Tidak berbeda dengan Web Form ASP.NET dan Win Form bukan? Sekarang tinggal menuliskan perintah yang ingin dilakukan ketika tombol Button1 diklik. Misalnya seperti berikut ini.

private void Button1_Click(object sender, RoutedEventArgs e)
{
TextBlock1.Text = "Tombol diklik pada saat "+ DateTime.Now.ToString();
}

Kode file ini dapat diunduh di-url di sini.

{Silverlight 2 Application meets Visifire}

Selanjutnya adalah mencoba menggunakan komponen Visifire for Silverlight Applications pada aplikasi Silverlight 2. Yang mesti dilakukan adalah donwload komponen Visifire for Silverlight di sini untuk mendapatkan komponen yang terbaru. Komponen ini terdiri atas dua file DLL, yaitu :

  • Visifire.Commons.dll.
  • Visifire.Charts.dll.

Terlebih dahulu buat project dengan menggunakan template Silverlight Application seperti pada contoh di atas. Kemudian tambahkan kedua DLL tersebut sebagai referensi project.

geeks7

Bisa dilihat pada bagian Reference, terdapat tambahan Visifire.Charts dan Visifire.Commons.

Selajutnya tambahan baris berikut pada code file Page.xaml.cs :

using Visifire.Commons;
using Visifire.Charts;

Dan kode berikut adalah contoh untuk membuat Visifire chart di dalam Silverlight 2 Application.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

using Visifire.Commons;
using Visifire.Charts;

namespace VisifireSilverlightApplication
{
public partial class Page : UserControl
{
public Page()
{
InitializeComponent();

// Membuat install Chart
Visifire.Charts.Chart visiChart = new Visifire.Charts.Chart();
Visifire.Charts.DataSeries dataSeries = new Visifire.Charts.DataSeries();
Visifire.Charts.DataPoint dataPoint;
Visifire.Charts.Title title = new Visifire.Charts.Title();

// Title Chart
title.Text = "Simple Chart";
visiChart.Children.Add(title);

// Tinggi dan Lebar Chart
visiChart.Width = 250;
visiChart.Height = 250;

// Mengisi data point pertama
dataPoint = new Visifire.Charts.DataPoint();
dataPoint.YValue = 13;
dataSeries.Children.Add(dataPoint);

// Mengisi data point kedua
dataPoint = new Visifire.Charts.DataPoint();
dataPoint.YValue = 23;
dataSeries.Children.Add(dataPoint);

// Mengisi data point ke dalam data series
dataSeries.RenderAs = "Column";
visiChart.Children.Add(dataSeries);

// Menambahkan Chart ke dalam Grid
// LayoutRoot adalah ID dari Grid
// Lihat pada file XAML
LayoutRoot.Children.Clear();
LayoutRoot.Children.Add(visiChart);
}
}
}

Berikut gambar hasil dari kode di atas.

geeks8

Kode dari file ini dapat diunduh di sini.

Sekian dulu untuk hari ini, nanti akan dilanjutkan bermain-main dengan Silverlight 2 dan Visifire for Silverlight Application. Masih ada beberapa hal yang menarik yang dapat dilakukan dengan Visifire for Silverlight Application di atas aplikasi Silverlight 2.

Stay tune in this blog yaah :)

Share this post: | | | |
Silverlight & Visual Studio 2008 SP1

Pernah melihat aplikasi dibawah ini?

Aplikasi ini adalah aplikasi yang berhubungan dengan pengelolaan finansial yang dibangun dengan Silverlight 2. Aplikasi yang menarik untuk digunakan karena mempunyai antarmuka yang menarik, indah dan efek-efek yang mengagumkan (paling ngga buat saya pribadi). Melihat aplikasi ini jadi teringat aplikasi yang dibangun dengan menggunakan Java Applet. Web browser hanya sebagai rumah untuk menampilkan, sedangkan kontrol, input, output semuanya ditampilkan dengan memanfaatkan Silverlight 2, tidak ada inputan yang dimasukkan dengan memanfaatkan kontrol HTML.

Bagi yang belum melihat aplikasi ini di depan mata maka dapat mengunduh file sebesar hampir 12MB ini di http://www.financialdevelopers.com/ atau langsung ke sini.

Hari ini kebetulan ingin membuat aplikasi kecil yang pemanfaatannya sama seperti contoh aplikasi di atas dengan memanfaatkan Silverlight 2 dan Visifire Silverlight Chart. Pemanfaatkan Visifire Silverlight Chart pada aplikasi Silverlight ini bukan seperti yang pernah ditulis di sini dan di sini. Pada tulisan itu hanya memanfaatkan Visifire Silverlight Chart untuk menampilkan chart dengan memanfaatkan Javascript. 

Sejak versi...hmmm...lupa versi berapa, Visifire Silverlight Chart mempunyai komponen yang dapat digunakan pada Aplikasi Silverlight 2 "versi managed code". Menarik untuk dicoba bukan?

Hal yang pertama dilakukan adalah membuat dan mendesign antarmuka pada Blend 2.5 June Preview, dan kemudian membuka Visual Studio 2008 (yang sudah diupdate dengan SP1) untuk memulai "ngoding" tetapi yang terlihat adalah message box berikut ini.

geeks1

Uuups...ternyata, update SP1 ada pengaruhnya dengan Microsoft Silverlight Tool yang telah diinstall sebelumnya.

Artinya mesti mendownload ulang silverlight_chainer.exe yang besarnya 84MB itu kembali di sini, file ini baru diupdate tanggal 11 Agustus 2008 kemarin, artinya berbarengan dengan "muncul"-nya Visual Studio 2008 SP1 dan .NET 3.5 SP1.

Apa saja yang akan di-"dapat" setelah menginstall silverlight_chainer.exe ini? Berikut adalah daftarnya :

  • Silverlight 2 Beta 2, semoga ini berpengaruh untuk memperbaiki Silverlight 2 pada Firefox 3.0. Sekarang Firefox sering bermasalah dengan Silverlight, Firefox 3.0 entah kenapa sering crash tanpa sebab.
  • Silverlight 2 SDK Beta 2.
  • KB950630 for Visual Studio 2008 RTM or KB955214 for Visual Studio 2008 SP1.
  • Silverlight Tools Beta 2 for Visual Studio 2008.

Setelah silverlight_chainer.exe diinstall maka diharapkan hal-hal berikut akan dapat dinikmati, yaitu :

  • Visual Basic and C# Project templates.
  • Intellisense and code generators for XAML.
  • Debugging of Silverlight applications.
  • Web reference support.
  • WCF Templates.
  • Team Build and command line build support.
  • Integration with Expression Blend.
  • Enhanced Setup with upgrade support.

Selanjutnya....hmm...harus menunggu silverlight_chainer.exe kelar terunduh terlebih dahulu sebelum memulai "ngoding".

geeks2

Baru 6MB dengan kecepatan unduh 5,47KB/s ...... pakir bandwidth banget yah? :)

{mode menunggu : on, sebelum memulai ngoding Silverlight 2 dan Visifire.}

Share this post: | | | |
TechEd SEA 2008 : Day 1

{Baru bisa publish hari ini karena kemarin geeks down}.

day1_1 day1_2

Suasana pagi hari pertama TechEd SEA 2008. Hari pertama ini dibuka dengan keynote speaker dari jam 9 pagi sampai 12 siang. Pada big screen di ruang tempat pembukaan TechEd SEA 2008 terpampang wajah yang salah seorang team GulVer sekaligus Pemimping Tentara saat main tembak-tambakan di di Gunung Putri, Faisal Susanto (kalau ngga salah).

day1_3 day1_4

Selanjutnya dibuka oleh Om Say Ken Wye, dilanjutkan oleh Ward Ralstom (Windows Server Product Manager).

day1_7 day1_9

Berbicara dan demo tentang Windows 2008..Hyper V dan juga Identity Lifecycle Manager, SQL Server 2008 dan juga demo WPF yang dibantuk oleh ISV setempat yang kebetulan mempunyai produk yang menggunakan WPF.

day1_10 day1_11

Loh kok ada foto SGP imut nan lucu?....WPF itu memang indah, bila diibaratkan dengan SPG maka WPF sama indahnya dengan SPG yang lagi tersenyum manis disamping ini :) {Cuma ada 1 foto SPG yang tertangkap lensa kamera ? Tentu tidak....tinggal minta ke Hendrik}

{Schedule for Developers}

Selanjutnya jadwal track dan HOL untuk para Developer. Hari ini sangat disayangkan tidak ada HOL. Entah kenapa HOL tidak ada hari ini. Jadi saat di Exibition Hall cuma ngumpul sama para MVP Lead {Canny & Lilian}.

Berikut Track Session untuk para Developer.

Track Session

jadwal_1 jadwal_2

jadwal5

{The Real-estate Architecture Role - Aaron Tan Dani}

Penuuuuh...ngga dapat tempat duduk disini. Cerita hal yang sering dilupakan saat develop Software yaitu tentang UX (User Experience)...keindahan antarmuka dan kemudahan penggunaan software bagi user. Hal ini disebabkan lebih terfokus pada pembangunan bisnis proses, teknologi dan juga jadwal yang ketat, sehingga banyak yang beranggapan "yang pentingkan jalan dan sudah sesuai dengan bisnis proses yang diinginkan", walau setelah sampai digunakan user akhirnya terdapat keluhan karena sulit digunakan.

Disinilah diperlukan "sang arsitek UX". Hanya 1 orang yang angkat tangan ketika ada pertanyaan "apakah diperusahaan tempat bekerja sudah ada role sebagai "sang arsitek UX".

Seperti biasa...ketika berbicara tentang UX maka yang keluar adalah WPF dan Silverlight.

Selain tentang UX juga dibicarakan tentan S+S, SOA dan kawan-kawan.

Sebaiknya anda tahu :

day1_14

Tombol Start yang ada pada Windows XP dikerjakan oleh 40 developer dalam waktu 6 bulan....weeew....apakah ini termasuk "sangat perhatian dengan UX" sehingga harus mengerahkan 40 developer selama 6 bulan atau karena para developernya memang murni menggunakan otak kiri (CMIIW ... soal otak kiri).

{The Future of ASP.NET is Near - Oliver Scheer}

day1_12

Isinya... seperti terlihat pada gambar, yaitu :

ASP.NET Dynamic Data

ASP.NET MVC

ADO.NET Data Service

ASP.NET AJAX

ASP.NET AJAX Control Toolkit

ASP.NET AJAX 3.5 Extensions

ASP.NET Control for Silverlight

hmm......

setelah track ini sebenarnya ingin ikut materi ADO.NET Entity Framework...tetapi...penuuuuh, jadi akhirnya masuk ke track-nya Lisa Feigenbaum.

day1_13

Lisa bercerita tentang VB.NET, apa saja yang baru, apa saja yang ada di VB.NET pada VS 2008 dan yang tidak ada di VB.NET pada VS 2005. Menarik juga melihat banyak hal-hal yang kadang tidak ditemukan pada C# tetapi ditemukan pada VB.NET.

Tetapi....sekali Java....sekali PHP...tetap C#....belum bisa bermain VB.NET

 

 

 

 

 

{ Sekian.....untuk yang ingin foto-foto syur SPG via japri aja ya...hehehe j/k }

Share this post: | | | |
Posted: Aug 14 2008, 08:58 AM by reyza | with 2 comment(s)
Filed under:
TechEd SEA 2008 : Hari pertama di KL

Tanggal 10-08-2008, jam 15.30, saya dan Lutfie (akhirnya dapat menjejakkan kaki juga di tanah 'Malaya', masih celingak-celinguk mau menggunakan kendaraan apa untuk sampai ke tempat berteduh. Untung akhirnya dapat berkenalan dengan Mr Tony (dari Microsoft Indonesia) jadi bisa nebeng bis sampai ke tempat "berteduh".

Jam 16.45 waktu setempat, kami sudah berada di daerah Bukit Bintang salah satu tempat "asik" (kata seseorang) yang ada di KL sekaligus tempat "berteduh" selama disini. Dari sini cukup jalan kaki selama 10-15 menit (tergantung dari berat badan dan bagaimana cara berjalan) untuk menuju Twin Tower yang bersebelahan dengan KLCC (Kuala Lumpur Convention Center) yang menjadi tempat diselenggarakannya TechEd SEA 2008.

twin_tower

Jam 18.20 ... sampai di tempat registrasi TechEd SEA 2008. Butuh waktu lebih dari 10-15 menit seperti yang disebutkan semula karena sempat kesasar terlebih dahulu ... maklum tempat "asik" :)

DSC_0525

Sepi? Ya iya lah..karena telat datang dan pendaftaran sudah ditutup jam 18.00 tepat ...tapi karena semua penjaganya masih ada dan semuanya adalah wanita, akhirnya bisa juga meluluhkan hati mereka agar mau menerima kami :)

Dan...

teched_goodies

Secara keseluruhan, selama 4 hari (tanggal 11-14 Agustus 2008) akan bisa ditemui :

  • Track session.
  • Partner breakout session.
  • TechEd after hours.
  • Hand-on lab.

{Track session}

Seperti biasa semuanya akan terbagi dua yaitu untuk para IT Pro dan juga Developer. yang menarik adalah pada DAT (Database Platform Track)...semua tentang SQL Server 2008. Sedangkan untuk para Developer dapat menikmati Developer Tools and Languages Track, apa saja yang akan ditemui disini? Diantaranya adalah :

  • Building next generation DAL with the ADO.NET Entity Framework dan yang masih berhubungan dengan ADO.NET Entity Framework adalah Talking Conceptually with Your Data.
  • F#: Introduction into the World of Functional.
  • .NET : XNA for Xbox 360! Atau yang masih berhubungan dengan XNA adalah Writing 3D Game in 60 Minutes (plesetan dari Gone in 60 minutes sepertinya).
  • Practical Functional Programming C#.
  • VSX : Extending Visual Studio 2008 for Fun or Profit. Fun? Profit? hmm.....sound interesting :)
  • Cosmos : Running .NET without Windows. Cosmos? Cosmos = C# Open Source Managed Operating System.
  • Concurrency and Parallel Programming.
  • and many more.

Management Track....hmm...tidak ada sedikitpun yang dimengerti pada track ini.

Mobile and Embedded Track ada dua yang sepertinya dapat saya nikmati yaitu Introduction to Silverlight on Mobile Devices dan juga Using MS Silverlight for Creating Rich Mobile User Experiences.

Bagi penggemar Office dan Sharepoint Track mungkin bisa menikmati ini :

  • Building Occasionally-Connected Sharepoint Applications Using the Microsoft Sync-Framework.
  • Forms-bases Authentication - How to Get Your Internet-facing MOSS Site Up and Running.
  • Microsoft Office Sharepoint Server 2007 Lifecycle Management Demofes : Methodologies, Tools and Best Practices.
  • Office Collaboration Myth Busting.
  • Sharepoint Governance : Chaos No More, 10 Steps to Success
  • dan masih banyak lagi...

SOA & Business Process Track...Unified Communication Track..

Web and User Experience Track :

  • The Future of ASP.NET is Near.....adapada didalamnya? sudah ada yang bisa menebak pastinya .... ada ASP.NET Controls for Silverlight, ASP.NET MVC, ASP.NET Dynamic Data, ADO.NET EF, ADO.NET Data Services & ASP.NET AJAX. Near??
  • .NET : ASP.NET MVC Framework....mesti datang saat track ini....untuk mencari jawaban "kenapa ASP.NET MVC FX harus ada?" :)
  • Ultimate Data Visualization Experience with WPF.
  • New Enhancement for Web Developers in Visual Studio 2008 and Beyond.....ada kutipan kalimat berikut "...Also have a preview of the super exciting work being done for Web Developers in Visual Studio 2008 SP1" ... weeew... akankah?
  • Fly with Popfly.
  • Yang lain daripada yang lain adalah ... A Developer Who Hacks Your Application ... "a live hacking session demonstrates different type of tools and techniques use by hacker..."
  • Yang terakhir dan paling menarik adalah Rob Howard dengan Community Servernya....(HOAX) :)

Windows Client Track.....hmm...ini bukan dunia saya :)

Windows Server Infrastructure Track...lumayan banyak di dominasi oleh "Hyper-V" yang ada di Windows 2008, salah satunya adalah Tip and Tricks to Convert VMs from Virtual Server to Hyper-V.

{TechEd After Hours}

Ada 4 demo yang dapat disaksikan diantaranya adalah :

  • Demo Mania : Fun with .NET yang di dalamnya nanti ada demo Wiimote untuk melakukan beberapa hal-hal yang menyenangkan. Hmm....jadi ingat 1 tahun yang lalu, Om Zeddy sudah memperlihatkannya saat di acara Unified Communication di Shangrila.
  • Demo Mania : Partying with PHP onf MS IIS 7....ini juga sudah lama kita ketahui di Indonesia, saat Om Risman lagi senang-senangnya bermain PHP (dan sepertinya masih bermain dengan project Live4PHP-nya juga).

{Microsoft Learning Light & Easy Sessions}

Disini akan bertemu banyak MCT yang berbagi pengalaman diantaranya di sesi "If I Can Be a MCT, So Can You. MCT Speaks!" Disini dapat bertemu dengan para MCT, wah mestinya Om Rully berada disini.

{Hand-on Lab...Instructor-led labs}

Banyak materi HOL yang dapat ditemui di daftar, tetapi sepertinya akan ikut dan belajar Introduction to Windows Communication Framework dan Introduction to Windows Workflow Foundation.

{Fun .. Go Mad}

Bosen dengan semua hal-hal di atas, kepala bisa didinginkan dengan bermain, yaitu :

  • Bingo.
  • Crazy Word Mix.
  • Geeks Face-Off.
  • Hunt The Fugitive.
  • Speed Typing.....sepertinya bagi yang dapat mengirim SMS tanpa melihat tombol pada HP mesti mengikuti game ini.
  • ZAP.....ini game untuk para developer yang juga hoby dengan fotografi....Om Dondy dengan lensa 50mm-nya mestinya ikutan game ini. Dijamin lensa-nya akan memberikan DOF yang ok :) Lensa ngga sopan itu, saya mesti kerja keras untuk mendapatkan DOF seperti itu dengan lensa 15-55mm saya :)

yang terakhir..... KABOOOOOM!!!

a_night_in_kl

{hmm...sudah malam...saatnya tidur}