Ronald Rajagukguk

My Journey in .NET World
See also: Other Geeks@INDC

July 2008 - Posts

DbLinq : Linq provider for MySql and others...

Apakah anda telah ketagihan dengan teknologi LINQ dan ingin terus menggunakannya meskipun DBMS yang digunakan dalam project anda bukan SQL Server ? Tenang DbLinq telah hadir untuk anda (*dah kayak iklan aja*).

DbLinq adalah sebuah project dibawah MIT License, jadi artinya sourcenya juga dikasih dan bebas dipake. Project ini bertujuan untuk menyediakan provider LINQ untuk DBMS-DBMS diluar SQL Server, tercatat ada 5 DBMS yang providernya disediakan oleh DbLinq yaitu :

1. Ingres

2. MySql

3. Oracle

4. PostgreSQL

5. SqlLite

Kemudian yang menarik adalah dukungan untuk mengenerate stored procedure pun telah ada dalam provider ini. Okeh karena tangan ini sudah gatal ingin mencoba maka mari kita lakukan operasi CRUD dengan menggunakan LINQ terhadap DBMS MySql dengan make provider ini.

1. Pertama-tama unduh terlebih dahulu source dari DbLinq disini (menarik ya? dihostingnya di google code, kok gak di codeplex?)

2. Setelah beres diunduh, silahkan extract dan buka "DbLinq.sln" lalu build project tersebut.

3. Setelah selesai di build maka silahkan buka folder DbMetal\bin pada folder project tersebut.

4. Disini anda akan menemukan sekumpulan dll yang menjadi provider dari DBMS2x yang didukung dan sebuah file berekstensi exe dengan nama DbMetal.exe

5. File DbMetal.exe tersebut fungsinya sama dengan SQLMetal yang umum digunakan jika kita ingin mengenerate kelas entitas yang mewakili tabel2x di database kita. Sekedar info DbLinq ini belum terintegrasi sama Visual Studio, jadi kita belum bisa memanfaatkan Object Relational Designer untuk menggenerate kelas entitas  untuk DBMS seperti MySql,Postgre, dll. Satu-satunya cara adalah dengan menggunakan DbMetal, tapi gak sulit kok, silahkan lanjutkan langkah2x ini untuk melihat kemudahan penggunaannya.

6. Silahkan buka command promt dan navigasi ke folder tempat file DbMetal.exe berada.

7. Sekarang kita akan menggenerate kelas entitas untuk sebuah database yang ada dalam DBMS MySQL (DBMS favorit para programmer PHP). Cara penggunaannya cukup mudah seperti contoh dibawah :

DbMetal.exe /server:<nama server> /user:<nama user> /pass:<password> /database:<nama database> /provider:MySql /code:<nama file kelas entitas yang ingin dihasilkan>

image

8.  Tampilan seperti gambar diatas akan muncul jika anda telah mengeksekusi DbMetal.exe, kemudian silahkan cek file yang digenerate oleh DbMetal.exe, akan tampak mirip dengan file yang dihasilkan oleh SqlMetal atau Object Relational Designer bukan?

9. Sekarang adalah saatnya kita test drive dengan membuat sebuah project sederhana. Silahkan buka Visual Studio dan buat sebuah project dengan tipe console.

10. Tambahkan file yang telah anda generate tadi ke dalam project.

11. Tambahkan 3 dll ini kedalam reference project anda (dll tersebut ada didalam folder DbMetal\bin di folder source dari DbLinq)

1. DbLinq.dll

2. DbLinq.MySql.dll

3. MySql.Data.dll

12. Kemudian ketikkan kode berikut pada fungsi main di project tersebut.

   1: string connectionString = String.Format("server={0};user id={1}; password={2}; database={3}"
   2:     ,"localhost","root","pass","osnsys");
   3: OsNSys data = new OsNSys(new MySqlConnection(connectionString));
   4: var query = from m in data.SysSoALEssay
   5:             where m.ID == 3
   6:             select m.SoAL;
   7: foreach (var res in query)
   8:     Console.WriteLine(res);
   9: Console.ReadKey();

Catatan :

Silahkan ganti nama server, user, password dan nama database sesuai dengan lingkungan anda. Kemudian query pada baris ke 4-6 pun silahkan diganti2 sesuai selera :D

13. Tekan F5 dan Voila, anda telah berhasil menggunakan LINQ untuk beroperasi terhadal MySQL, so slogan "Apapun datanya mengoperasikannya tetap pake LINQ" kayaknya berlaku :d

 

