الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تقنية ال .NET Remoting

مغلق
بدأه Ayoub JAMAL EL IDRISSI في 14 يونيو 2006 · 19 رد · 2,495 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع
اقتباس
ليوم سوف نتكلم عن تقنية قد تكون غائبة عن العديد و هي ال .NET Remoting، هذه التقنية هي شبيهة الى حد ما بال Web Service طبعا هناك اختلاف لكن الشبه يكمن في كون هذه التقنية تمكنك من انشاء تطبيقين واحد Client و الثاني Server حيث انه بين هذين التطبيقين يوجد Object مشترك يمكن ان يصل الى ال Client من خلال الServer و هذا الكائن يمكن ان يكون Class أو Interface و المميز في هذه التقنية انها تعتمد على بروتوكول TCP و الذي يرسل و يستقبل البيانات بطريقة Binary و هذا فرق من بين الفروق بينه و بين ال Web Service و الذي يستعمل البروتوكول http+SOAP و الميزة هنا ا نال TCP + Binary أسرع في ارسال البيانات حيث انه اقل "ثرثرة" اذا صح التعبير اما ال SOAP فهو كثير الكلام يعني انه عندما نرسل بينات عن طريقه يتم ارسالها على هيئة ملف XML و لهذا فنقل البيانات يأخذ وقتا أكثر...

لتحميل الدرس كاملا على هيئة PDF أدخل هنا

والرابط المباشر من هنا :

http://www.vbnetworld.com/pdf/Net_Remoting.pdf

أو المرفق :

Net_Remoting.pdf

#2

أريد فقط ان اعرف هل هذا النوع من الدروس لايهمكم ؟؟؟

ام هل تريدون ان اطرح مواضيع من نوع "كيف تفتح ملف تكست" او "كيف تضيف و تحذف و تبحث في قاعدة البيانات"!!!!

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

و السلام عليكم

#3

اخى crazy-man جزاكم الله كل الخير الموضوع بحق رائع ونقلة نوعية فى المواضيع والمقالات المطروحة،،،نرجو الاستمرار

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

الجدير بالذكر ان .NET Remoting هو التطور الطبيعى لـDCOM وبرمجة التطبيقات والكائنات الموزعة،،،,وهذه التقنية مهمة جدا فى تطبيقات قواعد البيانات

N-tier Application

اقتباس
ام هل تريدون ان اطرح مواضيع من نوع "كيف تفتح ملف تكست" او "كيف تضيف و تحذف و تبحث في قاعدة البيانات"!!!!

عندنا ما يكفى لا نريد المزيد :P

VB.NET and C# Comparison

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

002.gif

=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

screen_shot_2011-05-19_at_12.44.49_pm.pn

#4

أخي الكريم درس أكثر من رائع

اقتباس
كيف تفتح ملف تكست

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

#5

توكل على الله اخي Crazy Man وان شاء الله راح اتابع دروسك لانه هذا الموضوع بيروح عليه في الدوره الي باخدها في احد المراكز بسبب غيابي عشان الامتحانات ...

انت طمنتني يعني ممكن الحق معهم بالمركز بعد قراءة موضوعك ان شاء الله

#6

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

#7

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

صراحة رووووووووووووعه والموضوع اتى في وقته تماما حيث اني قمت بوضع سؤال هنا اعتقد ان اجابته هي ال .NET Remoting :lol:

لقد قمت بانزال الدرس امس ولكن في وقت متاخر من الليل :wacko: ولقد جربت تطبيق ما قلته ولكن صادفتني بعض الاخطاء التي كنت اود ان اعرضها عليك

