الأحد، 24 يونيو 2012

الفصل الثاني:تعلم التعامل مع لغة SQL داخل فيجوال ستوديو

 تستخدم هذه اللغة في برمجة قواعد البيانات المختلفة وفي التعامل مع قواعد  بيانات ببيئة الدوت نت
وهذه شرح في فصل لأ كثر المواضيع تداولا


مقدمة الى (SQL)
Data Retrieval- قسم استرجاع البيانات من قاعدة البيانات  2.1
2.1.1- عبارة  Select  البسيطة لأسترجاع البيانات
2.1.2- العمليات الرياضية على البيانات المسترجعة من قاعدة البيانات
2.1.3- عبارة  Where لأسترجع البيانات من قاعدة البيانات بشكل شرطي
2.1.4- دوال تستخدم مع   where  وعبارة Select
2.1.5- عبارة  Order By ترتيب بيانات المسترجعة من قاعدة البيانات
2.1.6- الربط بين الجداول
2.1.7-  الاستعلامات الفرعية

  (DML)  2.2- قسم التلاعب وتحديث  البيانات
- 2.2.1 إضافة البيانات إلى قاعدة البيانات
2.2.2- حذف البيانات من قاعدة البيانات
2.2.3- لتعديل على البيانات في المخزنة في قاعدة البيانات
2.3- قسم تكوين وتحديث الجداول(DDL)
2.3.1-  إنشاء جدول جديد
- التعديل على الجداول2.3.2
2.3.3- حذف الجداول
- إعادة تسمية الجدول 2.3.4
- 2.4   إنشاء قاعدة بيانات جديدة
2.5-  حذف قاعدة بيانات





       حمل من هنا (جديد )ا  او  من هنا او حمل من هنا


 

الاثنين، 11 يونيو 2012

ماهو MULTICAST وما فوائده ومضاره



 المواضيع

  Multicast
أين يستخدم Multicast فوائده
 الى قسمين Multicast تقسيم عناوين
الانضمام والخروج من المجموعة  في بيئة الدوت نت    
JoinMulticastGroup()    دالة
   DropMulticastGroup()  دالة
SetSocketOption  الدالة
تطبيق: برنامج عرض شاشة الكومبيوتر الى مجموعة
تطبيق: برنامج بناء غرف محادثة
تطبيق: برنامج بناء غرف محادثة للأجهزة المحمولة
 




المقالة عن الموضوع  في المرفقات

تحميل  او حمل من هنا



 

الأحد، 29 أبريل 2012

ما هو BROADCAST وفوائده ومضاره وكيف يستخدم في بيئة الدوت نت

Broadcast :-
هي عملية ارسال رسالة من شخص واحد الى مجموعة اشخاص ضمن الشبكة  وكل شخص يستلم الرسالة وتتأكد منها انها Broadcast يستقبلها ويتعامل معها  بشكل مستقل عن غيره.



أين يستخدم Broadcast فوائده ..؟

لإرسال رسالة الى اشخاص لا نعرف عنوانهم على شبكة ما  ويهمنا ان  تصلهم المعلومة مثلا شبكة محلية عليها مجموعة مستخدمين وتريد ارسال رسالة لكل المستخدمين وانت لا تعرف عنوانهم عن طريق Broadcast تستطيع الارسال للجميع دون معرفة العناوين وتفيد هذه الطريقة في معرفة عنوان الخادم بين مجموعة حواسيب اي نرسل رسالة للجميع ضمن الشبكة والخادم فقط يجيب على انه خادم ونستطيع التعامل معه بشكل مستقل

مضار Broadcast

1.كل شخص ضمن الشبكة التي نرسل لها سوف يستلم المعلومة حتى وان لم يكن متصنت على بورت الارسال اي حتى ان لم تكن الرسالة تهمه فهو يستلمها ويعالجها لمرحلة معينة ويهملها منما يؤدي الى  تأخير في عمل بقية الأعمال التي يؤديها هذا الحاسوب بسبب هذه الرسالة Broadcast

