الرئيسية      أرشيف المقالات       المنتدى        المكتبة       إتصل بنا
  القائمة الرئيسية
  Language
  تسجيل الدخول
اسم المستخدم :

كلمة المرور :

تذكرني



هل نسيت كلمة المرور ؟

اشترك الآن !
  بحث
  أقسام المقالات
  آخر المشاركات
  كتب جديدة
 
  زوار هذه الصفحة
اليوم 224
أمس 27
الإجمالي 22780
  الموقع

من هنا وهناك -  ما هي Api؟ أهمية API في البرمجة؟
بواسطة مراد في 2005/4/11 (10079 قراءة)
من هنا وهناك


ما هي API؟  

البرمجة في ويندوز تتمثل في القدرة على إنشاء و إدارة واجهة المستخدم الرسومية  (GUI) مختصر Graphical User Interface ,
GUI
توفر في نفس الوقت تفاعلية وبساطة ممتعة في تعامل المستخدم معها, فبرامج ويندوز خطت خطا عملاقة في هذا المجال مقارنة مع البرامج التي كانت تعمل في منصة الدوس القديمة.
في دوس كانت محاولات خجولة لجعل الواجهة رسومية و جميلة تغير الواجهة المعتادة للتطبيقات المعتادة ذات الشاشة السوداء Console application for MSdos . فظهرت بوادر البرمجة في دوس بأشكال محتلفة تعتمد على قوائم وأزرار ترسم باستعمال دوال بدائية نصية وسميت مثل هذه التطبيقات ب Textual User Interface.



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



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


كيف يمكنك برمجة مثل هذه النوافذ التي يعرضها ويندوز بنفس الوساءل التي كانت متاحة سابقا في منصة الدوس؟
إنه أمر مستحيل وضرب من الجنون أن تعتمد على نفس الوساءل للحصول على نفس النتيجة !!!.
لحسن الحظ Microsoft قامت بتطوير وسيط لبرمجة مثل هذه التطبيقات يقوم بالعمل بدلا عنك .

هذا الوسيط هو Api وهي مختصر ل Application Interface Programming, دورها بسيط للغاية , يتمثل في توفير على أطباق ذهبية مجموعة هائلة ومتنوعة من الدوال موجهة للتحكم في كل عناصر الحاسب ( وحة المفاتيح, الفأرة , الطابعة, الشاشة, القرص الصلب الذاكرة الحية...) و كذلك تحقيق مهام عديدة (طباعة نص , رسم صور, نسخ ملفات, عرض نوافذ..).


لنضرب على سبيل المثال عرض نافذة على شاشة الحاسب لتبيان دور دوال API . ستقول أن عرض نافذه ليس بالأمر السحري أو الخارق !!
هذا ليس صحيحا ..

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

"إذا نقرت زر <إغلاق> يجب على النافذة أن تختفي" أو "إذا نقرت على حاشية النافذة بالفأرة وحركت المؤشر فإن النافذة سيتغير حجمها تبعا لحركة الفأرة"...إلخ
واووو هذا ليس بالأمر السهل!! على رسلك, كل ما ذكرته تقوم به دالة واحدة فقط من دوال API , إذا ما ذكرت غيرها,
()CreateWindow ,
هذه الدالة تقوم بإنشاء نافذة بكل مقومات "نافذة" في منصة ويندوز: تضم شريط للعنوان وثلاث أزرار صغيرة (إغلاق, تكبير, تصغير) وقائمة للنظام SystemMenu , هذه النافذة تستجيب لكل الإستفزازات  التي يقوم بها المستخدم من تحريك وتكبير وتصغير و تغيير الحجم
....

API
تمثل مساعدة جد جد قوية للمبرمج للواجهات الرسومية بتوفير كل الوسائل والإجرائيات ( على شكل دوال و هياكل بيانات) التي تنفذ بطريقة آلية وسلسة مجموعة من المهام والأوامر المركبة والمعقدة
.
وهذه الدوال تستطيع التعامل معهل واستدعاءها في معظم لغات البرمجة : سي وسي++ و ديلفي وباسكال وحتى لغة التجميع وغيرها كثير.


