Indonesia
中文(简体)
中文(繁体)
한국어
日本語
English
Português
Español
Русский
العربية
Indonesia
Deutsch
Français
ภาษาไทย
Peta situs lengkap
Pembaruan Terbaru
Beranda
Kode sumber
Terkait Pemrograman
Sumber daya untuk membuat situs web
Tutorial Desain Halaman Web
Tutorial Pemrograman Jaringan
Beranda
>
buku tutorial
>
Tutorial .NET
Pro ASP.NET 3.5 di C# 2008 Edisi Kedua
Tutorial .NET
Sumber Tidak Tersedia
■BAB 10 Kontrol Data Kaya. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
Tampilan Grid. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
Mendefinisikan Kolom. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
Memformat GridView. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
Memformat Bidang. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
Gaya. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
Nilai Khusus Pemformatan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395
Pemilihan Baris GridView. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
Menggunakan Seleksi untuk Membuat Formulir Detail Master. . . . . . . . . . . . . . . . . . . . 398
Acara SelectedIndexChanged . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
Menggunakan Bidang Data Sebagai Tombol Pilih. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
Menyortir GridView. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
Menyortir dengan SqlDataSource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
Menyortir dengan ObjectDataSource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
Penyortiran dan Seleksi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
Penyortiran Tingkat Lanjut. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
xiv ■ISI
Membuat halaman GridView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
Halaman Otomatis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
Paginasi Khusus dengan ObjectDataSource. . . . . . . . . . . . . . . . . . . . . . 408
Menyesuaikan Bilah Pager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
Templat GridView. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
Menggunakan Banyak Template. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
Mengedit Templat di Visual Studio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
Mengikat ke Metode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
Menangani Acara dalam Templat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
Mengedit dengan Templat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
Tampilan Daftar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
Pengelompokan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
halaman. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
DetailsView dan FormView. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
Tampilan Detail. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
Tampilan Formulir. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
Grid Tingkat Lanjut. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
Ringkasan di GridView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434
Tampilan Orang Tua/Anak dalam Satu Tabel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
Mengedit Bidang Menggunakan Tabel Pencarian. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
Melayani Gambar dari Database. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
Mendeteksi Konflik Konkurensi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
■BAB 11 Caching dan Halaman Asinkron . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
Memahami Caching ASP.NET. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
Caching Keluaran. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
Caching Keluaran Deklaratif. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
Caching dan String Kueri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
Caching dengan Parameter String Kueri Tertentu. . . . . . . . . . . . . . . . . . . . . 454
Kontrol Caching Khusus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
Caching dengan Kelas HttpCachePolicy. . . . . . . . . . . . . . . . . . . . . . . . . . . 456
Substitusi Pasca-Cache dan Caching Fragmen. . . . . . . . . . . . . . . . . . . . 457
Profil Cache. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
Konfigurasi Cache. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
Penyimpanan Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
Menambahkan Item ke Cache. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
Tes Cache Sederhana. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464
Prioritas Cache. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
Caching dengan Kontrol Sumber Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
Ketergantungan Cache. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
Ketergantungan File dan Item Cache. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
Ketergantungan Agregat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
■ISI xv
Item Dihapus Panggilan Balik. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
Memahami Pemberitahuan Cache SQL. . . . . . . . . . . . . . . . . . . . . . . . . . . 473
Pemberitahuan Cache di SQL Server 2000 dan SQL Server 7 . . . . . . . . . . . . 474
Pemberitahuan Cache di SQL Server 2005 dan SQL Server 2008 . . . . . . . . 479
Ketergantungan Cache Khusus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
Ketergantungan Cache Kustom Dasar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482
Ketergantungan Cache Khusus Menggunakan Antrean Pesan. . . . . . . . . . . . . . . 483
Halaman Asinkron. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
Membuat Halaman Asinkron. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
Mengkueri Data di Halaman Asinkron. . . . . . . . . . . . . . . . . . . . . . . . . . . 488
Kesalahan Penanganan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490
Menggunakan Caching dengan Tugas Asinkron. . . . . . . . . . . . . . . . . . . . . . . . . . 492
Beberapa Tugas dan Batas Waktu Asinkron. . . . . . . . . . . . . . . . . . . . . . . . 495
Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
■BAB 12 File dan Aliran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
Bekerja dengan Sistem File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
Kelas Direktori dan File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498
Kelas DirectoryInfo dan FileInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500
Kelas DriveInfo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503
Bekerja dengan Atribut. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504
Filter File dengan Wildcard. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506
Mengambil Informasi Versi File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506
Kelas Jalan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507
Peramban Berkas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510
Membaca dan Menulis File dengan Streams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514
File Teks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516
File Biner. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517
Mengunggah File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518
Membuat File Aman untuk Banyak Pengguna. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520
Kompresi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525
Serialisasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526
Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529
■BAB 13 LINQ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531
Dasar-Dasar LINQ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531
Eksekusi yang Ditunda. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533
Bagaimana LINQ Bekerja. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534
Ekspresi LINQ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534
Ekspresi LINQ “Di Balik Terpal”. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541
LINQ ke Kumpulan Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544
Kumpulan Data yang Diketik. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546
Nilai Nol. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547
xvi ■ISI
LINQ ke SQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547
Kelas Entitas Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548
Konteks Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550
Kueri LINQ ke SQL “Di Balik Terpal”. . . . . . . . . . . . . . . . . . . . . . . . . . . . 551
LINQ ke SQL dan Komponen Basis Data. . . . . . . . . . . . . . . . . . . . . . . . . . . 554
Memilih Catatan atau Nilai Tunggal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556
Menghasilkan Data Kelas Secara Otomatis. . . . . . . . . . . . . . . . . . . . . . . . . . . . 557
Hubungan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563
Menghasilkan Metode untuk Prosedur Tersimpan. . . . . . . . . . . . . . . . . . . . . . . . . 571
Melakukan Perubahan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573
LinqDataSource. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578
Menampilkan Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579
Mendapatkan Data Terkait. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582
Mengedit Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583
Validasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583
Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586
■BAB 14 XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587
Kapan Penggunaan XML Masuk Akal?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587
Pengantar XML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588
Kelebihan XML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589
XML yang Dibentuk dengan Baik. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590
Ruang Nama XML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590
Skema XML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592
Pemrosesan XML Berbasis Aliran. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594
Menulis File XML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594
Membaca File XML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597
Pemrosesan XML Dalam Memori. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600
Dokumen Xml. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601
XPathNavigator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605
Dokumen X. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 607
Mencari Konten XML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 612
Mencari dengan XmlDocument. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 612
Mencari XmlDocument dengan XPath. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615
Mencari XDocument dengan LINQ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617
Memvalidasi Konten XML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619
Skema Dasar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619
Memvalidasi dengan XmlDocument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619
Memvalidasi dengan XDocument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621
Mengubah Konten XML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 622
Lembar Gaya Dasar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 622
Menggunakan XslCompiledTransform. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623
■ISI xvii
Menggunakan Kontrol Xml. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625
Mengubah XML dengan LINQ menjadi XML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625
Pengikatan Data XML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 627
Pengikatan Nonhierarki. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 627
Menggunakan XPath. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 629
Grid Bersarang. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 632
Pengikatan Hierarki dengan TreeView . . . . . . . . . . . . . . . . . . . . . . . . . . . . 633
Menggunakan XSLT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635
Mengikat Konten XML dari Sumber Lain. . . . . . . . . . . . . . . . . . . . . . . . 637
Memperbarui XML Melalui XmlDataSource . . . . . . . . . . . . . . . . . . . . . . . . 637
XML dan Kumpulan Data ADO.NET. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 638
Mengonversi DataSet ke XML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639
Mengakses DataSet Sebagai XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 640
Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 642
BAGIAN 3 ■ ■ ■ Membangun Situs Web ASP.NET
■BAB 15 Kontrol Pengguna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645
Dasar-dasar Kontrol Pengguna. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645
Membuat Kontrol Pengguna Sederhana. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 646
Mengonversi Halaman menjadi Kontrol Pengguna. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 647
Menambahkan Kode ke Kontrol Pengguna. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 648
Menangani Peristiwa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 648
Menambahkan Properti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 649
Menggunakan Objek Kustom. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 651
Menambahkan Acara. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 654
Mengekspos Kontrol Web Batin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657
Memuat Kontrol Pengguna Secara Dinamis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657
Kerangka Portal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 658
Caching Halaman Sebagian. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 661
VaryByControl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 662
Berbagi Kontrol Cache. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663
Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663
■BAB 16 Tema dan Halaman Utama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 665
Lembar Gaya Bertingkat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 665
Membuat Lembar Gaya. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 665
Menerapkan Aturan Stylesheet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 668
xviii ■ISI
Tema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 670
Folder Tema dan Skin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671
Menerapkan Tema Sederhana. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 672
Menangani Konflik Tema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673
Membuat Banyak Kulit untuk Kontrol yang Sama. . . . . . . . . . . . . . . . . . . . . . . 674
Kulit dengan Templat dan Gambar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675
Menggunakan CSS dalam Tema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 677
Menerapkan Tema Melalui File Konfigurasi. . . . . . . . . . . . . . . . . . . . . 677
Menerapkan Tema Secara Dinamis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 678
Standarisasi Tata Letak Situs Web. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 680
Dasar-dasar Halaman Master. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 680
Halaman Master Sederhana. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681
Halaman Konten Sederhana. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 683
Konten Bawaan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 684
Halaman Master dengan Tabel dan Tata Letak CSS. . . . . . . . . . . . . . . . . . . . . . . . . 685
Halaman Master dan Jalur Relatif. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 687
Menerapkan Halaman Master Melalui File Konfigurasi. . . . . . . . . . . . . . . . . 688
Halaman Master Tingkat Lanjut. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 689
Berinteraksi dengan Kelas Halaman Master. . . . . . . . . . . . . . . . . . . . . . . . . . . . 689
Menetapkan Halaman Master Secara Dinamis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 690
Halaman Master Bersarang. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 691
Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 693
■BAB 17 Navigasi Situs Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 695
Halaman dengan Banyak Tampilan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 695
Kontrol MultiTampilan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 696
Kontrol Penyihir. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 700
Peta Situs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 707
Mendefinisikan Peta Situs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 708
Mengikat ke Peta Situs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 710
Tepung roti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711
Menampilkan Sebagian Peta Situs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 713
Objek Peta Situs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 716
Menambahkan Informasi Peta Situs Kustom. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 718
Membuat Penyedia Peta Situs Khusus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 718
Pemetaan URL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725
Pemangkasan Keamanan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 726
Kontrol TreeView. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 728
Node Pohon. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 729
Mengisi Node sesuai Permintaan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731
Gaya TreeView. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 733
■ISI xix
Kontrol Menu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 737
Gaya Menu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 740
Templat Menu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 741
Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 743
■BAB 18 Penerapan Situs Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 745
Layanan Informasi Internet (IIS). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 745
Situs Web IIS dan Direktori Virtual. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 746
Konsol Manajemen IIS dan Konfigurasi IIS. . . . . . . . . . . . . . . . . . . . . 747
Memetakan Situs Web, Direktori Virtual, dan File ke URL. . . . . . . . . . . . . 748
Menyelami Arsitektur IIS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 750
Menginstal IIS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 765
Mengelola Situs Web. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 771
Mengelola Direktori Virtual dan Situs Web dengan IIS 5.x dan IIS 6.0. . . . . . . 772
Mengelola Kumpulan Aplikasi di IIS 6.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 778
Mengelola Direktori Virtual dan Situs Web dengan IIS 7.0. . . . . . . . . . . . . . . 784
Mengelola Kumpulan Aplikasi di IIS 7.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796
Menyebarkan Aplikasi ASP.NET Anda. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 798
Memverifikasi Instalasi ASP.NET pada IIS 5.x dan IIS 6.0. . . . . . . . . . . . . . 800
Eksekusi Berdampingan ASP.NET pada IIS 5.x dan IIS 6.0. . . . . . . . . . . . . . . 801
Eksekusi Berdampingan ASP.NET di IIS 7.0. . . . . . . . . . . . . . . . . . . . . . . . 803
Mengonfigurasi Pengaturan Waktu Proses HTTP saat Menerapkan di IIS 5.x. . . . . . . . 803
Model Kompilasi di ASP.NET. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 804
Menerapkan dengan Visual Studio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 808
Proyek Penerapan Web Visual Studio 2005. . . . . . . . . . . . . . . . . . . . . . 809
VirtualPathProvider di ASP.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 815
Pemantauan Kesehatan di ASP.NET. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 819
Memahami Struktur Dasar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 820
Acara dan Penyedia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 820
Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 823
BAGIAN 4 ■ ■ ■ Keamanan
■BAB 19 Model Keamanan ASP.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 827
Apa Artinya Membuat Perangkat Lunak yang Aman. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 827
Memahami Potensi Ancaman. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 828
Pedoman Pengkodean Aman. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 828
Memahami Penjaga Gerbang. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 829
Memahami Tingkat Keamanan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 830
Otentikasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 831
Otorisasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 832
xx ■ISI
Kerahasiaan dan Integritas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 833
Menyatukan Semuanya. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 833
Keamanan Layanan Informasi Internet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 835
Otentikasi dan Otorisasi pada IIS 5.x dan IIS 6.0 . . . . . . . . . . . . . . . 835
Konfigurasi Keamanan pada IIS 7.0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 838
Memahami Lapisan Soket Aman. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 843
Arsitektur Keamanan ASP.NET. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 852
Otentikasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 853
Otorisasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 855
Konteks Keamanan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 855
API Keanggotaan dan Peran. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 857
Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 858
■BAB 20 Otentikasi Formulir. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 859
Memperkenalkan Otentikasi Formulir. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 859
Mengapa Menggunakan Otentikasi Formulir? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 860
Mengapa Anda Tidak Menggunakan Otentikasi Formulir?. . . . . . . . . . . . . . . . . . . . . 862
Mengapa Tidak Menerapkan Otentikasi Cookie Sendiri? . . . . . . . . . . . . . . . . 863
Kelas Otentikasi Formulir. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 864
Menerapkan Otentikasi Formulir. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 865
Mengonfigurasi Otentikasi Formulir. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 865
Menolak Akses ke Pengguna Anonim. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 869
Membuat Halaman Login Kustom. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 869
Penyimpanan Kredensial Khusus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 876
Cookie Persisten dalam Otentikasi Formulir. . . . . . . . . . . . . . . . . . . . . . . . 877
IIS 7.0 dan Otentikasi Formulir. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 878
Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 884
■BAB 21 Keanggotaan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 885
Memperkenalkan API Keanggotaan ASP.NET. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 885
Menggunakan API Keanggotaan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 888
Mengonfigurasi Otentikasi Formulir. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 889
Membuat Penyimpanan Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 890
Mengonfigurasi String Koneksi dan Penyedia Keanggotaan. . . . . . . . . . . . . 896
Membuat dan Mengautentikasi Pengguna. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 900
Menggunakan Kontrol Keamanan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 902
Kontrol Masuk. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 904
Kontrol LoginStatus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 914
Kontrol LoginView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 915
Kontrol Pemulihan Kata Sandi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 916
Kontrol Ubah Kata Sandi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 921
Kontrol CreateUserWizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 922
■ISI xxi
Mengonfigurasi Keanggotaan di IIS 7.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 926
Mengonfigurasi Penyedia dan Pengguna. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 926
Menggunakan Membership API dengan Aplikasi Lain. . . . . . . . . . . . . . . . . . 928
Menggunakan Kelas Keanggotaan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 930
Mengambil Pengguna dari Store. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 930
Memperbarui Pengguna di Toko. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 933
Membuat dan Menghapus Pengguna. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 933
Memvalidasi Pengguna. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 934
Menggunakan Keanggotaan di Formulir Windows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 935
Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 937
■BAB 22 Otentikasi Windows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 939
Memperkenalkan Otentikasi Windows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 939
Mengapa Menggunakan Otentikasi Windows? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 940
Mengapa Anda Tidak Menggunakan Otentikasi Windows? . . . . . . . . . . . . . . . . . . 941
Mekanisme Otentikasi Windows. . . . . . . . . . . . . . . . . . . . . . . . . . 942
Menerapkan Otentikasi Windows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 948
Mengonfigurasi IIS 5.x atau IIS 6.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 948
Mengonfigurasi IIS 7.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 950
Konfigurasi ASP.NET. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 952
Menolak Akses ke Pengguna Anonim. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 955
Mengakses Informasi Pengguna Windows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 957
Peniruan identitas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 962
Peniruan Identitas di Windows 2000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 963
Peniruan identitas pada Windows XP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 964
Peniruan Identitas dan Delegasi pada Windows Server 2003 . . . . . . . . . . . . . 964
Peniruan identitas pada Windows Vista. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 967
Peniruan Identitas dan Delegasi di Windows Server 2008 . . . . . . . . . . . . . 968
Peniruan Identitas yang Dikonfigurasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 968
Peniruan Identitas Terprogram. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 970
Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 973
■BAB 23 Otorisasi dan Peran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 975
Otorisasi URL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 975
Aturan Otorisasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 976
Otorisasi File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 981
Pemeriksaan Otorisasi dalam Kode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 982
Menggunakan Metode IsInRole(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 982
Menggunakan Kelas PrincipalPermission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 983
Menggunakan API Peran untuk Otorisasi Berbasis Peran. . . . . . . . . . . . . . . . . . . . . . . . 985
Menggunakan Kontrol LoginView dengan Peran. . . . . . . . . . . . . . . . . . . . . . . . . . . . 991
Mengakses Peran Secara Terprogram. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 992
Menggunakan Roles API dengan Otentikasi Windows. . . . . . . . . . . . . . . . . . . 994
xxii ■ISI
Melindungi Sumber Daya Non-ASP.NET di IIS 5 dan 6 . . . . . . . . . . . . . . . . . . . . . . . . 997
Menambahkan Pemetaan Jenis File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997
Menulis Penangan HTTP Khusus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 998
Otorisasi dan Peran di IIS 7.0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1000
Otorisasi dengan Peran ASP.NET di IIS 7.0. . . . . . . . . . . . . . . . . . . . . . . 1002
Mengelola Peran ASP.NET dengan IIS 7.0. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1005
Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1006
■BAB 24 Profil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1009
Memahami Profil. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1009
Kinerja Profil. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1009
Bagaimana Profil Menyimpan Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1010
Profil dan Otentikasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1011
Profil vs. Komponen Data Khusus. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1011
Menggunakan SqlProfileProvider. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1012
Membuat Tabel Profil. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1012
Mengonfigurasi Penyedia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1015
Mendefinisikan Properti Profil. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1016
Menggunakan Properti Profil. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1017
Serialisasi Profil. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1018
Grup Profil. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1020
Profil dan Tipe Data Khusus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1021
API Profil. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1024
Profil Anonim. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1026
Penyedia Profil Khusus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1029
Kelas Penyedia Profil Khusus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1029
Merancang FactoredProfileProvider . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1031
Mengkodekan FactoredProfileProvider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1033
Menguji FactoredProfileProvider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1037
Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1040
■BAB 25 Kriptografi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1041
Mengenkripsi Data: Kerahasiaan Itu Penting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1041
Ruang Nama Kriptografi .NET. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1042
Memahami Kelas Kriptografi .NET. . . . . . . . . . . . . . . . . . . . . . . . . . 1046
Algoritma Enkripsi Simetris. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1047
Enkripsi Asimetris. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1048
Kelas Enkripsi Abstrak. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1049
Antarmuka ICryptoTransform. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1050
Kelas CryptoStream. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1050
■ISI xxiii
Mengenkripsi Data Sensitif. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1051
Mengelola Rahasia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1052
Menggunakan Algoritma Simetris. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1053
Menggunakan Algoritma Asimetris. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1058
Mengenkripsi Data Sensitif dalam Database. . . . . . . . . . . . . . . . . . . . . . . . . . 1061
Mengenkripsi String Kueri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1065
Membungkus String Kueri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1066
Membuat Halaman Uji. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1069
Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1070
■BAB 26 Penyedia Keanggotaan Khusus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1071
Arsitektur Penyedia Kustom. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1071
Langkah Dasar Membuat Penyedia Khusus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1073
Desain Keseluruhan Penyedia Kustom. . . . . . . . . . . . . . . . . . . . . . . . . . . 1073
Merancang dan Mengimplementasikan Toko Kustom. . . . . . . . . . . . . . . . . . . . 1074
Menerapkan Kelas Penyedia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1082
Menggunakan Kelas Penyedia Khusus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1102
Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1106
BAGIAN 5 ■ ■ ■ Antarmuka Pengguna Tingkat Lanjut
■BAB 27 Kontrol Server Khusus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1109
Dasar-dasar Kontrol Server Kustom. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1109
Membuat Kontrol Kustom Bare-Bones. . . . . . . . . . . . . . . . . . . . . . . . . . . 1110
Menggunakan Kontrol Kustom. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1112
Kontrol Kustom di Toolbox. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1113
Membuat Kontrol Web yang Mendukung Properti Gaya. . . . . . . . . . . . . . 1114
Proses Rendering. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1118
Berurusan dengan Browser yang Berbeda. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1119
HtmlTextWriter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1119
Deteksi Peramban. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1120
Properti Peramban. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1122
Mengganti Deteksi Jenis Browser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1124
Rendering Adaptif. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1125
Kontrol Status dan Acara. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1127
Lihat Negara. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1127
Status Kontrol. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1129
Data Postback dan Perubahan Acara. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1131
Memicu Postback. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1133
Memperluas Kontrol Web yang Ada. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1135
Kontrol Komposit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1135
Kontrol Turunan Sidebar Akhir. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1138
xxiv ■ISI
Kontrol Templat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1141
Membuat Kontrol Templat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1141
Menggunakan Template yang Disesuaikan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1143
Gaya. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1148
Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1150
■BAB 28 Dukungan Waktu Desain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1151
Para Pemain Kunci. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1151
Atribut Waktu Desain. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1152
Jendela Properti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1153
Atribut dan Warisan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1157
Ikon Kotak Alat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1158
Sumber Daya Web. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1159
Membuat Sumber Daya. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1159
Mengambil Sumber Daya. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1160
Substitusi Teks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1161
Serialisasi Kode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1162
Ketik Pengonversi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1162
Atribut Serialisasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1170
Ketik Editor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1172
Desainer Kontrol. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1174
HTML Waktu Desain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1175
Tag Cerdas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1177
Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1182
■BAB 29 Grafik Dinamis dan GDI+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1183
Kontrol Peta Gambar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1183
Membuat Hotspot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1184
Menangani Klik Hotspot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1185
Hotspot Khusus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1186
Menggambar dengan GDI+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1188
Menggambar Sederhana. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1189
Format dan Kualitas Gambar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1191
Kelas Grafis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1192
Menggunakan GraphicsPath. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1194
Pena. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1195
Kuas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1198
Menanamkan Grafik Dinamis di Halaman Web. . . . . . . . . . . . . . . . . . . . . . . . . . 1199
Menggunakan Format PNG. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1200
Meneruskan Informasi ke Gambar Dinamis. . . . . . . . . . . . . . . . . . . . . . . . . . 1201
Kontrol Kustom yang Menggunakan GDI+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1204
Memetakan dengan GDI+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1208
Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1213
■ISI xxv
■BAB 30 Portal dengan Halaman Komponen Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1215
Halaman Portal Khas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1216
Halaman Komponen Web Dasar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1217
Membuat Desain Halaman. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1218
Kontrol WebPartManager dan WebPartZone . . . . . . . . . . . . . . . . . . . . . . 1219
Menambahkan Komponen Web ke Halaman. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1221
Menyesuaikan Halaman. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1224
Membuat Komponen Web. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1226
Tugas Komponen Web Sederhana. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1227
Mengembangkan Komponen Web Tingkat Lanjut. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1235
Editor Komponen Web. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1244
Menghubungkan Komponen Web. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1250
Kata Kerja Kustom dan Komponen Web. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1258
Kontrol Pengguna dan Komponen Web Tingkat Lanjut. . . . . . . . . . . . . . . . . . . . . . . . . . . 1259
Mengunggah Komponen Web Secara Dinamis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1262
Mengotorisasi Komponen Web. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1268
Tugas Akhir Personalisasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1268
Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1269
BAGIAN 6 ■ ■ ■ Pemrograman Sisi Klien
■BAB 31 Teknik JavaScript dan Ajax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1273
Esensi JavaScript. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1273
Model Objek Dokumen HTML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1274
Peristiwa Sisi Klien. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1275
Blok Skrip. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1277
Memanipulasi Elemen HTML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1279
Men-debug JavaScript. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1280
Contoh Dasar JavaScript. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1282
Membuat Pemroses Halaman JavaScript. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1282
Menggunakan JavaScript untuk Mengunduh Gambar Secara Asinkron. . . . . . . . . . . . . . 1285
Merender Blok Skrip. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1290
Serangan Injeksi Skrip. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1291
Permintaan Validasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1291
Menonaktifkan Validasi Permintaan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1292
Kontrol Khusus dengan JavaScript. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1294
Jendela Pop-Up. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1294
Tombol Putar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1298
Bingkai. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1301
Navigasi Bingkai. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1302
Bingkai Sebaris. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1303
xxvi ■ISI
Memahami Ajax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1304
Objek XMLHttpRequest. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1305
Contoh Ajax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1307
Menggunakan Ajax dengan Panggilan Balik Klien. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1311
Membuat Panggilan Balik Klien. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1311
Panggilan Balik Klien “Di Balik Terpal”. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1317
Panggilan Balik Klien dalam Kontrol Kustom. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1318
Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1322
■BAB 32 ASP.NET AJAX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1323
Memperkenalkan ASP.NET AJAX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1323
ASP.NET AJAX di Klien: Perpustakaan Skrip. . . . . . . . . . . . . . . . . . 1325
ASP.NET AJAX di Server: ScriptManager . . . . . . . . . . . . . . . . . . 1325
Panggilan Balik Server. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1326
Layanan Web di ASP.NET AJAX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1327
Proksi Layanan Web. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1334
Menempatkan Metode Web di Halaman. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1336
Layanan Aplikasi ASP.NET AJAX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1337
Kontrol Server ASP.NET AJAX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1344
Rendering Sebagian dengan UpdatePanel. . . . . . . . . . . . . . . . . . . . . . . . . . . 1344
Penyegaran Waktu dengan Timer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1351
Pembaruan yang Memakan Waktu dengan UpdateProgress. . . . . . . . . . . . . . . . . . . . 1352
Lebih dalam ke Perpustakaan Klien. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1355
Memahami Model Klien. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1356
Pemrograman Berorientasi Objek dalam JavaScript. . . . . . . . . . . . . . . . . . . . . . . 1357
Kerangka Halaman Web. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1364
Kontrol Extender. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1369
Menginstal Perangkat Kontrol ASP.NET AJAX. . . . . . . . . . . . . . . . . . . . . . . 1370
AutoCompleteExtender . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1371
Perangkat Kontrol ASP.NET AJAX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1374
Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1378
■BAB 33 Cahaya Perak. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1379
Memahami Silverlight. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1379
Cahaya Perak vs. Kilat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1380
Adopsi Cahaya Perak. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1382
Silverlight dan WPF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1382
Menginstal Silverlight dan Ekstensi Visual Studio. . . . . . . . . . . . . . . 1383
Membuat Proyek Silverlight. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1384
Halaman Entri HTML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1385
Skrip Inisialisasi Silverlight. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1386
Halaman XAML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1388
Kode XAML di Belakang. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1391
■ISI xxvii
Properti dan Acara. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1392
Kompilasi Cahaya Perak. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1393
Hal Penting Silverlight. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1394
Kelas .NET Framework di Silverlight. . . . . . . . . . . . . . . . . . . . . . . . . . . 1395
Kanvas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1396
Teks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1401
Berinteraksi dengan HTML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1402
Penyimpanan Terisolasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1406
Silverlight dan ASP.NET. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1408
ASP.NET Berjangka. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1408
Berkomunikasi Antara Silverlight dan ASP.NET. . . . . . . . . . . . . . . . . . 1412
Menggambar dalam 2D. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1412
Bentuk Sederhana. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1413
Jalur dan Geometri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1417
Kuas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1425
Transparansi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1427
Animasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1429
Dasar-dasar Animasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1430
Mendefinisikan Animasi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1430
Contoh Animasi Interaktif. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1434
Berubah. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1437
Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1440
■INDEKS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1441
Memperluas
Informasi Tambahan
Versi
Tipe
Tutorial .NET
Waktu Pembaruan
2009-05-26
ukuran
30.65MB
Aplikasi Terkait
kacamata hitam pro
2023-10-17
Xplorer2 Pro
2009-06-04
BSPlayer Pro
2009-06-03
ACDSee Pro
2009-05-30
Gaya Teratas Pro
2009-05-29
Salin Pro
2009-04-20
Direkomendasikan untuk Anda
chat.petals.dev
Kode sumber lainnya
1.0.0
GPT Prompt Templates
Kode sumber lainnya
1.0.0
GPTyped
Kode sumber lainnya
GPTyped 1.0.5
Catatan studi ADO.net
Tutorial .NET
Pemrograman tingkat lanjut situs web ASP.NET
Tutorial .NET
Pemrograman ASP.NET versi Cina (edisi ke-3)
Tutorial .NET
Google Dorks
Kode sumber lainnya
1.0
shepherd
Kode sumber lainnya
v6.1.6-react-shepherd: Prepare Release (#3063)
mongo express
Kode sumber lainnya
v1.1.0-rc-3
Informasi Terkait
Semua
Pengenalan mendetail tentang parameter kinerja PS5 Pro
2024-11-12
Tutorial koreksi goyangan pro HuaWorld
2023-07-31
Cara menggambar di Paint World Pro
2023-07-28
Cara menggunakan clipping mask di Paint World Pro
2023-07-28
Cara menggunakan palet warna pro dunia cat
2023-07-28
Cara menggunakan lukisan dunia pro airbrush
2023-07-28
Cara memilih pilihan di Paint World Pro
2023-07-28
Tutorial penelusuran "Menggambar Dunia Pro".
2023-07-27
Tutorial Masker Pemotongan "Lukisan Dunia Pro".
2023-07-27
Apa perbedaan antara Hanglv Zongheng dan Hanglv Zongheng pro?
2023-07-10
Apa perbedaan antara Hanglv Zongheng dan Hanglv Zongheng pro?
2023-07-10
Cara mengambil tangkapan layar pada Huawei p60 pro
2023-05-24