2.لا يتجاوز البث اكثر من شبكة واحدة اي اننا نرسل رسالة للموجودين ضمن شبكة واحدة فقط ولا نستطيع الارسال لأكثر من شبكة على اكثر من راوتر



فيكون الارسال Broadcast بطريقتين

1.    Limit Broadcast   :
 ارسال رسالة الى كل المتواجدين في الشبكة التي نحن فيها ويكون Broadcast هنا عنوانه 255  255.255.255.

ونحصل على هذا العنوان عن طريق دالة IPAddress.Broadcast



2.    Direct Broadcast :
 هنا نرسل الرسالة الى مجموعة اشخاص ضمن شبكة اخرى ونرسل لكل المتواجدين ضمن تلك الشبكة





حمل بقية الدرس من هنا او حمل من هنا

الأحد، 22 أبريل 2012

مشاهدة الشخص عبر الكاميرة عن بعد Vedio Coference


في هذا التطبيق نكون برنامج يرسل فيدو من كاميرة الحاسبة إلى شخص أخر عبر الشبكة ببروتوكول UDP فيستطيع الشخص البعيد مشاهدة الشخص المرسل عبر الكاميرة.لا أريد أن ادخل في موضوع كيفية التقاط الصورة خطوة بخطوة من الكاميرة وإرسالها إلى الطرف الثاني الذي يهمنا هنا كيف نحول صور الكاميرة إلى بايت لترسل عبر الشبكة.
بداية لكي نحصل على صور صافية من الكاميرة نستخدم مكاتب الديناميكية DirectShowLibو DShowNETندرجها عن طريق Add refence
برناج المرسل


برنامج المستلم بسيط فقط يستلم االبيانات ويحولها الى صورة
فائدة البروتوكول UDP هذا التطبيق : من فوائده لو فقدت Segment أو تأخرت في الوصول إلى المشاهد لا يعيد بروتوكول UDP إرسالها لأنه لا يدعم Reliablety ولا يهمه عدم وصول أي معلومة مما يؤدي إلى سرعة في استلام الفيديو وبدون حمل على الشبكة لذالك يستخدم في التطبيقات التي تحتاج إلى سرعة لأنه أن ضاعت معلومة لا يهمه يستمر بإرسال البقية
تحميل المثال

الجمعة، 20 أبريل 2012

كيف ارضيك ياعميلي (تكوين قواعد بيانات مرنة قابلة للتطوير من قبل المستخدم)

كثر من العملاء من يبحث على قواعد بيانات لا يعود اليك بعد ان تصممها له ان احتاج الى تطوير او تغير.
فتنجه الى طريقة تكون قاعدة البيانات قابلة للتطوير وقابلة لاضافة الجداول والاعمدة وقت التنفيذ اي متى مااحتاج زبوننا الى جدول جديد يضيفه تلقائيا وهو يتعشق داخل البرنامج ويتواصل مع البقية .....وبذالك يستغني العميل عن المبرمج بعد التصميم ويكون للبرنامج مرونة عالية
--------------تخيل انت مستخدم وبعد سنة احتجت الى اضافة جدول جديد يخص عمليات معينة وهاذا ما يحصل فعلا في المؤسسات الحكومية والشركات تكون قواعد بياناتها بتطوير مستمر وتغير مستمر ....فهل من المنطق ان كل مااحتاج الى تطوير يعود اليك
مثل مايكول العراقي(تطلع البطانة اغلى من الوجه)
اذن فلحل.........؟
نمكنه من اضافة جداول تتعشق بعد اضافتها مع بقية الاجزاء

شاهد هذه طريقة تمكن المستخدم من اضافة جدول الى قاعدة البيانات وقت النتفيذ
في هذا البرنامج قاعدة البيانات المتكامل





حمل المثال

الخميس، 19 أبريل 2012

بناء برنامج محادثة نصية (بطريقة بدائية) Simple chat