btw post ini saya tulis karena tadi siang teman ada yang nanya cara make LINQ untuk DBMS MySQL..

Share this post: | | | |
Posted: Jul 30 2008, 10:52 PM by ronald | with 4 comment(s)
Filed under: , , ,
Hello World from My Red Zune....

Akhirnya setelah penantian yang lama, saya pun memiliki sebuah Zune Merah merona berkapasitas 4 GB. Yup Zune yang mirip IPod itu loh, he2x setelah dapet tentunya tangan ini udah jail pengen oprek2x. Yang pertama kali diperhatikan adalah kualitas suaranya, wah dipadukan dengan Sennheiser PX100 ternyata memang suaranya maknyus, setelah itu... (loh? kok jadi bahas produk..)

Okeh inti dari posting ini adalah Zune Merah baru saya ini ingin mengucapkan Hello World kepada dunia. Caranya gimana? caranya adalah dia meminta kepada saya sang pemilik untuk membuat sebuah program sederhana dengan XNA Game Studio 3.0 (masih CTP). Program yang dia minta simple aja yaitu ingin menuliskan tulisan Hello World dilayar beserta dengan foto sang pemilik yang disinyalir memiliki tampang ganteng.

Okeh karena gak tega kalo gak permintaannya gak dipenuhin maka langsung aja saya mengunduh XNA Game Studio 3.0 disini. awalnya sempet bingung karena VS 2005 udah gak ada lagi di laptop ini, tapi tenang XNA yang 3.0 ini udah support semua edisi VS, bahkan Team System yang saya pakai pun sudah didukung. Mantab!!!! Okeh beres mengunduh langsung install dan tanpa basa basi buka VS 2008.

eng..ing...eng...

di wizard New Project sudah terpampang dengan manis template project untuk Zune seperti gambar dibawah ini.

image

okeh langsung dengan sigap saya bikin sebuah project baru dengan tipe Zune Game (3.0) dengan nama ZuneGame yang memiliki 2 tujuan yaitu menulis Hello World dan menampilkan gambar. Sehingga tentunya kita perlu menginisialisasi SpriteBatch (buat nampilin gambar) dan SpriteFont  (buat nampilin tulisan). Bingung dengan dua kelas tersebut? tenang nanti ada encik Shieny dan pak cik Arief yang mungkin akan banyak bahas soal XNA. Okeh inisalisasinya cukup simpel seperti dibawah ini :

1. Buka Game1.cs.

2. Tuliskan deklarasi 4 field dibawah ini :

Texture2D SpriteTexture;
Rectangle PictureLocation;
Vector2 TextLocation;
SpriteFont spriteFont;
internal const string DISPLAYED_TEXT = "Hello World";

3. Masukkan gambar kedalam project, caranya cukup mudah saya hanya perlu menarik gambar yang saya inginkan ke directory Content yang ada pada solution. sehingga tampilannya menjadi seperti gambar dibawah. XNA Game Studio akan secara otomatis mengkonversikan gambar tersebut ke format XNB .

image

4. Masukkan definisi Font. XNA memiliki cara yang berbeda untuk urusan penulisan tulisan ke layar. para developer harus seolah-olah mengimpor font tersebut untuk dapat digunakan. Caranya cukup mudah seperti instruksi dibawah ini :

1. Klik kanan pada Directory Content.

2. Pilih Add > New Item

image

3. Pilih Sprite Font dan beri nama Font.spriteFont, jika sudah tekan OK.

4. sebuah file XML yang mendefinisikan font mana yang akan "diimport" ke game kita. Karena saya ingin agar fontnya bertipe arial dan ukurannya 20 maka perlu dilakukan modifikasi.

5. Cari elemen dengan nama "FontName" dan isikan Arial sebagai nilainya

6. Cari elemen dengan nama "Size" dan isikan 20 sebagai nilainya.

5. Setelah gambar dan font siap maka pada fungsi LoadContent tambahkan beberapa baris kode sehingga hasil akhirnya sebagai berikut

   1: SpriteTexture = Content.Load<Texture2D>("untitledgtg");
   2: spriteFont = Content.Load<SpriteFont>("Font");
   3:  
   4: Vector2 stringLength = spriteFont.MeasureString(DISPLAYED_TEXT);
   5: TextLocation.X = (GraphicsDevice.Viewport.Width - stringLength.X) / 2;
   6: PictureLocation = new Rectangle(
   7:     0,
   8:     Convert.ToInt32(stringLength.Y),
   9:     GraphicsDevice.Viewport.Width,
  10:     Convert.ToInt32(GraphicsDevice.Viewport.Height - stringLength.Y)
  11:   );

