Top Banner

of 88

Smart Client Dev

Jul 08, 2015

Download

Documents

RaditeoWarma
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript

KATA PENGANTAR

PengantarAlhamdulillah, akhirnya buku ini selesai tepat pada waktunya. Buku ini adalah buku kecil yang memberikan pembaca sedikit pengetahuan tentang pengembangan aplikasi menggunakan teknologi Smart Client. Secara sederhana, Smart Client adalah arsitektur pengembangan aplikasi ala Windows Form yang mengkombinasikan teknologi terdepan seperti Services (Web atau WCF), Self Updating Application, hingga Offline-Online Scenario. Buku ini akan membahas sebagian kecil saja dari fitur-fitur pada Smart Client. Bila Alloh mengizinkan buku ini akan dilanjutkan pada bahasan yang sama dengan topik yang lebih dalam. Buku ini ,mengutilasi penggunaan perangkat lunak pengembangan gratis dari Microsoft yakni Visual C# Express, Visual Web Developer Express, dan juga SQL Server Express. Pembaca dapat mendownload aplikasi ini pada situs Microsoft Keberadaan buku ini tak luput dari keterlibatan teman-teman di Microsoft Innovation Center UGM bang Juju, Linx2, dan juga Bapak Risman Adnan, tanpa mereka tentu buku ini tak akan ada.

Salam Inovasi, Ridi Ferdiana

0

: Program Pertama Anda dengan Visual Studio 2008

PERSIAPAN

Bab 1

PersiapanPada Bab ini akan dipersiapkan berbagai perangkat lunak yang diperlukan dalam pengembangan aplikasi perpustakaan dengan teknologi .NET 3.5 Software Yang DibutuhkanSebelum membangun aplikasi sederhana ini, perlu disiapkan komputer dengan sistem operasi Windows XP SP2 atau Windows Vista dan beberapa perangkat lunak berikut: Basis Data : SQL Server Express 2005 dan SQL Server Management Studio Express Web Server : Internet Information Services (IIS) C# IDE : Visual C# Express 2008 ASP.NET IDE : Visual Web Developer Express 2008 Visual C# dan Visual Web Developer Express 2008 dapat diperoleh di PCMedia edisi sebelumnya atau diunduh gratis dari http://msdn.microsoft.com/express.

IIS di Windows Vista dan XPPada bagian ini dijelaskan langkah-langkah pemasangan Internet Information Services sebagai Web Server yang akan dijadikan bahan pembelajaran dalam buku ini.

: Aplikasi Smart Client dengan Visual Studio 2008 Express

1

PERSIAPAN

MENGINSTAL IIS 7.0 PADA WINDOWS VISTAKonsep pemasangan IIS 7.0 pada Windows Vista dapat dilakukan dengan dua cara yakni melalui antarmuka atau melalui script. Sebuah cara termudah dan yang paling disarankan adalah menggunakan Control Panel untuk memasang IIS. Secara default windows Vista memasang IIS dengan fitur minimalis. Walaupun demikian, pengguna dapat memasang berbagai fitur tambahan lainnya seperti Application Development Features, Web Management Tools, dan sebagainya, dengan memilih check box yang dapat dipilih pada dialog Windows Features.

Windows Features pada Windows Vista

Berikut adalah langkah-langkah yang dapat dilakukan untuk melakukan pemasangan IIS 7.0 pada Windows Vista dengan menggunakan pendekatan dialog Windows Features.

2

: Program Pertama Anda dengan Visual Studio 2008

PERSIAPAN

LANGKAH 1Melalui Start Menu pilih menu Control Panel.

LANGKAH 2Pada Control Panel pilih Programs kemudian pilih Turn on or off Windows Features.

LANGKAH 3Pada dialog box Windows Features, pilih Internet Information Services. Pada bagian ini pengguna dapat melakukan pemilihan sesuai kebutuhan dengan melakukan ekspansi dari masingmasing sub-fitur yang ada.

LANGKAH ALTERNATIFSelain menggunakan Windows Features, pembaca juga dapat menggunakan pendekatan script. Pendekatan script memang terkesan kompleks, namun demikian tingkat fleksibilitas yang ditawarkan lebih tinggi. Berikut adalah script yang dapat digunakan. Script ini dapat disalin ke berkas teks yang kemudian dapat disimpan dalam bentuk berkas .batstart /w pkgmgr /iu:IIS-WebServerRole;IISWebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IISDefaultDocument;IIS-DirectoryBrowsing;IISHttpErrors;IIS-HttpRedirect;IISApplicationDevelopment;IIS-ASPNET;IISNetFxExtensibility;IIS-ASP;IIS-CGI;IISISAPIExtensions;IIS-ISAPIFilter;IISServerSideIncludes;IIS-HealthAndDiagnostics;IISHttpLogging;IIS-LoggingLibraries;IISRequestMonitor;IIS-HttpTracing;IIS-CustomLogging;IISODBCLogging;IIS-Security;IIS-BasicAuthentication;IISWindowsAuthentication;IIS-DigestAuthentication;IISClientCertificateMappingAuthentication;IIS-

: Aplikasi Smart Client dengan Visual Studio 2008 Express

3

PERSIAPAN IISCertificateMappingAuthentication;IISURLAuthorization;IIS-RequestFiltering;IISIPSecurity;IIS-Performance;IISHttpCompressionStatic;IIS-HttpCompressionDynamic;IISWebServerManagementTools;IIS-ManagementConsole;IISManagementScriptingTools;IIS-ManagementService;IISIIS6ManagementCompatibility;IIS-Metabase;IISWMICompatibility;IIS-LegacyScripts;IISLegacySnapIn;IIS-FTPPublishingService;IISFTPServer;IIS-FTPManagement;WASWindowsActivationService;WAS-ProcessModel;WASNetFxEnvironment;WAS-ConfigurationAPI

PEMASANGAN IIS PADA WINDOWS XPVersi IIS untuk Windows XP adalah IIS 6.0 dan untuk keperluan aplikasi ini, penggunaan IIS 6.0 juga diizinkan. Bila pembaca menggunakan Windows XP maka IIS dapat dipasang dengan mengikuti langkah-langkah sebagai berikut.

LANGKAH 1Melalui Start Menu pilih menu Control Panel.

LANGKAH 2Pilih Add or Remove Programs, lalu pilih Add/Remove Windows Components.

LANGKAH 3Pada jendela Windows Components yang terlihat, pilih fitur Internet Information Services (IIS), kemudian lanjutkan dengan memilih menu next.

4

: Program Pertama Anda dengan Visual Studio 2008

PERSIAPAN

Pilihan IIS pada Fitur Windows XP

LANGKAH 4Pada saat instalasi berlangsung Windows akan meminta media instalasi Windows XP. Pembaca dapat memasukkan media instalasi pada saat Windows XP membutuhkannya dan instalasi akan berjalan dengan baik.

CatatanSetelah IIS terpasang, komputer akan dapat berfungsi sebagai sebuah Web Server. ada kemungkinan terjadi penurunan kinerja komputer karena adanya beban tambahan untuk menjalankan Web Server. Pada Windows XP atau Vista terdapat juga keterbatasan dari jumlah koneksi yang dapat dilayani.

Visual C# Express 2008Berikutnya penulis mengajak pembaca untuk memasang salah satu IDE (Integrated Development Environment) pemrograman

: Aplikasi Smart Client dengan Visual Studio 2008 Express

5

PERSIAPAN

C#. IDE ini akan bermanfaat pada saat pengembangan aplikasi desktop dan juga class library yang akan dilakukan pada bab berikutnya. Berikut adalah langkah-langkah yang dapat dilakukan untuk memasang Visual C# Express.

LANGKAH 1Pembaca dapat memilih berkas instalasi Visual C# Express melalui berkas setup yang bersangkutan. Program instalasi akan menyalin beberapa berkas instalasi yang dibutuhkan ke dalam sebuah folder sementara. Setelah penyalinan selesai, aplikasi setup akan ditampilkan dan hal tersebut yang menandakan bahwa instalasi siap dimulai.

LANGKAH 2Pada halaman Welcome to Setup, pembaca dapat memberikan tanda centang pada check box untuk mengirimkan informasi user experience pada saat instalasi ke Microsoft. Pilih Next untuk melanjutkan.

LANGKAH 3Aplikasi instalasi akan menampilkan halaman License Terms, pilih I have read and accept the licence terms, pilih Next untuk melanjutkan.

LANGKAH 4Halaman berikutnya berisi pilihan fitur program yang akan diinstall. Pada bagian ini penulis menyarankan agar pembaca memasangkan semua fitur yang ada demi kelancaran dalam mengembangkan program. Pilih Next untuk melanjutkan.

6

: Program Pertama Anda dengan Visual Studio 2008

PERSIAPAN

Instalasi Visual C# Express 2008

LANGKAH 5Berikutnya akan ditampilkan folder tujuan instalasi. Secara default, folder tujuan telah ditentukan oleh program. Pilih lokasi yang sesuai dengan ruang disk yang tersisa kemudian pilih Install.

LANGKAH 6Proses instalasi akan berlangsung beberapa menit, kemudian pilih Exit pada saat instalasi telah selesai dilaksanakan. Berikutnya pembaca dapat melakukan pengecekan hasi instalasi dengan membuka program Visual C# Express yang bersangkutan.

: Aplikasi Smart Client dengan Visual Studio 2008 Express

7

PERSIAPAN

Visual Web Developer Express 2008Visual C# mendukung pengembangan aplikasi dekstop, sementara untuk pengembangan aplikasi Web dan Web Services dibutuhkan Visual Web Developer Express 2008. Berikut adalah langkah-langkah instalasi Visual Web Developer 2008.

LANGKAH 1Sama halnya dengan instalasi Visual C# Express, pembaca dapat memilih berkas setup instalasi yang bersangkutan, yang dalam hal ini setup Visual Web Developer.

LANGKAH 2Lakukan langkah-langkah yang identik dengan pemasangan Visual C# Express, sehingga Visual Web Developer dapat terpasang sebagaimana mestinya.

LANGKAH 3Setelah terpasang, penulis sarankan untuk melakukan pengecekan kelengkapan terhadap berbagai perangkat yang terpasang. Pada bagian ini yakinkan bahwa fitur dan aplikasiaplikasi berikut telah terpasang. IIS 7.0 untuk Vista dan IIS 6.0 untuk XP Visual C# Express 2008. Visual Web Developer Express 2008. SQL Express 2005. MSDN Express library

8