تصميم برنامج محادثة عبر بروتوكول TCP يكون بسيط جدا .!
وهو ببناء برنامج واحد وجعله يعمل كخادم وعميل في نفس الوقت (Client & Server) اي يرسل ويستلم بيانات بنفس الوقت وبذالك يستطيع استلام نصوص من اي شخص يرسل على نفس المنفذ التنصت له, يقع ضمن الشبكة المحلية او عبر الانترنت لكن عنوان IP الخاص به    PUBLIC IP او عبر ويب سيرفر Web Server
 ويستطيع ارسال رسائل الى اي شخص ايضا


في استلام البيانات نستخدم كلاس MYTcpListener وفي ارسال البيانات نستخدم كلاس TcpClient
و لكثير من المعلومات عن الكلاسات المستخدمة في هذا الرنامج اقرا الكتاب التالي هنا

تحميل المثال

الأربعاء، 28 مارس 2012

بناء غرف للدردشة للأجهزة المحمولة والحواسيب

كيف تصمم غرف المحادثة .عندما نصمم غرف المحادثة كل غرفة من غرف المحادثة نسميها بأسم معين ونعطيها عنوان معين ضمن نطاق Class D للعنونة كل شخص يريد ان يدخل غرفة يعمل انضمام لعنوان هذه الغرفة حتى يتحدث مع كل موجود داخل الغرفة.اذن في برمجة غرف المحادثة كل شخص يدخل غرفة محادثة  يعمل  انضمام الى المجموعة الموجودة  في الغرفة على عنوان الغرفة حتى يرسل ويستلم من المجموعة وهذا ما يحدث بظبط في غرف المحادثة واكيد يتم تحديد لكل غرفة عنوان معين من قبل الشركة الخاصة ببرنامج المحادثة .وبذالك يستطيع محادثة كل المتواجدين داخل الغرفة
لنصمم مشروع جديد كما في الشكل

كما نلاحظ كونا قائمة بأسماء الغرف الموجودة داخل  ListBox1 لعرض الغرف  في داخلها وكل شخص جديد يدخل يختار غرفة لكي ينضم اليها وندرج Button انضمام لمجموعة نسميها jionbt وندرج Button للأرسال نسميها send_button. وندرج اداة نص textbox  لعنوان الغرفة نسميها tbMulticastGroup وندرج اداة نص لمنفذ الغرفة نسميها tbPort وندرج اداة نص لأسم الشخص المختار داخل الغرفة نسميها tbname وندرج اداة نص لأستلام المحادثة من بقية اعضاء الغرفة نسميها tbMessage وندرج اداة نص لكتابة النصوص وارسالها tbMessagesend  
نريد عند الضغط على اسم مجموعة يعرف عنوانها داخل tbMulticastGroup لذالك تخزن عناوين كل غرفة وعندما نختار غرفة يظهر عنوانها وداخل حدث  ListBox1_SelectedIndexChanged نكتب الكود التالي

VB.NET CODE
Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
        Try
            If jionbt.Enabled = True Then
                Select Case Trim(ListBox1.SelectedItem)
                    Case "كروب الشياب"
                        tbMulticastGroup.Text = "224.5.4.6 "
                    Case "كروب الشباب"
                        tbMulticastGroup.Text = "224.5.4.8"
                    Case "كروب المقاعدين"
                        tbMulticastGroup.Text = "224.5.4.9"
                    Case "كروب ورد"
                        tbMulticastGroup.Text = "224.5.4.10"
                    Case "كروب طلاب"
                        tbMulticastGroup.Text = "224.5.4.11 "
                    Case "كروب مبرمجين"
                        tbMulticastGroup.Text = " 224.5.4.12"
                End Select
                ljionto.Text = ListBox1.SelectedItem
            End If
        Catch ex As Exception
        End Try
   
End Sub

الأن بعد ان حصلنا على عنوان الغرفة ومنفذها نريد ان ننضم اليها داخل Button انضمام لمجموعة  jionbt  نعمل تشغيل لدالة التنصت والأنضمام  الى مجموعة   نكتب الكود التالي


VB.NET CODE
myth1 = New Thread(New System.Threading.ThreadStart(AddressOf JionToGropMulticast))
myth1.Start()
jionbt.Enabled = False

