Ronald Rajagukguk

just another newbie in .NET
See also: Other Geeks@INDC
WebBrowser Controls in WPF 3.5 SP1

Pada tanggal 11 Agustus 2008 yang lalu .NET 3.5 SP1 telah diluncurkan oleh Microsoft. Tentunya ada banyak sekali penambahan fitur2x yang akan semakin memanjakan developer ketika mengembangkan sebuah aplikasi. Salah satu bagian yang mengalami banyak penambahan fitur adalah pada WPF, saya tertarik untuk membahas mengenai salah satu komponen/kontrol baru yang ditambahkan oleh tim pengembang WPF di Microsoft yaitu WebBrowser.

Mungkin banyak dari rekan geeks yang bertanya demikian? Mengapa penambahan kontrol ini penting? padahal kan di winform sudah ada kontrol serupa dan kita dapat menambahkannya kedalam aplikasi WPF seperti contoh disini. Tim AntarMuka wakil Indonesia di Imagine Cup 2008 pun menggunakan komponen WinForm ini dalam program mereka untuk menampilkan peta dari Virtual Earth. Namun dengan penambahan komponen ini kita tentunya tidak perlu lagi direpotkan dengan proses proses mengembed kontrol winform, cukup dengan dragndrop saja dan kita mendapatkan sebuah komponen webbrowser

contoh kode penggunaan elemen ini adalah :

<WebBrowser Source="http://geeks.netindonesia.net/blogs/ronald/">
</WebBrowser>

kode diatas akan membuka halaman blog ini dan hasilnya sebagai berikut :


namun yang perlu disayangkan adalah meskipun komponen ini sudah merupakan kontrol WPF namun nampaknya dia tetap saja menggunakan cara yang sama dengan disini. Karena berdasarkan proses explorasi meskipun elemen ini tidak akan mengakibatkan exception ketika dikenakan animasi tetapi animasi tersebut tidak akan berpengaruh. Komponen ini pun akan selalu menutupi komponen lain. Namun tentu saja dengan adanya komponen ini akan semakin mempermudah proses pengembangan aplikasi WPF mengingat kita dapat mengurangi langkah untuk mengembed komponen winform.

Baiklah kemampuan lain dari kelas ini adalah selain kita dapat mengarahkan webbrowser ini ke sebuah alamat web dan merender isi halaman web tersebut, kita pun dapat membuat agar kelas ini merender halaman web yang ada pada sebuah stream. contohnya kode berikut:

string htmlContent = "<html><body><h1>hello world</h1></body></html>";            
browser.NavigateToStream(new MemoryStream(ASCIIEncoding.Default.GetBytes(htmlContent)));

Tampilan pada aplikasi adalah :

Kemudian hal yang menarik menurut saya adalah dari aplikasi WPF anda dapat memanggil fungsi javascript yang ada didalam dokumen HTML pada komponen WebBrowser tersebut. hal ini tentunya memungkinkan komunikasi antara aplikasi WPF anda dengan dokumen HTML yang di "host" olehnya. Contoh kodenya pada aplikasi anda adalah sebagai berikut :

brow.InvokeScript("helloWorld", "check");

sedangkan dokumen HTML sederhananya adalah sebagai berikut:

<html>
<head>
<script type="text/javascript">
   1:  
   2:     function helloWorld(arg)
   3:     {
   4:         alert(arg);
   5:     }
   6:     
</script>
</head>
<body>
hello
</body>
</html>

sehingga ketika fungsi InvokeScript tersebut dipanggil jendela alert akan muncul seperti gambar dibawah ini.

Semoga adanya komponen ini dapat membantu proses pengembangan aplikasi WPF anda

 

cheers

Share this post: | | | |
Posted: Aug 28 2008, 11:50 AM by ronald | with 1 comment(s)
Filed under: , ,
WPF How - To : Embed Winform Control

Bagi anda yang berpengalaman dengan WinForm tentunya akan sedikit merasa kehilangan ketika harus mengembangkan aplikasi yang telah menggunakan WPF. Kehilangan? yep didalam WPF ada beberapa kontrol standar dalam Winform yang tidak ada. Sebagai contoh sebutlah DateTimePicker, MonthCalendar dan beberapa kontrol lainnya. Memang untuk beberapa kontrol tersebut telah ada komponen WPF-nya yang dapat anda download dari beberapa perusahaan seperti devexpress atau telerik atau mungkin intersoftpf? namun tentunya hal tersebut agak2x merepotkan dan bisa jadi mengharuskan anda merogoh kocek untuk membeli komponen tersebut atau bahkan membuat komponen-komponen tersebut secara manual.

