العودة   منتدى رياض الجنة - Riad Al-Ganah > الرياض التقنية > روضة الكورسات والدورات التقنية والعلمية > روضة دورات تقنية الـ .NET بلغاتها المختلفة > دورة .NET 2008 من منتدى فيجوال بيسك للعرب

دورة .NET 2008 من منتدى فيجوال بيسك للعرب مقدم الدورة : أحمد جمال ، نوع الدورة : كتابية مصحوبة بصور ، حالة الدورة : انتهت ، عدد الدروس : 80 درس . مستوى الدورة : من البداية للاحتراف .

إضافة رد

 
أدوات الموضوع انواع عرض الموضوع
  #1  
قديم 03-11-2010, 06:18 PM
الصورة الرمزية khaledbelal
khaledbelal khaledbelal غير متواجد حالياً
مبرمج المنتدى
الادارة تكليف لا تشريف
 
تاريخ التسجيل: Oct 2009
العمر: 34
المشاركات: 3,606
افتراضي الدرس الثامن والستون : مقدمة إلى عالم wwf - دورة .net 2008

بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته .

منذ الاصدار .net 3.0 تم اضافة ما يسمى بـ Windows Workflow Foundation ويعرف اختصاراً WWF ، وهي مجموعة من المهام والدوال API تسمح لك بادارة ومراقبة وتنفيذ الـ workflow او سير العمليات إن صحت الترجمة .
طبعاً تعد هذه الخاصية واحدة من انفع الخصائص لمهندسي البرمجيات التي تمت اضافتها داخل ال viusal studio حيث اصبح بالامكان دمج ال workflows مع الكود أو التنفيذ الفعلي مباشرة .
ال WF او ال Workflow هي مجموعة العمليات التي يتم تشكيل البرنامج بناء عليها ، حيث يتكون البرنامج من مجموعة مرتبطة مع بعضها البعض من ال Business Process والتي تحتوي بدورها على مجموعة من المهام ذات الصلة بينها وبين بعضها البعض والتي تعمل سوية .

مثال :
خدمة الصيانة لمنتج : يحتوي هذا البرنامج على طلب الايصال وادخال رقمه وعمل Check على قاعدة البيانات للتأكد من وجوده ثم تقديم خدمة الصيانة ثم طباعة ايصال صيانة .
هذه العملية كلها تسمى Business Process والعناصر الداخلية تسمى tasks والبرنامج يتكون من عدة Business Process .
هناك العديد من البرامج التي تقدم خدمة اداة ال Workflow ، ولكن الميزة هنا انها مرتبطة ارتباطاً وثيقاً بالكود بحيث يمكن عمل trace لكل واحدة على حدة وتتبع الأخطاء إن وجدت ، اضف إلى ذلك امكانيه التعديل لاحقاً في الجزئيات الكبرى بسهولة ويسر .

سنبدأ ابتداء من الدرس القادم في معرفة WWF .

مكونات واساسيات WF :

ال WF هي كود قابل للتنفيذ وليس فقط مجرد رسومات توضيحية مثل visio ، لذا فالجمل الشرطية والتكرارات وخلافه الموجودة في ال WF يتم تنفيذها فعلياً .
ولهذا السبب فال WF تحتوي على namespaces و assemblies وخلافه شأنها شأن اي مكونات لل .net .

Workflow Activity :

يتم توصيف العمل الخاص بنا على شكل Activities ويتيح لنا الفيجوال ستوديو وسائل للربط والانتقال بينهم وبين البعض مثل if else أو delay لفترة أو حصول Invoke معين او يتم تنفيذها على شكل خطوات معينة :

البدأ مع WF :

قم بانشاء مشروع جديد ، اجعل نوع المشروع Workflow ثم اختر Empty Workflow :



Empty Workflow : مشروع فارغ لا يحتوي على اي تنسيقات خاصة ، اضافة للأنواع التالية والتي تعد اساسيات عالم تصميم البرمجيات :