: Program Pertama Anda dengan Visual Studio 2008

PERSIAPAN

Proses Instalasi Visual Web Developer

Instalasi SQL Server Express 2005.SQL Server Express 2005 secara default terpasang pada saat pembaca melakukan instalasi Visual Web Developer atau Visual C# Express. Penulis sarankan untuk memasangnya pada saat instalasi Visual C# dan VWD. Namun demikian bila hal tersebut terlewatkan ikuti langkah-langkah dibawah ini.

LANGKAH 1Buka media instalasi Visual Studio kemudian telusuri dengan eksplorer ke folder \\VCExpress\WCU\SSE. Temukan berkas SQLEXPR.EXE dan eksekusi untuk instalasi. Hal lain yang dapat dilakukan adalah mengunduh versi terakhir dari SQL Server Express 2005 yang dapat didownload di situs Microsoft.

: Aplikasi Smart Client dengan Visual Studio 2008 Express

9

PERSIAPAN

LANGKAH 2Demi kemudahan pengembangan penulis sarankan untuk memasang secara default. Setelah instalasi berhasil, pembaca dapat melakukan pengecekan melalui menu Microsoft SQL Server 2005 > Configuration Tools > SQL Server Configuration Manager

LANGKAH 3Pada SQL Configuration Manager pilih menu SQL Server 2005 Services > SQL Server (SQLEXPRESS) > pilih konteks menu dan pilih Start. Yakinkan services yang bersangkutan dapat berjalan dengan kondisi running.

SQL Configuration Manager

Instalasi SQL Server Management Studio Express.SQL Server Express tidak memiliki antarmuka pengelolaan basis data yang berupa GUI. Berdasarkan pada kebutuhan tersebut Microsoft merilis antarmuka grafis pengelolaan SQL Server dengan nama Management Studio Express. Berikut adalah langkah-langkah yang dibutuhkan untuk memasangnya.

LANGKAH 1SQL Server Management Studio Express dapat diunduh disitus Microsoft. Berkas instalasi Management Studio Express diberi nama SQLServer2005_SSMSEE.msi. Pilih berkas tersebut dan biarkan instalasi akan berjalan seperti pada umumnya.

10

: Program Pertama Anda dengan Visual Studio 2008

PERSIAPAN

SQL Server Management Studio Express

LANGKAH 2Pembaca dapat mengakses SQL Server Management Studio Express melalui Start Menu SQL Server Express 2005. Penggunaannya akan dibahas lebih lanjut pada bab 2.

Arsitektur AplikasiAplikasi yang akan dikembangkan adalah aplikasi sederhana untuk pengelolaan buku perpustakaan. Pengelolaan yang dimaksud terbatas pada pengelolaan buku yang meliputi pemasukan informasi buku, pembaharuan informasi buku, dan juga penghapusan informasi buku. Aplikasi disusun dengan mengikuti kaidah arsitektur tiga lapis atau yang lebih dikenal dengan three tier. Arsitektur three tier terbagi menjadi tiga bagian yakni data tier yang berupa basis

: Aplikasi Smart Client dengan Visual Studio 2008 Express

11

PERSIAPAN

data, business tier yang berupa pustaka atau layanan yang terdiri dari berbagai fungsi yang mengkonsumsi data tier, dan bagian yang terakhir adalah presentation tier yang berupa antarmuka aplikasi yang mengkonsumsi business tier.

Arsitektur Aplikasi Pengelolaan Buku

Informasi buku disimpan dalam sebuah tier basis data SQL Server yang terbagi menjadi dua tabel master-detail. Satu tabel dirancang untuk informasi umum sebuah buku seperti judul, nomor penerbitan (ISBN), pengarang, dan sebagainya. Sementara tabel lainnya untuk informasi daftar isi detil dari buku yang terdapat pada tabel master. Pembuatan basis data ini akan dibahas lebih lanjut pada bab 2. Informasi yang tersimpan akan dikonsumsi melalui class khusus yang dinamakan business logic class. Class ini akan menangani berbagai operasi yang terjadi pada basis data seperti

12

: Program Pertama Anda dengan Visual Studio 2008

PERSIAPAN

pemasukan, pembaharuan, dan penghapusan data buku. Hal yang menarik pembuatan business logic class ini akan menggunakan LINQ dan akan dipublikasikan sebagai sebagai Web Services yang akan dibahas pada bab 3, 4, dan 5. Banyak sekali manfaat model arsitektur berlapis dengan Web Service sebagai interface. Web Services standar industri yang menjamin interoperabilitas platform. Web Service dengan IIS Sebagai Web Application Server juga memiliki tingkat skalabilitas yang tinggi. Manfaat lain penggunaan web services adalah kebebasan dari sisi antarmuka aplikasi. Pada buku ini penulis mengembangkan dua aplikasi antarmuka sekaligus yang mengkonsumsi lapis business tier yang diimplementasikan sebagai Web Service. Pengembangan antarmuka Web akan dibahas pada bab 6, sementara pengembangan berbasis Dekstop akan dibahas pada bab 7.

: Aplikasi Smart Client dengan Visual Studio 2008 Express

13

PERSIAPAN

14

: Program Pertama Anda dengan Visual Studio 2008

MEMBUAT BASIS DATA

Bab 2

Membuat Basis DataBasis data modern tidak hanya dilengkapi dengan Table dan View tetapi juga Stored Procedure. Bab ini akan membahas pembuatan basis data aplikasi. Struktur Basis DataBasis data yang dibuat adalah basis data untuk aplikasi perpustakaan. Basis data ini akan dinamakan dengan nama LibraryDB yang terdiri dari dua tabel yakni tabel buku dan tabel daftar isi. Berikut langkah-langkah pembuatannya.

LANGKAH 1Buka SQL Server Management Studio, hubungkan ke database dengan memilih login dengan menggunakan Windows Authentication. Ekspansi Object Explorer untuk memperoleh bagian Database, lalu pada konteks menu pilih New Database, kemudian isikan nama LibraryDB.

LANGKAH 2Basis data akan tampil pada Object Explorer. Berikutnya buat dua tabel dengan nama TBL_BUKU dan TBL_DAFTAR_ISI. Hal ini

: Aplikasi Smart Client dengan Visual Studio 2008 Express

15

MEMBUAT BASIS DATA

dapat dilakukan dengan menggunakan konteks menu pada Database > LibraryDB > Tables > New Table. Tabel pertama (TBL_BUKU) terdiri dari kolom-kolom berikut : ISBN , char(10), Primary Key JUDUL , varchar(100) PENGARANG, varchar(100) PENERBIT, varchar(100) TGL_PENERBIT, datetime

Tabel kedua (TBL_DAFTAR_ISI) terdiri dari kolom-kolom berikut : ID_DAFTARISI, numeric(18,0), Primay Key ISBN, char(10) ISI, varchar(100) HALAMAN, tinyint

