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

Created at : Jul/28/2007  
1805 Views   0 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]

[Write your comment]
Name (required)
URL (optional)
Example : http://www.yulianmf.com  
Comment

TGYI
Input code above below (Case Sensitif) :
About Me 
Rully Yulian MF
My Name is Rully Yulian Muhammad Firmansyah. I am an IT Trainer, IT Consultant and Application Developer spesializing in Microsoft .NET technology and SQL Server database. I live in Bandung, Indonesia. My hobby is to play Guitar. [Read More...]
Top Download 
Bagaimana caranya menginstal database ketika deploying sebuah aplikasi? : Downloaded 2231 times  
Change Group,Sort Order, Filtering By Date in Crystal Reports : Downloaded 2192 times  
Simple Voice Engine Application With Sound Player Class... : Downloaded 1522 times  
DataGridView Grouping : Downloaded 1243 times  
WinForms DataGrid Paging With SqlDataAdapter : Downloaded 1232 times  
Article Category 
Links 
Award 
Certifications 
MOS 2007
MCAS
MCT
MCPD
MCTS
MCAD.NET
ASP.NET Brainbench
Native Enterprise - IT Training 
Native Enterprise Facebook Group 
My Facebook 
My LinkedIn 
Syndication (RSS 2.0) 
Powered By 
Native Enterprise News