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

الملف التنفيذي ومكتبات الربط الديناميكي.. هل تبطئ عمل البرنامج؟

بدأه blackeyes في 11 أكتوبر 2008 · 12 رد · 1,145 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

منذ فترة يراودني هذا السؤال

واتمنى ان نجد من يعطينا الاجابة الشافية له

وهو

هل تقسيم البرنامج الى مكتبات ربط ديناميكية dll يبطئ عمل البرنامج؟

يعني هل الافضل انشاء ملف تنفيذي وحيد ام تقسيم بعض اجزاء البرنامج الى ملفات dll

وياليت ان يتم ذكر السلبيات والايجابيات لكلا الحالتين ان امكن

وشكرا لكم

#2

برأيي البسيط ان كتابة مكتبات والربط بينها افضل من كتابة البرنامج كتلة كود واحدة

وذلك ٍٍلأن الطريقة الاولى تعطي مساحة من التطوير اكبر من الطريقة الثانية

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

#3
اقتباس
هل تقسيم البرنامج الى مكتبات ربط ديناميكية DLL يبطئ عمل البرنامج؟

الي حد ما يوفر ال dll loading

اقتباس
يعني هل الافضل انشاء ملف تنفيذي وحيد ام تقسيم بعض اجزاء البرنامج الى ملفات DLL

في حالة البرامج المتوسطة و الكبيرة اظن من الافضل التقسيم حسب ال layers or tiers الموجودة في البرنامج

#4

شكرا اخوتي على التفاعل

ولكن الى اي حد يكون البرنامج فيه ثقيل (بطئء) ... يعني عدد ملفات dll كم؟

6 مثلا كثيرة

يعني انا عزلت المكتبات على اساسين

الاول - الاشياء اللي بدها كود كبير جدا عملتها مكتبات

الثاني - الاشياء التي تقوم بتأدية مهمة كبيرة متعلقة باكثر من مهمة مثل الطباعة

اقتباس
من الافضل التقسيم حسب ال layers or tiers

اخي ممكن تعطينا مختصر عن هذا.

#5

أعتقد أن الموضوع ليس بعدد الـDLL بل بحجمها. و لكم من ناحية أخرى أعتقد أن كثرة الـDLL قد تؤثر سلباً.

نصيحتي: لا تفكر كثيراً في هذا الموضوع الآن. أحد أكبر أخطاء البرمجة هي محاولة تحسين الأداء وقت التصميم. فهذا يضيع وقت و مجهود على مشاكل قد لا تكون موجودة أو مبالغ فيها. الطريقة الصحيحة هي بناء البرنامج بقدر معقول و واقعي من الأداء ثم تجربته بشكل شامل ثم (إذا تطلب الأمر) يتم تحسين الأداء في المناطق التي تحتاج إليها حيث تكون لديك الآن فكرة أفضل في أين تكمن "عنق الزجاجة".

#6
اقتباس
من الافضل التقسيم حسب ال layers or tiers

اخي ممكن تعطينا مختصر عن هذا.

ربما يوجد عندك اكثر من physical layer بمعني يوجد سرفر لقاعدة البيانات و اخر لل data access code و اخر لل application code او البرنامج عبارة عن اجزاء يتم تركيبها في اماكن مختلفة فانت مضطر الي تقسيم البرنامج علي الاقل عدد ال physical layers

او من اجل ال code Re-use بمعني وجود كود يتكرر استخدامه او كود عام لا يرتبط بمشروع معين ممكن تعمل dll خاص به

او مثلا من اجل ال Ease of maintenance او التنظيم تقوم بتقسيم المشروع مثلا الي dataLayer dll و business layer dll

بحيث عن وجود خطأ في ال data layer لا تحتاج الي رفع او عمل build للمشروع بالكامل و لكن للجزء المحتوي علي الخطأ

تم تعديل هذه المشاركة بواسطة AhmedElbaz في 12 أكتوبر 2008 في 14:12

#7

اخي System Down

اقتباس
نصيحتي: لا تفكر كثيراً في هذا الموضوع الآن. أحد أكبر أخطاء البرمجة هي محاولة تحسين الأداء وقت التصميم

