Archive

Archive for November, 2009

NServiceBus vs WCF

November 21, 2009 Leave a comment

Disadur dari NServiceBus Homepage

NServiceBus merupakan open source software yang dibuat oleh Udi Dahan (SOA expert). Tujuan si pembuat tentu saja untuk menjadikan NServiceBus sebagai alat yg membuat pembangunan aplikasi berorientasi service menjadi lebih mudah.

NServiceBus (NSB) dirancang untuk kolaborasi antar business-oriented services. NSB tidak bermaksud untuk menggantikan teknologi RPC seperti WCF. WCF tentu saja memiliki tempat pada arsitektur SOA tidak mungkin hanya menggunakan NServiceBus saja.

Nah NSB bukan merupakan service bus yg terpusat seperti BizTalk. Jadi NSB bukan terletak di tengah dimana komunikasi melalui central tersebut. Centralized communication seperti itu merupakan tanggung jawab dari Broker bukan Bus. Bus bukan tidak terlihat secara fisik. NSB lebih dekat ke WCF daripada ke BizTalk
Read more…

Advertisements
Categories: NServiceBus Tags: , , , ,

Build Automation (NAnt + MSBuild)

November 20, 2009 1 comment

NAnt merupakan build automation tools yang open source dan merupakan porting dari java. NAnt dapat di download di NAnt Homepage. Saya biasanya menggunakan NAnt standalone sebagai automation tools. Sehingga IDE Build pada Visual Studio tidak ada fungsinya lagi sama sekali. VS (Visual Studio) hanya sebagai text editor saja dengan kekuatan Intellisense nya. Sayang sekali ya.. Padahal di VS juga kita menambahkan reference terhadap library dan dependency. Di NAnt juga kita melakukan hal yang sama secara manual sehingga ada pekerjaan yang redundant dan membosankan.

Seringkali juga saya menambahkan reference terhadap library di Visual Studio tetapi lupa menambahkannya di NAnt build file. Akhirnya compilasi pun failed. Memang masalah itu sangat mudah diatasi tetapi tetap saja ada duplikasi pekerjaan.

Akhirnya permasalahaan tersebut sedikit memiliki jalan keluar. Ternyata dibalik Build VS tersebut merupakan pekerjaan dari MSBuild. MSBuild mengeksekusi file csproj yang ada pada project kita. File tersebut berisikan XML file yg hampir sama tujuannya dengan file NAnt. Reference tersebut juga telah di definisikan di sana.

...
  <ItemGroup>
    <Reference Include="antlr.runtime, Version=2.7.6.2, Culture=neutral, PublicKeyToken=65e474d141e25e07, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..\..\external-bin\nomerge\antlr.runtime.dll</HintPath>
    </Reference>
    <Reference Include="Antlr3.Runtime, Version=3.1.0.39271, Culture=neutral, PublicKeyToken=3a9cab8f8d22bfb7, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..\..\external-bin\nomerge\Antlr3.Runtime.dll</HintPath>
    </Reference>
    <Reference Include="Common.Logging, Version=1.2.0.0, Culture=neutral, PublicKeyToken=af08829b84f0328e">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..\..\external-bin\nomerge\Common.Logging.dll</HintPath>
    </Reference>
.....
  <ItemGroup>
    <ProjectReference Include="..\Messages\Messages.csproj">
      <Project>{20F613ED-C871-477C-B1E4-48B96CACF794}</Project>
      <Name>Messages</Name>
    </ProjectReference>
  </ItemGroup>
...

Saya kemudian mendapatkan contoh yang sangat baik untuk memanfaatkan MSBuild dengan NAnt. Contoh tersebut saya dapat dari NServiceBus. Untuk build automation nya NServiceBus mengkombinasikan NAnt dan MSBuild. Silahkan download source code NServiceBus dan pada
folder trunk anda akan menemukan file nant.build. File ini merupakan build file untuk NAnt.
Read more…

Categories: Continous Integration Tags: ,

selamat datang Scrum…….

November 19, 2009 Leave a comment

Kemaren milis Scrum Indonesia dibuka.. Silahkan bergabung dan berdiskusi…

Milis Scrum Indonesia

di sana ada resource slide perkenalan scrum dari Sir Joshua Partogi.

Banyak resource2 blajar yang lain diantaranya :

Ebooks Mini Scrum

Scrum Resource

Happy Scrum…..

Categories: Scrum Tags:

Integration Hell……….

November 19, 2009 Leave a comment

Continous Integration article

Masalah integrasi selalu jadi problem. Menggabungkan hasil pekerjaan para developer pada saat akhir selalu menjadi permasalahan. Developer mengerjakan masing2 pekerjaannya di lingkungannya sendiri. Masing2 hidup dalam isolasi. Ketika akan di integrasikan timbul masalah2 yg muncul. Tidak semua service dapat dijalankan, database yg tidak di update (local update). That’s work ini my pc but not yours. Loh kemaren kan bisa skarang kok gak lagi. Atau malah saling menyalahkan satu sama lain. Hal itu sering terjadi. Malah sudah jadi tradisi.

Continous Integration menyelesaikan penyakit2 tersebut. Hal tersebut tidak tergantung tools tetapi lebih kepada disiplin. Buku Continuous Integration: Improving Software Quality and Reducing Risk (Addison-Wesley 2007) menjelaskan bagaimana mengintegrasikan pekerjaan dengan automatis. Web site dari buku tersebut ada di Integrate Button. Silahkan di explore.
Read more…

Categories: Continous Integration Tags:

Assembly Manager

November 19, 2009 Leave a comment

Setelah mengamati Assembly yg ada di .NET ternyata pada assembly tersebut terdapat metadata yang berisi dependency yang dibutuhkan oleh assemby berikut. Wow.. ini satu pencerahan yang sangat bagus untuk masalah Dependency Management kemaren.

Sepertinya dari modal di atas kita dapat membuat dependency detector untuk menganalisa ketergantungan suatu assembly terhadap assembly yang lain. Dan lebih memungkinkan lagi untuk mendeteksi clash yang terjadi antara assembly yang berbeda. Mungkin bahkan dapat dibuat sesuatu tools yang dapat mendownload dependency2 yang dibutuhkan dari central repository. Tetapi saya masih blum tw apakah sudah ada yang membuat tools tersebut atau tidak.

Code nya kira2 seperti berikut…

...
Assembly a = Assembly.LoadFrom(library);
List<AssemblyName> asmneeded = new List<AssemblyName>();
var asmName = a.GetReferencedAssemblies();
....

Read more…

Categories: .NET Tags:

Dependency Management

November 19, 2009 1 comment

Masalah dependency antar library yg digunakan kadang membuat jengkel. Apalagi dependency tersebut baik di java dan di .net tidak dinyatakan explicit. Kalau di java udh ada cara untuk mengatasinya. OSGi save the day. Klo di dotNet sampe skarng seperti nya blum ada.

Alangkah indahnya kalau dependency tersebut dinyatakan secara explicit. Permasalahan menjadi lebih besar apabila terdapat dependency terhadap library dengan versi yang berbeda. Ini membuat masalah menjadi makin runyam.

Alangkah indahnya kalau maven dan osgi hadir di .NET…..

Categories: Uncategorized