Bu site emekli olmuştur. Arşiv amaçlı olarak BT AKADEMİ sponsorluğunda yayın hayatına devam etmektedir.




C#nedir?com
 
YAZAR HAKKINDA
Çağdaş Davulcu
Çağdaş Davulcu
http://www.csharpnedir.com/
İletişme geçmek için tıklayın.
6 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler: “merhaba aktiviteleri altinda araciligi arasindaki bulunan butonuna iletisimi ilgili metodu olusturdugumuz projesi sinifi windows workflow .NET 3.x Çağdaş Davulcu
 
YAZI HAKKINDA
Türü : Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : Başlangıç
Kategori : .NET 3.x
Yayınlanma Tarihi : 15.1.2008
Okunma Sayısı : 26619
Yorum Sayısı : 0     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
emre TAŞ
Silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer
Conda install environment.yml Package 21.11.2024
Turhal Temizer
Mac OS/X Removing CUDA 21.11.2024
Burak Selim Şenyurt
Rust ile ECS Yaklaşımını Anlamak 21.11.2024
Burak Selim Şenyurt
Birlikte Rust Öğrenelim Serisi 21.11.2024
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
Windows Workflow Foundation ile İlk Projemiz
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon
Yeni bir teknoloji ile karşılaştığımızda, her zaman programcılık felsefesi gereği “Merhaba Dünya” projesi yapılır. Bir önceki bölümde Windows Workflow Foundation(WWF) ile ilgili kavramsal konulardan söz etmiştim. Şimdiki amacım ise WWF ile ilgili “Merhaba Dünya” uygulaması yapmak. Daha sonra aktivite(activity) kavramı ve out-of-the-box aktivitelerinden söz ederek Windows Workflow Foundation teknolojisinin derinlerine doğru ilerlemek.

Bilinmesi Gerekenler :

1. AutoResetEvent: System.Threading isim alanı altında bulunan AutoResetEvent sınıfı, Threadler arasındaki iletişimi sinyaller aracılığı ile sağlar. ThreadPool içerisinde bekleyen bir thread’in çalışmaya devam etmesini işaret ederken, sistemin içinde bulunduğu thread’i beklemeye alır.   Bu sınıfın Resume metodu ise sistemin içerisinde bulunan bekleyen thread’in çalışmaya devam etmesini sağlar.

  Set metodu ise threadler arasındaki iletişimi sağlayan sinyali yollar ve mevcut thread sunulmuş olur.

  WaitOne metodu, o anki thread’in sinyal gelene kadar beklemesini sağlar.

2. WorkflowRuntime: System.Workflow.Runtime isim alanı altında bulunan WorkflowRuntime sınıfı, oluşturduğumuz workflowların çalışma zamanında oluşturulmasını ve hizmet vermeye başlatılmasını sağlayan sınıftır.

CreateWorkflow metodu ile daha önceden tanımlamış olduğumuz workflow’dan bir örnek oluşturur.

3. WorkflowInstance:System.Workflow.Runtime isim alanı altında bulunan WorkflowInstance sınıfı, WorkflowRuntime sınıfı aracılığı ile oluşturduğumuz örneği yönetmek için kullanılır.

Start metodu, oluşturulan örneğin hizmet vermeye başlamasını sağlan metottur.

Uygulama Adımları:

Bir önceki aşamada örneğimize geçmeden önce bilmemiz gereken Bu bölümde ilk Windows Workflow Foundation uygulamamızı yaparken hangi adımları izlememiz gerektiğini göreceğiz.

1. İlk olarak File --> New Project menüsüne tıklayın. Açılan menüden Visual C# sekmesinin altındaki Workflow menüsünü seçin. Sol tarafta Workflow templatelerinin listelendiğini göreceksiniz. Sequential Worflow Library template’ini seçerek OK butonuna basın.



Yukarıdaki ekran görüntüsünde SequentialWorkflowLibrary haricinde boş bir Workflow projesi başlatmak için kullanılan Empty Workflow Project, State Machine kütüphanesi hazırlamak için State Machine Workflow Library, kendi aktivitenizi tanımlamak istediğinizde kullancağınız Workflow Activity Library templateleri bulunmaktadır.

2. OK butonuna bastığınızda aşağıdaki ekran görüntüsündeki gibi sequential workflow ara yüzünü göreceksiniz.



3. Solution Explorer penceresinde oluşturmuş olduğunuz sequential workflow, Workflow1.cs adıyla gözükecektir.

