Replicator Activity
Bu yazımda sizlere Replicator aktivitesinin kullanımından söz edeceğim. Out-Of-The-Box aktivitelerinin bana göre en önemli bileşenlerinden biri olan Replicator Activity, iterasyon işlemlerini iş akışı içerisinde yürütür. Kısaca foreach döngüsünün iş akışı içerisindeki sürümdür.
Özellikleri:
ChildCompleted:
ChildCompleted olayı çalıştığında hangi metodun çalıştırılacağını belirtiriz.
ChildInitialized:
ChildInitialized olayı çalıştığında hangi metodun çalıştırılacağını belirtiriz.
Completed:
Completed olayı çalıştığında hangi metodun çalıştırılacağını belirtiriz.
ExecutionType:
Replicator aktivitesinin çalışma şeklini belirlediğimiz özeliktir. Replicator aktivitesinin iki türlü çalışma şekli vardır. 1- Sequence, 2- Paralel. Eğer çalışma şeklini Sequence olarak belirlerseniz, gelen koleksiyon yapısındaki elemanları teker teker ele alır ve işleme sokar. Paralel olarak belirlerseniz, gelen koleksiyon içerisindeki elemanların hepsini birden ortaya koyar ve hepsini aynı anda çalıştırmaya çalışır. Yani Paralel aktivitesi mantığı gibi… Paralel aktivitesinde işlemler tek bir thread altında yapıldığı için asenkron bir yapı olmadığını da unutmamak gerekir. Daha çok paralel çalışma tipi CustomActivity ler için geçerlidir.
InitialChildData:
Replicator aktivitesinin hangi yapıyı iterasyona sokacağını belirttiğmiz özelliktir. Burada belirteceğimiz yapının tipi IList olmalıdır. Replator aktivitesi kural gereği iterasyona sokacağı nesnenin IList olmasını ister. Böylelikle replicator aktivitesi çalıştığı anda IList koleksiyon yapısı içerisindeki elemanlarda dönmeye başlar.
Initialized:
Initialized olayı çalıştığında hangi metodun çalıştırılacağını belirtiriz.
UntilCondition:
İsteğe bağlı olan bu özellik, Replicator aktivitesinin UntilCondtion özelliğinde belirtilen koşul sağlandığında Replicator aktivitesi sonlanır.
CurrentChildData:
Replicator aktivitesi çalışırken o anda işleme soktuğu ya da sokacağı nesneyi bu özellik içerisinde tutar. Replicator aktivitesi alt aktivitesini çalıştırmadan önce onu kopyalar. Değişiklikleri kopya üzerinde yapar. Böylelikle işleme başlamadan veriler hangi durumdaydı? İşlem bittikten sonra ne durumda? Gibi sorulara da cevap verebilme fırsatı buluruz.
CurrentIndex:
Replicator aktivitesinin koleksiyon yapısı içerisindeki kaçıncı sıra numarasına sahip elemanı işleme soktuğunu ya da sokacağını verir.
Olayları:
Replicator aktivitesinin alt aktivitesinin çalışma işlemi bittiğinde fırlatılan olaydır.
Replicator aktivitesinin alt aktivitesinin kopyalanıp, alt aktivitenin çalışma işlemi başlamadan önce fırlatılan olaydır.
Replicator aktivitesi işini bitirdiğinde fırlatılan olaydır.
Replicator aktivitesi çalışmaya başlamadan önce fırlatılan olaydır.
Replicator Aktivite Tanımlaması:
Buraya kadar bütün adımları izlediyseniz Replicator akticitesini tanımlamış oldunuz.
Replicator Aktivitesini Test Edelim:
Özet:
Bu bölümde Replicator aktivitesinin iterasyon yapısını nasıl çalıştırdığından söz ettim. Ayrıca Replicator aktivitesinin içerisinde ne tipte elemanlar tuttuğunu, özelliklerini ve olaylarını açıkladım. Uygulamasını yaptığınızda daha da kavrayabileceğiniz bir konu olan Replicator aktivitesi, iş akışı geliştirirken sık sık başvuracağınız bir aktivitedir. Bir sonraki yazımda şu ana kadar okuduğunuz yazılarımla neler yapabilirsiniz? Sorusunu cevaplayacağım.