الفرق ما بين نظام التشغيل و Api windows؟
يجب توضيح الفرق ما بين api windows و ما بين نظام التشغيل Windows operating system.
بالنسبة لكثير من المبرمجين فهي كلمتان مترادفتان يستعمل إسمها بدون تمييز. فنظام التشغيل هو منتوج تجاري موزع يمكنك أن تجده في أقراص مرنة أو في أقراص مدمجة أو حتى منصبة على أقراص صلبة, أما WinApi فهي مجموعة دوال تستدعيها التطبيقات أثناء تنفيذها داخل نظام الشغيل
.
هناك نظم تشغيل مثل unix لا تملك سوى api واحدة, وأخرى مثل ويندوز تملك العديد من APIs. فويندوز منذ بداياتها الأولى بإصدارة windows 1.01 ملكت إثنتين: win16 و msdos-api التي تمثلت في مقاطعة الدوس الشهيرة
int21.
ويندوز WindowsNT مثلا تستطيع تشغيل مجموعة أكثر من api وهي: MS-Dos Api و win16 و
win32
وposix (وهي Portable Operating System Interface وحرف x كإشارة ل Unix).و OS/2 كونسول. أما إصدارات Winows 9x كويندوز95 فتنفذ تطبيقات dos/win16 و
win32.
من جهة أخرى فإن التطبيق في ويندوز هو تطبيق وفي للغاية لل API التي برمج لها. فلا يستطيع تطبيق ويندوز إستدعاء اكثر من API واحدة فقط, فعلى سبيل المثال برنامج الحاسبة calc.exe في ويندوز 95 لايستدعي إلا
api win32.
حتى في نظام التشغيل windowsNT الذي يتحمل عدة Api فالبرامج التنفيذة تبقا دائما وفية للApi التي برمجت له. فعنذ تنفيذ التطبيق يقوم نظام التشغيل بتوفير دوال Api التي تتناسب معه, و يصدر رسالة خطء تخبر المستخدم بنوع Api التي يحتاجها التطبيق إذا لم وفرن نظام التشغيل على api الملائمة
.
حاول أن تنفذ برنامج calc.exe في MS-dos 6.11, ستحصل على رسالة إخبارية على أن هذا التطبيق هو تطبيق ينفذ فقط في Winoows 32bits.