انا حقيقة الامر اني في هذه المرحلة الان

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

لقد قمت بانشاء منصة مكتبات كانت في السابق حوالي 12 مشروع

اختزلتها لعدم اهمية بعضها ووجود الاخر في تحديثات دت نت الى 6 ملفات

هن :

ادارة الاتصال مع انترنت والبريد وماشايه في مكتبة

ادارة قاعدة البيانات من ضبط اتصال وصلاحيات ونوع في مكتبة اخرى

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

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

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

ادارة اللغة كذلك في مكتبة

وهكذا .. وأردت الرأي والمشورة .. هل هذه الطريقة ناجحة؟

اخي AhmedElbaz

اقتباس
او مثلا من اجل ال Ease of maintenance او التنظيم تقوم بتقسيم المشروع مثلا الي dataLayer DLL و business layer DLL

اخي هل ماذكرته انا انفا له علاقة بهذه المواضيع؟؟

#8
blackeyes كتب:
اخي System Down

انا حقيقة الامر اني في هذه المرحلة الان

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

لقد قمت بانشاء منصة مكتبات كانت في السابق حوالي 12 مشروع

اختزلتها لعدم اهمية بعضها ووجود الاخر في تحديثات دت نت الى 6 ملفات

هن :

ادارة الاتصال مع انترنت والبريد وماشايه في مكتبة

ادارة قاعدة البيانات من ضبط اتصال وصلاحيات ونوع في مكتبة اخرى

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

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

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

ادارة اللغة كذلك في مكتبة

وهكذا .. وأردت الرأي والمشورة .. هل هذه الطريقة ناجحة؟

لا أعتقد أن هناك مشكلة في هذه الطريقة.

هل برنامجك يعمل بشكل صحيح؟ هل هو بطئ؟

إذا كان بطيئاً، ما هو سبب هذا البطء؟

هذه الأسئلة التي تسألها قبل أن تفكر في عملية الـoptimization

#9

لا أخي لايعمل بشكل بطئ ابدا

لكن احببت ان اعرف افضل طريقة لانشاء البرنامج

بالنسبة للسرعة تقريبا يوازي اكسل او وورد(اول اقلاع)

والمشكلة انه اصبح ضخما جدا رغم كل هذه المكتبات حجم الملف التنفيذي 3 ميغا تقريبا

يعني في اشياء افكر اعزلها ايضا لمكتبات dll

ولهذا كان سؤالي بأن كثرة المكتبات له علاقة بالاداء والسرعة ام لا؟

#10
اقتباس
اخي هل ماذكرته انا انفا له علاقة بهذه المواضيع؟؟

لا

ولكن ردا علي

اقتباس
اخي ممكن تعطينا مختصر عن هذا.
#11

اخي احمد

اقصد هل طريقتي هذه شبيهة بماذكرت

اقتباس
لقد قمت بانشاء منصة مكتبات كانت في السابق حوالي 12 مشروع

اختزلتها لعدم اهمية بعضها ووجود الاخر في تحديثات دت نت الى 6 ملفات

هن :

ادارة الاتصال مع انترنت والبريد وماشايه في مكتبة

ادارة قاعدة البيانات من ضبط اتصال وصلاحيات ونوع في مكتبة اخرى

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

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

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

ادارة اللغة كذلك في مكتبة

#12
اقتباس
اقصد هل طريقتي هذه شبيهة بماذكرت

نعم

اعتذر لسوء الفهم

بالتوفيق

#13

شكرا جزيلا اخي احمد

اخ بروف

اقتباس
برأيي البسيط ان كتابة مكتبات والربط بينها افضل من كتابة البرنامج كتلة كود واحدة

وذلك ٍٍلأن الطريقة الاولى تعطي مساحة من التطوير اكبر من الطريقة الثانية

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

لهذا السبب قمت بتقسيم المشروع الى مكتبات كي لا اضطر الى استبدال البرنامد كاملا كلما صححت خطأ ما

شكرا لكم

(واتمنى من من يقوم بالمرور ان يدلي بمالديه من معلومات كي نستفيد اكثر)

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…