Archive for August 18th, 2008

h1

Note for Chapter 2.1 : [Navigasi File System]

18 August, 2008
  • File System menggunakan namespace System.IO untuk navigasi dan manipulasi Files, Drives, dan Directories.
  • File System dibagi menjadi dua : Informasi dan utiliti.
  • Untuk informasi, base class-nya FileSystemInfo. Turunannya adalah FileInfo dan DirectoryInfo. Mengapa DriveInfo tidak?. Karena kita tidak bisa menghapus Drive. Class DriveInfo meng-implements ISerializable dan NotInheritable.
  • Untuk utiliti class-classnya : File, Directory, dan Path.
  • Properties FileSystemInfo yang sering digunakan : Attributes, CreationTime, Exists, Extension, FullName, LastAccessTime, LastWriteTime, Name.
  • Method FileSystemInfo yang sering digunakan : Delete, Refresh.
  • Properties FileInfo yang sering digunakan : Directory, DirectoryName, IsReadOnly, Length.
  • Method FileInfo yang sering digunakan : AppendText, CopyTo, Create, CreateText, Decrypt, Encrypt, MoveTo, Open, OpenRead, OpenText, OpenWrite, Replace.
  • Contoh mendapatkan informasi File :

Dim MyFile As New FileInfo(“c:\boot.ini”)

Dim FName As String = MyFile.Name & ” – “& MyFile.FullName

 Jika ingin meng-kopi file gunakan CopyTo :

MyFile.CopyTo(“c:\boot.bak”)

  • Properties DirectoryInfo yang sering digunakan : Parent, Root (semuanya return objek DirectoryInfo).
  • Method DirectoryInfo yang sering digunakan : Create, CreateSubDirectory, GetDirectories (return array DirectoryInfo), GetFiles (return array FileInfo), GetFileSystemInfos, MoveTo.
  • Gunakan looping For-Each untuk mendapatkan objek FileInfo dari method GetFiles. Contoh :

  • Properties DriveInfo yang sering digunakan : AvailableFreeSpace, DriveFormat, DriveType (Enum:CD, Fixed, Network, Removable, dll), IsReady, Name, RootDirectory, TotalFreeSpace, TotalSize, VolumeLabel.
  • Method DriveInfo yang sering digunakan : GetDrives (return semua drives dalam system).
  • Class Path digunakan untuk manipulasi path file system (hanya path bukan file). Shared Method yang sering digunakan : ChangeExtension (hanya return path dan extensi baru sebuah file), Combine, GetDirectoryName, GetFullPath, GetFileName, GetExtension, HasExtension, IsPathRooted.
  • Properties FileSystemWatcher yang sering digunakan : EnableRaisingEvent (default = true), Filter (File filter. Jika kosong dianggap ‘All File’), IncludeSubDirectories, NotifyFilter (default :semua perubahan delete, change, rename, modifikasi = on), Path.
  • Method FileSystemWatcher yang sering digunakan : WaitForChanged (membernya enum WatcherChangeType(Change, Delete, dll) dan TimeOut).
  • Events FileSystemWatcher : Changed, Created, Deleted, dan Renamed.
  • Contoh Penggunaan FileSystemWatcher :

h1

Note for Chapter 1.3 : [Class]

18 August, 2008
  • Gunakan Inherit untuk membuat class dari class yang sudah ada
  • Contoh kita bisa membuat Exception sendiri yang di-inherit dari System.ApplicationException. Class-class turunannya juga mewarisi semua yang dimiliki parent class.

  • Contoh penggunaannya :

  • Interface juga disebut contract. Class yang meng-implement interface harus memiliki baik function maupun property dan members yang dimiliki Interface.
  • Interface yang umum digunakan : IComparable, IDisposable, IConvertible, ICloneable, IEquatable, dan IFormatable.
  • Partial Class digunakan untuk memisah code class ke multiple file.
  • Generic. Baru di .NET 2.0. Kita menggunakan generic untuk mendefinisikan type sendiri. Contoh generic class di .NET 2.0 adalah namespace System.Collections.Generic.
  • Keuntungan menggunakan generic adalah :
    • Type-safe, jadi dapat mengurangi error runtime dan,
    • Meningkatkan performa karena tidak ada boxing (casting Value-Types ke Reference-Types) dan unboxing.
  • Contoh cara membuat generic types.

Contoh penggunaannya :

  • Gunakan Constraint untuk mendefinisikan type pada generic class. Empat tipe constraint yaitu : Interface, Base Class, Constructor, dan Reference atau Value Type. Contoh :

Contoh penggunaannya :

Dim cg As New CompGen(Of ArrayList, ArrayList) _

(New ArrayList, NewArrayList)

  • Event adalah komunikasi pengiriman pesan dari objek yang terkena action. Dalam komunikasi event, event sender tidak tahu method apa yang dijalankan event receiver.
  • Cara Raise Event :
    • Buat sebuah Delegate. Delegate adalah class yang digunakan untuk menyimpan reference sebuah method.

Public Delegate Sub MyEventHandler(ByVal sender As Object, ByVal e AsEventArgs)

Parameter EventArgs menyimpan properties yang dibutuhkan event. Kita bisa custom type yang diturunkan dari EventArgs dan menambahkan member.

  • Buat sebuah Event

Public Event MyEvent AsMyEventHandler

  • Panggil/Invoke delegate dari method untuk raise event

  • Attribut menjelaskan type, method atau property yang dapat di-query menggunakan Reflection. Penggunaan yang umum sebagai berikut :
    • Spesifikasi security privileges yang dibutuhkan class
    • Deklarasi kapabilitas, seperti support serialization

<Serializable()> _ Class MyClass1 End Class

  • Menjelaskan assembly dengan menyediakan title, description, atau copyright.

  • Type Forwarding adalah sebuah attribut (implementasinya TypeForwardedTo) yang mengijinkan kita memindahkan type dari [Assembly A] ke [Assembly B].

Imports System.Runtime.CompilerServices

<Assembly: TypeForwardedTo(GetType(DestLib.TypeA))>

h1

Note for Chapter 1.2 : [Common Reference Types]

18 August, 2008
  • Beda Reference Types dan Value Types bisa dilihat disini :

Numbers adalah Structure (Value Types). Outputnya adalah n1 =1, n2=2. Beda jika Numbers kita buat sebagai class. Outputnya akan menjadi n1=3, n2=3. Reference Types hanya address/alamat data dan tidak menyimpan value. Sementara Value Types adalah data itu sendiri.

  • Reference Types contohnya : System.Object, System.String, System.Text.StringBuilder, System.Array, System.IO.Stream, System.Exception.
  • String sifatnya immutable. Means jika ada perubahan dalam String, runtime akan membuat String yang baru dan mengabaikan yang lama. Itu sebabnya digunakan StringBuilder yang mutable untuk membuat String dinamis.
  • Cara menggunakan array :

  • Stream(System.IO.Stream) digunakan untuk read/write ke disk dan komunikasi dalam jaringan/network
  • Stream yang umum digunakan : FileStream, MemoryStream, StreamReader, dan StreamWriter. Setelah menggunakan Stream ingat untuk di-Close untuk melepaskan Lock file.

  • Exception adalah perencanaan error handling. Ada banyak tipe Exception yang semuanya diturunkan dari System.SystemException. Cara penggunaannya :

Variabel sr ditaruh diluar Try-Catch karena Finally tidak akan mengenali jika ditaruh dalam Try-Catch.

  • Lakukan Filtering Exception, dari yang paling spesifik to general.

h1

Note for Chapter 1.1 : [Value Types]

18 August, 2008
  • Ada 3 value type yang umum : Built-in types, User-defined types, dan Enumerasi. Semua diturunkan dari System.Value.
  • Built-in types contohnya : Int, decimal, byte, bool, char, dan datetime.
  • Gunakan Int32 untuk looping. Jika undefined gunakan Double.
  • Yang baru di .NET 2.0: Deklarasi variable menggunakan Nullable. Contoh : Dim myBool as Nullable(Of Boolean) = Nothing. Dan otomatis myBool mempunyai member HasValue dan Value.
  • User-defined types istilah lainnya adalah Structure/struct.
  • Contoh membuat struct :

  • Structure biasanya lebih efisien dari Class jika penggunaannya sebagai value-type bukan reference-type.
  • Kriteria membuat Structure : Nantinya tidak berubah setelah dibuat dan tidak di-cast ke reference-type.
  • Enumerasi digunakan untuk menyederhanakan kode dan mudah dibaca. Jika ada pilihan terbatas dalam Class, use this. Contoh menggunakan Enumerasi :