Namun tentang saja, kita dapat menambahkan komponen-komponen Winform tersebut ke dalam jendela aplikasi WPF kita. caranya cukup mudah, kita hanya perlu menggunakan sebuah kelas bernama WindowsFormHost yang ada pada file dll bernama WindowsFormsIntegration.dll. Sehingga dengan menggunakan kelas ini maka kita hanya tinggal menambahkan komponen-komponen yang ada dalam winform sebagai properti child dari objek kelas tersebut dan kemudian menambahkan objek dari kelas tersebut ke dalam jendela WPF kita.

Contoh kode dan langkah praktis penggunaannya adalah sebagai berikut :

1. Buat sebuah project dengan tipe WPF Application

2. Pada solution explorer tambahkan refensi ke System.Windows.Forms (dll yang mengandung kontrol2x bawaan winform) dan WindowsFormsIntegration

3. Pada file xaml anda di bagian element Window tambahkan sebuah atribut xml namespace berikut

xmlns:wfc="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"

4. kemudian untuk menggunakannnya anda tinggal membuat sebuah elemen WindowsFormsHost dan masukkan kontrol2x winform sebagai child dari elemen tersebut seperti kode dibawah ini.

<Window x:Class="BuatBlogDemiVaio.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:wfc="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
    Title="Window1" Height="300" Width="300" >
    <Grid>
        <WindowsFormsHost>
            <wfc:DateTimePicker></wfc:DateTimePicker>
        </WindowsFormsHost>
    </Grid>
</Window>

Dalam contoh diatas maka didalam jendela aplikasi WPF anda akan ditampilkan sebuah kontrol DateTimePicker bawaan dari winform seperti cuplikan layar berikut :

image

menarik bukan? sehingga jika anda telah menginvestasikan tenaga coding anda untuk komponen Winform maka anda tidak perlu kuatir, komponen tersebut dapat tetap anda gunakan ketika berurusan dengan WPF, namun ada beberapa catatan yang perlu diperhatikan ketika berurusan dengan WindowsFormsHost yaitu :

1. elemen ini tidak dapat dikenakan animasi

2. elemen ini akan selalu "on top", sehingga akan selalu menimpa tampilan dari komponen/objek2x lain

 

cheers....

Share this post: | | | |
Posted: Aug 26 2008, 11:20 PM by ronald | with no comments
Filed under: , ,
My new Free EBook : Panduan Praktis IE 8.0 Beta

bookcoverIE-thumbMenyambut peringatan kemerdekaan negara kita yang ke 63 tahun ini,maka  saya dengan semangat kermerdekaan pun ingin sedikit menyumbangkan hasil explorasi saya terhadap Internet Explorer 8.0 yang masih ada dalam tahap pengembangan ini.  Buku ini terdiri dari dua bagian yaitu panduan untuk pengguna dan juga untuk developer. Alasan dibagi dua adalah karena saya ingin mengupas IE baik dari pandangan para pengguna/peselancar web maupun dari sisi para developer yang ingin membawa web buatannya ke level yang lebih tinggi lagi.

Sehingga untuk anda para pengguna yang ingin mengetahui bagaimana fitur-fitur terbaru dari IE 8.0 dapat memudahkan kehidupan anda maka silahkan mengunduh bagian pertama disini. dalam bagian pertama ini dibahas tentang bagaiman cara penggunaan fitur-fitur terbaru dari Internet Explorer 8.0 seperti Webslices, Activities dan yang paling menarik adalah tentunya fitur-fitur keamanan dari Internet Explorer 8.0.

Kemudian untuk anda para developer yang ingin mengetahui atau bahkan mencoba fitur2x teranyar menyangkut pengembangan web dalam IE 8.0 dapat mengunduh bagian kedua disini. Khusus untuk bagian developer selain pembahasan tentang bagaimana cara membuat sebuah web untuk mendukung fitur Webslices dan Activities. Maka dibahas pula tentang dukungan HTML 5.0, CSS 2.1 dan pengayaan untuk AJAX.

Semoga ebook ini dapat bermanfaat bagi rekan-rekan sekalian dalam proses update teknologi terutama soal teknologi web dengan mengunakan Internet Explorer 8.0.

 

MERDEKA!!!!

 

Ronald Rajagukguk

Share this post: | | | |
Posted: Aug 17 2008, 10:41 PM by ronald | with 2 comment(s)
Filed under: ,
IE 8 Newest Feature : Webslices

Secara singkat webslices dapat diartikan sebagai sebuah fitur yang memungkinkan anda untuk melakukan browsing hanya terhadap sebagian halaman web. Untuk sederhananya ambil contoh situs social networking facebook. Salah satu fitur yang menarik dari facebook adalah anda dapat menuliskan status anda disana. Sehingga orang lain dapat mengetahui anda sedang melakukan apa dan anda pun dapat melihat status dari teman-teman anda.

