سؤال

ما الفرق بين الإطار وSDK؟خذ على سبيل المثال منصة MS SDK وإطار عمل .NET.كلاهما يحتوي على واجهة برمجة التطبيقات (API)، وكلاهما يخفي أعمالهما الداخلية، وكلاهما يوفر وظائف قد لا يمكن الوصول إليها بسرعة/بسهولة بخلاف ذلك (وبعبارة أخرى، فإنهما يخدمان غرضًا حقيقيًا).

إذن ما الفرق؟هل هي في المقام الأول لعبة تسويقية للدلالات، أم أن هناك اختلافات فعلية في كيفية تفاعل المطورين مع البرنامج (وبالعكس، كيف يمكن للمطورين أن يتوقعوا أن يتصرف البرنامج)؟هل من المتوقع أن يكون أحدهما أعلى أو أقل مستوى من الآخر، وما إلى ذلك؟

شكرًا!

يحرر:ينطبق هذا السؤال على أدوات تطوير البرمجيات (SDK) وأطر العمل بشكل عام، وليس فقط على الاثنين المذكورين أعلاه.

هل كانت مفيدة؟

المحلول

ومن المتوقع أن توفر الأدوات اللازمة لبرنامج مقابل مورد نظام معين أو ميزة ان SDK. إطار ليس بالضرورة (على الرغم من. NET تقدم مجموعة كاملة من الأدوات مثل المجمعين، وما إلى ذلك - ولكن هذه هي إلزامية من أجل أن تعمل على أي حال).

وهكذا، هل يمكن وضع إطار تقتصر على المكتبات، ولكن إذا كنت اسميها حزمة SDK يتوقع أن تقدم شيئا لدعم التنمية لك.

نصائح أخرى

سأنقل فقط من ويكيبيديا:

مكتبة:

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

نطاق:

إطار البرنامج، في برمجة الكمبيوتر، هو تجريد حيث يمكن تجاوز التعليمات البرمجية الشائعة التي توفر وظائف عامة بشكل انتقائي أو تخصيصها بواسطة كود المستخدم الذي يوفر وظائف محددة.تشبه أطر العمل مكتبات البرامج من حيث أنها عبارة عن تجريدات قابلة لإعادة الاستخدام للتعليمات البرمجية المغلفة في واجهة برمجة تطبيقات محددة جيدًا.على عكس المكتبات، لا يتم تحديد التدفق العام للتحكم في البرنامج بواسطة المتصل، ولكن بواسطة إطار العمل.هذا الانقلاب في التحكم هو السمة المميزة لأطر البرمجيات.

SDK:

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

لذا:

  • المكتبة هي الكود الذي يستدعيه تطبيقك.
  • Framework عبارة عن تطبيق أو مكتبة جاهزة تقريبًا.ما عليك سوى ملء بعض الأماكن الفارغة بالكود الخاص بك الذي يستدعيه إطار العمل.
  • يعد SDK مفهومًا أكبر لأنه يمكن أن يشمل المكتبات والأطر والوثائق والأدوات وما إلى ذلك.
  • إن .NET يشبه في الحقيقة منصة، وليس إطار عمل برمجي.

الفرق باختصار هو:

  • يمكنك استدعاء وظائف SDK.
  • يستدعي الإطار وظائفك.

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

يتخذ إطار العمل الكثير من القرارات نيابةً عنك، لذلك لا يتعين عليك إعادة اختراع العجلة؛إنه نهج "ملء الفراغات".حرية أقل ولكنك توفر الكثير من الوقت وربما تتجنب بعض الأخطاء.

في الحالة الخاصة بإطار عمل .NET، يشير أيضًا إلى ملفات وقت التشغيل اللازمة لتشغيل التطبيقات التي تستخدمه، ولكنها ليست الطريقة التي يتم بها استخدام الكلمة في سياق البرمجة...