Okeh sedikit penjelasan soal langkah kelima. Kode di baris 1 akam mengambil gambar dengan nama untitledgtg kemudian kode pada baris ke-2 akan mengambil definisi font yang akan digunakan untuk menulis di layar. baris-baris berikutnya adalah pengisian nilai lokasi penggambaran gambar dan penulisan font.

6. Sekarang adalah saatnya dilakukan penulisa kode untuk menampilkan gambar dan font tersebut dilayar. Silahkan modifikasi fungsi Draw yang telah ada sehingga menjadi seperti berikut :

   1: protected override void Draw(GameTime gameTime)
   2: {
   3:     graphics.GraphicsDevice.Clear(Color.Blue);
   4:     spriteBatch.Begin();           
   5:     spriteBatch.Draw(SpriteTexture, PictureLocation, Color.White);
   6:     spriteBatch.DrawString(spriteFont, DISPLAYED_TEXT,TextLocation, Color.Red);
   7:     spriteBatch.End();
   8:     base.Draw(gameTime);
   9: }

Sedikit penjelasan tentang kode diatas. Kode diatas akan menampilkan gambar dengan memanfaatkan objek dari kelas SpriteBatch. Singkatnya guna dari kelas SpriteBatch adalah untuk menggambarkan gambar2D dan tulisan ke layar. Untuk memulai penggambaran maka tentunya harus diawali dengan fungsi Begin yang akan mempersiapkan device untuk digambar dan diakhiri dengan End yang akan menampilkan gambar tersebut di layar. baris ke 5 akan menampilkan gambar dilayar dan barus ke 6 akan menuliskan "Hello World"

7. Pada tahapan ini kita telah siap untuk menjalankan aplikasi ini. Namun sebagai catatan pada CTP ini XNA Game Studio 3.0 TIDAK menyediakan emulator untuk Zune, sehingga mau tidak mau untuk menguji aplikasi ini kita perlu melakukan koneksi ke Zune. caranya cukup mudah seperti langkah dibawah ini :

1. Koneksikan Zune ke PC.

2. Jalankan XNA Game Studio  Device Center, pada visual studio ada di toolbox bagian atas.

image

3. Pilih Add Device

4. Pilih Zune

5. Kemudian pilih Zune yang ada, lalu tekan Next.

image

5. Jendela konfirmasi bahwa Zune telah terkoneksi akan muncul, silahkan tekan Finish.

6. Tutup XNA Game Studio  Device Center dan kembali ke Visual Studio 2008.

8. Sekarang karena semua kode dan koneksi pun telah ada, F5 pun ditekan untuk mendeploy aplikasi ini ke si Zune Merah. (jika Zune baru pertama kali dideploy game maka diawal2x akan ada beberapa DLL yang terlebih dahulu diinstall)

9. Zune Merah pun sekarang telah berhasil menampilkan "Hello World"  dan foto pemiliknya...

IMG_0084 [800x600]

he2x sekarang Game untuk Zune belum terlalu banyak, jadi mungkin dalam 1-2 bulan ini saya akan mengembangkan game simpel2x aja kayak snake. Ntar kalo udah jadi saya janji deh untuk menguploadnya di blog ini. Manteb ya Zune, selain bisa buat dengeri musik, radio dan nonton pelem ternyata bisa juga dicoding pake .NET (tapi kalo gak salah ipod juga ada SDKnya meskipun gak resmi, biasalah kayak hackinstosh gitu :d )

Cheers..

Share this post: | | | |
Posted: Jul 13 2008, 11:18 PM by ronald | with 7 comment(s)
Filed under: , ,
MVP Award : Visual Developer - Client Application Development

IMG_0513

Dear Ronald Rajagukguk,

Congratulations! We are pleased to present you with the 2008 Microsoft® MVP Award! The MVP Award is our way to say thank you for promoting the spirit of community and improving people’s lives and the industry’s success every day. We appreciate your extraordinary efforts in Client App Dev technical communities during the past year.

Thanks to INDC Community that make this happen. I also want to say special thanks to DPE Team (Zeddy,Risman,Naren,Fuady), MSP Corps (Fajar,Alex,Niko,Arief dll), MIC Crew (Ume,Anggri,dll), Mr Dwi Hendratmo. I hope, I can contribute more to community by Blogs articles, E-books and maybe as a speaker in various event :D

 

cheers...

Share this post: | | | |
Posted: Jul 02 2008, 09:06 AM by ronald | with 10 comment(s)
Filed under: ,