Introduction

Dear all , Thank You for coming to my blogspot



Jun 18, 2008

Koreksi sample NHibernate pada bagian Addassembly agar dapat berjalan

Pada sample NHibernate yang dipublish di http://www.hibernate.org/362.html, menurut hemat saya, harus ada sedikit perbaikan agar dapar berjalan dengan lancar.
Adapun beberapa perbaikan tersebut adalah:
  1. Pada line code di file user.hbm.xml

    <class name="NHibernate.Examples.QuickStart.User, NHibernate.Example.QuickStart" table="users">

    Dalam hal ini anda harus tau maksud dari 2 input argument string yang diberikan pada tag name, argument 1 menunjukkan namespace + classname dan argument yang kedua menunjukkan assembly name, dalam hal ini assembly name dapat anda lihat pada nama asli file ini, silahkan buka explorer dan lihat difolder dimana file.dll ini dicompile.
    Selanjutnya terdapat pula tag table yang menunjukkan apa nama table reference di databasenya..
  2. Setelah perbaikan pada bagian ini kemudian compile, tapi ingat jangan lupa set file user.hbm.xml menjadi Embedded Resource, caranya mudah masuk ke tab Solution Explorer, kemudian klik file User.hbm.xml (jangan didoubleClick) kemudian langsung arahkan mouse ke Tab Properties kemudian rubah di bagian Build Action
  3. Masuk ke WebSite Project Anda : pada File Default.aspx.cs buat sedikit perubahan. dimana pada line code

    Configuration cfg = new Configuration();
    cfg.AddAssembly("NHibernate.Examples");

    rubah menjadi :

    Configuration cfg = new Configuration();
    cfg.AddResource("NHibernate.Example.QuickStart.User.hbm.xml", System.Reflection.Assembly.Load("NHibernate.Example.QuickStart"));
  4. pertanyaannya kenapa function of AddAssembly dirubah ke AddResource, agar ketika buildSessionFactory langsung mengarahkan ke Embedded Resourcenya dalam hal ini "NHibernate.Example.QuickStart.User.hbm.xml" (lihat pada fisik filename-nya di folder anda) dan ditambah dengan Assembly Namenya, artinya file yang udah dicompile jadi Apa??? yaitu "NHibernate.Example.QuickStart" (sesuaikan dengan filename yang sudah tercompile difolder anda). Bila setiap line code anda tidak ada salah ketik dan lain-lain. maka sample ini dapat dijalankan dengan baik dan benar....

    selamat mencoba.....................

Created By Rahmad Hidayat @ June 2008

Jun 17, 2008

Perbaikan Sample Hibernate yang terdapat pada NHibernate Reference Documentation

