
Highlights
- 09.00 – 09.30 Opening Speech, DPE, Jonah Stephen
- 09.30 – 11.00 Next Generation Web Application using Silverlight, Zeddy Iskandar, ADE
- 11.00 – 12.30 ASP.NET Based Content Management and Blogs Server Engines, Agung Riyadi, BataviaSoft
- 12.30 – 13.30 Lunch Break
- 13.30 – 15.00 7.0 and Windows Based Hosting Solution, Narendra Wicaksono, IT Pro
- 15.00 – 16.30 ASP.NET AJAX Deep Dive, Risman Adnan, ISV Lead
- 16.30 Closing
for registration just send and email to : event@mic.itb.ac.id, put "MSDN Day Registration" as subject and don't forget to tell us your name, company name and URL
for further information don't hesitate to call ronald @ +62-22-91581376
ps : we have some goodies to give away
Akhirnya pada hari sabtu 23 februari 2008 bertempat di MIC - ITB telah diadakan sebuah kompetisi lokal project hosimi. Pada ajang ini ke 23 orang yang tergabung dalam 12 tim kampus ITB yang lolos ke round 2 diundang untuk datang ke MIC dengan membawa dll terbaik mereka. peta yang digunakan adalah peta yang telah dibuat oleh om Zeddy di sini.