ماهية ال API:
ما هي حقيقة Api هل هي بروتوكول أم منصة برمجة أم شيء آخر؟
Api
تتجسد حقيقة في ملفات مخزنة في مسار ويندوز وهي مجتمعة معظمها في(C:\windows\system(32.
مكونات winapi الأساسية بدون جدال هي kernel و GDI و
USER.
ففي win16 هذه المركبات تتجسد في ملفات Kernel.exe ( وكذلك kernel286.exe و kernel386.exe حسب نظام التصرف مع الذاكرة) وملف user.exe و
gdi.exe.
رغم أن هذه الملفات تحمل إمتداد exe.* غير إنها كله عبارة عن ملفات ربط ديناميكي (التي تحمل عادة إمتداد dll.* غير إن هذا الإمتداد لم يكن معروفا قبلا في
windows 3.x).
للتوافق مع الإصدارات المتتالية لويندوز , حافظت هذه الملفات على نفس التسمية في win32 مع اختلاف طفيف في الأسم مع نظيراتها السابقة في win16 وهي : kernel32.dll و gdi32.dll و
user32.dll.
فكل ملفات API هي ملفات ربط ديناميكية مما يسهل أستدعائها في نفس الوقت من طرف مجموعة كبيرة من التطبيقات.

kernel:
هي النواة والقلب النابض, مهمتها هي توفير كل الدوال الخاصة بالنظام مثل عمليات الدخل والخرج I/o, نسخ و تحويل مسارات الملفات, التحكم بالذاكرة. و من أهم مميزاتها هي threads و mutex و semaphore و critical section objects.....إلخ
GDI:
المكون الثاني للApi وهي Graphics Device Intreface.
هي المكتب الرئيسية المختصة بعرض كل ما هو رسم (قلت الرئيسية لأنها توجد مكتبات للرسم أخرى مثل openGl و
WinG).
فعندما ترى بيكسل ملون مضيء على شاشة الحاسب أو سطر مطبوع على ورق الطابعة , فإن هذا أصبح ممكنا بفضل دوال هذه المكتبة
.
GDI
توفر خدمتين رئيسيتين: إنشاء الأشكال الرسومية, و تخزين الصور والرسوم
.
الأشكال الرسوميو هي كل شيء يرسم على الشاشة من نصوص text, أو رسوم خطية Vectorial (رسم باستعمال الخطوط والدوائر و المربعات -الأشكال البدائية-), أو الرسوم المصفوفية
matricial.
تخزين الصور والرسوم في Gdi يتم على شكلين: الصور Bitmap و الرسوم من صنف matafiles. الصور من صنف bitmap هي رسوم مكونة من جداول من البيكسل على شكل مصفوفة ذات بعدين. تستعمل في رسم شكل النوافذ من قوائم وشريط العنان الأزرق و حاشية النوافذ وأزرار الإغلاق والتكبير و التصغير, أسهم Scrollbar وغيرها
...
أما metafiles فهي على العكس ليست برسوم ,وإنما مجموعة مكدسة من إستدعاءات لدوال gdi. فعند استعراض ملف من نوع metafile فإن ويندوز تستدعي gdi لرسمها على الشاشة, مما يجعل مثل هذه الملفات بطيئة رغم صغر حجمها مقارنة مع bitmap مما يفسر أستعمال هذه الأخيرة أكثر في رسم النوافذ.

USER:
هي كل ما يتعلق بالتعامل والتفاعلية مع المستخدم من أوامر واستجابات لمتطلباته, بما فيها النوافذ و القوائم و مربعات الحوار و صناديق الحوار, الأزرار, اللوائح المنسدلة .... وكثير غيرها.
فكل تصرفات المستخدم, سواء بالفأرة أو بلولوحة المفاتيح أو غيرها فهي موجهة بالأساس للنوافذ أو لمكوناتها المرئية
.
مبدأ البرمجة في ويندوز مبني على نظام الأحداث, فعند كل حدث يقع في نافذة التطبيق التي تملك Focus يقوم ويندوز بتحضير رسالة مرتبطة بصنف الحدث ويوجهها للتطبيق الذي يجب عليه التعرف عليها والإستجابة تبعا لمحتواها
.
فكل حركة فأرة أو ظغطة زر هي حدث
.
دوال api هي دوال كثيرة ومن الصعب الإلمام بها جميعها ولكن من المفروض على كل مبرمج لمنصة ويندوز التعرف على ميزاتها و طريقة استدعائها وفهم مبدأ البرمجة بها
.
فمهما كانت بيئة التطوير التي تستعملها أو لغة البرمجة التي تبرمج بها تطبيقاتك: سي أو سي++ أو باسكال أو ديلفي... فإن المصرف سيقوم بترتيب استدعاءات هذه الدوال في برنامجك التنفيذي وقد يخفي عليك كثيرا من تركيباتها وتعقيداتها عندما سيوفر لك مكتبات برمجة معدة لتبسيط التطوير مثل مكتبات MFC في ++VisualC أو مكتبات VCL في ديلفي
...
فمعرفتها ضرورية و مهمة وفي بعض الأحيان تبقى الوسيلة الوحيدة للحصول على النتيجة المطلوبة.


 


لمناقشة المقالة بحرية راجع المنتدى : إضغط هنا

التقييم: 0.00 (0 أصوات)
**** تحضير للطباعة أرسل هذه المقالة
أضف هذه المقالة إلى المواقع التالية
إضافة إلى Blinklist إضافة إلى del.icio.us إضافة إلى Digg إضافة إلى Fark إضافة إلى Furl إضافة إلى Newsvine إضافة إلى Reddit إضافة إلى Simpy إضافة إلى Spurl إضافة إلى Yahoo مرجع إلى Balatarin مرجع إلى Faceboom مرجع إلى Twitter مرجع إلى Scripstyle مرجع إلى Stumble مرجع إلى Technorati مرجع إلى Mixx مرجع إلى Myspace مرجع إلى Designfloat _NW_BOOKMARK_TO_GOOGLEPLUS _NW_BOOKMARK_TO_GOOGLEREADER _NW_BOOKMARK_TO_GOOGLEBOOKMARKS
التعليقات تخص صاحبها ولا تخص ادارة الموقع
الكاتب الموضوع




عروة نت 2003-2016 . بالاعتماد على زوبس