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

البرامج المتعددة الطبقات

بدأه Jamalbootruba في 13 يناير 2012 · 7 رد · 2,051 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

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

واريد منكم ان تناقشوني :

هل Datset عند استخدامها فأنا استخدم مفهوم البرمجة N-Tier او لا

وهل ado.net entity اصنفها على هذا المفهوم

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

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

لأنني من خلال تعاملي معها فهي بهذا التسلسل

database >>>dataAdapter>>>> dataset>>>>web form or winform

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

ارجو انني قد اوضحت ما اريد ان اناقشه معكم

تزودوا فأن خيرا الزاد التقوى

اللهم انصر اخواننا المسلمين المجاهدين في كل مكان

#2

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

اخي يمكنك برمجة تطبيق يستخدم الـ N-Tier باستخدام الـ DataSet ولكن لنقف برهة على الـ DataSet نجد انها تجمع طبقة الـ Data Access Layer والـ Busness Logic Layer ولكن في الفيجوال ستديو 2008 يمكننا فصل هيكل قاعدة البيانات - وهذا ما نراه في الـ DataSet من فئات تمثل الجداول - عن الـ Data Adapters.

اما بالنسبة للتقنيات يمكنك استخدام الـ LINQ to SQL او الـ EntityFramework كـ Data Access Layer

1

.:: Wish to become better and better ::.

#3

سامحني لربما انا مخطئ انا استخدم فيجول بيسك 2008

وعندما اقوم بوضع Dataset في المشروع سيقوم بوضع Dataset designer وفيها الفئات الخاصة بالجداول هل كلامي او مافهمته صحيح؟

وبما اننا نقوم بالتعامل مع الفئات وليس البيانات مباشرة فهنا قمنا بتطبيق المفهوم الخاص ب N-Tier هل مفهومي صحيح؟

تزودوا فأن خيرا الزاد التقوى

اللهم انصر اخواننا المسلمين المجاهدين في كل مكان

#4

السلام عليكم ...

  1. التطبيقات متعددة التطبيقات n-tier applications تعتمد على فكرة تقسيم التطبيق إلى عدة طبقات , غالبا ثلاثة أي n=3 (يوجد أقل و أكثر من ذلك) و هذه الطبقات هي :
    1. Data Access Layer : طبقة الوصول للبيانات , و هي تتعامل مع قاعدة البيانات و فيها كود الاتصال و الــ sql ..
    2. Business Layer : طبقة منطق التطبيق , و فيها المنطق الخاص بالتطبيق .
    3. User Interface : واجهة المستخدم , من buttons و labels و forms و الخ ..
    4. post-94677-043330000 1326458889_thumb.pn
    5. الفائدة من تقسيم التطبيق إلى عدة طبقات :
      1. تنظيم الكود .. و سهولة قرائته و فهمه و بالتالي تعديله .. فليس معقولا أن تسحب button إلى الــ Form و تبدأ بكتابة عبارات الــ SQL داخله (طريقة جيدة في التطبيقات الصغيرة من أجل التعلم )..أما في الــ n-tier فالكود الخاص بعمليات قاعدة البيانات , مفصول عن الكود الخاص بمنطق التطبيق , عن الكود الخاص بواجهة المستخدم .
      2. تعتبر الــ n-tier طريقة جيدة لبناء التطبيقات الموزعة distributed Applications لأن الطبقات مفصولة .. و بالتالي من السهل وضع طبقة منطق التطبيق على خادم و طبقة الوصول للبيانات على خادم آخر..
      3. يمكننا تغيير مخدم قواعد البيانات (من sql server إلى Oracle مثلا) بسهولة بتغيير طبقةالــ Data Access Layer دون أي تغيير في التطبيقات الأخرى ..

[*]يوجد العديد من مولدات الكود Code generation التي تقوم بتوليد طبقة DAL و طبقة الــ BL (أو جزء منها) مثل LLBLGEN رابط Using a LLBLGen-generated data-access tier .[*]يمكنك تطوير Code Generator خاص بك (معظم شركات برمجة تطبيقات قواعد البيانات تقوم بذلك) , أو كتابة Template (قالب) لمولد الكود MyGeneration .[*]أنا استخدم My Generation مع (نسخة معدلة) من Doodads ..[*]حاليا الــ entity framework و الــ Linq هي الأكثر استخداما إضافة إلى NHibernate .[*]3-tier architecture in C# و في المرفقات يوجد مثال ضغير لذلك .

3Tier.rar

المرفقات
3tier.png
1

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#5

اخي حسام بارك الله فيك

انا فهمت معمرية N-Tier وسؤالي هل Ado.net entity وdataset عند استخدامها استطيع الاستغناء عن صميم كلاسات الاتصال والخصائي والاوامر هذا هو سؤالي

تزودوا فأن خيرا الزاد التقوى

اللهم انصر اخواننا المسلمين المجاهدين في كل مكان

#6

السلام عليكم ..

اقتباس
انا فهمت معمرية N-Tier وسؤالي هل Ado.net entity وdataset عند استخدامها استطيع الاستغناء عن صميم كلاسات الاتصال والخصائي والاوامر هذا هو سؤالي
نعم تستطيع الاستغناء عنها .. طالما أنه يمكن القيام بعمليات الــ CRUD
1

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#7

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

ولدي سؤالين الاول هل ستلبي لي كل طلباتي اقصد في التحكم بقاعدة البيانات او الافضل ان استخدم الكلاسات الخاصة

والثاني يوجد اداة اسمها DataRepeater لم اجدها عندي مع اني سمعت انها موجودة حتى في VB2005

وانا استخدم VB2008 Pro ولم اجدها

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

تزودوا فأن خيرا الزاد التقوى

اللهم انصر اخواننا المسلمين المجاهدين في كل مكان

#8

السلام عليكم ...

  1. اقتباس
    ولدي سؤالين الاول هل ستلبي لي كل طلباتي اقصد في التحكم بقاعدة البيانات او الافضل ان استخدم الكلاسات الخاصة
    نعم تلبي .
  2. بالنسبة للـ data repeater فحسب معلوماتي انها موجودة بشكل افتراضي في visual stdio 2008 sp1 و visual studio 2010 ..و يمكنك تحميلها من هنا غن لم تكن موجودة (visual basic powerpacks) DataRepeater2_thumb.jpg

بالتوفيق

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

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