Perubahan status tersebut pun ditampilkan dalam hanya sebagian kecil dari halaman facebook anda. Sehingga jika anda hanya ingin melihat perubahan status teman-teman anda, maka tentunya percuma jika anda membuka seluruh halaman facebook hanya untuk melihat sebagian halaman tersebut yang mengandung perubahan status teman-teman anda. Dalam kasus ini fitur Webslices akan menyelamatkan anda. Dengan menggunakan webslices maka anda akan berlangganan terhadap sebagian kecil halaman web yaitu bagian perubahan status teman-teman anda di halaman facebook.

Namun situs yang mendukung ini bukan hanya facebook saja ada berbagai macam seperti misalnya StumbleUpon yang akan menampilkan situs-situs menarik terbaru. Sebagai contoh bagaimana fitur ini dapat digunakan silahkan ikuti langkah-langkah berikut :

1. Arahkan browser anda ke alamat ini : http://www.stumbleupon.com/ie8/ie8_feed.php

2. Tentunya ketika anda mengarahkan browser anda kehalaman tersebut tampilannya kira-kira akan menjadi seperti dibawah ini

image

3. Ketika anda melewatkan mouse anda diatas salah satu gambar maka perhatikan di bagian kiri akan muncul sebuah lambang kotak berwarna ungu seperti dibawah ini.

image

4. Kotak tersebut adalah tombol yang perlu anda tekan jika anda berminat untuk berlangganan terhadap sebuah bagian dari halaman website. Silahkan tekan tombol tersebut maka jendela yang menanyakan apakah anda ingin berlangganan terhadap bagian website ini akan muncul.

clip_image002

5. Tekan Add untuk berlangganan.

6. Setelah berlangganan maka sebuah link akan muncul pada dibagian navigasi anda seperti dibawah ini.

image

7. Jika anda mengklik link tersebut maka sebuah jendela kecil akan terbuka dan menampilkan bagian kecil dari halaman web yang tadi.

image

Sebuah fitur yang menarik bukan? Anda sekarang seolah-oleh memiliki RSS reader terhadap sebuah bagian halaman web. Sebagai informasi Konten dari jendela tersebut pun akan selalu diupdate meskipun Internet Explorer anda tidak aktif. Sehingga anda tidak akan ketinggalan informasi, sebuah fitur inovatif dari Internet Explorer 8.0 bukan? buat para developer web jika anda tertarik untuk membawa situs anda ke level selanjutnya dengan menggunakan Webslices anda dapat membaca IE 8 Developer Whitepapers di sini, namun jika ada kesempatan saya pun akan mengulasnya di blog ini

cheers

Share this post: | | | |
Posted: Aug 10 2008, 06:38 AM by ronald | with no comments
Filed under: ,
IE 8 Newest Feature : Activities

IE 8 beta 1 telah dirilis beberapa bulan yang lalu(tepatnya 5 Maret 2008), namun karena pada saat itu saya telah menggunakan rubah api 3.0 yang masih beta (sekarang sudah full rilis, bahkan sudah 3.01) maka saya belum sempat menggunakannya. Namun karena sebentar lagi versi Beta 2 akan keluar maka tidak ada salahnya jika saya mengunduh dulu versi Beta 1 di sini. Ternyata setelah beberapa menit mengubek2x, IE 8.0 memiliki beberapa fitur-fitur baru yang istilahnya "Reach Beyond the Page" atau dengan kata lain IE 8.0 membawa inovasi baru terhadap dunia browsing dengan fitur yang lebih dari sekedar membuka halaman web. Ada 2 fitur menarik yaitu :

1. Activities

2. Webslices

Namun dalam post ini saya akan membahas terlebih dahulu tentang Activities. Activities dapat didefinisikan sebagai fitur yang memberikan anda akses cepat dari sebuah halaman web ke servis-servis yang disediakan oleh berbagai macam pihak di internet. Mungkin definisi tersebut terdengar abstrak bagi anda. Baiklah mari kita jajal langsung fitur ini sesuai dengan langkah-langkah dibawah ini :

1. Silahkan buka sebuah halaman web sembarang, sebagai contoh saya disini membuka halaman blog saya.

2. Kemudian karena anda merasa ada beberapa informasi penting dalam blog tersebut anda ingin mengirimkan email ke teman anda yang berisikan beberapa paragraf dari blog tersebut.

clip_image002

3. Dengan menggunakan Activities maka caranya cukup mudah, anda tinggal blok paragraf-paragraf yang penting, kemudian pilih Send with Windows Live Hotmail. Maka ketika anda memilih opsi tersebut sebuah jendela baru akan terbuka untuk anda. Jendela tersebut akan membuka hotmail dan jika anda telah login maka anda akan langsung dihadapkan dengan jendela pembuatan pesan baru. Jika anda belum login maka tentunya akan harus login terlebih dahulu.