Meskipun tidak semua peserta wakil dari ITB datang tapi acara dinilai cukup seru, para peserta yang mungkin baru tadi malem coding dll terbaik mereka terlihat antusias saat menonton dll mereka diadu untuk memperebutkan gelar juara kompetisi lokal hoshimi tingkat kampus ITB. Hasilnya adalah sebagai berikut :
1st prize : Hakim
_thumb.jpg)
2nd prize : Dian
_thumb.jpg)
3rd prize : Moren & Mita
he3x...moga2x mereka bisa lebih tertantang dan siap untuk berkompetisi di tingkat Indonesia.....
cheers..
yup, Zune yang mirip ipod itu loh, atau ipod yang mirip zune ya? ya pokoknya intinya zune yang aslinya buat maenin musik atau evolusi dari walkman sekarang udah bisa diinstalin game. Keren yak, udah tambah mirip aja dengan ipod. Jadi nantinya dengan pake yang namanya XNA Game Studio Express yang ke 3 kita bisa code sebuah game di zune yang manfaatin layar 240x320, wireless,dukungan grafis 2D dan tentunya koneksi ke kumpulan lagu yang ada di zune. Menarik yak, jadi kedepannya kita bisa punya sebuah zune yang selain memiliki fungsi nyetel musik, dengerin radio, juga bisa jadi tempat maen game. Multi Guna banget ya... info lebih lanjut silahkan baca disini.
terus yang menarik adalah dengan ditambahkannya kemampuan untuk develop game di Zune maka XNA Game Studio express bisa targeting 3 platform yaitu PC, XBox dan terakhir Zune. Kemudian XNA Game Studio yang ketiga ini pun bakalan bisa jalan di VS 2008, bahkan disini dibilang kalo XNA Game Studio cuma bisa jalan di VS 2008 aja, menarik sekaligus menjawab posting om denilukman disini. XNA Game Studio yang ketiga ini bakalan direlease spring 2008 (kapan ya itu???)
he3x....pantesan Z kagak jadi jualan Zunenya...ternyata bisa dicoding toh......
mmmmm jelasinnya mulai dari mana ya....
oke kita mulai aja dari konsep Lazy Evaluating di LINQ, seperti yang udah banyak orang tahu kalo sebenernya Query/Ekspresi di LINQ tidak akan dieksekusi sampai kita membutuhkannya. Contohnya dalam kode dibawah ini :
namespace ecek2x
{
class Program
{
static bool tulisHasil(string hasil)
{
Console.WriteLine("Isinya "+hasil);
return true;
}
static void Main(string[] args)
{
string []kumpulan = {"satu","dua","tiga"};
var hasil = from tulisan in kumpulan
where tulisHasil(tulisan)
select tulisan;
}
}
}
okeh coba tebak apa keluaran dari kode diatas?
(ting-tong... kalo geeks pasti diotaknya lagi mencoba mengkompile baris diatas dengan csc :-p)
yak 100 untuk yang jawab gak ngeluarin apa-apa. hal ini karena efek dari Lazy Evaluating tadi, karena toh emang kalo kita lihat di kode diatas variabel hasil emang gak dipake dimana-mana jadi jelas kalau query yang ada pun tidak akan dieksekusi. Namun tentunya hasilnya akan berbeda jika kita menambahkan baris dibawah ini pada akhir prosedur Main :
Console.WriteLine(hasil.First());
maka hasil keluaran dari program diatas adalah :
baris pertama ditulis saat query dijalankan, sedangkan barisan kedua ditulis saat kita menuliskan nilai pertama dari koleksi. Okeh nangkep kan konsep Lazy Evaluating? Jadi intinya kalo kita nulis query, query tersebut gak akan dievaluasi sampai diperlukan. Nah permasalahan ini terkadang menjadi sedikit merepotkan saat berhubungan dengan basis data (LINQ to SQL). contoh kasusnya adalah pada kode dibawah ini :
1: static void Main(string[] args)
2: { 3: DataClasses1DataContext data = new DataClasses1DataContext();
4: data.Log = Console.Out;
5: foreach (var jabatan in data.Roles)
6: { 7: Console.WriteLine(jabatan.RoleName);
8: foreach (var pegawai in jabatan.Employees)
9: Console.WriteLine(pegawai.Name);
10: }
11: }
oh iya kode diatas ditulis setelah membuat sebuah DataContext dengan relasi seperti dibawah ini :
Jadi antara Role dan Employee ada hubungan one to many, sehingga tentunya pada baris ke 5 sebuah Query SQL akan dieksekusi untuk memperoleh data dari table Role, kemudian pada baris ke 8 pun sebuah Query SQL akan dieksekusi untuk memperoleh data dari table Employee untuk Role yang bersesuaian. Sehingga jika ada 5 tuple/row pada tabel maka baris ke 8 akan diulang sebanyak 5 kali, sehingga apa artinya? artinya adalah kita akan melakukan 5 kali query ke basis data. Untuk mengujinya anda bisa coba mengeksekusi kode diatas dan lihat hasilnya, maka di jendela aplikasi kira-kira akan nampak seperti ini :
Tentunya jika ada 1000 row maka akan ada 1000 kali query ke basis data. MMM kayaknya agak buang-buang bandwidth ya? maka dari itu sebagai alternatif kita bisa menggunakan yang namanya DataLoadOptions, dengan menggunakan DataLoadOptions maka kita dapat menspesifikasikan agar data yang berasosiasi juga diambil dari basis data meskipun belum akan digunakan. Untuk contoh diatas misalnya kita ingin mengambil data Employee meskipun kita tidak akan langsung menggunakannya maka tambahkan kode dibawah ini diantara baris ke 3 dan 4 :
DataLoadOptions DLO = new DataLoadOptions();
DLO.LoadWith<Role>(o => o.Employees);
data.LoadOptions = DLO;
Kode diatas akan memerintahkan agar setiap kali ada Query yang menyangkut objek Role maka jangan lupa untuk juga mengambil Employee yang terkait, sehingga perubahan yang terjadi adalah jika sebelumnya setiap menuliskan nama Employee akan dilakukan query ke basis data sekarang hal tersebut tidak akan dilakukan lagi karena data Employee telah ikut diambil saat kita mengambil data Role. Maka kalau kita jalankan kode yang telah dimodifikasi efeknya adalah :
terlihat kalau tidak lagi dilakukan Query ke basis data ketika kita akan menuliskan nama dari Employee dan kalau anda jeli maka pada saat awal dilakukan query yang juga mengambil data Employee dari basis data. Okeh segitu aja dulu bagi ilmunya, gua mo bikin perbaikan sidang dulu, tanggal 13 February 2008 ini deadline.
cheers.....