Primary Key dapat dibuat dengan melakukan pemilihan pada kolom yang bersangkutan > pilih konteks menu > pilih Primary Key. Selain menggunakan pendekatan visual, pembuatan tabel juga dapat dilakukan dengan menggunakan kode T-SQL. Berikut kode untuk pembuatan tabel TBL_BUKUUSE [LibraryDB] CREATE TABLE [dbo].[TBL_BUKU]( [ISBN] [char](10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, [JUDUL] [varchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [PENGARANG] [varchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [PENERBIT] [varchar](100) COLLATE

16

: Program Pertama Anda dengan Visual Studio 2008

MEMBUAT BASIS DATA

SQL_Latin1_General_CP1_CI_AS NULL, [TGL_PENERBITAN] [datetime] NULL, CONSTRAINT [PK_TBL_BUKU] PRIMARY KEY CLUSTERED ( [ISBN] ASC )WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] GO

Sedangkan T-SQL untuk pembuatan TBL_DAFTAR_ISI :USE [LibraryDB] CREATE TABLE [dbo].[TBL_DAFTAR_ISI]( [ID_DAFTARISI] [numeric](18, 0) IDENTITY(1,1) NOT NULL, [ISBN] [char](10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [ISI] [varchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [HALAMAN] [tinyint] NULL, CONSTRAINT [PK_TBL_DAFTAR_ISI] PRIMARY KEY CLUSTERED ( [ID_DAFTARISI] ASC )WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] GO ALTER TABLE [dbo].[TBL_DAFTAR_ISI] WITH CHECK ADD CONSTRAINT [FK_TBL_DAFTAR_ISI_TBL_BUKU] FOREIGN KEY([ISBN]) REFERENCES [dbo].[TBL_BUKU] ([ISBN]) GO ALTER TABLE [dbo].[TBL_DAFTAR_ISI] CHECK CONSTRAINT [FK_TBL_DAFTAR_ISI_TBL_BUKU]

Pembaca dapat melihat hasil pembuatan tabel melalui fitur

: Aplikasi Smart Client dengan Visual Studio 2008 Express

17

MEMBUAT BASIS DATA

Diagram yang ada dalam SQL Server Management Studio.

Diagram pada SQL Server Management Studio

LANGKAH 3Pada SQL Server Management Studio, pembaca dapat pula melakukan perubahan kolom dengan menggunakan antarmuka Object Explorer > Database > LibraryDB > Tables > Nama Tabel > Modify. Pembaca dapat merubah nama kolom, tipe data dan juga batasan seperti Primary Key dan Foreign Key. Hal ini sebaiknya dilakukan sebelum data dimasukkan.

18

: Program Pertama Anda dengan Visual Studio 2008

MEMBUAT BASIS DATA

LANGKAH 4Pada SQL Server Management Studio, pembaca juga dapat melakukan pemasukan data. Yaitu dengan menggunakan antarmuka Object Explorer > Database > LibraryDB > Tables > Nama Tabel > Open Table Pembaca dapat mengisi data dengan mengisi setiap baris sesuai dengan kolom yang tampil pada antarmuka dari SQL Server Management Studio. Pada saat pengguna memindahkan kursornya dari satu baris data ke data yang lain, SQL Server Management Studio akan menyimpan secara otomatis baris data tersebut sesuai dengan batasan nilai setiap kolom.

Gambar pengisian data pada SQL Server Management Studio

Pengisian juga dapat dilakukan dengan menggunakan T-SQL Insert, namun menyarankan untuk memilih SQL Server Management Studio untuk kemudahan. Lakukan penambahan data dengan mengisi beberapa data, sebagai contoh: Pada Tabel Buku (TBL_BUKU) o ISBN : 1430202572 o Judul : LINQ for Visual C# o Pengarang : Fabio Claudio o Penerbit : APress o Tanggal Penerbitan : 1-1-2006

: Aplikasi Smart Client dengan Visual Studio 2008 Express

19

MEMBUAT BASIS DATA

-

Pada Tabel Daftar Isi (TBL_DAFTAR_ISI) ISI LINQ to the Object LINQ to ADO.NET LINQ to XML HALAMAN 1 63 127

ISBN 1430202572 1430202572 1430202572

Stored ProcedureStored Procedure didefinisikan sebagai satu atau lebih pernyataan T-SQL yang disimpan dalam basis data yang bersangkutan. Stored Procedure dapat dieksekusi melalui kode klien, Stored Procedure yang lain, atau bahkan melalui Trigger. Stored Procedure dapat disimpan dalam tiap basis data. Pada SQL Server terdapat pula Stored Procedure system yang dapat dieksekusi oleh tiap-tiap basis data. Stored procedure tersebut disebut Global Stored Procedure. Stored Procedure memiliki dukungan sintaksis yang cukup kaya. Sebagai contoh pengguna dapat menggunakan pernyataan TRY.CATCH, pernyataan transaksi, dan tentu pernyataan T-SQL. Penggunaan stored procedure sebenarnya memiliki kesamaan dengan perintah T-SQL pada umumnya. Berikut adalah beberapa alasan mengapa stored procedure dapat menjadi pilihan pendekatan mekanisme pembacaan basis data. Konsumsi bandwith komunikasi yang lebih rendah, penggunaan T-SQL pada umumnya disimpan dan dieksekusi pada sisi klien. Klien akan mengirimkan TSQL tersebut ke server. Hal ini tidak terjadi bila menggunakan Stored Procedure. Hal yang dilakukan

20

: Program Pertama Anda dengan Visual Studio 2008

MEMBUAT BASIS DATA

-

-

pada klien hanyalah memanggil stored procedure yang mungkin hanya berupa kalimat EXECUTE nama_storedprocedure, dengan demikian tentu dapat dikatakan menghemat lalu lintas bandwidth. Performa yang lebih baik. Stored procedure disimpan di Server. Eksekusi menjadi lebih cepat dan efisien dibandingkan dengan mengirimkan pernyataan T-SQL melalui aplikasi klien. Keamanan yang lebih terjaga. Stored Procedure mencegah terjadinya SQL Injection. SQL Injection adalah upaya modifikasi pernyataan T-SQL melalui masukan antarmuka aplikasi klien yang diyakini dapat menipu dan merugikan.

Basis data LibraryDB akan menggunakan stored procedure untuk melakukan operasi CRUD (Create , Update , dan Delete). Pada implementasinya operasi CRUD tersebut akan dieksekusi menggunakan salah satu fitur terbaru .NET 3.5 yang akan dibahas pada bab 4 yakni LINQ to SQL. Berikut adalah langkah langkah membuat Stored Procedure.

LANGKAH 1Buka SQL Server Management Studio, hubungkan ke database dengan memilih login dengan menggunakan Windows Authentication. Ekspansi Object Explorer untuk memperoleh bagian Database > ekspansi bagian Database > pilih LibraryDB > lakukan ekspansi bagian LibraryDB > pilih dan ekspansi Programmability > pilih Stored Procedures > Kemudian pada konteks menu pilih New Stored Procedures. SQL Server Management studio akan membuat template Stored Procedures yang memudahkan anda untuk melakukan pemograman Stored Procedures.

: Aplikasi Smart Client dengan Visual Studio 2008 Express

21

MEMBUAT BASIS DATA

Konteks Menu Stored Procedures

Selain menggunakan teknik yang disebutkan di atas. Stored procedures juga dapat ditulis dengan menggunakan jendela Query. Untuk melakukan hal ini pembaca cukup memilih menu File > new > Query with Current Connection, atau menggunakan kombinasi tombol Ctrl + N. Perbedaannya kedua cara tersebut terletak pada ada tidaknya template Stored Procedure.

22

: Program Pertama Anda dengan Visual Studio 2008

MEMBUAT BASIS DATA

LANGKAH 2Jendela Query dapat diisi dengan pernyataan T-SQL yang sesuai dengan kadiah pemograman T-SQL. Pertama-tama buat Stored Procedures untuk insert pada tabel TBL_BUKU sebagai berikut.CREATE PROCEDURE [dbo].[SP_INSERT_BUKU] ( @pISBN char(10), @pJudul varchar(100), @pPengarang varchar(100), @pPenerbit varchar(100), @pTglPenerbitan datetime ) AS INSERT INTO TBL_BUKU VALUES(@pISBN,@pJudul,@pPengarang,@pPenerbit,@pTglPene rbitan); RETURN

Salin pernyataan T-SQL diatas dan lakukan eksekusi penyimpanan Stored Procedures tersebut dengan memilih menu Query > Executes.

Eksekusi Penyimpanan Stored Procedures

: Aplikasi Smart Client dengan Visual Studio 2008 Express

23

MEMBUAT BASIS DATA

Lakukan hal yang sama dapat dilakukan untuk operasi Insert pada TBL_DAFTAR_ISI sebagai berikut:CREATE PROCEDURE [dbo].[SP_INSERT_DAFTARISI] ( @pISBN char(10), @pIsi varchar(100), @pHalaman tinyint ) AS INSERT INTO TBL_DAFTAR_ISI(ISBN,ISI,HALAMAN) VALUES(@pISBN,@pIsi,@pHalaman); RETURN

LANGKAH 3Berdasarkan contoh langkah-langkah sebelumnya, lakukan pembuatan Stored Procedures untuk update TBL_BUKU dan TBL_DAFTAR_ISI sebagai berikut:CREATE PROCEDURE [dbo].[SP_UPDATE_BUKU] ( @pISBN char(10), @pJudul varchar(100), @pPengarang varchar(100), @pPenerbit varchar(100), @pTglPenerbitan datetime ) AS UPDATE TBL_BUKU SET JUDUL = @pJudul,PENGARANG = @pPengarang,PENERBIT = @pPenerbit,TGL_PENERBITAN = @pTglPenerbitan WHERE ISBN = @pISBN; RETURN CREATE PROCEDURE [dbo].[SP_UPDATE_DAFTARISI] ( @pID_DaftarISI numeric(18,0), @pISBN char(10), @pIsi varchar(100),

24

: Program Pertama Anda dengan Visual Studio 2008

MEMBUAT BASIS DATA

@pHalaman tinyint ) AS UPDATE TBL_DAFTAR_ISI SET ISI = @pIsi,HALAMAN = @pHalaman,ISBN = @pISBN WHERE ID_DAFTARISI = @pID_DaftarISI; RETURN

LANGKAH 4Berdasar langkah-langkah sebelumnya, lakukan pembuatan Stored Procedures untuk delete TBL_BUKU dan TBL_DAFTAR_ISI sebagai berikut:CREATE PROCEDURE [dbo].[SP_DELETE_DAFTARISI] ( @pID_DaftarISI numeric(18,0) ) AS DELETE FROM TBL_DAFTAR_ISI WHERE ID_DAFTARISI = @pID_DaftarISI; RETURN CREATE PROCEDURE [dbo].[SP_DELETE_BUKU] ( @pISBN char(10) ) AS DELETE FROM TBL_DAFTAR_ISI WHERE ISBN = @pISBN; DELETE FROM TBL_BUKU WHERE ISBN = @pISBN; RETURN

: Aplikasi Smart Client dengan Visual Studio 2008 Express

25

MEMBUAT BASIS DATA

26

: Program Pertama Anda dengan Visual Studio 2008

MENGENAL LINQ

Bab 3

Mengenal LINQLINQ adalah fitur baru pengaksesan data di .NET Framework 3.5 yang memudahkan query ke semua tipe data (Obyek, XML, basis data dan lain-lain). Apa itu LINQ?LINQ (Language Integrated Query) adalah suatu fitur yang memungkinkan pengaksesan data dengan menggunakan sintaksis bahasa pemograman. Bila umumnya pengembang menggunakan API berbasis ORM seperti ADO.NET yang kemudian didalamnya menggunakan parameter sintaksis SQL, maka LINQ cukup menggunakan sintaksis khusus yang melekat sebagai fitur dalam bahasa pemograman seperti C# 3.0 dan VB 9.0.

Arsitektur LINQLINQ adalah fitur baru Framework. Pernyataan bahasa pemograman pengaksesan ala koleksi dalam bahasa pemrograman di .NET LINQ dituliskan menggunakan sintaksis dengan notasi yang mirip dengan objek menggunakan class collection

: Aplikasi Smart Client dengan Visual Studio 2008 Express

27

MENGENAL LINQ

Arsitektur LINQ

LINQ terbagi menjadi tiga bagian utama yakni : - LINQ to Object, sekumpulan pustaka pemrograman yang mengandung sejumlah Standard Query Operators (SQO). SQO membantu mekanisme pengambilan data dalam memori melalui mekanisme interface ala generik pada interface IEnumerable - LINQ to ADO.NET, sekumpulan pustaka pemrograman SQO yang memungkinkan komunikasi dengan basis data relasional. LINQ to ADO.NET terbagi lagi menjadi tiga bagian berdasar akses basis data yang diakses yakni LINQ to SQL untuk pengaksesan ke SQL Server, LINQ to Dataset melakukan query terhadap Datasets yang kompatibel dengan semua pustaka ADO.NET, dan LINQ to Entities yang memungkinkan akses LINQ dengan menggunakan objek bisnis.

28

: Program Pertama Anda dengan Visual Studio 2008

MENGENAL LINQ

-

LINQ to XML, sekumpulan pustaka pemograman yang memungkinkan SQO bekerja dengan berkas XML.

Model Eksekusi LINQLINQ bekerja di atas bahasa pemograman, atau dengan kata lain pernyataan-pernyataan LINQ akan dikompilasi oleh compiler bahasa pemograman yang mendukungnya. Hasil kompilasi pernyataan LINQ berupa Intemediate Language (IL) yang nantinya diterjemahkan oleh Common Language Runtime (CLR) untuk mengakses sumber data yang diinginkan.

Model Eksekusi LINQ

: Aplikasi Smart Client dengan Visual Studio 2008 Express

29

MENGENAL LINQ

Aplikasi LINQ to ObjectPada bagian ini akan dibuat sebuah aplikasi kecil untuk mendemonstrasikan implementasi teknologi LINQ yang terkait dengan implementasi LINQ dengan object. Aplikasi yang akan dikembangkan adalah aplikasi Console biasa untuk membaca berkas-berkas dalam sebuah direktori kemudian menampilkan informasi ukuran dari masing-masing berkas yang ada, termasuk menampilkan informasi berkas terbesar, terkecil, dan juga sepuluh terbesar. Berikut ini langkah-langkah membuatnya:

LANGKAH 1Buka Visual C# Developer kemudian buat sebuah proyek dengan nama FileInfos dan dengan jenis proyek berupa Console Applications.

Pembuatan Project Console Application pada Visual C# (3-2.png)

LANGKAH 2Visual C# akan membuatkan sebuah class utama yang digunakan sebagai entry point dari sebuah program console yang diberi nama dengan Program.cs.

30

: Program Pertama Anda dengan Visual Studio 2008

MENGENAL LINQ

Buka program.cs dan tambahkan sebuah Method untuk melakukan pencarian berkas. Method yang dibuat akan mengembalikan hasil berupa IEnumerable, penggunaan class IEnumerable bukan tanpa alasan, tetapi lebih menekankan kebutuhan LINQ yang banyak memanfaatkan jenis class demikian. Berikut adalah kode untuk pembacaan berkas dengan nama method GetFiles.static IEnumerable GetFiles(string path) { if (!System.IO.Directory.Exists(path)) throw new System.IO.DirectoryNotFoundException(); string[] fileNames = null; List files = new List(); fileNames = System.IO.Directory.GetFiles(path, "*.*", System.IO.SearchOption.AllDirectories); foreach (string name in fileNames) files.Add(new System.IO.FileInfo(name)); return files; }

Berdasar pada kode Method tersebut pertamakali yang dilakukan pada kode ini adalah pengecekan keberadaan direktori yang dijadikan sebagai masukan Method . Bila keberadaan direktori ditemukan, maka program akan membaca berkas-berkas yang ada satu persatu dan menyimpannya dalam sebuah class generik berjenis List. Pada kode tampak digunakan sekumpulan class akses yang menggunakan akses ke pustaka System.IO, sehingga perlu ditambahkan direktif System.IO pada class yang bersangkutan. Class berjenis List mengimplementasikan

: Aplikasi Smart Client dengan Visual Studio 2008 Express

31

MENGENAL LINQ

IEnumerable, sehingga dapat dikeluarkan langsung sebagai keluaran Method.

LANGKAH 3Pada berkas yang sama, tambahkan kode pada bagian Method Main. Pada langkah ini tambahkan sebuah variabel dan juga lakukan pemanggilan Method GetFiles pada langkah dua diatas.string searchFolder = args[0]; IEnumerable fileList = GetFiles(searchFolder);

Pada kode tersebut tampak bahwa masukan akan diperoleh melalui argumen yang dimasukkan pada saat aplikasi console tersebut dieksekusi. Kode di atas akan mengembalikan variabel fileList yang kompatibel dengan pernyataan LINQ.

LANGKAH 4Pada tubuh Method Main tambahkan beberapa pernyataan LINQ yang menganfung makna: - Pencarian berkas dengan ukuran terkecil - Pencarian berkas dengan ukuran terbesar - Pencarian berkas-berkas yang berukuran 10 terbesar. Berikut adalah kode-kode pernyataan LINQ secara berurutan.//get file with min length var queryMaxFile = (from file in fileList where file.Length == (from minFile in fileList select minFile).Min(minFile => minFile.Length) select file).Single(); //get file with max length var queryMinFile = (from file in fileList where file.Length == (from maxFile in fileList select maxFile).Max(maxFile => maxFile.Length)

32

: Program Pertama Anda dengan Visual Studio 2008

MENGENAL LINQ

select file).Single(); //get top 10 largest files var top10LargeFile = (from file in fileList orderby file.Length descending select file).Take(10);

Pernyataan LINQ diawali dengan deklarasi variabel penerima hasil untuk sebuah LINQ Query. Kata tersandang var dapat diartikan sebagai variabel bertipe implisit. Variabel var ini yang kemudian akan menyimpan ekpresi query LINQ. Pada umumnya pernyataan LINQ memiliki kesamaan dengan SQL Query, sebagai contoh makna kata tersandang from, select , where, orderby, dsb, memiliki makna yang sama dengan query SQL. Pernyataan LINQ juga mendukung operator yang dimiliki pada .NET, sehingga LINQ memahami operator pembanding seperti >=, Build Solution. Hal yang menarik pada aplikasi ini adalah dibutuhkan masukan berupa argumen Method Main. Argumen tersebut dapat diset pada saat program dieksekusi sebagai contoh .FileInfos.exe F:\My Videos\Cars

Pada IDE Visual C# Express, mekanisme pemasukan argumen dapat dilakukan melalui IDE yang bersangkutan dengan melakukan pemilihan menu Proyek pada Solution Explorer melalui > FileInfos > pilih konteks menu > Properties > Debug > Start Options > kemudian isikan pada command line arguments dengan isian berupa folder direktori yang terdapat pada komputer pembaca sebagai contoh F:\My Videos\Cars

34

: Program Pertama Anda dengan Visual Studio 2008

MENGENAL LINQ

Pengisian Command Line Arguments

LANGKAH 7Setelah melakukan pengisian command line, pembaca dapat mengeksekusi aplikasi dengan menggunakan tombol F5 atau memilih menu Debug > Start Debugging. Bila direktori yang dimasukkan terdapat pada sistem komputer yang bersangkutan maka akan tampil gambar seperti berikut.

Gambar Hasil Eksekusi Aplikasi

: Aplikasi Smart Client dengan Visual Studio 2008 Express

35

MENGENAL LINQ

36

: Program Pertama Anda dengan Visual Studio 2008

LINQ TO SQL

Bab 4

LINQ to SQLBab ini menjelaskan pembuatan business tier aplikasi pengelolaan buku menggunakan fitur LINQ to SQL dalam .NET Framework 3.5. LINQ to SQLArsitektur LINQ telah dijelaskan dalam Bab 3. Berdasar pada arsitektur LINQ dan arsitektur aplikasi yang akan dikembangkan, penggunaan pustaka LINQ to SQL untuk business tier aplikasi pengelolaan buku adalah pendekatan yang dipilih. LINQ to SQL mengimplementasikan IQueryable, yaitu sebuah class interface yang secara sederhana mengubah ekspresi LINQ to SQL menjadi pernyataan SQL. Hasilnya kemudian disimpan menggunakan permodelan ORM atau dengan kata lain tersimpan didalam memori komputer. Pada sisi Runtime, LINQ to SQL mampu melakukan penelusuran perubahan data yang sedang berada dalam memori, sehingga apabila terjadi perubahan data, akan dikirim notifikasi yang memungkinkan pengembang untuk melakukan penyimpanan ke data yang bersangkutan. Penggunaan LINQ to SQL tidak terlalu kompleks. Pengembang dapat mengembangkan suatu aplikasi dengan dukungan LINQ to SQL dengan empat langkah mudah yakni:

: Aplikasi Smart Client dengan Visual Studio 2008 Express

37

LINQ TO SQL

1. Membuat class yang akan memetakan database yang bersangkutan. 2. Bubuhi class yang bersangkutan dengan atribut LINQ yang sesuai. 3. Dekorasikan class tersebut dengan field dan properties sehingga LINQ dapat menggunakannya sebagai kolom dan placeholder penyimpanan data. 4. Membuat object DataContext yang berperan sebagai mediasi antara basis data dan class.

Pola Eksekusi LINQ to SQL

Pembuatan Class Library LINQ to SQLPada bagian ini akan dijelaskan langkah-langkah yang untuk mengembangkan class library aplikasi pengelolaan buku.

38

: Program Pertama Anda dengan Visual Studio 2008

LINQ TO SQL

LANGKAH 1Buka Visual C# Express 2008, kemudian buat sebuah project class library dengan car, File > New Project > ClassLibrary > beri nama proyek dengan nama LibraryDAL.

LANGKAH 2Pada Solution Explorer, ganti nama berkas Class1.cs menjadi DAL.cs. Visual C# akan mengkonfirmasi perubahan nama berkas dan juga perubahan nama class.

Solution Explorer Class Library

LANGKAH 3Buka database explorer melalui menu View > Others Windows > Database Explorer. Koneksikan dengan memilih konteks menu Add Connections. Visual C# Express akan menampilkan dialog peimilihan provider. Pilih Microsoft SQL Server Database file.

Pemilihan Data Source Provider

: Aplikasi Smart Client dengan Visual Studio 2008 Express

39

LINQ TO SQL

LANGKAH 4Tambahkan koneksi basis data dengan menelusuri berkas basis data. Dalam hal ini berkas basis data dinamakan dengan nama LibraryDB.mdf. Pilih Windows Authentication untuk memudahkan autentifikasi akses basis data.

LANGKAH 5Pada solution explorer tambahkan berkas LINQ to SQL Classes. Berkas ini berisi template pemetaan basis data ke class. Berkas dengan ekstensi .dbml (Database Markup Language) ini tidak hanya memetakan secara otomatis tetapi juga memungkinkan desain Drag and Drop untuk pembuatannya.

LANGKAH 6Lakukan Drag and Drop dari Database Explorer ke antarmuka berkas .dbml. Letakkan tabel-tabel pada bagian kiri, dan letakkan semua Stored Procedure ke bagian Methods.

Database markup language (4-3.png)

LANGKAH 7Pilih ruang kosong di bagian kiri dan tekan F4 untuk menampilkan jendela Properties DataContext. Lakukan perubahan Serialization Mode dengan mengeset nilainya menjadi unidirectional.

40

: Program Pertama Anda dengan Visual Studio 2008

LINQ TO SQL

LANGKAH 8Pada dasarnya, setiap tabel pada dbml memiliki perilaku untuk update, insert, dan delete. Secara default dbml menggunakan kode yang terbentuk berdasar pada keadaan table, tetapi pada kesempatan ini digunakan pemetaan dengan Stored Procedures. Hal ini dapat dilakukan dengan memilih tabel pada layar desain dbml > pilih configure.behaviour > dialog akan tampil > pilih behaviours yang akan dipetakan sebagai contoh behaviours insert pada peta buku dipetakan dengan stored procedures insert .> kemudian pada setiap field petakan kolom masukan yang sesuai dengan class yang dimiliki oleh class LINQ.

Pemetaan Prilaku Method ke Stored Procedures

: Aplikasi Smart Client dengan Visual Studio 2008 Express

41

LINQ TO SQL

LANGKAH 9LINQ runtime secara otomatis melakukan pengecekan terhadap data yang ada di memori dan data yang terdapat pada basis data. Pada class library ini mekanisme pengecekan dinonaktifkan untuk menyederhanakan pengembangan. Hal ini dapat dilakukan dengan memilih properties pada tiap-tiap kolom dan mengubah properties update check menjadi false. Berdasar pada informasi tersebut ubah setiap properties update check tiap-tiap kolom ke false melalui akses menu dengan beberapa berikut: 1. 2. 3. 4. Pada desain dbml, pilih tabel yang bersangkutan. Pada tabel yang bersangkutan pilih sebuah kolom. Ubah properties update check hingga bernilai false. Lakukan langkah satu hingga tiga untuk tiap kolom pada tiap-tiap tabel yang terdapat pada berkas dbml.

Perubahan Properties Updateable (4-5.png)

LANGKAH 10Buka berkas DAL.cs dan tambahkan kode konstruktor sebagai berikut.

42

: Program Pertama Anda dengan Visual Studio 2008

LINQ TO SQL

public class DAL { private LibraryDBDataContext libDC; public DAL() { libDC = new LibraryDBDataContext(Properties.Settings.Default.Libra ryDBConnectionString); } public DAL(string ConnectionString) { libDC = new LibraryDBDataContext(ConnectionString); } }

Tampak jelas bahwa kode di atas akan menggunakan berbagai fitur-fitur objek yang merupakan hasil otomasi kode yang dilakukan oleh visual studio (LibraryDBDataContext). Hal tersebut dilanjutkan dengan pembuatan dua konstruktor yang keduanya melakukan pengesetan nilai ConnectionString. ConnectionString adalah suatu nilai yang berisi lokasi akses basis data sesuai dengan standar yang disepakati. Pada konstruktor di atas tampak bahwa satu konstruktor menggunakan ConnectionString sesuai dengan nilai yang tersimpan pada app.config dan konstruktor lain membaca masukan dari parameter konstruktor.

CatatanApp.Config adalah berkas XML yang menyimpan nilai-nilai konfigurasi seperti ConnectionString. Nilai konfigurasi ini dapat disset melalui properti projek (Pilih Properties pada kontek menu Projek di solution Explorer), ataupun di set secara manual dengan cara membuka berkas app.config yang bersangkutan.

: Aplikasi Smart Client dengan Visual Studio 2008 Express

43

LINQ TO SQL

LANGKAH 11Pada berkas DAL.cs tambahkan dua buah Method yang melakukan pengaksesan LINQ Query. Satu Method untuk mengambil nilai suatu buku dan Method lainnya untuk mengambil semua buku yang terdapat di dalam basis data.public List GetAllBuku() { var query = from enbuku in libDC.Bukus select enbuku; return query.ToList(); } public List GetBuku(Buku buku) { var query = libDC.ExecuteQuery("SELECT * FROM TBL_BUKU WHERE ISBN = {0} OR PENGARANG LIKE {1} OR PENERBIT LIKE {2} OR JUDUL LIKE {3}", (buku.ISBN == null ? string.Empty : string.Concat("%", buku.ISBN,"%")), (buku.PENGARANG == null ? string.Empty : string.Concat("%", buku.PENGARANG,"%")), (buku.PENERBIT == null ? string.Empty : string.Concat("%", buku.PENERBIT,"%")), (buku.JUDUL == null ? string.Empty : string.Concat("%",buku.JUDUL,"%"))); return query.ToList(); }

Method GetAllBuku dan GetBuku menggunakan keluaran List yang menerapkan standar interface IEnumerable, sebuah interface yang kompatibel dengan LINQ. Hal yang menarik ada kemampuan LINQ yang tidak hanya dapat mengakses data lewat pernyataan LINQ, tetapi juga mampu melalukan eksekusi query pernyataan SQL.

LANGKAH 11Pada berkas DAL.cs tambahkan beberapa Method untuk melakukan operasi pemasukan, pengubahan , dan penghapusan

44

: Program Pertama Anda dengan Visual Studio 2008

LINQ TO SQL

data pada tabel TBL_BUKU. Semua operasi ini menggunakan pernyataan LINQ yang menggunakan pustaka LINQ to SQL menggunakan pendekatan koleksi obyek.public void InsertBukuBaru(Buku newBuku) { libDC.Bukus.InsertOnSubmit(newBuku); libDC.SubmitChanges(); } public void UpdateBuku(Buku buku) { libDC.Bukus.Attach(buku, true); libDC.SubmitChanges(); } public void DeleteBuku(Buku buku) { libDC.Bukus.Attach(buku, false); libDC.Bukus.DeleteOnSubmit(buku); libDC.SubmitChanges(); }

LANGKAH 12Pada berkas DAL.cs tambahkan beberapa Method untuk melakukan operasi pengambilan data daftar isi dalam sebuah buku dan daftar isi untuk seluruh buku, contohnya seperti berikut:public List GetAllDaftarISI() { var query = from daftarIsi in libDC.DaftarISIs select daftarIsi; return query.ToList(); } public List GetAllDaftarISI(Buku buku) { var query = from daftarIsi in libDC.DaftarISIs where daftarIsi.ISBN == buku.ISBN select daftarIsi; return query.ToList(); }

: Aplikasi Smart Client dengan Visual Studio 2008 Express

45

LINQ TO SQL

LANGKAH 13Pada berkas DAL.cs tambahkan beberapa Method untuk melakukan operasi pemasukan, pengubahan , dan penghapusan data. Semua operasi ini menggunakan pernyataan LINQ yang menggunakan pustaka LINQ to SQL menggunakan pendekatan eksekusi Stored Procedure.public void InsertDaftarISI(DaftarISI newDaftarISI) { libDC.SP_INSERT_DAFTARISI(newDaftarISI.ISBN, newDaftarISI.ISI, newDaftarISI.HALAMAN); } public void UpdateDaftarISI(DaftarISI daftarISI) { libDC.SP_UPDATE_DAFTARISI(daftarISI.ID_DAFTARISI, daftarISI.ISBN, daftarISI.ISI, daftarISI.HALAMAN); } public void DeleteDaftarISI(DaftarISI daftarISI) { libDC.SP_DELETE_DAFTARISI(daftarISI.ID_DAFTARISI); }

LANGKAH 14Setelah melakukan pengetikan kode, pembaca dapat melakukan kompilasi dengan memilih Build > Build Solution. Yakinkan tidak ada kesalahan ketik karena C# bersifat case sensitive. Proyek kali ini berupa proyek Class Library, sehingga pengujian dan debugging secara langsung tidak dapat dilakukan. Proyek ini akan menghasilkan DLL yang nantinya akan dibungkus dalam sebuah Web Services.

46

: Program Pertama Anda dengan Visual Studio 2008

LINQ TO SQL

Hasil pada proyek ini dapat dilihat dalam folder /bin/debug/ bila pembaca menggunakan konfigurasi debug dan /bin/release, dan bila pembaca menggunakan konfigurasi release. Nilai mengacu pada proyek tersebut pada saat pengembang membuat proyek.

Lokasi Berkas Hasil Proyek Class Library

: Aplikasi Smart Client dengan Visual Studio 2008 Express

47

LINQ TO SQL

48

: Program Pertama Anda dengan Visual Studio 2008

MEMBUAT WCF SERVICES

Bab 5

Membuat WCF ServicesPada bab ini akan dikembangkan WCF Services aplikasi pengelolaan buku menggunakan Windows Communication Foundation (WCF). Windows Communication FoundationWindows Communication Foundation (WCF) adalah bagian dari .NET Framework 3.0 yang merupakan evolusi dari teknologiteknologi komunikasi data dan messaging yang sudah ada sebelumnya seperti .NET Remoting, TCP/IP Socket, Message Queue (MSMQ), Peer to Peer, Web Services, WSE, dan Enterprise Service. WCF merupakan framework gabungan (unified) yang menyediakan model pemrograman konsisten untuk semua teknologi tersebut dalam lingkungan .NET. WCF memberikan beberapa keuntungan sebagai berikut: Terintegrasi dengan berbagai protokol Web Service. Secara implisit menggunakan paradigma pengembangan aplikasi berorientasi service (SOA). Single API yang konsisten untuk membangun connected system dan sistem terdistribusi.

: Aplikasi Smart Client dengan Visual Studio 2008 Express

49

MEMBUAT WCF SERVICES

WCF dan teknologi terdistribusi sebelumnya

Untuk dapat menggunakan WCF, klien harus memahami aturan ABC dalam WCF. ABC adalah singkatan dari Address, Binding, dan Contract. Ketiga hal ini secara umum dikenal dengan istilah endpoint yang berlaku sebagai pintu atau gateway suatu Service terhadap dunia luar. Service itu sendiri didefinisikan sebagai bagian aplikasi yang melayani dan bereaksi terhadap message. Address adalah network address dimana Services berada yang mendefinisikan kemana message atau pesan harus dikirim. Address dalam suatu endpoint pada dasarnya adalah URI, identity, dan sekumpulan berkas header. Binding mendefinisikan bagaimana cara mengirim message. Termasuk didalamnya protokol transport yang digunakan (HTTP, TCP, Named Pipes, dll), channels (one-way,duplex, requestreplay), encoding (binary, text, dll), dan protokol WS-* yang digunakan (WS-Security, WS-Federation, dan lain-lain). Contract mendefinisikan isi dari message dan merupakan kumpulan

50

: Program Pertama Anda dengan Visual Studio 2008

MEMBUAT WCF SERVICES

operasi yang menjelaskan apa yang harus disediakan oleh endpoint ke dunia luar.

Pembuatan WCF ServicesLangkah langkah untuk membuat WCF Service menggunakan Windows Communication Foundation akan dijelaskan pada bagian berikut ini, tetapi sebelumnya anda perlu mempelajari bagaimana membuat Virtual Directory dalam IIS Web Server.

Menyiapkan Application dalam IISVirtual Directory dibutuhkan sebagai media penyimpanan (host) bagi aplikasi Web maupun WCF Service. Untuk membuatnya, buka konsole IIS Manager (InetMgr.exe) lalu dari Default Website yang aktif dalam IIS Manager, klik kanan untuk menambahkan Application baru (pilih Add Application). Namakan alias Application yang akan dibuat dengan nama LibraryService. Gunakan DefaultAppPool atau Application Pool lain dengan versi .NET 2.0.50727 dan mode pipeline classic atau integrated.

Menambahkan Application dalam IIS 7.0

: Aplikasi Smart Client dengan Visual Studio 2008 Express

51

MEMBUAT WCF SERVICES

Untuk semua versi IIS, cek apakah Application tersebut telah berjalan dengan ASP.NET 2.0 runtime. Jika anda menggunakan Visual Studio 2008, runtime yang benar adalah versi 2.0. Untuk menguji keberhasilan pembuatan IIS Application, buka browser dengan URL berikut: http://localhost/LibraryService.

LANGKAH 2Buka Visual Web Developer 2008, kemudian buat sebuah web site WCF Service dengan cara memilih File > New Web Site > WCF Service > pilih HTTP sebagai lokasinya dan beri alamat Virtual Directory URL http://localhost/LibraryService.

LANGKAH 3Pada Solution Explorer, hapus class IService.cs dan Service.cs di dalam folder App_Code. Kemudian tambahkan dua buah kelas dengan nama ILibraryService.cs dan LibraryService.cs

Solution Explorer WCF Service

LANGKAH 4Tambahkan reference ke class library LibraryDAL yang telah dibuat pada Bab 4. Caranya klik kanan pada project kemudian pilih Add Reference, pada jendela yang muncul pilih tab Browse. Tentukan folder tempat project class library LibraryDAL berada, kemudian masuk ke folder bin\debug dan pilih file LibraryDAL.dll.

52

: Program Pertama Anda dengan Visual Studio 2008

MEMBUAT WCF SERVICES

Menambahkan Reference ke dalam Project

Menentukan letak pustaka LibraryDAL.dll yang akan di reference

LANGKAH 5Buka berkas ILibraryService.cs dan lakukan perubahan kode untuk pembuatan interface dari WCF Service sebagai berikut:using LibraryDAL; namespace LibraryService.ServiceContract

: Aplikasi Smart Client dengan Visual Studio 2008 Express

53

MEMBUAT WCF SERVICES { [ServiceContract] public interface ILibraryService { [OperationContract] Buku[] GetDataSemuaBuku(); [OperationContract] void TambahBukuBaru(Buku bukuBaru); [OperationContract] void UpdateBuku(Buku buku); [OperationContract] void HapusBuku(Buku buku); [OperationContract] DaftarISI[] GetDataSemuaDaftarISI(); [OperationContract] DaftarISI[] GetDaftarIsiBerdasarkanBuku(Buku buku); [OperationContract] void TambahDaftarIsiBaru(DaftarISI daftarIsiBaru); [OperationContract] void UpdateDaftarIsi(DaftarISI daftarIsi); [OperationContract] void HapusDaftarIsi(DaftarISI daftarIsi); } }

Dari kode di atas pembaca bisa melihat hal pertama yang dilakukan adalah mendefinisikan contract untuk service. Hal ini dilakukan dengan membuat sebuah interface dengan nama ILibraryService dan kemudian menambahkan suatu atribut [ServiceContract]. Selanjutnya di dalam interface ILibrary

54

: Program Pertama Anda dengan Visual Studio 2008

MEMBUAT WCF SERVICES

dideklarasikan sekumpulan operasi atau method beserta parameter dan nilai keluarannya. Ketika menggunakan interface untuk mendefinisikan contract maka semua operasi atau method dari interface yang merupakan anggota dari contract harus diberi atribut [OperationContract].

LANGKAH 6Buka berkas LibraryService.cs dan lakukan perubahan kode sebagai berikut:using LibraryDAL; using LibraryService.ServiceContract; namespace LibraryService.ServiceImplementation { public class LibraryService : ILibraryService { private DAL dalObject = new DAL(System.Web.Configuration.WebConfigurationManager.C onnectionStrings["ConStr"].ConnectionString); #region ILibraryService Members public Buku[] GetDataSemuaBuku() { return dalObject.GetAllBuku().ToArray(); } public void TambahBukuBaru(Buku bukuBaru) { dalObject.InsertBukuBaru(bukuBaru); } public void UpdateBuku(Buku buku) { dalObject.UpdateBuku(buku); } public void HapusBuku(Buku buku)

: Aplikasi Smart Client dengan Visual Studio 2008 Express

55

MEMBUAT WCF SERVICES { dalObject.DeleteBuku(buku); } public DaftarISI[] GetDataSemuaDaftarISI() { return dalObject.GetAllDaftarISI().ToArray(); } public DaftarISI[] GetDaftarIsiBerdasarkanBuku(Buku buku) { return dalObject.GetAllDaftarISI(buku).ToArray(); } public void TambahDaftarIsiBaru(DaftarISI daftarIsiBaru) { dalObject.InsertDaftarISI(daftarIsiBaru); } public void UpdateDaftarIsi(DaftarISI daftarIsi) { dalObject.UpdateDaftarISI(daftarIsi); } public void HapusDaftarIsi(DaftarISI daftarIsi) { dalObject.DeleteDaftarISI(daftarIsi); } #endregion } }

Kelas LibraryService merupakan kelas yang mengimplementasi interface ILibraryService yang telah dibuat pada langkah sebelumnya. Operasi yang dideklarasikan pada interface

56

: Program Pertama Anda dengan Visual Studio 2008

MEMBUAT WCF SERVICES

ILibraryService tidak memiliki definisi atau body, untuk itu implementasi dari operasi-operasi tersebut dilakukan pada kelas LibraryService. Masing-masing operasi memanggil fungsi yang disediakan oleh dalObject yang merupakan object dari kelas DAL pada pustaka LibraryDAL yang telah di reference sebelumnya. Pustaka LibraryDAL sendiri berisi fungsi-fungsi untuk mengakses dan memanipulasi basis data. Perlu diperhatikan pada saat pembuatan dalObject digunakan connection string yang tersimpan pada berkas Web.config yang diambil menggunakan perantara kelas WebConfigurationManager.

CatatanWeb.config adalah berkas XML yang menyimpan nilai-nilai konfigurasi seperti Compilation, httphandlers, ConnectionString, dll. Nilai konfigurasi ini dapat di set secara manual dengan cara membuka berkas Web.config yang bersangkutan atau dengan menggunakan bantuan tools seperti Microsoft Service Configuration Editor (SvcConfigEditor.exe).

LANGKAH 7Buka berkas service.svc dan lakukan perubahan pada kode agar sesuai dengan nama interface dan kelas yang telah dibuat pada langkah sebelumnya.

LANGKAH 8Buka berkas Web.config dan pertama lakukan perubahan pada bagian sebagai berikut:

: Aplikasi Smart Client dengan Visual Studio 2008 Express

57

MEMBUAT WCF SERVICES

Selanjutnya perlu dilakukan perubahan pada bagian (Ubah bagian yang dicetak tebal).

LANGKAH 9Setelah melakukan pengkodean, pembaca dapat melakukan kompilasi web service dengan memilih menu Build > Build Web Site. Yakinkan tidak terjadi kesalahan saat mengetikkan kode. Hasil dari proyek yang dibuat adalah suatu WCF Service yang dipublikasikan dengan protokol HTTP/Web yang telah menyediakan beberapa operasi seperti yang telah dibuat. Untuk dapat menggunakan operasi yang disediakan oleh Web Service, pembaca harus membuat sebuah aplikasi klien terpisah baik berupa aplikasi Windows, Web maupun Mobile. Pembuatan aplikasi klien ini akan dibahas pada bab berikutnya. Walaupun Web Service yang dibuat tidak bisa digunakan secara

58

: Program Pertama Anda dengan Visual Studio 2008

MEMBUAT WCF SERVICES

langsung, pembaca bisa mengakses Web Service menggunakan browser seperti Internet Explorer pada alamat: http://localhost/LibraryService/Service.svc. Hanya saja yang akan ditampilkan hanyalah informasi mengenai cara penggunaan web service.

Melihat informasi web service menggunakan browser

: Aplikasi Smart Client dengan Visual Studio 2008 Express

59

MEMBUAT WCF SERVICES

60

: Program Pertama Anda dengan Visual Studio 2008

MEMBUAT WEB FORMS KLIEN

Bab 6

Web Forms KlienPada bab ini akan dikembangkan aplikasi web klien dengan ASP.NET 3.5 yang mengkonsumsi layanan WCF Service yang telah dibuat . ASP.NET 3.5ASP.NET dapat didefinisikan sebagai framework yang didesain untuk mengembangkan aplikasi berbasis HTTP/Web. ASP.NET memungkinkan penggunanya untuk mengembangkan aplikasi web yang dinamis, data-driven, dan berbagai kemungkinan aplikasi lain yang berjalan di atas sebuah Web Server (IIS). ASP.NET adalah framework teknologi yang secara langsung berkait dengan bahasa pemograman berorientasi objek (seperti C++, C# dan VB.NET), framework pengembangan terkelola berbasis komponen (.NET), dan IDE yang meningkatkan produktifitas pengembangan (seperti Visual Web Developer). Sebagai sebuah framework yang kini telah mencapai versi 3.5 berbagai perbaikan telah diupayakan dan diwujudkan. Mulai dari aspek perkembangan bahasa pemrograman, kontrol antarmuka

: Aplikasi Smart Client dengan Visual Studio 2008 Express

61

WEB FORM KLIEN

yang beragam, hingga produktifitas pengembang dengan LINQ, dan tingkat responsive antarmuka halaman web dengan AJAX. Berikut adalah pengembangan utama pada ASP.NET 3.5: - Type data baru, kontrol server, serta pustaka script client yang dapat membantu pengembang mengembangkan aplikasi berbasis AJAX. - Ekstensi kontrol authentication berbasis form, manajemen role, serta konfigurasi profil web services yang digunakan pada aplikasi web. - ListDataView control penampil data yang fleksibel dari sisi tampilan UI. - LinqDataSource control pengikat data yang berbasiskan teknologi LINQ. - Merge tool aspnet (aspnet_merge.exe) sebuah perangkat yang memberi kemudahan dan alternatif deployment aplikasi web yang lebih fleksibel.

Pengembangan Aplikasi Web LibraryAplikasi Web Klien yang akan dikembangkan menggunakan layanan WCF Service yang telah dikembangkan pada bab 5. Aplikasi Web ini akan memanggil operasi update dan penghapusan data melalui layanan WCF Service yang telah dibuat. Berikut adalah langkah-langkah untuk mengembangkan aplikasi web yang bersangkutan.

LANGKAH 1Buka Visual Web Developer 2008, pilih File > New Web Site > ASP.NET Web Application, kemudian berikan nama aplikasi web dengan nama LibraryWebApp dengan lokasi penyimpanan pada filesystem.

62

: Program Pertama Anda dengan Visual Studio 2008

MEMBUAT WEB FORMS KLIEN

LANGKAH 2Tambahkan referensi ke layanan WCF Service yang telah dibuat pada bab sebelumnya yakni dengan memilih nama proyek (LibraryWindowsApp) > konteks menu > pilih Add Service Reference. Pada dialog masukkan alamat url tempat layanan WCF tersebut di host, dalam hal ini http://localhost/LibraryService/Service.svc . Pilih tombol Go > maka akan tampil LibraryService > ekspansi LibraryService > pilih kontrak ILibraryService > dialog akan menampilkan list operasi yang dimiliki layanan WCF Service tersebut. Hal yang terakhir yang dilakukan adalah memberi nama referensi proxy class dengan nama LibraryServices, kemudian konfirmasikan OK.

Penambahan Referensi Services

: Aplikasi Smart Client dengan Visual Studio 2008 Express

63

WEB FORM KLIEN

LANGKAH 3Referensi WCF Service akan ditampilkan pada folder khusus dengan nama App_WebReference. Berikutnya akan ditambahkan antarmuka yang mendukung AJAX, untuk itu buka berkas default.aspx dan tambahkan sebuah kontrol ScriptManager dan UpdatePanel. ScriptManager adalah kontrol yang mengemulasikan AJAX dan mengontrol komunikasi asinkron yang dilakukan oleh kode Java Script. Sementara UpdatePanel adalah suatu panel yang akan memungkinkan kontrol yang berada didalamnya melakukan komunikasi secara asinkron. Tambahkan kode berikut ditubuh HTML.

LANGKAH 4Aplikasi web yang dibuat akan memanfaatkan kontrol MultiVew untuk menampilkan dua antarmuka dalam satu halaman. Sama halnya dengan AJAX, hal ini bertujuan agar user experience pengguna menjadi lebih baik. Tambahkan kode berikut pada bagian diantara kontrol UpdatePanel

64

: Program Pertama Anda dengan Visual Studio 2008

MEMBUAT WEB FORMS KLIEN

Pada bagian ini digunakan dua buah tampilan, sebuah tampilan menampilkan data tentang daftar buku, tampilan berikutnya menampilkan daftar isi buku dari buku yang dipilih.

LANGKAH 5Penggunaan MultiView alangkah baiknya konsisten dari sisi tampilan. Sebagai upaya mempertahankan konsistensi antar tabel, akan ditambahkan sebuah inline CSS yang diletakkan pada bagian kepala () pada tubuh aspx sebagai berikut. Untitled Page .style1 { width: 100%; } .style3 { } .style4 { width: 166px; } .style5 { width: 171px; }

: Aplikasi Smart Client dengan Visual Studio 2008 Express

65

WEB FORM KLIEN

LANGKAH 6Pengelolaan data akan lebih mudah menggunakan suatu kontrol yang berbentuk tabel. Berdasarkan kondisi tersebut tambahkan sebuah GridView sebagai berikut. Perhatikan lokasi penempatan kode ini pada langkah 4.

66

: Program Pertama Anda dengan Visual Studio 2008

MEMBUAT WEB FORMS KLIEN

CatatanSelain menggunakan trik pengkodean pengguna juga dapat menggunakan mekanisme pembuatan kontrol di atas dengan menggunakan antarmuka desain ASP.NET untuk mendesain dan mengkonfigurasi DatGRidView. Namun demikian, karena langkahlangkah yang dilakukan cukup signifikan dari sisi penulisan dan gambar dibanding menggunakan kode, maka penulis memutuskan menggunakan kode dalam pengembangan aplikasi web ini. Silahkan mengacu pada MSDN untuk konfigurasi DataGridView dengan antarmuka desain.

LANGKAH 7Langkah 6 bertujuan untuk menampilkan data secara tabular, pada saat pengguna hendak mengubah data maka dibutuhkan tampilan editor yang berisi borang perubahan data. Untuk tujuan tersebut, maka ditambahkan beberapa kontrol antarmuka sebagai berikut.

: Aplikasi Smart Client dengan Visual Studio 2008 Express

67

WEB FORM KLIEN

Yakinkan tidak ada tag yang terlewat dan semua tag tertutup dengan baik. Bila sudah diyakini tidak terdapat kesalahan, lakukan perubahan tampilan dari kode ke antarmuka desain seperti gambar berikut.

68

: Program Pertama Anda dengan Visual Studio 2008

MEMBUAT WEB FORMS KLIEN

Tampilan Antarmuka Informasi Buku pada Web

LANGKAH 8Sama halnya dengan tampilan antarmuka buku, tampilan antarmuka daftar isi juga didesain sedemikian rupa agar konsisten dengan tampilan sebelumnya. Berikut adalah kode yang digunakan untuk menampilkan antarmuka yang identik dari sisi tampilan namun berbeda dari sisi pengikatan data.

LANGKAH 9Perubahan data juga dilakukan dengan menggunakan borang sebagai berikut. Hal yang membedakan terletak pada data yang ditampilkan yakni ISBN, daftar isi dan halaman. Lanjutkan pengkodeannya sebagai berikut/

70

: Program Pertama Anda dengan Visual Studio 2008

MEMBUAT WEB FORMS KLIEN

LANGKAH 10Berikutnya yang dilakukan adalah melakukan pengkodean. Pengkodean diawali dengan melakukan pembacaan buku pada saat aplikasi web pertamakali dibuka.private LibraryServiceClient proxyObject = new LibraryServiceClient(); protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) LoadBuku(); } private void LoadBuku() { gvBuku.DataSource = proxyObject.GetDataSemuaBuku(); gvBuku.DataBind(); } private void ClearPage() { textISBN.Text = string.Empty; textJudul.Text = string.Empty; textPenerbit.Text = string.Empty; textPengarang.Text = string.Empty; calTglPenerbitan.SelectedDate = DateTime.Now; }

LANGKAH 11Pada saat terjadi perubahan nilai pada DataGridView baik berupa pembaharuan data atau penghapusan datam maka event yang

: Aplikasi Smart Client dengan Visual Studio 2008 Express

71

WEB FORM KLIEN

sesuai dengan DataGRidView yang bresangkutan akan dipicu.protected void gvBuku_RowEditing(object sender, GridViewEditEventArgs e) { textISBN.Text = gvBuku.Rows[e.NewEditIndex].Cells[0].Text; textJudul.Text = gvBuku.Rows[e.NewEditIndex].Cells[1].Text; textPengarang.Text = gvBuku.Rows[e.NewEditIndex].Cells[2].Text; textPenerbit.Text = gvBuku.Rows[e.NewEditIndex].Cells[3].Text; calTglPenerbitan.SelectedDate = Convert.ToDateTime(gvBuku.Rows[e.NewEditIndex].Cells[4 ].Text); } protected void gvBuku_RowDeleting(object sender, GridViewDeleteEventArgs e) { Buku delBuku = new Buku { ISBN = gvBuku.Rows[e.RowIndex].Cells[0].Text }; proxyObject.HapusBuku(delBuku); LoadBuku(); ClearPage(); }

LANGKAH 12Berikutnya dilakukan mekanisme penyimpanan apabila terjadi perubahan atau peghapusan data pada buku.protected void btnSimpan_Click(object sender, EventArgs e) { if (!textISBN.Text.Equals(string.Empty)) { Buku upBuku = new Buku { ISBN = textISBN.Text, JUDUL = textJudul.Text, PENERBIT = textPenerbit.Text, PENGARANG = textPengarang.Text, TGL_PENERBITAN = calTglPenerbitan.SelectedDate };

72

: Program Pertama Anda dengan Visual Studio 2008

MEMBUAT WEB FORMS KLIEN

proxyObject.UpdateBuku(upBuku); LoadBuku(); ClearPage(); } }

LANGKAH 13Langkah berikutnya adalah mengikuti dan mengkodekan alur yang mirip dengan data buku tetapi menangani data yang berbeda yakni data daftar isi.Pada langkah ini penulis beri kesempatan bagi pembaca untuk turut memikirkan pengkodean pada bagian tabel daftar isi. Sebuah petunjuk adalah langkah pengkodeannya sangat mirip. Dan bila pembaca mengalami kesulitan silahkan mengacu pada kode dalam CD buku.

LANGKAH 14Build dan ujicobakan aplikasi web ini. Yakinkan tidak terdapat kesalahan pengetikan kode. Aplikasi web yang dihasilkan untuk kesederhanaan pengembangan tidak menyertakan fitur memasukkan data. Fitur ini akan diimplementasikan pada klien desktop pada bab 7.

Hasil Tampilan Aplikasi LibraryWebApp

: Aplikasi Smart Client dengan Visual Studio 2008 Express

73

WEB FORM KLIEN

74

: Program Pertama Anda dengan Visual Studio 2008

WINDOWS FORM KLIEN

Bab 7

Windows Form KlienPada bab ini akan dikembangkan aplikasi Desktop klien dengan teknologi Windows Form yang mengkonsumsi layanan WCF Service. Teknologi Windows FormWindows Form adalah bagian dari .NET framework untuk pengembangan aplikasi berantarmuka desktop. Windows Form hadir pada kisaran tahun 2002, keberadaannya berperan untuk memudahkan dan membungkus teknologi sebelumnya seperti Win32 API, COM/ActiveX dan pendekatan rancangan antarmuka VB 6.0. Windows Form memberikan kemudahan untuk mendesain antarmuka desktop dan mampu menghasilkan form yang elegan dengan banyaknya komponen yang tersedia. Pada perkembangannya Windows Form melahirkan suatu arsitektur yang dinamakan Smart Client, dimana Windows Form digunakan sebagai front-end dari WCF Web Service back-end. Smart Client adalah suatu konsep aplikasi disisi klien yang memiliki kemampuan hibrid antara thick client dan thin client. Thin client telah dikenal dalam dunia Web yang memfokuskan

: Aplikasi Smart Client dengan Visual Studio 2008 Express

75

WINDOWS FORM KLIEN

bagaimana aplikasi berjalan dalam sebuah Web Server dan akses informasi diperoleh dan didapat melalui perangkat bantu yang dikenal dengan browser. Sementara thick client adalah perangkat lunak yang dipasangkan di klien dan dieksekusi di klien. Smart Client menghadirkan beberapa kemampuan yang diperoleh dari gabungan dua jenis klien di atas seperti: - Aplikasi berbentuk desktop dengan kemampuan akses sumber daya layaknya aplikasi thick client. - Aplikasi menggunakan komunikasi HTTP untuk komunikasi ke server back-end. - Aplikasi diinstall ke Web Server dan di deploy ke klien secara otomatis dengan teknologi ClickOnce. - Aplikasi memungkinkan sinkronisasi secara online maupun offline.

Pengembangan Klien WindowsBerikut ini akan dikembangkan klien desktop yang akan mengkonsumsi layanan WCF Service pada bab 5.

LANGKAH 1Buka visual C# Express 2008, kemudian buat sebuah proyek dengan bentuk Windows Form, namakan LibraryWindowsApp.

LANGKAH 2Tambahkan referensi ke layanan WCF yang telah dibuat pada bab sebelumnya, yakni dengan memilih nama proyek (LibraryWindowsApp) > konteks menu > pilih Add Service Reference. Pada dialog masukkan alamat url tempat layanan WCF tersebut di host, dalam hal ini http://localhost/LibraryService/Service.svc. Pilih tombol Go > maka akan tampil LibraryService > ekspansi LibraryService > pilih kontrak ILibraryService > dialog akan

76

: Program Pertama Anda dengan Visual Studio 2008

WINDOWS FORM KLIEN

menampilkan daftar operasi yang dimiliki layanan WCF Service tersebut. Hal yang terakhir yang dilakukan adalah memberi nama referensi proxy class dengan nama LibraryServices.

Penambahan Referensi Layanan WCF (7-1.png)

LANGKAH 3Referensi akan tampil sebagai ikon yang menunjukkan bahwa aplikasi klien yang dimiliki telah memiliki referensi ke layanan WCF yang telah dikonfigurasikan. Tambahkan beberapa kontrol antarmuka sesuai dengan tabel berikut:Tabel Perancangan Antarmuka.Buku

Nama Control TabControl Label

Property (Name) Text

Nilai tabControl1 ISBN

: Aplikasi Smart Client dengan Visual Studio 2008 Express

77

WINDOWS FORM KLIEN

Label Label Label Button DataGrid DateTimePicker

Text Text Text (Name) Text (name) (Name)

Judul Buku Pengarang Penerbit btnSave Simpan dgvBuku dtpTglTerbit

Atur peletakan kontrol sehingga memperoleh tampilan berikut:

Rancangan Antarmuka Buku

LANGKAH 4Halaman Buku pada Tab pertama ditujukan untuk mekanisme penyimpanan buku ke basis data melalui WCF Service. Pada

78

: Program Pertama Anda dengan Visual Studio 2008

WINDOWS FORM KLIEN

halaman tab berikutnya akan dirancang antarmuka untuk mekanisme penyimpanan daftar isi buku. Berikut adalah kontrolkontrol dan rancangan antarmuka:Tabel Perancangan Antarmuka.Daftar Isi

Nama Control Label Label Label Button TextBox ComboBox NumericUpDown DataGRidView

Property Text Text Text (Name) Text (Name) (Name) (Name) (Name)

Nilai Buku Isi Halaman btnSimpanIsi Simpan txtIsi cbxISBN nudHalaman dgvDaftarIsi

: Aplikasi Smart Client dengan Visual Studio 2008 Express

79

WINDOWS FORM KLIEN

Ramcangan Antarmuka Daftar Isi

LANGKAH 5Berikutnya buka kode pada Form1.cs dengan menggunakan dengan memilihmenu View > Code. Pada baris setelah deklarasi class tambahkan sebuah instansi objek untuk class LibraryServiceClient. Sebagai berikut.namespace LibraryWindowsApp { public partial class Form1 : Form { LibraryServiceClient clientProxyObj = new LibraryServiceClient(); .. kode lain

80

: Program Pertama Anda dengan Visual Studio 2008

WINDOWS FORM KLIEN

LANGKAH 6Aplikasi perlu melakukan pengikatan data pada saat aplikasi pertama kali dibuka. Dan untuk melakukannya, tambahkan sebuah method yang melakukan pembacaan buku dan pembacaan nilai ISBN yang kemudian diikat pada kontrol yang bersangkutan seperti pada kode berikut ini:private void LoadISBN() { cbxISBN.DataSource = clientProxyObj.GetDataSemuaBuku(); cbxISBN.ValueMember = "ISBN"; cbxISBN.DisplayMember = "JUDUL"; } private void LoadDataBuku() { dgvBuku.DataSource = clientProxyObj.GetDataSemuaBuku(); dgvBuku.Refresh(); }

LANGKAH 7Lakukan pemanggilan dua method di atas pada saat aplikasi pertama kali di load (di tubuh konstruktor) dan pada saat halaman tab berubah (selectedindex) seperti tampak pada kode berikut. Penambahan event SelectedIndexChanged pada tabControl dapat dilakukan dengan memilih kontrol TabControl kemudian memilih properties > memilih events (simbol bertanda petir) > dan pilih SelectedIndexChanged dengan melakukan klik dua kali pada kolom yang bersangkutan.public Form1() { InitializeComponent(); LoadDataBuku(); }

: Aplikasi Smart Client dengan Visual Studio 2008 Express

81

WINDOWS FORM KLIEN private void tabControl1_SelectedIndexChanged(object sender, EventArgs e) { if (tabControl1.SelectedIndex == 0) LoadDataBuku(); else LoadISBN(); }

LANGKAH 8Pada proyek ubah tampilan dari kode menjadi tampilan desain aplikasi (dapat dilakukan dengan menggunakan tombol Shift+F7). Pada desain pilih tombol btnSave dan klik dua kali untuk menampilkan kode event handler Click yang akan dieksekusi pada saat tombol di klik. Tambahkan kode berikut.private void btnSave_Click(object sender, EventArgs e) { Buku newBuku = new Buku { ISBN = textISBN.Text, JUDUL = textJudulBuku.Text, PENGARANG = textPengarang.Text, PENERBIT = textPenerbit.Text, TGL_PENERBITAN = dtpTglTerbit.Value }; clientProxyObj.TambahBukuBaru(newBuku); LoadDataBuku(); }

LANGKAH 9Pembaca dapat mengujicobakan aplikasi dengan memilih kompilasi Build (F6). Kemudian melakukan debugging dengan menggunakan tombol F5. Lakukan percobaan pemasukan data dan cek ke basis data menggunakan SQL Management Studio apakah data tersebut telah berhasil masuk.

82

: Program Pertama Anda dengan Visual Studio 2008

WINDOWS FORM KLIEN

Pengujian Pemasukan data pada Aplikasi Klien

LANGKAH 10Setelah melakukan debugging, pembaca dapat kembali ke tampilan desain antarmuka pada Visual C#. Pilih Tabel halaman dua yang merupakan halaman pengelolaan daftar isi. Pilih kontrol ComboBox, kemdian Klik dua kali. Visual C# akan membangkitkan event yang terjadi pada saat nilai pilihan pada ComboBox tersebut berubah melalui SelectedIndexChanged.private void cbxISBN_SelectedIndexChanged(object sender, EventArgs e) { if (cbxISBN.SelectedIndex >= 0) {

: Aplikasi Smart Client dengan Visual Studio 2008 Express

83

WINDOWS FORM KLIEN

LoadDataDaftarISI(cbxISBN.SelectedValue.ToString()); textIsi.Text = string.Empty; nudHalaman.Value = nudHalaman.Minimum; } } private void LoadDataDaftarISI(string isbn) { Buku searchBuku = new Buku { ISBN = isbn }; dgvDaftarIsi.DataSource = clientProxyObj.GetDaftarIsiBerdasarkanBuku(searchBuku) ; dgvDaftarIsi.Refresh(); }

Pada kode di atas tampak bahwa pada saat terjadi pemilihan ComboBox dengan nilai yang bukan nol, maka aplikasi akan melakukan pembacaan data daftar isi yang dipenuhi melalui operasi LoadDaftarIsi, dan LoadDaftarIsi sendiri melakukan pemanggilan ke layanan WCF.

LANGKAH 11Berikutnya, untuk menyimpan data-data daftar isi dari sebuah buku pengguna dapat melakukan pengesetan nilai dan menyimpannya melalui event tombol klik btnSimpanIsi. Penambahan event ini dapat dilakukan dengan cara memilih tombol btnSimpanIsi kemudian mengkliknya dua kali.private void btnSimpanIsi_Click(object sender, EventArgs e) { DaftarISI newDaftarIsi = new DaftarISI { ISBN = cbxISBN.SelectedValue.ToString(), ISI = textIsi.Text, HALAMAN = Convert.ToByte(nudHalaman.Value) }; clientProxyObj.TambahDaftarIsiBaru(newDaftarIsi); LoadDataDaftarISI(newDaftarIsi.ISBN);

84

: Program Pertama Anda dengan Visual Studio 2008

WINDOWS FORM KLIEN

}

LANGKAH 12Lakukan kompilasi dengan memilih Build > Build Solution (F6), kemudian lakukan debugging dan yakinkan aplikasi dapat menyimpan data baik data buku maupun data daftar isi.

Pengujian Halaman Daftar Isi

LANGKAH 13Hasil kompilasi aplikasi adalah berupa aplikasi .exe. Hal yang menarik adalah aplikasi berekstensi executable ini dapat diset berperilaku selayaknya Smart Client, walaupun tidak secara keseluruhan. Aplikasi dapat dipublikasikan dengan mekanisme instalasi menggunakan Web Server (ini disebut ClickOnce deployment). Dengan ClickOnce, executable tidak perlu di install manual ke setiap PC klien. Untuk mencoba ClickOnce, ikut langkah-langkah berikut ini:

: Aplikasi Smart Client dengan Visual Studio 2008 Express

85

WINDOWS FORM KLIEN

1. 2. 3. 4. 5.

6. 7. 8.

Pilih Proyek WindowsLibraryApp Pilih Project Properties Pilih Tab Publish Siapkan Application atau Virtual Directory untuk lokasi deployment menggunakan IIS Manager (Lihat Bab 5). Isikan informasi dimana aplikasi akan di distribusikan, dalam hal ini pada umumnya didistribusikan ke alamat URL Application (HTTP) atau melalui FTP. Pilih Tombol Publish Now. Aplikasi siap diakses dan diinstalasi lewat URL yang dipublikasikan. Cek hasil publikasi di dalam Virtual Directory.

Publikasi Aplikasi Ala Smart Client

86

: Program Pertama Anda dengan Visual Studio 2008