01-02-2012، 12:19 PM
براي اينكه بتوانيد براي گوشيهاي مجهز به ويندوز موبايل برنامهنويسي كنيد، يا بايد از چارچوب فشرده داتنت (NET CF.) استفاده كنيد يا با زبان اصلي اين سيستمعامل (++C) كار كنيد. در اين مقاله پس از مرور مقدمات، با حال و هواي برنامهنويسي براي سيستمعامل ويندوز موبايل با استفاده از زبان Visual C++ 2005 آشنا خواهيد شد و اركان يك برنامه ساده تحت ويندوز موبايل 5 را خواهيد شناخت. براي اين منظور به نرمافزار ويژوال استوديوي 2005 مراجعه مينماييم و سورسكد يك مثال را به طور دقيق بررسي و آن را كمي دستكاري خواهيم كرد. براي تأليف اين مقاله از اطلاعات سايت MSDN مايكروسافت استفاده كردهام و سورسكد مورد بحث نيز از همين منبع استخراج شده است. اين سورسكد را ميتوانيد از بخش دانلود سايت ماهنامه شبكه دريافت كنيد.
چارچوب برنامهنويسي در پلتفرم ويندوز موبايل
چنانكه ميدانيد، سيستمعامل CE براي تجهيز آن دسته از وسايل ديجيتالي كه از نوتبوك كوچكترند (مانند كامپيوترهاي جيبي، دوربينهاي ديجيتالي، صفحات نمايش LCD، چاپگرها) و نيز وسايل بسيار كوچك (مانند ساعت مچي) به يك سيستمنرمافزار متمركز، طراحي و به بازار معرفي شده است.
سيستمعامل ويندوز موبايل زيرمجموعه خاصي از ويندوز CE است و براي نصب روي گوشيهاي موبايل سازگار با اين سيستم و نيز آن دسته از Pocket PCها و كامپيوترهاي جيبي طراحي شده است كه به تلفن همراه مجهزند.
ويندوز موبايل نيز دو نوع دارد: يكي براي كامپيوترهاي جيبي و ديگري براي تلفنهاي هوشمند (اسمارتفون). در نسخه 5 ويندوزموبايل هر يك از اين دو نوع فرعي به ترتيب Windows Mobile Pocket PC Phone Edition و Windows Mobile Smartphone Edition نامگذاري شدهاند و در نسخه جديد آن (نسخه 6) كه به تازگي معرفي گرديده است، به ترتيب Windows Mobile Standard Edition و Windows Mobile Professional Edition ناميده شدهاند.
در اين مقاله مقصود ما از پلتفرم ويندوز موبايل Mobile PC يا Tablet PC نيست. اين دو نوع سيستم جديد در حقيقت اشكال تغييريافته همان ويندوز معمولي دسكتاپ هستند كه قابليتهاي مربوط به پشتيباني از ارتباطات سيار، بيسيم و فناوري جوهر ديجيتال به آنها افزوده شده است.
شكل 1 نموداري را نشان ميدهد كه چهار خانواده متفاوت از ابزارهاي ديجيتالي يعني Mobile/Tablet PC ،Pocket PC ،smartphone و Smart Objects را نشان ميدهد. چنانكه ملاحظه ميكنيد، هرچه حجم، اندازه و كارايي وسيله بيشتر شود، سهولت جابهجا كردن آن كمتر ميشود. دو نوع ويندوز موبايل كه در اين مقاله درباره آنها صحبت ميكنيم، در ميانه اين طيف قرار ميگيرند.
براي برنامهنويسي روي هر يك از دو نوع فرعي ويندوز موبايل، يك SDK يا كيت توسعه نرمافزاري توسط مايكروسافت ارايه شده كه به صورت رايگان از سايت اين شركت قابل دريافت است.
برنامهنويسي براي گوشيهاي مجهز به اين سيستمعامل روي كامپيوترهاي پيسي معمولي و با استفاده از ابزارهايي مثل ويژوال استوديو صورت ميگيرد و از اين حيث تفاوتي با برنامهنويسي براي پلتفرمهاي ديگر وجود ندارد، اما از آنجا كه اين برنامه بايد نهايتاً روي گوشيهاي موبايل يا كامپيوترهاي جيبي اجرا شوند، لازم است برنامه نهايي روي اين ابزارها ريخته شود. به اين عمل اصطلاحاً استقرار نرمافزار (Deployment) ميگويند.
پلتفرم برنامهنويسي
ويندوز موبايل 5،6و6.5
InROM
NET CF 1.0 SP3.
MFC 3.0/ATL 4.0
State and Notification Broker
DirectShow
(raw camera access)
Direct 3D Mobile
Direct Drow
Picture Picker
Contact Picker
Windows Media 10OCX
Managed Telephony
Managed Outlook Mobile
Managed Messaging
(SMS, Mail)
Managed Config Mgr
GPS API
(Get Device ID (unpriv
Query Policy
Install
NET CF 2.0.
SQL Mobile 2005
MFC 8.0/ATL8.0
جدول 1
عمليات اشكالزدايي نيز ميتواند همزمان در حالي كه گوشي از طريق يك مجراي ارتباطي مانند USB به PC متصل است، صورت گيرد. از آنجا كه دسترسي به گوشيها يا PDAهاي واقعي گاهي امكانپذير نيست، نرمافزار ويژوالاستوديوي مايكروسافت اين امكان را فراهم آورده است كه برنامهنويسان كدهاي خود را روي يك گوشي ياPocket PC مجازي به نام Emulator بريزند و آزمايش كنند.
در اين مقاله ما به نسخه پنج ويندوز موبايل استناد ميكنيم. بنابراين خوب است بدانيم كدام رابطهاي اصلي برنامهنويسي (API) در اين پلتفرم موجودند و كدام يك بايد جداگانه نصب شوند.
جدول 1 بهطور خلاصه نشان ميدهد كه روي يك گوشي يا كامپيوتر جيبي مجهز به ويندوز موبايل 5 كدام رابطهاي برنامهنويسي موجودند. اينها زير ستون In ROM فهرست شدهاند. مقصود اين است كه APIهاي مذكور از قبل روي ROM وسيله مستقر شدهاند و آماده استفاده هستند.
در زير ستون Install مشاهده ميكنيد كه چارچوب داتنت 2، نسخه 2005 ديتابيس SQL Mobile و نسخه هشتم دو API مخصوص برنامهنويسي در محيط ++C را بايد جداگانه نصب كنيد. داتنت 2 (نسخه كامپكت) برنامه نصب جداگانهاي دارد. بانك اطلاعاتي SQL Mobile نيز به همين ترتيب است و جديدترين نسخههاي MFC و ATL نيز هنگام نصب ويژوال استوديوي 2005 به طور خودكار روي پيسي شما مستقر ميشود و هنگام استقرار نرمافزار توليدي روي گوشي، روي آن منتقل ميشود.
همه اين APIها را ميتوانيد در كيت توسعه نرمافزاري ويندوز موبايل بيابيد. شكل 2 كل معماري برنامهنويسي روي ويندوز CE، موبايل، Tablet و XP Embedded را در كنار يكديگر نشان ميدهد و ميتوانيد محل كاربرد دقيق هريك از APIهاي مورد بحث را در اين دياگرام ملاحظه كنيد. مقايسه NET CF. و Native Code
به طور كلي دسترسي به كد ويندوز موبايل از دو طريق امكانپذير است: يكي استفاده از نسخه فشرده داتنت (NET Compact Framework.) و ديگري كد بومي (Native Code) ويندوز موبايل. نسخه فشرده داتنت زيرمجموعهاي از نسخه استاندارد آن است كه برخي از قابليتهاي آن به دليل ناسازگاري با معماري ويندوز CE يا به قصد كاستن از اندازه و حجم زيربناي نرمافزار حذف شدهاند.
هر يك از اين دو روش، مزايا و معايبي دارند. مزيت استفاده از داتنت فشرده، سهولت برنامهنويسي، امكان توليد سريع نرمافزار، اشكالزدايي آسان از برنامه، عدم نياز به مديريت مستقيم حافظه، سهولت برنامهسازي ويژوال، استفاده از متدولوژي شيءگرا، عدم نياز به دستكاري مستقيم رجيستري ويندوز و شباهت كدها به حال و هواي برنامهنويسي براي كامپيوترهاي معمولي دسكتاپ و سرور است.
شکل 2
عيب اصلي استفاده داتنت فشرده، پايين آمدن سرعت اجراي برنامهها و كارايي و انعطافپذيري آنها است. همچنين داتنت2 در مقايسه با كد بومي ويندوز موبايل تنها درصد كوچكي از API ويندوز را پوشش ميدهد و مابقي بايد با استفاده از تكنيك P/Invoke و دسترسي غيرمستقيم و با واسطه كد بومي پوشش داده شود. به زبان سادهتر، خيلي از كارهايي كه در كد بومي ميتوان انجام داد را در محيط داتنت فشرده نميتوان انجام داد؛ مگر با كمك گرفتن از همان كد بومي.
متقابلاً، مزيت استفاده از كد بومي ويندوز موبايل بالارفتن سرعت اجراي برنامهها، دسترسي كامل به تمام بخشها و قابليتهاي سيستمعامل و دسترسي مستقيم به حافظه براي افزايش كارايي و انعطافپذيري برنامه است. ايراد اصلي كار با كد بومي، دشوار بودن آن است.
موفقيت در مديريت مستقيم حافظه نيازمند تبحر در فنون برنامهنويسي سطح پايين (Low Level) و آشنايي نسبي با زبان ماشين است. همچنين دستكاري رجيستري ويندوز هنگام نصب برنامه اغلب اوقات اجتنابناپذير است.
توليد برنامه با اين روش زمانبر و خستهكننده است و برنامهنويس بايد شكيبايي پيشه كند. علاوه بر اينها، كار با منطق شيءگرا در محيط كد بومي اصلاً به آساني محيط داتنت نيست و تنها با مدد گرفتن از فناوري مياني MFC ميتوان حال و هواي برنامهنويسي شيءگرا را به تجربه كار در محيط داتنت نزديك كرد. البته تا دو سال پيش برنامهنويسي با كد بومي حتي از اين هم سختتر و مستلزم نصب و بهكارگيري ابزار ++eMbedded Visual C بود.
مقايسه ويندوز موبايل 5 یا 6 یا 6.5 و ويندوز موبايل 2003
از ديدگاه برنامهنويسي
Windows Mobile 5.0
Windows Mobile 2003
Windows Mobile 6.0
Windows Mobile 6.5
رابط برنامهنويسي
Runs. no debug or deploy
Runs. no debug or deploy
EVC 3.0
Runs. no debug or deploy
Yes
EVC 4.0 application
Runs. no debug or deploy
Yes
VS 2003 + CF 1.0
Yes
Yes
VS 2003 + CF 1.0
Yes
Yes
VS 2003 + CF 2.0
جدول 2
به بيان ديگر، علاوه بر ويژوال استوديو بايد ابزار كمكي ديگري هم نصب ميكرديد. خوشبختانه از زمان معرفي Windows CE 5 و ويندوز موبايل متناظر آن برنامهنويسي در محيط كد بومي به مراتب آسانتر شده است؛ زيرا ويژوال استوديوي 2005 شما را از نصب و بهكارگيري ++eMbedded Visual C يا برادرش eMbedded Visual Basicمعاف ميكند.
جدول 2 مقايسهاي ميان ويندوز موبايل 5 و ويندوز موبايل 2003 از ديدگاه برنامهنويسي است (CF و EVC به ترتيب معرف داتنت فشرده و ويژوال سي پلاس پلاس الحاقي هستند).
اين جدول نشان ميدهد كه هنگام مراجعه به هر يك از اين دو سيستمعامل، دسترسي به كدام يك از مدلهاي برنامهنويسي امكانپذير، اختياري يا اجباري است.
البته آخرین نسخه ی ویندوز موبایل 6.5 بود که در مقاله بیشتر درباره ویندوز موبایل 5 نوشته شده!
منبع:جی اس ام
چارچوب برنامهنويسي در پلتفرم ويندوز موبايل
چنانكه ميدانيد، سيستمعامل CE براي تجهيز آن دسته از وسايل ديجيتالي كه از نوتبوك كوچكترند (مانند كامپيوترهاي جيبي، دوربينهاي ديجيتالي، صفحات نمايش LCD، چاپگرها) و نيز وسايل بسيار كوچك (مانند ساعت مچي) به يك سيستمنرمافزار متمركز، طراحي و به بازار معرفي شده است.
سيستمعامل ويندوز موبايل زيرمجموعه خاصي از ويندوز CE است و براي نصب روي گوشيهاي موبايل سازگار با اين سيستم و نيز آن دسته از Pocket PCها و كامپيوترهاي جيبي طراحي شده است كه به تلفن همراه مجهزند.
ويندوز موبايل نيز دو نوع دارد: يكي براي كامپيوترهاي جيبي و ديگري براي تلفنهاي هوشمند (اسمارتفون). در نسخه 5 ويندوزموبايل هر يك از اين دو نوع فرعي به ترتيب Windows Mobile Pocket PC Phone Edition و Windows Mobile Smartphone Edition نامگذاري شدهاند و در نسخه جديد آن (نسخه 6) كه به تازگي معرفي گرديده است، به ترتيب Windows Mobile Standard Edition و Windows Mobile Professional Edition ناميده شدهاند.
در اين مقاله مقصود ما از پلتفرم ويندوز موبايل Mobile PC يا Tablet PC نيست. اين دو نوع سيستم جديد در حقيقت اشكال تغييريافته همان ويندوز معمولي دسكتاپ هستند كه قابليتهاي مربوط به پشتيباني از ارتباطات سيار، بيسيم و فناوري جوهر ديجيتال به آنها افزوده شده است.
شكل 1 نموداري را نشان ميدهد كه چهار خانواده متفاوت از ابزارهاي ديجيتالي يعني Mobile/Tablet PC ،Pocket PC ،smartphone و Smart Objects را نشان ميدهد. چنانكه ملاحظه ميكنيد، هرچه حجم، اندازه و كارايي وسيله بيشتر شود، سهولت جابهجا كردن آن كمتر ميشود. دو نوع ويندوز موبايل كه در اين مقاله درباره آنها صحبت ميكنيم، در ميانه اين طيف قرار ميگيرند.
براي برنامهنويسي روي هر يك از دو نوع فرعي ويندوز موبايل، يك SDK يا كيت توسعه نرمافزاري توسط مايكروسافت ارايه شده كه به صورت رايگان از سايت اين شركت قابل دريافت است.
برنامهنويسي براي گوشيهاي مجهز به اين سيستمعامل روي كامپيوترهاي پيسي معمولي و با استفاده از ابزارهايي مثل ويژوال استوديو صورت ميگيرد و از اين حيث تفاوتي با برنامهنويسي براي پلتفرمهاي ديگر وجود ندارد، اما از آنجا كه اين برنامه بايد نهايتاً روي گوشيهاي موبايل يا كامپيوترهاي جيبي اجرا شوند، لازم است برنامه نهايي روي اين ابزارها ريخته شود. به اين عمل اصطلاحاً استقرار نرمافزار (Deployment) ميگويند.
پلتفرم برنامهنويسي
ويندوز موبايل 5،6و6.5
InROM
NET CF 1.0 SP3.
MFC 3.0/ATL 4.0
State and Notification Broker
DirectShow
(raw camera access)
Direct 3D Mobile
Direct Drow
Picture Picker
Contact Picker
Windows Media 10OCX
Managed Telephony
Managed Outlook Mobile
Managed Messaging
(SMS, Mail)
Managed Config Mgr
GPS API
(Get Device ID (unpriv
Query Policy
Install
NET CF 2.0.
SQL Mobile 2005
MFC 8.0/ATL8.0
جدول 1
عمليات اشكالزدايي نيز ميتواند همزمان در حالي كه گوشي از طريق يك مجراي ارتباطي مانند USB به PC متصل است، صورت گيرد. از آنجا كه دسترسي به گوشيها يا PDAهاي واقعي گاهي امكانپذير نيست، نرمافزار ويژوالاستوديوي مايكروسافت اين امكان را فراهم آورده است كه برنامهنويسان كدهاي خود را روي يك گوشي ياPocket PC مجازي به نام Emulator بريزند و آزمايش كنند.
در اين مقاله ما به نسخه پنج ويندوز موبايل استناد ميكنيم. بنابراين خوب است بدانيم كدام رابطهاي اصلي برنامهنويسي (API) در اين پلتفرم موجودند و كدام يك بايد جداگانه نصب شوند.
جدول 1 بهطور خلاصه نشان ميدهد كه روي يك گوشي يا كامپيوتر جيبي مجهز به ويندوز موبايل 5 كدام رابطهاي برنامهنويسي موجودند. اينها زير ستون In ROM فهرست شدهاند. مقصود اين است كه APIهاي مذكور از قبل روي ROM وسيله مستقر شدهاند و آماده استفاده هستند.
در زير ستون Install مشاهده ميكنيد كه چارچوب داتنت 2، نسخه 2005 ديتابيس SQL Mobile و نسخه هشتم دو API مخصوص برنامهنويسي در محيط ++C را بايد جداگانه نصب كنيد. داتنت 2 (نسخه كامپكت) برنامه نصب جداگانهاي دارد. بانك اطلاعاتي SQL Mobile نيز به همين ترتيب است و جديدترين نسخههاي MFC و ATL نيز هنگام نصب ويژوال استوديوي 2005 به طور خودكار روي پيسي شما مستقر ميشود و هنگام استقرار نرمافزار توليدي روي گوشي، روي آن منتقل ميشود.
همه اين APIها را ميتوانيد در كيت توسعه نرمافزاري ويندوز موبايل بيابيد. شكل 2 كل معماري برنامهنويسي روي ويندوز CE، موبايل، Tablet و XP Embedded را در كنار يكديگر نشان ميدهد و ميتوانيد محل كاربرد دقيق هريك از APIهاي مورد بحث را در اين دياگرام ملاحظه كنيد. مقايسه NET CF. و Native Code
به طور كلي دسترسي به كد ويندوز موبايل از دو طريق امكانپذير است: يكي استفاده از نسخه فشرده داتنت (NET Compact Framework.) و ديگري كد بومي (Native Code) ويندوز موبايل. نسخه فشرده داتنت زيرمجموعهاي از نسخه استاندارد آن است كه برخي از قابليتهاي آن به دليل ناسازگاري با معماري ويندوز CE يا به قصد كاستن از اندازه و حجم زيربناي نرمافزار حذف شدهاند.
هر يك از اين دو روش، مزايا و معايبي دارند. مزيت استفاده از داتنت فشرده، سهولت برنامهنويسي، امكان توليد سريع نرمافزار، اشكالزدايي آسان از برنامه، عدم نياز به مديريت مستقيم حافظه، سهولت برنامهسازي ويژوال، استفاده از متدولوژي شيءگرا، عدم نياز به دستكاري مستقيم رجيستري ويندوز و شباهت كدها به حال و هواي برنامهنويسي براي كامپيوترهاي معمولي دسكتاپ و سرور است.
شکل 2
عيب اصلي استفاده داتنت فشرده، پايين آمدن سرعت اجراي برنامهها و كارايي و انعطافپذيري آنها است. همچنين داتنت2 در مقايسه با كد بومي ويندوز موبايل تنها درصد كوچكي از API ويندوز را پوشش ميدهد و مابقي بايد با استفاده از تكنيك P/Invoke و دسترسي غيرمستقيم و با واسطه كد بومي پوشش داده شود. به زبان سادهتر، خيلي از كارهايي كه در كد بومي ميتوان انجام داد را در محيط داتنت فشرده نميتوان انجام داد؛ مگر با كمك گرفتن از همان كد بومي.
متقابلاً، مزيت استفاده از كد بومي ويندوز موبايل بالارفتن سرعت اجراي برنامهها، دسترسي كامل به تمام بخشها و قابليتهاي سيستمعامل و دسترسي مستقيم به حافظه براي افزايش كارايي و انعطافپذيري برنامه است. ايراد اصلي كار با كد بومي، دشوار بودن آن است.
موفقيت در مديريت مستقيم حافظه نيازمند تبحر در فنون برنامهنويسي سطح پايين (Low Level) و آشنايي نسبي با زبان ماشين است. همچنين دستكاري رجيستري ويندوز هنگام نصب برنامه اغلب اوقات اجتنابناپذير است.
توليد برنامه با اين روش زمانبر و خستهكننده است و برنامهنويس بايد شكيبايي پيشه كند. علاوه بر اينها، كار با منطق شيءگرا در محيط كد بومي اصلاً به آساني محيط داتنت نيست و تنها با مدد گرفتن از فناوري مياني MFC ميتوان حال و هواي برنامهنويسي شيءگرا را به تجربه كار در محيط داتنت نزديك كرد. البته تا دو سال پيش برنامهنويسي با كد بومي حتي از اين هم سختتر و مستلزم نصب و بهكارگيري ابزار ++eMbedded Visual C بود.
مقايسه ويندوز موبايل 5 یا 6 یا 6.5 و ويندوز موبايل 2003
از ديدگاه برنامهنويسي
Windows Mobile 5.0
Windows Mobile 2003
Windows Mobile 6.0
Windows Mobile 6.5
رابط برنامهنويسي
Runs. no debug or deploy
Runs. no debug or deploy
EVC 3.0
Runs. no debug or deploy
Yes
EVC 4.0 application
Runs. no debug or deploy
Yes
VS 2003 + CF 1.0
Yes
Yes
VS 2003 + CF 1.0
Yes
Yes
VS 2003 + CF 2.0
جدول 2
به بيان ديگر، علاوه بر ويژوال استوديو بايد ابزار كمكي ديگري هم نصب ميكرديد. خوشبختانه از زمان معرفي Windows CE 5 و ويندوز موبايل متناظر آن برنامهنويسي در محيط كد بومي به مراتب آسانتر شده است؛ زيرا ويژوال استوديوي 2005 شما را از نصب و بهكارگيري ++eMbedded Visual C يا برادرش eMbedded Visual Basicمعاف ميكند.
جدول 2 مقايسهاي ميان ويندوز موبايل 5 و ويندوز موبايل 2003 از ديدگاه برنامهنويسي است (CF و EVC به ترتيب معرف داتنت فشرده و ويژوال سي پلاس پلاس الحاقي هستند).
اين جدول نشان ميدهد كه هنگام مراجعه به هر يك از اين دو سيستمعامل، دسترسي به كدام يك از مدلهاي برنامهنويسي امكانپذير، اختياري يا اجباري است.
البته آخرین نسخه ی ویندوز موبایل 6.5 بود که در مقاله بیشتر درباره ویندوز موبایل 5 نوشته شده!
منبع:جی اس ام