ولكن للاسف تاتي الرياح بما لا تشتهي السفن لقد انقطع التيار الكهربائي حيث ان الصيف قد اتى هنا وكل عام وانتم بخير :lol: وما شاء الله وزارة الكهرباء عندنا ما تقصر يعني انقطاعات في كل مكان والعذر هو ان الصيف قد اتى والحمل زائد على المولدات :( ما علينا ان شاء الله يعود التيار الكهربائي ومن ثم ساعرض لك المشكلة

ولكن عندي سؤال خفيف :rolleyes:

اذا فرضنا انه لدي الفئة التالية :

Class TestRemoting
public TestMsg as string 
End Class

dim i as new TestRemoting

فهل استطيع هنا ان ارسل i ام لا :rolleyes: :rolleyes:

اخوكم Dr.Pain

#8

نعم تستطيع و ذلك واضح في المثال حيث اننا ارسلنا كلاس او reference منه انطلاقا من السيرفر الى الكلاينت

#9

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

الظاهر ان السهر قد اثر على تفكيري نظرا لقلة النوم ولكني الحمد لله قمت بمراجعة الكود ومشى الحال

والحمدلله .

ان الموضوع الذي قدمته اخي Crazy Man لهو اكثر من رائع حيث انه قد يغنيك عن استخدام

ال Socket ووجع دماغها ...

المهم انا صممت برنامجيين يتم في احدهما تعريف فئة اسمها Devices يتم من خلالها

فتح واغلاق السواقة الخاصة بالقرص المدمج وسوف تجدون الملف في المرفقات .

ولكن نظرا لعدم امتلاكي لشبكة كي اقوم بتطبيق الموضوع عمليا فانني لم اعرف هل قمت فعليا

باستخدام الفئة devices لفتح سواقتي انا ام لفتح سواقة السيرفر ولتوضيح الموضوع اكثر انظر الشكل

التالي :

18_06_06_10_29_10_1150651750Explaine.JPG

لاحظ ان هناك برنامجيين الاول اسمه Server Program والذي يحتوي على تعريف الفئة Devices

والثاني اسمه Controller Program وهو الذي يقوم بتعريف متغيرات من الفئة Devices ..

السؤال هنا يقول هل قام البرنامج المسمى Controller Program بفتح سواقة القرص المدمج الموجودة

في جهازه ام انه قام بفتح السواقة الموجودة في الجهاز الاخر الذي يحتوي على البرنامج المسمى

Server Program ..... ؟؟؟؟؟؟؟؟؟

الرجاء ممن لديه شبكة ان يقوم بتجريب البرنامج على الشبكة واخبارنا بالنتيجة , ولكن لاحظ

انك سوف تقوم بوضع ال IP Address للجهاز الذي سوف تتصل معه وذلك بدلا من Localhost

وقد المحت لهذه النقطة في الكود .

اخوكم Dr.Pain

CdRoom.zip

#10

طبعا التنفيذ سيكون عند ال Controller Program ببساطة لأن ال Controller Program سيقوم بانشاء نسخة من الكلاس و تنفيذ الكود بالتالي عنده و ليس عند السيرفر و لو أردت التأكد قم بانشاء كلاس مثلا فيه متغير من نوع String اسمه مثلا MSG و يكون Public و يكون محتواه مثلا "Love VB.NET" و قم باظهار محتوى المتغير من خلال الكلاينت ستجد ان ال Title الخاص بال MsgBox الذي اظهرت فيه محتوى المتغير MSG يساوي اسم مشروع الكلاينت اذا فهو قد تم تنفيذه في الكلاينت و ليس السيرفر اتمنى ان تكون الامور واضحة

#11

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

الفكرة وضحت الان تمام التمام :lol: :lol: لكن لا يظل السؤال قائما كيف اقوم بنقل كائن من برنامج الى اخر عبر الشبكة :wacko: :wacko:

اخوكم Dr.Pain

#13

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

الله المستعان اخي Crazy Man لا تقل عفوا فنحن اخوة هنا وجزاك الله الف الف الف خير على شرح تقنية Net Remoting :lol: :lol: :lol:

انا ان شاء الله اذا وجدت الاجابة با حطها في المنتدى وكمان باحط المشروع ايلي شغال عليه الان بس انت ادعي لي ربنا يوفق :lol: سلام يا اخي الحبيب

اخوكم Dr.Pain

#15
اقتباس
لكن لا يظل السؤال قائما كيف اقوم بنقل كائن من برنامج الى اخر عبر الشبكة

لنقل كائن من جهاز الى اخر ليتم التعامل معه من خلال الكلاينت يتم ذلك بعمل بارسال الكائن بالقميةByValue وليس بالمرجع ByRef لان الاخيرة لا ترسل الكائن للكلاينت وانما يتم يتم التعامل معه من خلال الكلاينت عن طريق البروكسى بارسال رسائل للخادم يقوم بتنفيذها حيث التنفيذ والمعالجة تتم جهة الخادم

كيف يتم ارسال الكائن بالقيمة؟؟

يتم ذلك بعمل تسلسل للكائن اما بشكل ثنائى Binaryاو على هيئة XML ويتم ترحيلة الى الجهة التى قامت بالطلب

الكائنات او الفئات التى نريد ارسالة بالقيمة لا نجعها ترث من الفئة MarshalByRefObject وانما بجعل الفئة قابلة للتسلسل وذلك باضافة المواصفة Serializable

مثال

<Serializable()>_
  Public Class SampleClass
'your code here
End Class

او بتضمين الواجهة Interface ISerializable

VB.NET and C# Comparison

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

002.gif

=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

screen_shot_2011-05-19_at_12.44.49_pm.pn

#16

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

حسنا سوف اقوم بتوضيح الموضوع بشكل اكبر اخي SOLO.NET ...

لقد قمت بتصميم برنامجيين احدهما يدعى Server والاخر يدعى Client ولقد قمت بتصميم فئة قابلة للتسلسل اسمها SerialObject

في كلا البرنامجيين ... :lol: :lol:

وعن طريق الفئة NetworkStream والفئة StreamWriter استطعت ارسال متغير الفئة SerialObject

من برنامج ال Client الى برنامج ال Server .

مشكلتي هي في كيفية استقبال متغير الفئة SerialObject في ال Server ... :( مع الملاحظ انني استخدم ال Socket لربط البرامج B)

اخوكم Dr.Pain

SendObjectViaNetwork.zip

#17

السلام عليكم

اخي Dr.Pain

بكل بساطة في حالة إرسال Object لإستقباله يلزم عمل casting لذلك الـObject بناء على الصيغة التي ارسل عليها انظر المثال التالي لإرسال الملف عبر الـSocket واسم الملف كـSerialization Object :

/index.ph...693&st=135#

انظر ايضا شرح مفصل عن هذا الموضوع:

/index.ph...693&st=120#

بتوفيق

#18

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

جزاك الله خيرا اخي فادي والله انك روووووووووووووووووووووووووووووووووووعه :lol: :lol: اني احبك في الله يا اخي الحبيب :rolleyes:

اليوم ان شاء الله راح اجرب الموضوع B) ......... في امان الله ....

اخوكم Dr.Pain

#19

موضوع رائع من شخص مبدع

وليت تستمر في المواضيع الخاصة بالتقنية الحديثة

#20

اخى الفاضل جزاكم الله خيرا موضوع رائع

هذا الموضوع مغلق.

مواضيع مشابهة