Sequential Workflow :
النوع الأول من انواع ال Diagrams التي توضح ال UML الخاص بنا ، يتم توضيح العمل فيه على شكل عمليات متلاحقة متتالية توضح الشكل العام لكامل العمليات ، وهو النوع الأشهر والأكثر استخداماً :



State Machine Workflow :
تهتم اكثر ما تهتم بالأحداث عن طريق مجموعة من الطلبات والتغييرات :



تطبيق عملي :

سنقوم الآن بعمل تطبيق بسيط ، سنقوم بالطلب من المستخدم ادخال كلمة المرور ، في حالة كون كلمة المرور صحيحة سوف نقوم بعرض رسالة ترحيب وإلا اعادة المحاولة لادخال كلمة المرور مرة أخرى .

لذا قم ببدء مشروع جديد Sequential Workflow Console Application وسمه كما تريد ، ستظهر لك شاشة المصمم بالشكل التالي كبداية :



الآن سنقوم بادراج Code Activity وسنضع الأمر التالي في الحدث codeActivity1_ExecuteCode :

C#:
كود PHP:
private void codeActivity1_ExecuteCode(object senderEventArgs e)
        {
            
Console.ForegroundColor ConsoleColor.Yellow;
            
Console.WriteLine("***** First WPF Example *****\n\n");
            
Console.ForegroundColor ConsoleColor.White;
        } 
