Archive
NServiceBus vs WCF
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…
Build Automation (NAnt + MSBuild)
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…
selamat datang Scrum…….
Kemaren milis Scrum Indonesia dibuka.. Silahkan bergabung dan berdiskusi…
di sana ada resource slide perkenalan scrum dari Sir Joshua Partogi.
Banyak resource2 blajar yang lain diantaranya :
Happy Scrum…..
Integration Hell……….
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…
Assembly Manager
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(); ....