وانها منطقة رمادية ولكن أطر تميل إلى أن تكون المكتبات كنت رمز ضد، SDK في كثير من الأحيان أدوات إضافية لمساعدتك على الحصول على المزيد من خارج الإطار. وخير مثال كونها الإطار SDK. NET الذي قمت بتثبيت بشكل منفصل، وSDK لديها أدوات إضافية مثل ILDASM، cordb التي ليست أجزاء من إطار حقا.

لقد كنت الرائدة إطار زند من خلال إصداره 1.0.لقد تلقينا في كثير من الأحيان تعليقات مفادها أنه لم يكن "إطار عمل" بالمعنى الذي توقعه المطورون - قالوا إنه كان أقرب إلى مكتبة صفية.

لقد توقعوا أن يكون الإطار أشبه بمجموعة من الفئات يجب استخدامها معا بالنسبة لهم للعمل.قد يتضمن إطار العمل أيضًا مجموعة من اتفاقيات البرمجة، مما يرشدك إلى تنظيم التعليمات البرمجية الخاصة بك بطريقة معينة.قد يفرض إطار العمل أيضًا اصطلاحات تسمية للفئات وكيانات قاعدة البيانات الخاصة بك.وأخيرًا، أدوات إنشاء التعليمات البرمجية.

تم تصميم Zend Framework بحيث يكون مقترنًا بشكل غير محكم، بحيث يمكنك استخدام أي من الفئات المستقلة إذا أردت ذلك.لقد فرض عددًا قليلاً من الاتفاقيات على التعليمات البرمجية الخاصة بك أو قاعدة البيانات الخاصة بك.وكنا ننوي تطوير مولدات الأكواد لكننا لم ننفذها بعد.

لكنني ما زلت أشعر أن Zend Framework مؤهل كإطار عمل، بدلاً من SDK، بطريقة أخرى:الإطار هو توسع.لقد تم تصميمه كمجموعة من الفئات الأساسية الموجهة للكائنات، والاستخدام المقصود هو للمطورين أيضًا extend هذه الفئات، أو كتابة فئات المكونات الإضافية البسيطة، لإضافة وظائف.

SDK التقليدي هو غير قابلة للتوسيع.ما عليك سوى استدعاء أساليب واجهة برمجة التطبيقات (API) في الفئات المتوفرة، وهي تفعل ما تفعله، وتتعامل أنت مع النتيجة.أي تخصيص يتعلق باستخدامك لواجهة برمجة التطبيقات (API) وكيفية الاستفادة من النتائج.

مايكروسوفت SDK يمكن استخدامها من قبل مطور لخلق برامجها. المستخدمين النهائيين عادة لا تحتاج إليها.

وعمل مايكروسوفت بدلا إلزامي إذا كنت ترغب في تشغيل تطبيقات .NET على الجهاز.

وتوفر مكتبة فئة الفئات التي تشارك عادة في نفس مجال التطبيق الخام (الرياضيات، تقديم) ولكن المقصود أن تستخدم في الغالب مستقلة عن بعضها البعض.

ويوفر إطار الفئات التي تشكل معا أساسا لتطبيق قمت بتمديد فقط واللحم بها.

وهناك SDK يحتوي على كل ما تحتاج إليه لاستخدام التكنولوجيا يتم توفير SDK ل. انها غالبا ما تحتوي على dokumentation، والعينات والأدوات جنبا إلى جنب مع جوهر المحتوى الفعلي الذي قد يكون إطارا أو مكتبة فئة أو حتى شيئا مختلفا تماما.

في المقارنة واحد، هل يمكن أن نقول:
مكتبة -> الإطار -> SDK
يتكون الإطار من عدة مكتبات، بالإضافة إلى بعض الأدوات (المجمعين، الخ)، ولا يستهدف منصة محددة. للمنصة، قد يكون هناك العديد من الأطر وضعت كل تخدم غرضا مختلفة. يقدم SDK لك الأطر وكل شيء آخر تحتاج لتطوير البرمجيات لمنصة محددة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top