Anda pasti jengkel dengan sample code, ketika dicoba tidak cespleng jalan... tapi harus sedikit ulik-ulik lagi..... Ada suatu kesalahan pada sample ini, namun agar lebih cespleng dan aman akan saya jelaskan semua dari awal sehingga semua baik-baik saja.
Well let's follow my Instruction below :
  1. Buat Persistent Class-nya Cat, cukup copy paste aja... buat di new project... bukan di new Website. pilih Class Library kemudian file name dan solution name-nya dapat anda rubah sesuai keinginan, dalam hal ini misal kita beri nama "QuickStart".
  2. Bila sudah masuk ke mode coding kemudian rename file "Class1.cs" menjadi "Cat.cs" --> tujuannya agar kita mudah mengidentifikasinya :)
  3. Kemudian pada Menu Project pilih submenu Add New Item --> atau cukup tekan Ctrl + Shift + A. kemudian pilih XML file kemudian berinama "Cat.hbm.xml"
  4. Kemudian set file Cat.hbm.xml jadi embedded Resource, caranya adalah masuk ke Tab Solution Explore, kemudian pilih file Cat.hbm.xml (jangan didoubleclick). Ketika File itu sedang diblok sama mouse kemudian langsung arahkan mouse ke tab properties dan pilih option Build Action dan rubah menjadi Embedded Resource.
  5. Silahkan Copy --> Paste bagian "1.3 Mapping the Cat" dari reference book tersebut masukkan ke dalam file Cat.hbm.xml.
    Jangan Lupa buat pula Table di databasenya.............
  6. Pada line code :

    <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="QuickStart" assembly="QuickStart">

    Pastikan argument namespace sudah benar lihat di Cat.cs kemudian argument assembly sesuikan dengan fisik file di folder tempat dimana project ini dicompile.... (tanpa extensi)

  7. Saran saya bila anda ragu tanpa merubah point ini... compile saja terlebih dahulu... supaya semua berjalan lancar.. pilih saja mode compile "Batch Build"... Klik tombol Select All kemudian klik tombol Rebuild. Kemudian lihat file ini di ..\obj\Release\.. disitu akan jelas semua antara nama Object DLL-nya dan File Embedded XML-nya.
  8. Bila Step ini sudah selesai, sekarang kita coba pada WebProject......... caranya adalah... buka Microsoft Visual Studio 2005 yang baru.. kemudian pilih menu File-->New -->Web Site. Pilih ASP.Net Web Site dan klik ok...
  9. Sebelum memulai coding Jalankan dulu project ini dengan menekan tombol F5, tujuannya supaya file Web.Config.xml terbentuk (memang aneh..............), and don't forget masukkan beberapa reference pendukung project ini, antara lain "NHibernate.DLL" dan "QuickStart.dll" (buka dari add reference kemudian Browse masuk ke path folder obj\release\.. dimana dll ini dicompile). kemudian ketik reference namespace ini pada bagian atas... ketik using NHibernate; using NHibernate.cfg; using QuickStart;
    Supaya tidak tabrakan dalam pemanggilan namespace maka using System.Configuration harus dihapus, karena kita akan menggunakan configuration milik NHibernate saja.
  10. Sekarang kita masuk ke file Web.Config.xml kemudian tambahkan bagian "1.1 Getting Started with NHibernate" pada reference book ini. copy --> paste xmlnya dan pindahkan ke Web.Config, jangan lupa sesuaikan penempatan scriptnya. kalau mau mudah copy saja bagian tag <configSections> --> sampai tag </hibernate-configuration> paste di Web.config diantara tag <configuration> dan tag <appSettings/>

  11. Lakukan sedikit perubahan pada line code ini :

    <mapping assembly="QuickStart" />

    rubah menjadi :

    <mapping resource="QuickStart.Cat.hbm.xml" assembly="QuickStart" />

    bagian resource lihat di fisik file ini dalam folder ..\obj\Release\....
  12. Langkah kedua yang harus kita lakukan adalah membuat object yang terdapat pada bagian "1.4 Playing with Cats" pada reference book NHibernate.

  13. Supaya anda tidak bingung, maka dalam session Dummy kali ini.... namespace dan class-nya akan kita gabung di file "Default.aspx.cs" saja. Silahkan copy --> paste dari statement namespace sampai kurung kurawal bawah atau namespace{}. Setelah itu diinclude kedalam file Default.aspx.cs

  14. Selanjutnya masuk ke file Default.aspx dan pilih tab Design pada pojok kiri bawah kemudian tambahkan 1 tombol--> kemudian tombol itu didouble click --> maka akan masuk ke file Default.aspx.cs. Nah................. dari sini silahkan copy bagian ini (dapat di lihat pada reference book NHibernate)

    ISession session = NHibernateHelper.GetCurrentSession();
    ITransaction tx = session.BeginTransaction();
    Cat princess = new Cat();
    princess.Name = "Princess";
    princess.Sex = 'F';
    princess.Weight = 7.4f;
    session.Save(princess);
    tx.Commit();
    NHibernateHelper.CloseSession();

Tanpa menambahi embel-embel yang lain project ini cespleng pasti jalan, kalau pun gak jalan paling masalah set permission dari database server atau mungkin salah-salah ketik saja


created by Rahmad Hidayat @ June 2008



About Me

I am a Man