vb.net:
كود PHP:
Private Sub codeActivity1_ExecuteCode(ByVal sender As ObjectByVal e As EventArgs
    
Console.ForegroundColor ConsoleColor.Yellow 
    
    Console
.WriteLine("***** First WPF Example *****" Chr(10) & "" Chr(10) & ""
    
    
Console.ForegroundColor ConsoleColor.White 
End Sub 
الخطوة التالية هي اضافة حلقة تكرارية لا يتم الخروج منها الا بادخال كلمة مرور صحيحة ، لذا قم بسحب While Loop ، وسنقوم بتحديد ال Condition الذي ستخرج منه اما بناء على :

- دالة function تعود بقيمة منطقية Boolean بحيث يتم استدعائها مع كل Loop وتعيد false للتوقف أو true للاستمرار.
- او بناء على declarative rule condition اي عن طريق جملة خاصة .

في مثالنا هذا سنعرف دالة AskAgain والتي ستعيد لنا True في حالة الجملة الخاطة لاعادة السؤال فيما تعيد لنا false في حالة الوصول لكلمة السر الصحيحة .

لذا من الشاشة الجانبية اكتب اسم الدالة في الشرط Condition بالشكل التالي - بعد تعريف خاصية بكلمة المرور اولاً - :



وكود الدالة :
C#:
كود PHP:
public string Password getset; }
        private 
void AskAgain(object senderConditionalEventArgs e)
        {
            
Console.Write("Enter Password: ");
            
Password Console.ReadLine();
            if (
Password == "Ahmed Gamal")
                
e.Result false;
            else
                
e.Result true;
        } 
vb.net:
كود PHP:
Public Property Password() As String 
    Get 
    End Get 
    Set 
    End Set 
End Property 
Private Sub AskAgain(ByVal sender As ObjectByVal e As ConditionalEventArgs
    
Console.Write("Enter Password: "
    
Password Console.ReadLine() 
    
    If 
Password "Ahmed Gamal" Then 
        e
.Result False 
    
Else 
        
e.Result True 
    End 
If 
End Sub 
الآن خطوتنا الأخيرة هي اضافة Activity فيما لو لم يتم ادخال كلمة مرور صحيحة ، سيتم فيها طباعة كلمة This Password is Wrong ، لذا قم بسحب Activity وضع هذا الكود فيها :
C#:
كود PHP:
private void codeActivity2_ExecuteCode(object senderEventArgs e)
        {
            
Console.WriteLine("This Password is Wrong...");
        } 
vb.net:
كود PHP:
Private Sub codeActivity2_ExecuteCode(ByVal sender As ObjectByVal e As EventArgs
    
Console.WriteLine("This Password is Wrong..."
End Sub 
هكذا سيكون الشكل الكامل لل Sequential WF بالشكل التالي :



وشاشة النتائج :



*** لاحظ ان مثل هذا ال WF يمكن تطبيقه على نظام دخول معقد جداً كما هو الحال في نظام دخول بسيط ، نفس الهيكل مع اختلاف محتويات الكود لكل منهما ، لكن الصورة العامة واضحة وهو ما يفيد كثيراً في تسهيل قراءة وفهم محتويات الكود اضافة لعمليات ال trace وال Debug .

WF Code Liabrary :

في هذه النوعية اصبح بامكاننا انشاء WF يمكنه العمل مع ASP.net أو مع Windows Forms وليس فقط Console ، حيث سيتم تحويلها إلى ملف .dll ومن ثم استخدامها في اي تطبيق آخر .

إلى هنا انتهت دروسنا حول WF ، كنت اود اضافة درس حول ما يحدث حقيقة في عالم ال WF ولكني وجدت نفسي غير مؤهل لاعطاء مثل هذا الدرس في حين انني لم اجرب فهم العملية بطريقة كاملة ، لذا اعتذر .

درسنا القادم سيكون عن WCF بمشيئة الله تعالى ...

والله الموفق ...
والسلام عليكم ورحمة الله وبركاته .


توقيع : khaledbelal



(أَفَأَمِنَ أَهْلُ الْقُرَى أَن يَأْتِيَهُمْ بَأْسُنَا بَيَاتاً وَهُمْ نَآئِمُونَ {97} أَوَ أَمِنَ أَهْلُ الْقُرَى أَن يَأْتِيَهُمْ بَأْسُنَا ضُحًى وَهُمْ يَلْعَبُونَ {98}
أَفَأَمِنُواْ مَكْرَ اللّهِ فَلاَ يَأْمَنُ مَكْرَ اللّهِ إِلاَّ الْقَوْمُ الْخَاسِرُونَ {99}).
سورة الأعراف.

رد مع اقتباس
إضافة رد


تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
الدرس الواحد والستون ADO.net - دورة .net 2008 khaledbelal دورة .NET 2008 من منتدى فيجوال بيسك للعرب 1 05-03-2011 10:47 PM
الدرس الثالث : عالم ADO.net وما يتعلق به - الجزء الثالث - دورة .net 2008 khaledbelal دورة .NET 2008 من منتدى فيجوال بيسك للعرب 0 03-11-2010 03:14 PM
الدرس الخامس والخمسون : مقدمة إلى Wpf - دورة .net 2008 khaledbelal دورة .NET 2008 من منتدى فيجوال بيسك للعرب 0 03-04-2010 06:28 PM
الدرس السابع عشر : مقدمة إلى مبادئ Oop دورة .net 2008 khaledbelal دورة .NET 2008 من منتدى فيجوال بيسك للعرب 0 02-19-2010 08:16 PM
الدرس الثالث عشر : مقدمة إلى الفئات Classes دورة .net 2008 khaledbelal دورة .NET 2008 من منتدى فيجوال بيسك للعرب 0 02-19-2010 07:56 PM

استضافة الحياة

الساعة الآن 11:40 PM.


Powered by vBulletin® v3.8.4, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. , TranZ By Almuhajir
النسخة الفضية
Ads Management Version 3.0.1 by Saeed Al-Atwi

SlamDesignzslamDesignzEdited by Riad Al-Ganah Team - جميع الحقوق محفوظة لشبكة رياض الجنة

Privacy Policy Valid XHTML 1.0 Transitional By SlamDesignz Valid CSS Transitional By SlamDesignz