RonaldWidha

percaya sama occam razor
See also: Other Geeks@INDC

February 2010 - Posts

Das Hanselman wants a piece of this!

At Tech Ed Middle East I’ll be co-hosting an interactive session with few panelists, including Scott Hanselman. Very exciting!

teched-interactive

The topic is discussing something that is close to my heart; the role of an Architect, especially an Agile Architect. What’s the difference between a senior developer and an architect?

I’d love to hear your thoughts! Give Hanselman a piece of your mind on the day! ;)

interactive-session

Share this post: | | | |
I’ll be speaking about Domain Driven Approach with EF4 at TechEd 2010

TENA_blgr3_seeme

I’ve just noticed that the session details is already up on the TechEd Middle east website.

teched-ef 

I have to tell you that this is really exciting to be a part of the first Tech Ed in the middle east region. When you have a brand like Jumeirah, the umbrella company of the 7 star hotel, sponsoring the event, you know that you’re talking major business!

My talk (DEV303 – I’ll see you there!) will be talking about introducing Entity Framework 4 and Domain Driven approach. I’m expecting that most of the audience will be familiar with data access patterns, and new to Domain Driven Design.

We’ll look at the evolution of design from Rapid Application Development, Transaction Scripts to Domain Modelling with OR/M. Anton Delsink will introduce the concept using Linq to SQL, and will take it to the finish line using the upcoming Entity Framework 4.

image

Share this post: | | | |
Apa sih yang dianggap stateless?

Mo menanggapi diskusi apa yang dianggap stateless / stateful di milis dotnet yang berkaitan sama gimana ngebikin aplikasi di web bisa lebih nge-scale

Jadi kalo kita misah2in bahwa session-specific data mesti dilewatin ke HttpSession (ke memcache ato sql-server), sedangkan application-data mesti dilewatin ke repository dan ORM, ini adalah diskriminasi yg artificial.

Karna kedua2nya sebenernya sama2 data.

Keputusan kemana datanya mesti disimpen adalah case-per-case decision (e.g. temporary/persistent, size, write/read frequency, importance, recoverable) yang gak terikat dengan apakah itu session-data ato application-data.

Menurut aku, definisi state harus dikonstrain dari sudut pandang "hubungan client dan servernya" (konsep bukan hardware loh ya), siapa yang menyimpan konteks sebuah situasi.

  • Kalo servernya bisa mengenali konteks si client tanpa informasi dari client = servernya stateful
  • Sedangkan kalo sebaliknya, si server tidak bisa mengenali konteks si client, dan client harus ngasih tau ke server konteks dirinya = servernya stateless.

Coba liat contoh pseudo code di client untuk ngebayar sebuah transaksi:

di contoh ini, client-nya stateful, karena tau siapa user-nya.

var saya = Current.User

using ( var pelayan = new serverconnection) 

{

  var pesanan = pelayan.pesan(saya, "makanan")

  var bill = pelayan.mintaBill(saya)

  pelayan.bayar(bill)

}

sementara di server (class pelayan) itu stateless. Karena kita selalu harus ngasih tau konteks transaksi kita.

  • pas mesan, saya harus pas identitas current user...pesanan ini untuk siapa
  • pas minta bill, saya juga harus pas identitas current user...bill yang mana yang harus diambil
  • lalu pas bayar jg, saya harus ngasi tau bill mana yang mo di bayar.

contoh yang sama kalo servernya (class pelayan-nya) stateful

using ( var pelayan = new serverconnection) 
{
  pelayan.pesan("makanan")

  pelayan.mintaBill()

  pelayan.bayar()
}

di sini kita bisa liat bahwa untuk memesan makanan, si client tidak perlu mengidentifikasi dirinya.

  • Si pelayan mengingat identitas requestnya mungkin dari IP address, atau Identity Context call-nya.
  • begitu jg pas minta bill, kita bisa ngeliat bahwa si pelayan "ingat" pesanan sebelumnya
  • pas bayar, kita bisa tau bill mana yang terakhir di "aktif"kan.

informasi tentang user, pesanan dan bill tentunya disimpan di dalam "pelayan", tapi ini bukan faktor penentu apakah sebuah komponen itu statefull atau stateless, melainkan hubungan antara siapa yang mengerti konteks runtime di saat apapun.

UserRepository.FindCurrentActiveUser()

UserRepository.FindById(int id)

2-2nya repository, tapi kira2 yang mana yang stateful dan mana yang stateless?

Share this post: | | | |
Posted: Feb 02 2010, 11:11 AM by ronaldwidha | with 1 comment(s)
Filed under: ,