clip_image004

4. Sekarang kita ambil skenario lainnya. Misalnya ketika anda sedang membaca blog saya anda menemukan sebuah kata yang tidak anda mengerti. Anda dapat dengan mudah menggunakan layanan penerjemahan kata yang disediakan oleh Windows live translator (http://www.windowslivetranslator.com).

5. Caranya cukup mudah anda hanya perlu memblok kata-kata yang ingin anda terjemahkan, kemudian taruh mouse anda diatas menu Translate with Windows Live.

6. Sebuah jendela akan muncul tepat disamping popup menu. Jendela tersebut menampilkan terjemahan dari kata yang anda blok pada langkah 5. Dalam contoh ini saya menggunakan kamus English – Japanese, namun anda dapat memilih kamus-kamus lainnya.

clip_image006

Sebuah fitur yang cukup menarik bukan? Sekarang untuk menggukan sebuah kamus anda tidak perlu lagi menginstall berbagai macam program atau melakukan proses copy-paste konten dari satu situs ke situs lainnya yang akan memproses konten tadi. Semua telah dapat dilakukan dengan mudah melalui fitur aktivities. Hal yang sama pun berlaku untuk pengiriman email, anda hanya tinggal memblok konten yang anda perlukan dan jendela pengiriman email via web pun akan terbuka.

Jika anda jeli maka Activities secara umum terdiri dari 2 tipe aksi yaitu :

1. Mencari informasi yang berhubungan dengan data yang ada dalam sebuah halaman (contoh kasusnya adalah penggunaan kamus pada bagian sebelumnya).

2. Mengirimkan konten dari sebuah halaman web ke servis lainya (contoh kasusnya adalah penggiriman email pada bagian sebelumnya).

Fitur yang menarik ini tentunya akan semakin mempernyaman kehidupan dari seorang peselancar di dunia web. Sebagai seorang developer anda pun pasti bertanya-tanya seperti ini : Bisakah saya membuat aplikasi yang memanfaatkan fitur ini? Jawabannya adalah bisa. Saya akan mengulasnya pada lain kesempatan namun jika anda sudah tidak sabar anda dapat membacanya di link ini.

 

Cheers...

Share this post: | | | |
Posted: Aug 06 2008, 11:10 PM by ronald | with 3 comment(s)
Filed under: , ,
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 3 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: ,
.NET Developer Idol Submission : Project Anonymous CTP

Mengikuti jejak bang Welly dan bang Sagi, maka saya pun mempost project yang saya kirimkan ke kompetisi ini. Sedikit foreplay sebenarnya saya udah ngirimkan project ini sejak tanggal 20 Mei 2008 dan saya pun baru sadar kalo kompetisi diperpanjang sekitar 1 minggu yang lalu. Jadi ya kepaksa deh gak sempet memperbaharui programnya. Tapi gak apa-apa lah, mudah-mudahan project ini bisa berbicara banyak di kompetisi, meskipun hanya dikerjakan 2 hari menjelang deadline tanggal 20 mei 2008.

Okeh cukup foreplaynya, sekarang mari kita masuk ke deskripsi project. Nama project ini adalah Project Anonymous CTP. Satu hal yang menarik adalah adanya kata CTP. Mengapa saya menggunakan kata CTP, karena dalam membangun project ini saya banyak menggukan teknologi-teknologi yang masih CTP ketika project ini berjalan. Teknologi yang saya gunakan adalah :

1. .NET Framework 3..0 (Windows Presentation Foundation,Windows Communication Foundation)

2. ADO .NET Data Services December 2007 CTP

3. .NET Framework 3.5 (LINQ to SQL)

4. Silverlight 1.0

5. ASP .NET  AJAX

6. SQL Server 2008 (February CTP)

Arsitektur dari aplikasi ini cukup singkat, bahkan masih mengikuti format dasar dari buku yang menjadi bonus dari PCMedia. Hanya ada dua bagian presentasi yaitu untuk web dan juga untuk desktop. Namun ada beberapa yang saya tambahkan/modifikasi:

1. Sisi Desktop

jika pada contoh buku menggunakan Win Form biasa maka pada Project Anonymous CTP tampilan telah dipercantik dengan menggunakan WPF. pada gambar dibawah saya menggunakan tampilan coverflow ala mac agar tampilan terkesan lebih futuristik.

image

kemudian saya pun menambahkan sebuah pie chart agar admin dari perpustakaan tersebut mengetahui keadaan dari perpustakaannya.

Statistik

untuk fungsi2x lainnya pun telah saya ubah ke WPF semua, seperti gambar dibawah ini

 Pengembalian Buku 1 Login Screen pemasukan buku baru

2. Sisi Web

Sama seperti Desktop pada sisi web saya pun menggunakan Silverlight sebagai pemanis dari tampilan. contohnya model carousel yang telah melegendaris seperti dibawah ini.

Web Show Book

3. Sisi Services

pada bagian ini saya menggunakan REST dengan memanfaatkan ADO .NET Data Services yang December CTP. sehingga diharapkan dengan adanya service data yang mudah diakses dengan menggunakan URL, orang lain dapat pula mengembangkan aplikasi peminjaman sendiri dengan data yang dikeluarkan oleh perpustakan ini.

 

baiklah demikian saja penjelasan saya tentang aplikasi sederhana yang telah saya kembangkan ini. Semoga berkenan di hati dewan juri...


cheers....

Share this post: | | | |
Photosynth : another great apps from Microsoft Research

Photosynth adalah sebuah aplikasi riset di Microsoft Research. Sebenarnya riset ini udah berjalan cukup lama dan berasal dari Photo Tourism. Saya pertama kali liat membaca tentang riset ini ketika mencari-cari ide untuk ikut Imagine Cup 2007. Namun ketika itu hasil dari riset ini belum bisa dicoba. Dalam halaman web-nya hanya ditunjukkan video tentang ide dari riset ini dah contoh hasilnya. Jadi ketika itu saya tidak dapat mengekplorasi/menggunakan teknologi ini sebagai bagian dari aplikasi yang akan saya ikutkan di Imagine Cup 2007.

Namun kemarin ketika saya sedang browsing-browsing, saya menemukan bahwa ternyata aplikasi Photosynth telah memiliki versi CTP. Tanpa basa-basi saya langsung menuju ke TKP disini dan mengunduh installernya. Ternyata Photosynth harus dijalankan lewat browser dan ternyata ada satu lagi masalah. Ternyata dia belum mendukung Firefox 3.0, ya wajar lah mengingat Firefox 3.0 baru dirilis minggu ini. Jadi ya terpaksa saya menjalankannya lewat Internet Explorer 7.0.

Mungkin banyak yang udah penasaran tentang apa itu Photosynth dan bagaimana Photosynth in action. Oke saya akan mulai mendeskripsikan PhotoSynth, PhotoSynth adalah sebuah cara baru dalam penyajian sebuah koleksi foto. Dengan menggunakan Photosynth maka koleksi foto2x anda akan disajikan dalam model 3 Dimensi. maksud dari 3 Dimensi adalah foto anda akan benar-benar disajikan dalam 3 Dimensi sesuai dengan model 3 Dimensi dari tempat anda mengambil foto. Contohnya adalah seperti gambar dibawah ini :

image

image

 image

okeh gambar diatas adalah contoh dari PhotoSynth "in action". Kita dapat liat bahwa koleksi foto akan disajikan dalam nuansa 3 dimensi. Gambar pertama adalah gambar sebuah menara sedangkan gambar kedua adalah gambar dari tembok yang ada di sebelah kanan dari menara tersebut. Sehingga ketika kita berpindah dari foto menara ke foto tembok ada sebuah animasi bernuansa 3 Dimensi yang ditampilkan (anda dapat lihat pada gambar 2).

Bosan dengan tampilan 3 dimensinya? anda pun masih dapat membrowse koleksi foto dalam 2 dimensi seperti gambar dibawah ini :

image

Cukup menarik bukan? jika anda ingin mengetahui lebih dalam tentang teknologi dibelakangnya mungkin anda dapat membaca paper ini. Dari yang saya tangkap adalah bahwa Photosynth ini melakukan serangkaian algoritma terhadap sebuah foto untuk mencari sudut-sudut dalam sebuah foto untuk kemudian dicocokan dengan model 3D yang ada. Pada edisi CTP ini kita belum dapat menggunakan foto yang kita foto sendiri, alasannya adalah karena waktu yang diperlukan untuk memproses setiap image cukup lama. Ya memang kalau udah baca papernya pasti kita akan mengerti mengapa lama :D. teknologi Sea Dragon yang ada dalam  Deep Zoom seperti yang dibahas oleh bapak Zeddy pun turut digunakan dalam PhotoSynth.

he3x... teknologi riset yang cukup menarik, saya gak sabar untuk melihat bagaimana hasil dari teknologi ini ketika sudah mulai memasuki tahap produksi. Jadi mungkin nanti teknologi ini akan dapat digunakan oleh om roy suryo untuk menampilkan koleksi foto artis/anggota DPR - nya dalam 3 dimensi sehungga menambah keakuratan analisisnya.

 

cheers...

Share this post: | | | |
Posted: Jun 27 2008, 09:02 AM by ronald | with 4 comment(s) |
Filed under: ,
Control your IIS 7.0 with .NET

Jika 3 minggu yang lalu saya memberikan sedikit tips tentang fitur Remote Management dalam IIS 7.0, maka sekarang saya ingin memberikan sedikit tips yang ditujukan untuk para developer tentang bagaimana kita dapat mengontrol IIS 7.0 dengan menggunakan code. Yap dengan menggunakan code, bukan dengan menggunakan script lagi. Caranya cukup mudah kita hanya tinggal menggunakan API yang ada dalam namespace Microsoft.Web.Administration. Namespace tersebut telah ada sejak .NET 3.0.

Okeh langsung aja saya akan kasih sedikit code yang dapat anda gunakan untuk membuat sebuah program kecil yang akan membuat sebuah website dan application pool baru di dalam sebuah IIS 7.0. Program ini berbasiskan command prompt dan akan menerima 5 masukan berupa string. contoh penggunaannya :

WebController.exe <nama situs> <nomor port> <nama host> <alamat virtual directory> <nama application pool>

baiklah mari sekarang kita mulai membuka visual studio 2008 kita, sebagai catatan saya menggunakan edisi express dan OS Vista Ultimate (biar ada IIS 7.0).

1. Buat sebuah project bertipe Console Application dengan nama WebController

2. Silahkan ketikkan code untuk melakukan authentifikasi seperti  dibawah ini

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Principal;
using System.Runtime.InteropServices;

namespace WebController
{
    class Program
    {
        const int LOGON32_PROVIDER_DEFAULT = 0;
        const int LOGON32_LOGON_INTERACTIVE = 2;
        const int LOGON32_IMPERSONATION_LEVEL = 2;

        [DllImport("advapi32.dll", SetLastError = true)]
        public static extern bool LogonUser(string pszUsername, string pszDomain, string pszPassword,
            int dwLogonType, int dwLogonProvider, ref IntPtr phToken);

        [DllImport("kernel32.dll", CharSet = CharSet.Auto)]
        public extern static bool CloseHandle(IntPtr handle);

        [DllImport("advapi32.dll", CharSet = CharSet.Auto, SetLastError = true)]
        public extern static bool DuplicateToken(IntPtr ExistingTokenHandle,
            int SECURITY_IMPERSONATION_LEVEL, ref IntPtr DuplicateTokenHandle);

        public static WindowsImpersonationContext ElevatePermission(string userName, string password)
        {
            var Domain = System.Environment.MachineName;
            IntPtr pExistingTokenHandler = new IntPtr(0);
            IntPtr pDuplicateTokenHandler = new IntPtr(0);
            var coba = LogonUser(userName, Domain, password, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, ref pExistingTokenHandler);
            var duplikasi = DuplicateToken(pExistingTokenHandler, LOGON32_IMPERSONATION_LEVEL, ref pDuplicateTokenHandler);
            Console.WriteLine(coba.ToString());
            WindowsIdentity newID = new WindowsIdentity(pDuplicateTokenHandler);
            return newID.Impersonate();
        }
        static void Main(string[] args)
        {
        }
    }
}

3. kode diatas adalah kode yang akan kita pakai untuk melakukan impersonation. impersonation menurut bahasa saya adalah cara agar kode kita dieksekusi dengan hak seorang user. Kita perlu menggunakan impersonation karena untuk melakukan akses ke IIS 7.0 kita memerlukan login sebagai administrator.

4. Sekarang kita akan membuat code untuk menambahkan sebuah website, Namun sebelum itu kita perlu menambahkan sebuah referensi ke DLL Microsoft.Web.Administration. silahkan cari di C:/Windows/System32/inetsrv.

image

5. Setelah dll tersebut ditambahkan maka sekarang kita bisa bermain-main dengan kelas yang namanya ServerManager, dengan menggunakan kelas ini kita akan dapat  mengontrol IIS kita. silahkan ketikkan kode dibawah ini untuk membuat aplikasi kita dapat menambahkan sebuah web site kedalam IIS 7.0

WindowsImpersonationContext imper = ElevatePermission("nimda", "lontong");
using (ServerManager serverManager = new ServerManager())
{
    ApplicationPool p = serverManager.ApplicationPools.Add(args[4]);
    p.ManagedRuntimeVersion = "v2.0";
    p.ManagedPipelineMode = ManagedPipelineMode.Classic;
    Site newSite = serverManager.Sites.Add(args[0], "http", "*:" + args[1] + ":" + args[2], args[3]);
    newSite.Applications[0].ApplicationPoolName = args[4];
    serverManager.CommitChanges();
}
imper.Undo();

6. silahkan build project anda dan eksekusi hasil exenya seperti berikut :

WebController.exe NamaWeb 8080 NamaHost D: NamaAplikasi

7. Ketika anda telah mengeksekusinya silahkan buka IIS Manager anda, kemudan perhatikan bahwa pada tree Sites telah ada sebuah situs baru dengan nama "NamaWeb"

image

, kemudian pada application pool telah ada sebuah aplikasi baru dengan nama "NamaAplikasi"

image

 

Cukup mudah bukan mengatur IIS 7.0 lewat .NET, kelas-kelas dalam namespace Microsoft.Web.Administration pun akan memberikan anda keleluasaan yang lebih dalam mengatur IIS 7.0 mulai dari konsumsi bandwith per website, pengaturan applicatioon pool, Web site, virtual directory dan banyak opsi2x lainnya. bagi anda yang tertarik untuk membuat panel seperti Cpanel atau Plesk maka anda dapat mengekplore namespace ini.

 

cheers....

Share this post: | | | |
Posted: Jun 26 2008, 12:09 PM by ronald | with 3 comment(s) |
Filed under: , ,
Dump your SQL Server Database to text file by using Database Publishing Wizard

Baiklah dalam post kali ini saya pingin ngasih sedikit tips. Tipsnya adalah tentang bagaimana caranya kita dapat mengimport/dump database kita di SQL server menjadi query sql yang bisa disimpan ke file text. Karena sering kali tentunya kita ingin melakukan dump baik data maupun schema table-table yang ada di database kita ke dalam sebuah file text. File text tersebut tentunya dapat digunakan untuk berbagai macam keperluan semisal anda ingin mengupload data/schema di database lokal anda ke sebuah server hostingan.

Caranya cukup mudah, yang kita perlukan hanya sebuah Visual Studio 2008, bahkan versi Express pun bisa anda gunakan. Cara menggunakannya cukup mudah, silahkan ikuti langkah2x dibawah ini:

1. Buka Visual Studio 2008 anda dan silahkan buka server explorer

2. Pilih database yang akan anda dump ke dalam text file.

3. Lalu klik kanan dan perhatikan bahwa sekarang telah ada sebuah pilihan yaitu Publish to provider..., silahkan pilih opsi tersebut.

image

4. Jendela Welcome dari Database Publishing Wizard akan segera tersaji, klik Next

5. Pilih database yang akan anda dump, lalu klik Next.

6. pada bagian ini anda dapat memilih apakah akan melakukan dump isi database anda ke sebuah file atau ke sebuah shared hosting provider. Karena kita akan melakukan dump ke text file maka silahkan pilih Script to file dan isikan nama file yang anda inginkan.

7. Klik Next untuk maju ke langkah selanjutnya.

8. Sekarang anda akan menemukan wizard dengan judul Select Publishing Options. Dalam bagian ini anda dapat mengatur 4 hal yaitu :

1. Drop existing objects in script

jika opsi ini nilainya true maka akan dihasilkan script yang menghapus tabel-tabel dengan nama yang sama dengan tabel-tabel yang ada dalm database yang akan didump.

2. Schema Qualify

Jika opsi ini true maka nama sebuah objek akan dituliskan komplit dengan nama schemanya.

3. Script for Target database

opsi ini untuk menentukan versi SQL Server yang akan menjadi target dari dump file.

4. Types of data to publish

opsi ini menentukan isi dari dump file anda, apakah hanya berisikan data saja, skema saja atau bahkan kedua-duanya.

9 . Pada langkah 9 silahkan pilih setiap opsi sesuai kebutuhan lalu klik Next.

10. Jendela konfirmasi akan muncul, pastikan bahwa setiap pilihan telah sesuai dengan kebutuhan anda. Silahkan klik Finish jika anda telah memastikan bahwa semua aturan benar, atau tekan Back jika ada aturan yang salah.

11. setelah anda menekan tombol Finish maka sebuah jendela yang menampilkan kemajuan dari operasi akan muncul dan ketika selesai tampilannya adalah sebagai berikut.

image

Baiklah itu saja tips singkat dari saya tentang bagaimana menghasilkan sebuah file dump dari SQL Server 2005 dengan menggunakan database publishing wizard yang telah ada dalam Visual Studio 2008. Cukup mudah bukan? sehingga dengan kemudahan ini diharapkan anda dapat dengan mudah melakukan dump database anda kedalam sebuah file text.  Semoga bermanfaat....

 

cheers....

Share this post: | | | |
Posted: Jun 24 2008, 04:46 PM by ronald | with no comments
Filed under: ,
IIS 7.0 Remote Management

he3x ini sedikit oleh2x dari GCOE minggu pertama di MIC - ITB, kebetulan pada minggu pertama ini saya menjadi trainer dalam pelatihan berjudul Infrastuktur dan Arsitektur Web. Jadi dalam pelatihan ini saya membawakan materi singkat seputar Windows Server 2008, IIS 7.0 dan juga ASP .NET MVC. Presentasi dan Hands-On-Labnya gak berat-berat amat sih. Karena sifat pelatihan yang cuma pengenalan dan waktu yang singkat (3 sesi, 1 jam per sesi).

Okeh jadi pada blog posting ini pingin membagi sedikit pengetahuan tentang salah satu fitur IIS 7.0 yang menurut saya paling menarik. Kalau misalnya rekan2x pembaca belum punya IIS 7.0 tapi punya vista edisi business atau ultimate bisa lihat tutorialnya yang ditulis oleh rekan saya dari UI di sini. Remote Management seperti terlihat dari namanya adalah sebuah fitur dalam IIS 7.0 yang memungkinkan kita untuk melakukan management IIS 7.0 dari PC lain. Yup, saya ulangi dari PC lain. Okeh mungkin ada yang nanya gini :

Q: apa bedanya dengan pake remote desktop dan jalanin Inetmgr di server.

A: okeh bedanya adalah Remote Management menggunakan port 443 sedangkan remote desktop pake 3389. Jadi artinya remote management pake port yang sama dengan https, so harusnya port ini firewall friendly. sebagai info port 3389 itu diblok oleh kebanyakan firewall. bahkan di ITB aja diblok :D

Q : okeh, kalo mo pake Remote Management perlu apa aja di server.

A : pertama tentunya kita perlu Windows Server 2008/ Vista dengan IIS 7.0 yang telah terinstall, kemudian mengaktifkan IIS Management Servicesnya seperti gambar dibawah ini :

image

pastikan bahwa IIS Management Service anda terinstall, jika belum silahkan aktifkan dahulu fitur ini pada Windows Features (saya menggunakan Vista pada gambar diatas)

Q : okeh, kalo udah aktif terus di sisi server apa lagi yang perlu dilakukan?

A : Setelah fitur IIS Management Service telah aktif maka ada beberapa konfigurasi yang perlu dilakukan pada sisi server. langkahnya cukup mudah seperti dibawah ini :

1.  Aktifkan Management Service untuk website anda. Caranya pilih fitur Management Service pada root web utama anda

image

2. Klik dan anda akan dihadapkan pada sebuah jendela pengaturan Management Service. pastikan bahwa checkbox Enable remote connection ada dalam keadaan tercentang. jika belum tercentang maka lakukan langkah dibawah ini

1. pastikan bahwa Management Service dalam keadaan stop, karena jika tidak stop pasti kita tidak akan dapat mencentang. Namun jika telah dalam keadaan stop silahkan lanjutkan ke langkah kedua. Jika belum tekan tombol Stop yang ada pada panel Action di sebelah kiri layar anda.

2. centang checkbox Enable remote connection kemudian anda dapat memilih cara authentifikasi pengguna yang dapat melakukan koneksi ke server web anda. Dalam kasus ini saya memilih Windows credentials or IIS Manager Credentials, alasannya apa? karena saya ingin melakukan koneksi dari luar kampus, jadi tinggal kasih username dan password aja. tapi kalo misalnya anda hanya ingin orang2x di lokal organisasi anda saja yang login (dikawinkan dengan AD) maka bisa aja sih pilih opsi Windows credentials.

3. tekan tombol Start untuk mengaktifkan kembali fitur ini.

3. Setelah fitur Management Service aktif kita perlu menambahkan seorang pengguna yang berhak melakukan remote management ke IIS kita. caranya cukup mudah silahkan ikuti langkah dibawah

1. masih pada bagian web utama pilih IIS Manager Users.

2. lakukan klik kanan dan pilih add users.

image

3. jendela penambahan nama user baru dan password akan muncul. Silahkan tambahkan nama dan password sesuai selera kemudian tekan OK.

4. Baiklah, sampai tahap ini kita telah memiliki pengguna dan fitur Management Service telah aktif, langkah selanjutnya adalah menambahkan pengguna tersebut ke daftar pengguna yang boleh melakukan koneksi di web kita. caranya cukup mudah silahkan ikuti panduan berikut :

1. PIlih site yang anda akan jadikan target dari Remote Management.

2. Cari ikon dengan judul IIS Manager Permission, dan klik ganda

3. Sekarang pada bagian tengah akan muncul sebuah daerah tempat anda dapat menambahkan pengguna, lakuka klik kanan dan pilih Allow User

4. Pilih IIS Manager kemudian tekan select dan pilih nama pengguna yang anda inginkan, lalu klik OK.

5. ketika anda telah sampai pada tahap ini maka anda telah berhasil mengkonfigurasi server.

 

Q : kalo udah beres diserver terus di client harus install apa?

A : okeh, saya berasumsi bahwa client m