JionToGropMulticast هي الدالة التي ننضم بها الى المجموعة ويكون كودها

VB.NET CODE
Dim client As UdpClient
Dim myth1 As Thread
Sub JionToGropMulticast()
Dim port As Integer = Val(tbPort.Text)
client = New UdpClient(port)
Dim group As IPAddress = IPAddress.Parse(tbMulticastGroup.Text)
client.JoinMulticastGroup(group, 255)
Dim remoteEP As IPEndPoint = New IPEndPoint(group, port)
Do
Dim ep As IPEndPoint = Nothing
Dim buffer() As Byte = client.Receive(ep)
Dim message As String = System.Text.Encoding.UTF8.GetString(buffer)
Me.tbMessage.Text += message + vbCrLf
Loop
End Sub
بعد ان انضمينا الى المجموعة في Button للأرسال الى المجموعة  send_button  نستدعي دالة الأرسال لمجموعة sendTOGrop  ونرسل لها عنوان المجموعة ورقم بورت التنصت للمجموعة والرسالة

VB.NET CODE

sendTOGrop(tbMulticastGroup.Text, Integer.Parse(tbPort.Text), Encoding.UTF8.GetBytes(tbname.Text & ":" & tbMessagesend.Text))
دالة sendTOGrop يكون كودها


 
VB.NET CODE

 
 Public Sub sendTOGrop(ByVal mcastGroup As String, ByVal port As Integer, ByVal messageByte As Byte())
Dim ip As IPAddress = IPAddress.Parse(mcastGroup)
Dim s As Socket = New Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp)
s.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, New MulticastOption(ip))
s.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.MulticastTimeToLive, 255)
Dim ipep As IPEndPoint = New IPEndPoint(IPAddress.Parse(mcastGroup), port)
s.Connect(ipep)
s.Send(messageByte, messageByte.Length, SocketFlags.None)
s.Close()
End Sub


 
برنامج بناء غرف محادثة للأجهزة المحمولة
كيف تصمم غرف المحادثة للأجهزة المحمولة.نفس الفكرة السابقة .عندما نصمم غرف المحادثة كل غرفة من غرف المحادثة نسميها بأسم معين ونعطيها عنوان معين ضمن نطاق Class D للعنونة كل شخص يريد ان يدخل غرفة يعمل انضمام لعنوان هذه الغرفة حتى يتحدث مع كل موجود داخل الغرفة.اذن في برمجة غرف المحادثة كل شخص يدخل غرفة محادثة  يعمل  انضمام الى المجموعة الموجودة  في الغرفة على عنوان الغرفة حتى يرسل ويستلم من المجموعة وهذا ما يحدث بظبط في غرف المحادثة واكيد يتم تحديد لكل غرفة عنوان معين من قبل الشركة الخاصة ببرنامج المحادثة .وبذالك يستطيع محادثة كل المتواجدين داخل الغرفة
لنصمم مشروع Smart Device جديد كما في الشكل
كما نلاحظ كونا قائمة بأسماء الغرف الموجودة داخل  ListBox1 لعرض الغرف  في داخلها وكل شخص جديد يدخل يختار غرفة لكي ينضم اليها وندرج Button انضمام لمجموعة نسميها jionbt وندرج Button للأرسال نسميها send_button. وندرج اداة نص textbox  لعنوان الغرفة نسميها tbMulticastGroup وندرج اداة نص لمنفذ الغرفة نسميها tbPort وندرج اداة نص لأسم الشخص المختار داخل الغرفة نسميها tbname وندرج اداة نص لأستلام المحادثة من بقية اعضاء الغرفة نسميها tbMessage وندرج اداة نص لكتابة النصوص وارسالها tbMessagesend  
نريد عند الضغط على اسم مجموعة يعرف عنوانها داخل tbMulticastGroup لذالك تخزن عناوين كل غرفة وعندما نختار غرفة يظهر عنوانها وداخل حدث  ListBox1_SelectedIndexChanged
والكود نفس البرنامج السابق


تحميل المثال