4. SequentialWorkflowActivity’i seçince özellikler penceresinde Completed ve Initialized gibi özelliklerini göreceksiniz. Buralara metot isimleri vererek Completed işlemi oluştuğunda sizde kendi işleriniz yaptırabilirsiniz.



5. Toolbox’a baktığınızda Code ve IfElse gibi aktiviteleri göreceksiniz. Bu aktiviteleri Sequential Workflow üzerine sürükleyip bırakabiliriz. İlerleyen bölümlerde bu aktivitelerin hepsini teker teker sizlerle paylaşacağım.



6. Sequential Workflow üzerine bir adet CodeActivity sürükleyip bırakalım. Sürükleme bırakma işleminden sonra CodeActivity’nin sağ üst köşesinde ünlem işaretinin çıktığını göreceksiniz. Bunun anlamı bu CodeActivity ile ilgili hiçbir implementasyonun yapılmadığıdır.



7. CodeActivity’i seçip özellikler penceresini açtığınızda, ExecuteCode bölümünün yanında bir ünlem göreceksiniz. Buraya CodeActivity çalıştığında çalıştırılacak metodun adını yazarak enter butonuna basın.



8. Aşağıdaki bölüme “MerhabaDunyaYaz“ yazıyorum ve Enter butonuna basıyorum.



9. Açılan kod bölümünde “MerhabaDunyaYaz” metodunun yazıldığını göreceksiniz.



10. Bizim yerimize yazılan “MerhabaDunyaYaz” metodu içerisine aşağıdaki kodu yazınız.

Console.WriteLine(“Merhaba Dünya”);


11. Bu adımdan sonra geliştirdiğimiz Workflow uygulamasını kullanmak için Solution’umuz içerisine File --> Add --> Project menüsünden yeni bir Console Application ekliyoruz.



12. Solution içerisine Console Application’ı ekledikten sonra aşağıdaki ekran görüntüsüne ulaşacaksınız.



13. Şimdi Console Application içerisindeki References bölümüne sağ tuşla tıklayın ve açılan menüden Projects sekmesine gelin. Bu sekmede biraz önce geliştirmiş olduğunuz Workflow1 adlı Sequential Workflow Library’i referans olarak projeniz içerisine ekleyin. Böylelikle bu kütüphaneyi kullanabilir hale geleceksiniz.



14. OK butonuna bastıktan sonra References sekmesini genişlettiğinizde karşınıza çıkacak görüntü aşağıdaki gibi olmalıdır.



15. Console Applicaton içerisinde bulunan References sekmesine bir kere daha sağ tuşla tıklayın ve System.Workflow.Runtime, System.Workflow.Activities, System.Workflow.ComponentModel referanslarını projenize ekleyin. Bir Workflow uygulamasını sunmanız için bu referanslara ihtiyacınız olacak.



16. Projeniz içerisine referansları da ekledikten sonra artık aşağıdaki kodları yazıp ctrl+F5 butonlarına basarak uygulamanızın çalıştığınız görebilirsiniz.

Aşağıdaki kodda multi-threading çalışabilmek için AutoResetEvent sınıfından faydalanıyoruz. Oluşturduğumuz WorkflowRuntime sınıfının wrf örneğinin WorkflowComplated ve WorkflowTerminated eventlerini kullanarak threadler arasındaki sinyalleşmeyi sağlıyoruz. Ayrıca WorkflowTerminated olayında hata çıkarsa, çıkan hatayı konsola yazdırıyoruz.



17. Ctrl+F5 butonuna bastığınızda ilk Workflow Projenizin başarı ile çalıştığını göreceksiniz.



Yukarıdaki uyguladığımız 17 adımda, sizin için gizli kutu olan Windows Workflow Foundation ile ilgili WF Tanımlama, Mevcut Proje içerisine WF’u dahil etme ve WF’u sunma işlemlerini yaptık. Bu işlemleri yaparken AutoResetEvent, WorkflowRuntime ve WorkflowInstance sınıflarının ne işe yaradıklarını ve kullanımlarını öğrendiniz. Bundan sonraki yazımda toolbox içerisinde bizlere sunulmuş olan aktiviteleri sizlerle paylaşacağım.

Çağdaş Davulcu
[email protected]
Makale:
Windows Workflow Foundation ile İlk Projemiz .NET 3.0 ve .NET 3.5 Özel Bölümü Çağdaş Davulcu
  • Yazılan Yorumlar
  • Yorum Yaz
Bu konu hakkında yayınlanan yorum bulunmamaktadır.
"Yorum Yaz" tabını kullanarak sizde yorumlarınızı yazabilirsiniz.
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • Eklenen Son 10
  • Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor