Membaca file konfigurasi (app.config) dari aplikasi yang berbeda (Studi kasus : Visual Inheritance)

Posted at : Jul/28/2007
7593 Views | 3 Comments

Mungkin selama ini kita biasanya selalu membaca file konfigurasi yang ada di dalam project yang bersangkutan. Bagaimana caranya kalau ternyata file konfigurasi tersebut berada di dalam project (assembly) yang berbeda? Contoh kasusnya seperti apa?

Misalkan saya punya dua buah project. Project pertama merupakan sebuah windows application project yang Application Type nya saya rubah ke Class Library (.dll). Tujuan dari perubahan Application Type ini ke Class Library yaitu agar nantinya project win app lainnya dapat melakukan referensi ke dll yang dihasilkan oleh project ini, dimana di dalam project pertama ini hanya berisi sebuah windows form yang akan digunakan sebagai template form lainnya (kalau di asp.net 2.0 mungkin bisa kita asosiasikan dengan Master Page). Fitur ini dikenal dengan Visual Inheritance.

Form yang ada di project pertama ini terdapat sebuah label untuk digunakan sebagai judul dari form yang akan digunakan. Nah untuk BackColor dan ForeColor property dari label tersebut diatur oleh setting yang terdapat didalam file app.config project lain yang menggunakan form ini. Jadi warnanya tidak statik, bisa kita rubah dengan warna yang diinginkan. Kalau kita tidak melakukan hal seperti ini maka setiap kali warna background dan warna hurufnya ingin kita rubah maka kita harus lakukan perubahan secara manual di project pertama ini lalu build ulang, dan juga kita lakukan rebuild untuk project yang menggunakan form master ini.

Project kedua merupakan sebuah win app yang akan menggunakan form master yang telah dibuat di project pertama. Hal ini dilakukan agar semua form memiliki tampilan yang konsisten. Berikut langkah-langkahnya:

1. Buat sebuah windows application project, beri nama misalnya MasterForm.

2. Rename form yang ada menjadi MasterForm. Desain tampilan form seperti ini :

3. Tambahkan code dibawah ini di event handler Load (My.Application.Info.AssemblyName akan membaca nama assembly dari project yang menggunakan form ini). Perhatikan bahwa warna background dan warna huruf label ditentukan oleh setting yang ditetapkan di file app.config project lain.

   1:  Imports System.Configuration
   2:   
   3:  Public Class MasterForm
   4:   
   5:      Private Sub MasterForm_Load(ByVal sender As Object, _
   6:      ByVal e As System.EventArgs) Handles Me.Load
   7:   
   8:          Dim exeConfigExternal As New ExeConfigurationFileMap
   9:          exeConfigExternal.ExeConfigFilename = _
  10:          My.Application.Info.AssemblyName & ".exe.config"
  11:   
  12:          Dim config As Configuration = _
  13:          ConfigurationManager.OpenMappedExeConfiguration( _
  14:          exeConfigExternal, ConfigurationUserLevel.None)
  15:   
  16:          Me.lblCaption.BackColor = Color.FromName( _
  17:          config.AppSettings.Settings("CaptionBackColor").Value)
  18:          Me.lblCaption.ForeColor = Color.FromName( _
  19:          config.AppSettings.Settings("CaptionForeColor").Value)
  20:   
  21:      End Sub
  22:   
  23:  End Class

4. Rubah ApplicationType dari project ini ke Class Library :

5. Buat sebuah windows application lainnya. Tambahkan form baru, lalu pilih Inherited Form :

6. Pilih MasterForm yang telah dibuat pada project pertama :

7. Ketika anda buka form yang bersangkutan akan muncul error. Error tersebut karena ada nya pembacaan file app.config yang seharusnya dibaca ketika runtime. Akan tetapi error tersebut hanya terjadi ketika design time saja. Ketika di run tidak masalah. Jadi kalau selama masih dalam fase develop sebaiknya anda beri comment saja code yang dibuat di langkah ke-3. Sebelum di deploy anda uncomment lagi, lalu build ulang.

8. Rubah text caption label form yang baru saja ditambahkan (di project yang kedua), misal seperti ini :

9. Tambahkan setting berikut di file app.config (project kedua) :

   1:  <configuration>
   2:      <appSettings>
   3:          <add key="CaptionBackColor" value="Gray"/>
   4:          <add key="CaptionForeColor" value="Orange"/>
   5:      </appSettings>
   6:      .....

10. Build kedua project tersebut, lalu jalankan, dan hasilnya akan seperti ini :

11. Untuk merubah warna background dan hurufnya kita tinggal merubah setting nama warna yang ada file NamaAplikasi.exe.config ketika aplikasi sudah di deploy.

 


[Comments]

made setiawan (Oct/13/2010 02:41:26)

Terima kasih sebelumnya pak yulian, semua artikel ini sangat berguna bagi saya, saya ada pertanyaan, begini pak, bagaimana caranya membaca file.INI mis

 

berisi

[database]

user=sa

pwd=sajuga

ip=localhost

 

bagaimana caranya untuk membaca file .INI

 

terima kasih sebelumnya

 

n/b pak

ini email saya made.setiawan@gmail.com, kalau bisa di reply ke email.

Rully (Oct/13/2010 03:20:31)

made > sama-sama mas...file .ini sebenarnya file text biasa dan bisa dibuka dengan text editor biasa seperti Notepad, sehingga untuk membacanya juga cukup dengan teknik pembacaan file .txt seperti biasa...

Mudah-mudahan membantu.

Yontommy (Jan/02/2014 01:29:50)

 Setingan apa yang harus lakukan di crystal report agar struk penjualan yang sedang saya buat dapat berjalan dengan normal karena setiap di beri formula cash dan kembalian bila daftar item lebih dari satu macam akan keluar cuma satu baris yaitu baris paling atas dari setiap item.

Dan satu lagi, setiap melakukan transaksi ke 5 kali muncul pernyataan [A duplicate value cannot be inserted into a unique index. [ Table name = TransaksiPenjualan,Constraint name = PK_TransaksiPenjualan ]]

Terima Kasih.

 


[Write your comment]

Name (required)

Email (required-will not published)

 
Comment
oghi
Input code above below (Case Sensitive) :

ABOUT ME

Rully Yulian MF
Rully Yulian Muhammad Firmansyah | Founder & IT Trainer Native Enterprise | MCT (2008-2019) | MVP (2009-2016) | Xamarin Certified Professional | MTA | MCAD | MCPD | MOS | Bandung, West Java, Indonesia.

[Read More...]

TOP DOWNLOAD

Mapping Hak Akses User Pada MenuStrip Sampai Control Button
downloaded 6982 times

Bagaimana caranya menginstal database ketika deploying sebuah aplikasi?
downloaded 4893 times

Simple Voice Engine Application With Sound Player Class...
downloaded 4045 times

Change Group,Sort Order, Filtering By Date in Crystal Reports
downloaded 3460 times

WinForms DataGrid Paging With SqlDataAdapter
downloaded 2881 times


LINKS

CERTIFICATIONS

Xamarin Certified
MOS 2007
MCT
MCPD
MCTS
MCAD.NET
ASP.NET Brainbench

NATIVE ENTERPRISE

Native Enterprise - IT Training

FOLLOW ME

Youtube  Facebook  Instagram  LinkedIn   Twitter

RSS


NATIVE ENTERPRISE NEWS

© Copyright 2006 - 2024   Rully Yulian MF   All rights reserved.