You are on page 1of 88

‫‪www.SoftGozar.

Com‬‬
‫‪http://m0911.wordpress.com‬‬

‫س‪ٛ‬ػؼ‪٘ ٝ‬شْ افضاس ثشاي ػيؼشٓ ػبُٔ ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ‬ ‫ػ‪ٛٙ‬اٖ‬

‫‪Windows Mobile Application Development‬‬ ‫ػ‪ٛٙ‬اٖ اكّي‬


‫‪C#, Win Mobile, .NET, Dev, WinForm, GPS, Custom Control, XML, , SQL-‬‬ ‫وّٕبر وّيذي‬
‫‪Server, SQL-CE, AJAX, Web‬‬
‫‪mstruys, dougturn‬‬ ‫ٔؤِف‬
‫‪http://www.codeproject.com‬‬ ‫ٔشػغ‬
‫ٔجشذي‬ ‫ػٌح‬
‫ٔ‪ٟ‬ذي ػجذاِّ‪ٟ‬ي )‪(http://m0911.wordpress.com‬‬ ‫ٔششػٓ‬
‫‪ 20‬سيشٔب‪1389 ٜ‬‬ ‫سبسيخ ا٘شـبس ٔؼذد‬
‫‪88‬‬ ‫سؼذاد كفح‪ٝ‬‬
‫ػ‪ٙ‬ب‪ٚ‬يٗ فلُ ‪ٞ‬ب ‪$‬فبسػي‪#‬‬
‫ايؼبد ٘خؼشيٗ ثش٘بٔ‪ٝ‬‬ ‫‪.1‬‬
‫ؿجي‪ ٝ‬ػبص دػشٍب‪ٔ ٚ ٜ‬ذيشيز ؿجي‪ ٝ‬ػبص‬ ‫‪.2‬‬
‫س‪ٛ‬ػؼ‪ ٝ‬ي ثش٘بٔ‪ ٝ‬ثب ‪WinForm‬‬ ‫‪.3‬‬
‫افض‪ٚ‬دٖ و‪ٙ‬ششَ ػفبسؿي ‪ ٚ‬اػشفبد‪ ٜ‬اص ‪GPS‬‬ ‫‪.4‬‬
‫ٔمذٔ‪ ٝ‬اي ثش ‪SQL Server CE‬‬ ‫‪.5‬‬
‫أ‪ٙ‬يز دػشٍب‪٘ ٚ ٜ‬لت ٘شْ افضاس‬ ‫‪.6‬‬
‫س‪ٛ‬ػؼ‪ ٝ‬ثشاي ‪ٚ‬ة ٔ‪ٛ‬ثبيُ‬ ‫‪.7‬‬
‫ػ‪ٙ‬ب‪ٚ‬يٗ فلُ ‪ٞ‬ب ‪$‬اٍّ٘يؼي‪#‬‬
‫‪1.‬‬ ‫‪Creating your first application‬‬
‫‪2.‬‬ ‫‪Device Emulator and Device Emulator Manager‬‬
‫‪3.‬‬ ‫‪Basic WinForm App Development for Windows Mobile Devices‬‬
‫‪4.‬‬ ‫‪Adding Custom Controls and Making Use of GPS Hardware‬‬
‫‪5.‬‬ ‫‪Intro to using SQL Server CE‬‬
‫‪6.‬‬ ‫‪Device Security and Application Deployment‬‬
‫‪7.‬‬ ‫‪Mobile Web Development‬‬

‫ٔمذٔ‪ ٝ‬ي ٔششػٓ‬

‫ايٗ وشبة اِىشش‪٘ٚ‬يىي دس اكُ يه ػشي ٔمبِ‪ ٝ‬ي ‪ 7‬لؼٕشي ثش٘بٔ‪ٛ٘ ٝ‬يؼي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ اػز و‪ ٝ‬دس اػف‪ٙ‬ذ ‪ ٚ 1388‬فش‪ٚ‬سديٗ ‪ 1389‬ثخؾ ث‪ٝ‬‬
‫ثخؾ سشػٕ‪ ٚ ٝ‬دس ‪ٚ‬ثالٌٓ ٔ‪ٙ‬شـش ٕ٘‪ٛ‬دْ‪ِ .‬يىٗ ثشاي ساحشي وبس خ‪ٛ‬ا٘‪ٙ‬ذٌبٖ سشػيح دادْ و‪ ٕٝٞ ٝ‬سا دس يه فبيُ ٌشدآ‪ٚ‬سي ‪ ٚ‬ثبص ٘ـش ٕ٘بيٓ‪.‬‬

‫٘‪ٛ‬يؼ‪ٙ‬ذ‪ٌ ٜ‬بٖ ايٗ ٔؼٕ‪ٛ‬ػ‪ٔ ٝ‬مبِ‪ ٝ‬اص وبسو‪ٙ‬بٖ وٕذب٘ي ٔيىش‪ٚ‬ػبفز ‪ٞ‬ؼش‪ٙ‬ذ‪ .‬يؼ‪ٙ‬ي ‪ٕٞ‬بٖ وٕذب٘ي و‪ٚ ٝ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ سا س‪ِٛ‬يذ ‪ٙٔ ٚ‬شـش ٕ٘‪ٛ‬د‪ ٜ‬اػز‪ .‬اص‬
‫ايٗ س‪ٌٕٔ ٚ‬ئ‪ ٓٙ‬و‪ٌٔ ٝ‬بِت ‪ٔ ٚ‬حش‪ٛ‬يبر ايٗ اطش ثشاي ثش٘بٔ‪ٛ٘ ٝ‬يؼب٘ي و‪ٔ ٝ‬ي خ‪ٛ‬ا‪ٙٞ‬ذ ‪ٚ‬اسد د٘يبي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ثـ‪٘ٛ‬ذ‪ ،‬ػ‪ٛ‬دٔ‪ٙ‬ذ خ‪ٛ‬ا‪ٞ‬ذ ث‪ٛ‬د‪.‬‬

‫خ‪ٛ‬ؿحبَ خ‪ٛ‬ا‪ ٓٞ‬ؿذ و‪٘ ٝ‬ظش ‪ ٚ‬ديـ‪ٟٙ‬بد خ‪ٛ‬د سا اص ًشيك آدسع ‪ٚ‬ثالٌٓ ‪ http://m0911.wordpress.com‬يب ث‪ ٝ‬آدسع ايٕيُ‬
‫‪ mehdi.abd@gmail.com‬اسػبَ فشٔبييذ‪.‬‬

‫‪1‬‬
‫‪http://m0911.wordpress.com‬‬
‫فهرست مطالة‬
‫فصل نخست ‪4 ...................... ................................ ................................ ................................ ................................‬‬

‫٘لت ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ ٚ 2008 ٛ‬اثضاس ‪ٞ‬بي اهبفي س‪ٛ‬ػؼ‪٘ ٝ‬شْ افضاس ‪5 ............................... ................................ ................................‬‬

‫ايؼبد ٘خؼشيٗ ثش٘بٔ‪ ٝ‬ي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪7 ......................... ................................ ................................ ................................‬‬

‫فصل دوم ‪11 ....................... ................................ ................................ ................................ ................................‬‬

‫ٍ٘بسؽ ‪ٞ‬بي ٔخشّف ؿجي‪ ٝ‬ػبص دػشٍب‪11 ....................... ................................ ................................ ................................ ٜ‬‬

‫اػشاي ؿجي‪ ٝ‬ػبص دػشٍب‪ ٜ‬اص داخُ ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪11 .................................... ................................ ................................ 2008 ٛ‬‬

‫س‪ٙ‬ظيٓ ٔـخلبر ؿجي‪ ٝ‬ػبص دػشٍب‪14 .......................... ................................ ................................ ................................ ٜ‬‬

‫اػشفبد‪ ٜ‬ي ‪ ٓٞ‬صٔبٖ اص ؿجي‪ ٝ‬ػبص دػشٍب‪ ٚ ٜ‬ؿجي‪ ٝ‬ػبص سّفٗ ‪ٕٞ‬شا‪15 ........................... ................................ ................................ ٜ‬‬

‫دسػز وشدٖ اسلبَ داخُ ؿجي‪ ٝ‬ػبص سّفٗ ‪ٕٞ‬شا‪16 ............. ................................ ................................ ................................ ٜ‬‬

‫اسػبَ ‪ ٚ‬دسيبفز ديبٔه ‪17 ....................................... ................................ ................................ ................................‬‬

‫و‪ٙ‬ششَ ؿجي‪ ٝ‬ػبص دػشٍب‪ ٜ‬س‪ٛ‬ػي ثش٘بٔ‪ ٝ‬ي ٔذيش ؿجي‪ ٝ‬ػبص دػشٍب‪11 ........................... ................................ ................................ ٜ‬‬

‫رخيش‪ ٜ‬ي س‪ٙ‬ظيٕبر ؿجي‪ ٝ‬ػبص دػشٍب‪ ٜ‬ثشاي اػشفبد‪ٞ ٜ‬بي ثؼذي ‪11 ............................. ................................ ................................‬‬

‫اػشفبد‪ ٜ‬اص ؿجي‪ ٝ‬ػبص دػشٍب‪ ٜ‬ثشاي آصٔبيؾ س‪ٙ‬ظيٕبر أ‪ٙ‬يشي ٔخشّف ‪12 ........................ ................................ ................................‬‬

‫خ‪ٛ‬دوبس ػبصي ٔذيش ؿجي‪ ٝ‬ػبص ‪11 ................................ ................................ ................................ ................................‬‬

‫فصل سوم ‪14 ...................... ................................ ................................ ................................ ................................‬‬

‫دػشٍب‪ٞ ٜ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ اػشب٘ذاسد ‪15 ......................... ................................ ................................ ................................‬‬

‫دػشٍب‪ٞ ٜ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪ 6‬حشف‪ ٝ‬اي ‪15 ...................... ................................ ................................ ................................‬‬

‫ًشاحي يه ‪ٚ‬اػي وبسثش ػبد‪ ٜ‬دس ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪ 6‬حشف‪ ٝ‬اي ‪16 ................................. ................................ ................................‬‬

‫ايؼبد ٘شْ افضاسي و‪ ٝ‬ثش‪ٛ‬ا٘ذ ثب ػ‪ٟ‬ز ‪ٞ‬بي ٔخشّف كفح‪ٕ٘ ٝ‬بيؾ ػبصٌبس ثبؿذ ‪17 ................ ................................ ................................‬‬

‫ث‪ٙ‬ذوـي يب طبثز وشدٖ و‪ٙ‬ششَ ‪ٞ‬ب ‪17 ............................. ................................ ................................ ................................‬‬

‫ًشاحي ثش٘بٔ‪ ٝ‬اي و‪ ٝ‬س‪ٚ‬ي دػشٍب‪ٞ ٜ‬بي ٔخشّف وبس و‪ٙ‬ذ ‪12 ..................................... ................................ ................................‬‬

‫اسص ثشي فشْ ‪ٞ‬ب ‪11 ............... ................................ ................................ ................................ ................................‬‬

‫س‪ٛ‬ػ‪ ٝ‬ث‪ٙٔ ٝ‬بثغ ػيؼشٓ ‪14 ........................................ ................................ ................................ ................................‬‬

‫فصل چهارم ‪16 ..................... ................................ ................................ ................................ ................................‬‬

‫افض‪ٚ‬دٖ و‪ٙ‬ششَ ‪ٞ‬بي ػفبسؿي ث‪ ٝ‬ثش٘بٔ‪ ٝ‬ي خ‪ٛ‬دسبٖ ‪17 ............ ................................ ................................ ................................‬‬

‫و‪ٙ‬ششَ ‪ٞ‬بي وبسثش ‪$‬ػفبسؿي‪17 ................................. ................................ ................................ ................................ #‬‬

‫و‪ٙ‬ششَ ‪ٞ‬بي اسص ثشي ؿذ‪11 .................................... ................................ ................................ ................................ ٜ‬‬

‫و‪ٙ‬ششَ ‪ٞ‬بي ػفبسؿي ‪41 ......................................... ................................ ................................ ................................‬‬

‫اػشفبد‪ ٜ‬اص و‪ٙ‬ششَ ػفبسؿي داخُ يه ثش٘بٔ‪44 .................. ................................ ................................ ................................ ٝ‬‬

‫‪2‬‬
‫‪http://m0911.wordpress.com‬‬
‫افضد‪ ٖٚ‬اًالػبر ٔشث‪ٛ‬ى ث‪ٔ ٝ‬حُ ػغشافيبيي ث‪ ٝ‬ثش٘بٔ‪45 ......................................... ................................ ................................ ٝ‬‬

‫ث‪ ٝ‬س‪ٚ‬ص سػب٘ي و‪ٙ‬ششَ ‪ٞ‬بي ‪ٚ‬اػي وبسثش دس يه ثش٘بٔ‪ ٝ‬ي چ‪ٙ‬ذ دشداصؿي ‪41 ....................... ................................ ................................‬‬

‫آصٔبيؾ ثش٘بٔ‪ٞ ٝ‬بي حؼبع ث‪ٔ ٝ‬حُ ػغشافيبيي ‪41 .............. ................................ ................................ ................................‬‬

‫فصل پنجم ‪51 ...................... ................................ ................................ ................................ ................................‬‬

‫‪51 ...................... ................................ ................................ ................................ SQL Server Compact Edition‬‬


‫صيش ػبخز ‪51 .................................. ................................ ................................ SQL Server 2005 Compact Edition‬‬

‫اػشفبد‪ ٜ‬اص ديشبػز ‪ٞ‬بي داساي ٘‪ٛ‬ع ‪51 ........................... ................................ ................................ ................................‬‬

‫اػشفبد‪ ٜ‬اص ‪ SqlCeResultSets‬ثب ٘‪ٛ‬ع داد‪51 ................. ................................ ................................ ................................ ٜ‬‬

‫ؿىُ ‪ٞ SqlCeResultSet :31‬بي ثب ٘‪ٛ‬ع داد‪51 ................ ................................ ................................ ................................ ٜ‬‬

‫فصل ششم ‪65 ...................... ................................ ................................ ................................ ................................‬‬

‫ٔمذٔ‪66 ............................ ................................ ................................ ................................ ................................ ٝ‬‬

‫أ‪ٙ‬يز دس دػشٍب‪ٞ ٜ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪66 ........................ ................................ ................................ ................................‬‬

‫ٔؼ‪ٛ‬ص‪ٞ‬بي ٘لت ٘شْ افضاس ‪66 ...................................... ................................ ................................ ................................‬‬

‫سأييذي‪ٞ ٝ‬بي ٘شْ افضاس ‪67 ......................................... ................................ ................................ ................................‬‬

‫ػٌ‪ٛ‬ح دػششػي ٘شْ افضاس ‪67 ..................................... ................................ ................................ ................................‬‬

‫س‪ٙ‬ظيٕبر أ‪ٙ‬يشي دػشٍب‪67 ..................................... ................................ ................................ ................................ ٜ‬‬

‫ٔؼ‪ٛ‬ص اػشا ‪ ٚ‬فبيُ ‪ٞ‬بي وشبثخب٘‪ ٝ‬ي ‪61 .................... ................................ ................................ ................................ DLL‬‬

‫آصٔبيؾ ثش٘بٔ‪ ٝ‬دس حبِز ‪ٞ‬بي ٔخشّف س‪ٙ‬ظيٕبر أ‪ٙ‬يشي ‪61 ...................................... ................................ ................................‬‬

‫٘لت ثش٘بٔ‪71 ................... ................................ ................................ ................................ ................................ ٝ‬‬

‫ث‪ ٝ‬س‪ٚ‬ص سػب٘ي ثش٘بٔ‪ٞ ٝ‬ب ‪71 ........................................ ................................ ................................ ................................‬‬

‫٘لت يه ثش٘بٔ‪ ٝ‬ي ػذيذ ‪71 ..................................... ................................ ................................ ................................‬‬

‫ث‪ ٝ‬س‪ٚ‬ص سػب٘ي ثش٘بٔ‪76 ........... ................................ ................................ ................................ ................................ ٝ‬‬

‫ؿىُ ‪ :39‬ث‪ ٝ‬س‪ٚ‬ص سػب٘ي خ‪ٛ‬دوبس دس ػُٕ ‪76 ..................... ................................ ................................ ................................‬‬

‫فصل هفتم ‪71 ...................... ................................ ................................ ................................ ................................‬‬

‫٘شْ افضاس ‪ٞ‬بي سحز ‪ٚ‬ة ‪ ٚ‬دـشيجب٘ي اص ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪12 ........................................ ................................ ................................‬‬

‫حبِز ‪ٞ‬بي ٔخشّف ٕ٘بيؾ ‪ٚ‬ة ػبيز ‪11 ......................... ................................ ................................ ................................‬‬

‫سـخيق لبثّيز ‪ٞ‬بي ٔش‪ٚ‬سٌش ‪11 ................................. ................................ ................................ ................................‬‬

‫سـخيق ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ اػشب٘ذاسد اص دش‪ٚ‬فـ‪ٙ‬بَ ‪11 ............... ................................ ................................ ................................‬‬

‫فهرست تصاویر ‪17 ................ ................................ ................................ ................................ ................................‬‬

‫‪3‬‬
www.SoftGozar.Com
http://m0911.wordpress.com

‫فصل نخست‬

‫ايجاد نخستين ترنامه‬

4
‫‪http://m0911.wordpress.com‬‬
‫ٔمذٔ‪ٝ‬‬
‫‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ٍ٘ 2008 ٛ‬بسؽ حشف‪ ٝ‬اي ث‪ ٝ‬ؿٕب ايٗ أىبٖ سا ٔي د‪ٞ‬ذ و‪٘ ٝ‬شْ افضاس‪ٞ‬بيي ث‪ ٝ‬صثبٖ ‪ٞ‬بي ٔؼٕ‪ِٛ‬ي )‪ (C/C++‬يب وذ‪ٞ‬بي ٔذيشيز ؿذ‪ٜ‬‬
‫)‪ (C#/Visual Basic .NET‬ثشاي دػشٍب‪ٞ ٜ‬بي ثب ػيؼشٓ ػبُٔ ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ س‪ٛ‬ػؼ‪ ٝ‬د‪ٞ‬يذ‪.‬‬

‫دس ايٗ ٔمبِ‪ ٝ‬ؿٕب يبد ٔي ٌيشيذ و‪ٚ ٝ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2008 ٛ‬سا ‪ٕٞ‬شا‪ ٜ‬ثب اثضاس‪ٞ‬بي س‪ٛ‬ػؼ‪ ٝ‬ي ٘شْ افضاس دس ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ٘لت و‪ٙ‬يذ ‪٘ ٚ‬خؼشيٗ ثش٘بٔ‪ٝ‬‬
‫‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ خ‪ٛ‬د سا ثشاي ٍ٘بسؽ ‪ 6‬ايٗ ػيؼشٓ ػبُٔ ايؼبد ٕ٘بييذ‪ .‬ث‪ ٝ‬ػال‪ ٜٚ‬ثب ؿجي‪ ٝ‬ػبص دػشٍب‪ٚ ٜ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ آؿ‪ٙ‬ب ٔي ؿ‪ٛ‬يذ و‪ ٝ‬أىبٖ آصٔبيؾ‬
‫ثش٘بٔ‪ٞ ٝ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ سا ث‪ ٝ‬ؿٕب ٔي د‪ٞ‬ذ ‪ ٚ‬ؿٕب ٔؼج‪ٛ‬س ٘يؼشيذ و‪ ٝ‬ثشاي ايٗ وبس ث‪ًٛ ٝ‬س فيضيىي‪ ،‬يه دػشٍب‪ٚ ٜ‬الؼي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪ٔ$‬ظال‬
‫‪ Pocket PC‬يب ‪ #Smart Phone‬داؿش‪ ٝ‬ثبؿيذ‪.‬‬

‫٘لت ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ ٚ 2008 ٛ‬اثضاس ‪ٞ‬بي اهبفي س‪ٛ‬ػؼ‪٘ ٝ‬شْ افضاس‬
‫اٌش ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2008 ٛ‬سا ثب س‪ٙ‬ظيٕبر ديؾ فشم ٘لت ٕ٘بييذ‪ٌ ،‬ضي‪ ٝٙ‬ي ‪ Smart Device Development‬ثشاي س‪ٛ‬ػؼ‪ ٝ‬ي ٘شْ افضاس ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص‬
‫ٔ‪ٛ‬ثبيُ فؼبَ خ‪ ٛ‬ا‪ٞ‬ذ ث‪ٛ‬د‪ٞ .‬ش د‪ ٚ‬ثش٘بٔ‪ ٝ‬ي ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ ٚ ٛ‬سا‪ٕٙٞ‬بي آٖ )‪ (MSDN‬دغ اص ٘لت يه ِي‪ٙ‬ه ثشاي ث‪ ٝ‬س‪ٚ‬ص سػب٘ي ٕ٘بيؾ ٔي د‪ٙٞ‬ذ‬
‫و‪ ٝ‬س‪ٛ‬كي‪ٔ ٝ‬ي و‪ ٓٙ‬ثب اػشفبد‪ ٜ‬اص آٖ آخشيٗ ث‪ ٝ‬س‪ٚ‬ص سػب٘ي ‪ٞ‬ب ‪ ٚ‬ػش‪ٚ‬يغ ده ‪ٞ‬ب سا ٘لت ٕ٘بييذ‪.‬‬
‫دغ اص ‪ٚ‬س‪ٚ‬د ث‪ٔ ٝ‬حيي ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ ٛ‬اص ٔ‪ٛٙ‬ي ‪ٌ File – New Project‬ضي‪ ٝٙ‬ي ‪ Smart Device Project‬سا ا٘شخبة ٕ٘بييذ‪ .‬ايٗ ٌضي‪ ٝٙ‬دس ‪ٞ‬ش‬
‫د‪ ٚ‬صثبٖ ‪ Visual Basic .NET ٚ C#‬لبثُ دػششػي اػز‪ .‬ثب فشم ايٗ و‪ ٝ‬ؿٕب يه دش‪ٚ‬ط‪ ٜ‬ث‪ ٝ‬صثبٖ ‪ C#‬دس ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ٍ٘بسؽ ‪ 6‬ايؼبد ٔي‬
‫ٕ٘بييذ ٌّٔت سا ادأ‪ٔ ٝ‬ي د‪ٞ‬يٓ‪ .‬ثذيٗ ٔ‪ٙ‬ظ‪ٛ‬س دس د‪ٙ‬ؼش‪ ٜ‬ي ‪ٌ Project Types‬ضي‪ ٝٙ‬ي ‪ C#‬سا ثبص وشد‪ Smart Device ،ٜ‬سا ا٘شخبة ٕ٘بييذ‪.‬‬
‫‪ٕٞ‬ب٘‪ٙ‬ذ ثمي‪ ٝ‬ي ا٘‪ٛ‬اع دش‪ٚ‬ط‪ٞ ٜ‬ب ٘بْ ‪ٔ ٚ‬حُ رخيش‪ ٜ‬ػبصي آٖ ث‪ًٛ ٝ‬س ديؾ فشم سؼييٗ ٔي ٌشدد ‪ ٚ‬دس ػيٗ حبَ ؿٕب خ‪ٛ‬ا‪ٞ‬يذ س‪ٛ‬ا٘ؼز و‪٘ ٝ‬بْ ‪ٔ ٚ‬حُ‬
‫دِخ‪ٛ‬ا‪ ٜ‬خ‪ٛ‬د سا ثشاي دش‪ٚ‬ط‪ ٜ‬سبٖ سؼييٗ ٕ٘بييذ‪ .‬دغ اص سأييذ ايٗ اًالػبر د‪ٙ‬ؼش‪ ٜ‬ي ػذيذ ثب ػ‪ٛٙ‬اٖ ‪ Add New Smart Device Project‬ػ‪ٟ‬ز‬
‫اهبف‪ ٝ‬وشدٖ ا٘‪ٛ‬اع ٔخشّف دش‪ٚ‬ط‪ٞ ٜ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ٕ٘بيؾ داد‪ٔ ٜ‬ي ؿ‪ٛ‬د‪ .‬لجُ اص ايؼبد ٘خؼشيٗ ثش٘بٔ‪ ٝ‬ي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ‪ ،‬ف‪ٟ‬شػز ثبصؿ‪ ٛ‬ي‬
‫‪ Target Platform‬سا ثبص و‪ٙ‬يذ‪ .‬اٌش ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2008 ٛ‬سا ث‪ ٝ‬ك‪ٛ‬سر اػشب٘ذاسد ٘لت وشد‪ ٜ‬ثبؿيذ‪ ،‬فمي ا٘‪ٛ‬اع ٔحذ‪ٚ‬دي اص دػشٍب‪ٞ ٜ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص‬
‫ٔ‪ٛ‬ثبيُ سا خ‪ٛ‬ا‪ٞ‬يذ ديذ و‪ Windows Mobile 6 ٝ‬ثيٗ آ٘‪ٟ‬ب ٘يؼز‪ .‬ثشاي ايٗ و‪ ٝ‬ثش‪ٛ‬ا٘يذ دس ػيؼشٓ ٔزو‪ٛ‬س دش‪ٚ‬ط‪ ٜ‬ايؼبد ٕ٘بييذ ثبيذ اثضاس س‪ٛ‬ػؼ‪ ٝ‬ي‬
‫آٖ يؼ‪ٙ‬ي ‪ Windows Mobile 6 SDK‬سا ٘لت وشد‪ ٜ‬ثبؿيذ‪ .‬ايٗ اثضاس س‪ٛ‬ػؼ‪ ٝ‬ؿبُٔ ٔؼش‪ٙ‬ذار‪ ،‬ثش٘بٔ‪ٞ ٝ‬بي ٔظبَ‪ ،‬فبيُ ‪ٞ‬بي وشبثخب٘‪ ٝ‬اي‪ ،‬سلب‪ٚ‬يش‬
‫ٔحيي ؿجي‪ ٝ‬ػبص ‪ ٚ‬اثضاس ‪ٞ‬بي الصْ سا ث‪ٚ ٝ‬يظ‪ َٚ‬اػش‪ٛ‬دي‪ ٛ‬اهبف‪ٔ ٝ‬ي ٕ٘بيذ سب ث‪ ٝ‬وٕه آ٘‪ٟ‬ب ثش‪ٛ‬ا٘يذ ثش٘بٔ‪ٞ ٝ‬بي ٔ‪ٛ‬سد ٘ظشسبٖ سا س‪ِٛ‬يذ و‪ٙ‬يذ‪ .‬ايٗ اثضاس‬
‫س‪ٛ‬ػؼ‪ ٝ‬سا ث‪ ٝ‬ك‪ٛ‬سر ٔؼضا ثبيذ ٘لت وشد‪ ٜ‬ثبؿيذ چ‪ ٖٛ‬ثؼذ اص اساي‪ٚ ٝ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ ٛ‬ث‪ ٝ‬ثبصاس‪ ٚ ،‬ث‪ ٝ‬ك‪ٛ‬سر ٔؼشمُ س‪ِٛ‬يذ ‪ ٚ‬س‪ٚ‬ا٘‪ ٝ‬ي ثبصاس ؿذ‪ ٜ‬ا٘ذ‪ .‬اثضاس‬
‫‪ٞ‬بي س‪ٛ‬ػؼ‪ (SDK) ٝ‬ػذيذسش ‪ٔ ٚ‬ش‪ٛٙ‬ع سش ٘يض ثؼذ‪ٞ‬ب لبثُ دػششع خ‪ٛ‬ا‪ٞ‬ذ ث‪ٛ‬د‪ .‬دس دبييٗ د‪ٙ‬ؼش‪ ٜ‬ي ‪ِ Add New Smart Device Project‬ي‪ٙ‬ه‬
‫‪ٚ‬س‪ٚ‬د ث‪ ٝ‬كفح‪ ٝ‬ي اي‪ٙ‬شش٘شي ‪ Windows Mobile Developer Center‬لشاس داسد و‪ ٝ‬اثضاس‪ٞ‬بي ػذيذسش سا ٔي س‪ٛ‬ا٘يذ اص ايٗ كفح‪ ٝ‬دسيبفز‬
‫ٕ٘بييذ‪ .‬اٌش اص لجُ اثضاس س‪ٛ‬ػؼ‪ ٝ‬ي ‪ Windows Mobile 6‬سا دس ٔحيي ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪٘ 2005 ٛ‬لت ‪ ٚ‬دغ اص آٖ ‪ 2008‬سا ٘لت ٕ٘‪ٛ‬د‪ ٜ‬ايذ ثبيذ‬
‫اثضاس س‪ٛ‬ػؼ‪ ٝ‬سا ٔؼذد ٘لت و‪ٙ‬يذ ‪ٌ ٚ‬ش٘‪ ٝ‬دس ٔحيي ‪ 2008‬لبثُ دػششع ٘خ‪ٛ‬ا‪ٞ‬ذ ث‪ٛ‬د‪.‬‬

‫‪5‬‬
‫‪http://m0911.wordpress.com‬‬

‫ؿىُ ‪ :1‬د‪ٙ‬ؼش‪ ٜ‬ي ‪New Smart Device Project‬‬

‫حبَ اٌش حذالُ يىي اص د‪ٍ٘ ٚ‬بسؽ ‪ Professional ٚ Standard‬اثضاس س‪ٛ‬ػؼ‪ ٝ‬ي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪ 6‬سا ٘لت وشد‪ ٜ‬ايذ ٔي س‪ٛ‬ا٘يذ ٘خؼشيٗ ثش٘بٔ‪ ٝ‬ي‬
‫خ‪ٛ‬د سا ثشاي دػشٍب‪ ٜ‬ثب ػيؼشٓ ػبُٔ ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪ 6‬ث‪ٛٙ‬يؼيذ‪.‬‬

‫‪6‬‬
‫‪http://m0911.wordpress.com‬‬
‫ايؼبد ٘خؼشيٗ ثش٘بٔ‪ ٝ‬ي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ‬
‫ثشاي ايٗ ثش٘بٔ‪ ٝ‬ثبيذ ٌضي‪ ٝٙ‬ي ‪ Windows Mobile 6 Professional SDK‬سا دس ثخؾ ‪ Target Platform‬ا٘شخبة ٕ٘بييذ‪ .‬اِجش‪ ٝ‬ؿٕب ‪ٛٙٞ‬ص‬
‫ٔي س‪ٛ‬ا٘يذ ثشاي سؼذاد صيبدي اص دػشٍب‪ٞ ٜ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪ ٚ‬دػشٍب‪ٞ ٜ‬بي ػٕ‪ٔٛ‬ي ‪ Windows CE‬ثش٘بٔ‪ ٝ‬ث‪ٛٙ‬يؼيذ‪ .‬ثب ٘لت ‪ٞ‬ش د‪ٍ٘ ٚ‬بسؽ اثضاس‬
‫س‪ٛ‬ػؼ‪ ٝ‬ي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪ 6‬دس ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2008 ٛ‬ؿٕب ٔي س‪ٛ‬ا٘يذ ثشاي دػشٍب‪ٞ ٜ‬بي صيش ثش٘بٔ‪ ٝ‬ث‪ٛٙ‬يؼيذ‪:‬‬

‫‪‬‬ ‫‪Pocket PC 2003‬‬


‫‪‬‬ ‫)‪Windows CE (non Windows Mobile devices‬‬
‫‪‬‬ ‫‪Windows Mobile 5.0 Pocket PC‬‬
‫‪‬‬ ‫‪Windows Mobile 5.0 Smartphone‬‬
‫‪‬‬ ‫‪Windows Mobile 6 Professional‬‬
‫‪‬‬ ‫‪Windows Mobile 6 Standard‬‬

‫دس ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ٔ ٛ‬ي س‪ٛ‬ا٘يذ ثب د‪ٍ٘ ٚ‬بسؽ ٔخشّف ‪ – .NET Compact Framework‬و‪ ٝ‬صيش ٔؼٕ‪ٛ‬ػ‪ ٝ‬اي اص فشيٓ ‪ٚ‬سن وبُٔ ‪ .NET‬ثشاي‬
‫س‪ِٛ‬يذ ٘شْ افضاس دػشٍب‪ٞ ٜ‬بي ‪ٛٞ‬ؿٕ‪ٙ‬ذ )‪ (Smart Device‬اػز – ثش٘بٔ‪ ٝ‬ث‪ٛٙ‬يؼيذ‪ .NET Compact Framework .‬سا دس ٍ٘بسؽ ‪ٞ‬بي ‪ٚ 2.0‬‬
‫‪ٔ 3.5‬ي س‪ٛ‬ا٘يذ دس ٔحيي ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2008 ٛ‬اػشفبد‪ٕ٘ ٜ‬بييذ‪.‬‬
‫اٌش ٔي خ‪ٛ‬ا‪ٞ‬يذ ثشاي دػشٍب‪ٞ ٜ‬بي لذيٕي سش يب ٍ٘بسؽ ‪ٞ‬بي لجّي ‪ .NET Compact Framework‬ثش٘بٔ‪ ٝ‬ث‪ٛٙ‬يؼيذ ثبيذ ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪2005 ٛ‬‬
‫سا ٘لت و‪ٙ‬يذ و‪ ٝ‬اِجش‪ ٝ‬خبسع اص ح‪ٛ‬كّ‪ ٝ‬ي ايٗ ٌّٔت ٔي ثبؿذ‪ِ .‬يىٗ ؿٕب ٔي س‪ٛ‬ا٘يذ ‪ ٓٞ‬صٔبٖ ٍ٘بسؽ ‪ٞ‬بي ‪ 2008 ٚ 2005‬سا دس يه ػيؼشٓ‬
‫٘لت ٕ٘بييذ‪.‬‬
‫ثشاي ايؼبد يه دش‪ٚ‬ط‪ ٜ‬ي ‪ٔ Smart Device‬شاحُ صيش سا ا٘ؼبْ د‪ٞ‬يذ‪:‬‬
‫‪ٚ .1‬اسد ٔحيي ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2008 ٛ‬ؿ‪ٛ‬يذ‪.‬‬
‫‪ٌ .2‬ضي‪ ٝٙ‬ي ‪ Project‬سا اص ٔ‪ٛٙ‬ي ‪ File->New‬ا٘شخبة ٕ٘بييذ‪.‬‬
‫‪ .3‬دس ثخؾ ‪ Project types‬ايشذا ‪ ٚ Visual C#‬ػذغ ‪ Smart Device‬سا ا٘شخبة ٕ٘بييذ‪.‬‬
‫‪٘ .4‬بْ دش‪ٚ‬ط‪ٔ ٚ ٜ‬حُ رخيش‪ ٜ‬ػبصي آٖ سا سؼييٗ وشد‪ OK ،ٜ‬سا ثض٘يذ‪ .‬د‪ٙ‬ؼش‪ ٜ‬ي ديٍشي ٌٔبثك ؿىُ ‪ٕ٘ 1‬بيؾ داد‪ٔ ٜ‬ي ؿ‪ٛ‬د و‪ ٝ‬دس آٖ‪ٛ٘ ،‬ع‬
‫دش‪ٚ‬ط‪ ،(Template) ٜ‬اثضاس ٔ‪ٛ‬سد اػشفبد‪ٍ٘ ٚ (Target platform) ٜ‬بسؽ ‪ .NET Compact Framework‬سؼييٗ خ‪ٛ‬ا‪ٞ‬يذ وشد‪.‬‬
‫‪ .5‬دس ثخؾ ‪ٌ Target Platform‬ضي‪ ٝٙ‬ي ‪ Windows Mobile 6 Professional SDK‬ا٘شخبة ٕ٘بييذ‪.‬‬
‫‪ .6‬اص ف‪ٟ‬شػز ‪ٌ .NET Compact Framework version‬ضي‪ ٝٙ‬ي ‪ .NET Compact Framework Version 3.5‬سا ا٘شخبة‬
‫ٕ٘بييذ‪.‬‬
‫‪ .7‬اص ف‪ٟ‬شػز ‪ Templates‬اٍِ‪ٛ‬ي ‪ Device Application‬سا ا٘شخبة ٕ٘بييذ‪.‬‬
‫‪ .8‬ثؼذ اص ايٗ ‪ OK‬سا صديذ دش‪ٚ‬ط‪ ٜ‬ي ‪ Smart Device solution‬ايؼبد ٔي ؿ‪ٛ‬د‪ ،‬و‪ ٝ‬ؿبُٔ‪:‬‬
‫ٔشػغ ‪ٞ‬بي ٔشث‪ٛ‬ى ث‪ ٝ‬اػٕجّي ‪ٞ‬بي ٔ‪ٛ‬سد اػشفبد‪ ٜ‬دس ثش٘بٔ‪.ٝ‬‬ ‫‪‬‬
‫‪ ‬دش‪٘ٚ‬ذ‪ ٜ‬ي ‪ AssemblyInfo.cs‬و‪ ٝ‬اًالػبر ؿشوز‪ٔ ،‬حل‪٘ َٛ‬شْ افضاسي ‪ٍ٘ ٚ‬بسؽ آٖ سا دس ايٗ دش‪٘ٚ‬ذ‪ ٜ‬رخيش‪ٔ ٜ‬ي ٕ٘بييذ‪.‬‬
‫دش‪٘ٚ‬ذ‪ ٜ‬ي ‪ Form1.cs‬و‪ ٝ‬حب‪ٚ‬ي وذ ث‪ ٝ‬صثبٖ ‪ٚ‬يظ‪ٚ‬اَ ‪ C#‬ثشاي ‪ٚ‬اػي وبسثشي ا‪ِٚ‬ي‪ ٝ‬ي ثش٘بٔ‪ ٝ‬اػز‪.‬‬ ‫‪‬‬
‫دش‪٘ٚ‬ذ‪ ٜ‬ي ‪ Program.cs‬حب‪ٚ‬ي وذ ث‪ ٝ‬صثبٖ ‪ٚ‬يظ‪ٚ‬اَ ‪ C#‬و‪ ٝ‬دس ‪ٚ‬الغ ٘مٌ‪ ٝ‬ي ؿش‪ٚ‬ع اػشاي ثش٘بٔ‪ ٝ‬ي ؿٕب اػز‪.‬‬ ‫‪‬‬

‫‪7‬‬
‫‪http://m0911.wordpress.com‬‬
‫اٌش ‪ ٕٝٞ‬چيض خ‪ٛ‬ة ديؾ سفش‪ ٝ‬ثبؿذ‪ ،‬ؿٕب ٔحيي ًشاحي فشْ ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2008 ٛ‬سا ث‪ ٝ‬ك‪ٛ‬سر صيش خ‪ٛ‬ا‪ٞ‬يذ ديذ‪.‬‬

‫ؿىُ ‪ٔ :2‬حيي ًشاحي فشْ ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪2008 ٛ‬‬

‫دس ؿىُ ‪ 2‬چ‪ٙ‬ذ ثخؾ ٔ‪ ٟٓ‬اص ٔحيي ًشاحي ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2008 ٛ‬سا ٔي ثي‪ٙ‬يذ‪ .‬ثخؾ ثضسي ػٕز چخ كفح‪ ٝ‬و‪ ٝ‬ؿىُ يه دػشٍب‪ٛٔ ٜ‬ثبيُ ثب‬
‫ػيؼشٓ ػبُٔ ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص سا ٘ـبٖ ٔي د‪ٞ‬ذ ‪ ٚ‬دس ‪ٚ‬الغ ث‪ ٝ‬ػبي ًشاح فشْ دس ثش٘بٔ‪ٞ ٝ‬بي ٔؼٕ‪ِٛ‬ي اػز‪ .‬ؿٕب ٔي س‪ٛ‬ا٘يذ و‪ٙ‬ششَ ‪ٞ‬بي ٔ‪ٛ‬سد ٘يبص ‪ٚ‬اػي‬
‫وبسثشي سا اص ػؼج‪ ٝ‬اثضاس آٖ ا٘شخبة وشد‪ ،ٜ‬داخُ ‪ Form1‬دس ٔحُ ٔ‪ٛ‬سد ٘ظش لشاس د‪ٞ‬يذ‪.‬‬

‫د‪ٙ‬ؼش‪ ٜ‬ي ػٕز ساػز ثبال ث‪٘ ٝ‬بْ ‪ Solution Explorer‬اػز و‪ ٝ‬سٕبْ دش‪ٚ‬ط‪ٞ ٜ‬ب –و‪ ٝ‬ثخوي اص ثش٘بٔ‪ ٝ‬ي ؿٕب ‪ٞ‬ؼش‪ٙ‬ذ ‪ ٚ -‬فبيُ ‪ٞ‬بي داخُ ‪ٞ‬ش وذاْ‬
‫اص آ٘‪ٟ‬ب سا ث‪ ٝ‬ك‪ٛ‬سر ٕ٘بي دسخشي )‪٘ (tree view‬ـبٖ ٔي د‪ٞ‬ذ‪ .‬دس ثخؾ دبييٗ د‪ٙ‬ؼش‪ ٜ‬ي ‪ Solution Explorer‬ؿٕب د‪ٙ‬ؼش‪ ٜ‬ي ثب ػ‪ٛٙ‬اٖ‬
‫‪ Properties‬سا ٔي ثي‪ٙ‬يذ و‪ ٝ‬دس آٖ ٔي س‪ٛ‬ا٘يذ ٔـخلبر ‪ٞ‬ش وذاْ اص و‪ٙ‬ششَ ‪ٞ‬بي ا٘شخبة ؿذ‪ ٜ‬ي ‪ٚ‬اػي وبسثشي سا ثجي‪ٙ‬يذ ‪ ٚ‬سغييش د‪ٞ‬يذ‪.‬‬

‫٘ىش‪ :ٝ‬اٌش د‪ٙ‬ؼش‪ ٜ‬ي ‪ Properties‬سا دس كفح‪ٚ ٝ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪٘ ٛ‬ذاسيذ ٔي س‪ٛ‬ا٘يذ ٌضي‪ ٝٙ‬ي ‪ Properties Window‬سا دس ٔ‪ٛٙ‬ي ‪ View‬فؼبَ‬
‫ٕ٘بييذ‪.‬‬

‫ثخؾ ٔ‪ ٟٓ‬ديٍش دس ٔحيي ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2008 ٛ‬ف‪ٟ‬شػز ثبص ؿ‪ٛ‬ي ‪ Target Device‬اػز و‪ ٝ‬دس ؿىُ ‪ 2‬ثب خي لشٔض ثيوي ؿىُ ٔـخق ؿذ‪ٜ‬‬
‫اػز‪ .‬دس اي‪ٙ‬ؼب ؿٕب ٔي س‪ٛ‬ا٘يذ سؼييٗ و‪ٙ‬يذ و‪ ٝ‬ثش٘بٔ‪ ٝ‬سبٖ سا ثشاي اػشا دس وذاْ دػشٍب‪ ٜ‬يب وذاْ ؿجي‪ ٝ‬ػبص س‪ٛ‬ػؼ‪ٔ ٝ‬ي د‪ٞ‬يذ‪.‬‬

‫‪8‬‬
‫‪www.SoftGozar.Com‬‬
‫‪http://m0911.wordpress.com‬‬
‫ثشاي ايٗ و‪ ٝ‬أىب٘بر ػّٕيبسي ث‪ ٝ‬ثش٘بٔ‪ ٝ‬سبٖ اهبف‪ ٝ‬و‪ٙ‬يذ ٔشاحُ صيش سا ا٘ؼبْ د‪ٞ‬يذ‪.‬‬

‫‪ .1‬يه و‪ٙ‬ششَ دوٕ‪ ٝ‬اص ػؼج‪ ٝ‬اثضاس ثىـيذ ‪ ٚ‬س‪ٚ‬ي ‪ Form1‬لشاس د‪ٞ‬يذ‪.‬‬
‫‪ .2‬دس د‪ٙ‬ؼش‪ ٜ‬ي ‪ٔ Properties‬ـخل‪ ٝ‬ي ‪ Name‬سا اص ٔمذاس ديؾ فشم ‪ button1‬ث‪ btnClickMe ٝ‬سغييش د‪ٞ‬يذ‪.‬‬
‫‪ .3‬دس ‪ٕٞ‬بٖ د‪ٙ‬ؼش‪ٔ ٜ‬ـخل‪ ٝ‬ي ‪ Text‬سا اص ‪ button1‬ث‪ Click ME! ٝ‬سغييش د‪ٞ‬يذ‪.‬‬
‫‪ .4‬يه و‪ٙ‬ششَ ثشچؼت اص ػؼج‪ ٝ‬اثضاس ثىـيذ ‪ ٚ‬س‪ٚ‬ي ‪ Form1‬لشاس د‪ٞ‬يذ ‪ًٛ ٚ‬سي سغييش ا٘ذاص‪ ٜ‬ثذ‪ٞ‬يذ و‪ ٝ‬سٕبْ ػشم ‪ Form1‬سا ثذ‪ٛ‬ؿب٘ذ‪.‬‬
‫‪ .5‬دس د‪ٙ‬ؼش‪ ٜ‬ي ‪ٔ Properties‬ـخل‪ ٝ‬ي ‪ Name‬سا اص ٔمذاس ديؾ فشم ‪ label1‬ث‪ lblInfo ٝ‬سغييش د‪ٞ‬يذ‪.‬‬
‫‪ .6‬دس ‪ٕٞ‬بٖ د‪ٙ‬ؼش‪ٔ ٜ‬مذاس ٔـخل‪ ٝ‬ي ‪ Text‬سا خبِي و‪ٙ‬يذ‪.‬‬
‫‪ .7‬ثشاي ايٗ و‪ٔ ٝ‬ـخلبر ‪ Form1‬دس د‪ٙ‬ؼش‪ ٜ‬ي ‪ Properties‬ظب‪ٞ‬ش ؿ‪ٛ‬د س‪ٚ‬ي ٔحُ دِخ‪ٛ‬ا‪ٞ‬ي اص ‪ Form1‬وّيه و‪ٙ‬يذ‪.‬‬
‫‪ٔ .8‬مذاس ٔـخل‪ ٝ‬ي ‪ MinimizeBox‬سا ‪ False‬لشاس د‪ٞ‬يذ سب ثب وّيه س‪ٚ‬ي دوٕ‪ ٝ‬ي ‪ – OK‬و‪ ٝ‬دس ٌ‪ٛ‬ؿ‪ ٝ‬ي ػٕز ساػز ثبالي ‪Form1‬‬
‫‪ٞ‬ؼز – اػشاي ثش٘بٔ‪ ٝ‬سٕبْ ؿ‪ٛ‬د‪.‬‬
‫‪ .9‬س‪ٚ‬ي دوٕ‪ ٝ‬ي !‪ Click ME‬داثُ وّيه و‪ٙ‬يذ سب ٔذيش س‪ٚ‬يذاد ‪ Click‬سا ث‪ ٝ‬دوٕ‪ ٝ‬اهبف‪ٕ٘ ٝ‬بييذ‪.‬‬
‫‪ .10‬دس ٔحّي اص ‪ٚ‬يشايـٍش وذ و‪ٔ ٝ‬ىبٖ ٕ٘ب لشاس داسد‪ ،‬وذ صيش سا اهبف‪ٕ٘ ٝ‬بييذ‪.‬‬

‫‪lblInfo.Text = "Button '" +‬‬


‫‪btnClickMe.Text +‬‬
‫‪"' clicked at " +‬‬
‫;)(‪DateTime.Now.ToLongTimeString‬‬

‫٘ىش‪ : ٝ‬ؿٕب حيٗ ٘‪ٛ‬ؿشٗ وذ‪ ،‬لبثّيز ٕ٘بيؾ سٍ٘ي وّٕبر وّيذي ‪ٔ ... ٚ‬حيي ‪ٚ‬يشايـٍش وذ سا – و‪ٞ ٝ‬ش وذاْ اص دػش‪ٛ‬س‪ٞ‬ب ‪ ٚ‬ػجبسار سبيخ ؿذ‪ ٜ‬سا ثشاي‬
‫ساحشي سـخيق دسػز ث‪ٛ‬دٖ آٖ‪ ،‬ث‪ ٝ‬سً٘ خبكي ٕ٘بيؾ ٔي د‪ٞ‬ذ – ٔـب‪ٞ‬ذ‪ ٜ‬خ‪ٛ‬ا‪ٞ‬يذ وشد‪ٕٞ .‬چ‪ٙ‬يٗ ‪٘ Intellisense‬يض ؿٕب سا دس ‪ٚ‬اسد وشدٖ‬
‫دػش‪ٛ‬س اِؼُٕ ‪ٞ‬ب وٕه خ‪ٛ‬ا‪ٞ‬ذ وشد‪.‬‬

‫‪9‬‬
‫‪http://m0911.wordpress.com‬‬
‫ثشاي آٔبد‪ ٜ‬ػبصي ‪ ٚ‬اػشاي ثش٘بٔ‪ ٝ‬سبٖ ٔشاحُ صيش سا ا٘ؼبْ د‪ٞ‬يذ‪.‬‬

‫‪ .1‬اص ٔ‪ٛٙ‬ي ‪ٌ Build‬ضي‪ ٝٙ‬ي ‪ Build Solution‬سا ا٘شخبة و‪ٙ‬يذ‪ .‬ثب فشم ايٗ و‪ٞ ٝ‬يچ خٌبيي دس سبيخ دػش‪ٛ‬س‪ٞ‬بي ثش٘بٔ‪٘ ٝ‬ذاؿش‪ ٝ‬ثبؿيذ‬
‫ديغبْ ‪ Build succeeded‬دس ٘‪ٛ‬اس ‪ٚ‬هؼيز ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ٕ٘ 2008 ٛ‬بيؾ داد‪ ٜ‬خ‪ٛ‬ا‪ٞ‬ذ ؿذ‪.‬‬
‫‪ .2‬ثشسػي و‪ٙ‬يذ و‪ٌ ٝ‬ضي‪ ٝٙ‬ي ‪ Windows Mobile 6 Classic Emulator‬دس ف‪ٟ‬شػز ثبصؿ‪ ٛ‬ي ‪ Target Device‬ا٘شخبة ؿذ‪ ٜ‬ثبؿذ‪.‬‬
‫‪ .3‬اص ٔ‪ٛٙ‬ي ‪ٌ Debug‬ضي‪ ٝٙ‬ي ‪ Start Debugging‬سا ا٘شخبة و‪ٙ‬يذ‪.‬‬

‫ثؼذ اص چ‪ٙ‬ذ ِحظ‪ ٝ‬ؿجي‪ ٝ‬ػبص والػيه ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ٍ٘بسؽ ‪ 6‬اػشا ٔي ؿ‪ٛ‬د‪ .‬دس ك‪ٛ‬سر ِض‪ .NET Compact Framework 3.5 ْٚ‬دس ؿجي‪ٝ‬‬
‫ػبص وذي ‪٘ ٚ‬لت خ‪ٛ‬ا‪ٞ‬ذ ؿذ‪ .‬دس ٔشحّ‪ ٝ‬ي دبيب٘ي‪ ،‬ثش٘بٔ‪ ٝ‬ي ؿٕب ٘لت ‪ ٚ‬اػشا خ‪ٛ‬ا‪ٞ‬ذ ؿذ‪.‬‬

‫ؿىُ ‪٘ :3‬خؼشيٗ ثش٘بٔ‪ ٝ‬ؿٕب دس حبَ اػشا دس ؿجي‪ ٝ‬ػبص دػشٍب‪ٚ ٜ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ‬

‫ثشاي آصٔبيؾ اػشاي ثش٘بٔ‪ ٝ‬سبٖ ٔشاحُ صيش سا ا٘ؼبْ د‪ٞ‬يذ‪.‬‬

‫‪ٚ .1‬اسد ثش٘بٔ‪– ٝ‬و‪ ٝ‬دس ؿجي‪ ٝ‬ػبص دس حبَ اػشا اػز – ثـ‪ٛ‬يذ ‪ ٚ‬دوٕ‪ ٝ‬ي !‪ Click ME‬سا وّيه ٕ٘بييذ‪ٔ .‬ش‪ٙ‬ي سا و‪ ٝ‬دس ثشچؼت س‪ٚ‬ي فشْ‬
‫ظب‪ٞ‬ش ٔي ؿ‪ٛ‬د‪ ،‬خ‪ٛ‬ا‪ٞ‬يذ ديذ‪.‬‬
‫‪ .2‬ثب ‪ٞ‬ش ثبس وّيه س‪ٚ‬ي دوٕ‪ٔ ٝ‬ي ثي‪ٙ‬يذ و‪ ٝ‬ػبػز ٕ٘بيؾ داد‪ ٜ‬ؿذ‪ ٜ‬س‪ٚ‬ي ثشچؼت ث‪ ٝ‬س‪ٚ‬ص ٔي ؿ‪ٛ‬د‪.‬‬
‫‪ .3‬ثشاي خش‪ٚ‬ع اص ثش٘بٔ‪ ٝ‬دوٕ‪ ٝ‬ي ‪ OK‬سا دس ٌ‪ٛ‬ؿ‪ ٝ‬ي ػٕز ساػز ثبالي كفح‪ ٝ‬ي ثش٘بٔ‪ ٝ‬وّيه و‪ٙ‬يذ‪.‬‬
‫‪ .4‬ثب ا٘شخبة ٌضي‪ ٝٙ‬ي ‪ Save State and Exit‬اص ٔ‪ٛٙ‬ي ‪ File‬ثش٘بٔ‪ ٝ‬ي ؿجي‪ ٝ‬ػبص‪ ،‬آٖ سا ثج‪ٙ‬ذيذ‪.‬‬
‫‪ .5‬اص ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2008 ٛ‬خبسع ؿ‪ٛ‬يذ‪.‬‬

‫‪10‬‬
‫‪http://m0911.wordpress.com‬‬

‫فصل دوم‬

‫شثيه ساز دستگاه و مذيريت شثيه ساز‬

‫‪11‬‬
‫‪http://m0911.wordpress.com‬‬
‫ٔمذٔ‪ٝ‬‬

‫اٌش ؿٕب س‪ٛ‬ػؼ‪ ٝ‬د‪ٙٞ‬ذ‪ ٜ‬ي ثش٘بٔ‪ٞ ٝ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ثبؿيذ حشٕب ثب ؿجي‪ ٝ‬ػبص دػشٍب‪ ٜ‬آؿ‪ٙ‬ب ‪ٞ‬ؼشيذ‪ .‬ايٗ يه اثضاس سايٍبٖ ثشاي آصٔبيؾ اػشاي ثش٘بٔ‪ٝ‬‬
‫‪ٞ‬بي سبٖ ثش س‪ٚ‬ي ا٘‪ٛ‬اع ٔخشّف دػشٍب‪ٞ ٜ‬بي ثب ػيؼشٓ ػبُٔ ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ثب ٔذَ ‪ٞ‬بي ٔخشّف اػز؛ ثذ‪ ٖٚ‬ايٗ و‪٘ ٝ‬يبص ث‪ ٝ‬س‪ٟ‬ي‪ ٝ‬ي دػشٍب‪ٞ ٜ‬بي‬
‫‪ٚ‬الؼي ثبؿذ‪.‬‬

‫دس ايٗ ٔمبِ‪ ٝ‬ؿٕب ثب ٘ح‪ ٜٛ‬ي وبس ؿجي‪ ٝ‬ػبص دػشٍب‪ ٜ‬ثشاي آصٔبيؾ ثش٘بٔ‪ٞ ٝ‬بي خ‪ٛ‬د آؿ‪ٙ‬ب ٔي ؿ‪ٛ‬يذ ‪ ٚ‬ايٗ و‪ ٝ‬چٍ‪ ٝ٘ٛ‬ؿجي‪ ٝ‬ػبص سا س‪ٙ‬ظيٓ ٕ٘بييذ سب‬
‫دليمب ثش‪ٛ‬ا٘يذ ػّٕىشد اثضاس سا و‪ٙ‬ششَ و‪ٙ‬يذ‪ .‬ث‪ ٝ‬ػال‪ ٜٚ‬چٍ‪ٍ٘ٛ‬ي اػشفبد‪ ٜ‬اص ؿجي‪ ٝ‬ػبص سا ث‪ ٝ‬ك‪ٛ‬سر سشويجي ثب سّفٗ ‪ٕٞ‬شا‪٘ ٜ‬يض خ‪ٛ‬ا‪ٞ‬يذ آٔ‪ٛ‬خز و‪ ٝ‬ثش‪ٛ‬ا٘يذ‬
‫سٕبع ‪ٞ‬بي سّف‪ٙ‬ي ‪ ٚ‬اسػبَ ‪ ٚ‬دسيبفز ديبٔه سا آصٔبيؾ ٕ٘بييذ‪ .‬دس ٘‪ٟ‬بيز خ‪ٛ‬ا‪ٞ‬يذ ديذ و‪ ٝ‬چٍ‪ٔ ٝ٘ٛ‬ي س‪ٛ‬ا٘يذ ث‪ ٝ‬وٕه ثش٘بٔ‪ٛ٘ ٝ‬يؼي‪ ،‬اص ٔذيش ؿجي‪ٝ‬‬
‫ػبص ثشاي و‪ٙ‬ششَ ؿجي‪ ٝ‬ػبص ‪ٞ‬بي ٔخشّف اص داخُ يه ثش٘بٔ‪ ٝ‬ي دػىشبح اػشفبد‪ ٜ‬و‪ٙ‬يذ‪.‬‬

‫ٍ٘بسؽ ‪ٞ‬بي ٔخشّف ؿجي‪ ٝ‬ػبص دػشٍب‪ٜ‬‬


‫ٍ٘بسؽ ‪ 1.0‬ؿجي‪ ٝ‬ػبص دػشٍب‪ٕٞ ٜ‬شا‪ ٜ‬ثب ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2005 ٛ‬ػشه‪ ٝ‬ؿذ‪ .‬ايٗ اثضاس ث‪ ٝ‬ؿٕب أىبٖ ٔي داد و‪ ٝ‬ثذ‪٘ ٖٚ‬يبص ث‪ ٝ‬دػشٍب‪ٚ ٜ‬الؼي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص‬
‫ٔ‪ٛ‬ثبيُ ثش٘بٔ‪ٞ ٝ‬بي خ‪ٛ‬د سا آصٔبيؾ و‪ٙ‬يذ‪ .‬ث‪ٔ ٝ‬حن اساي‪ ٝ‬ي ٍ٘بسؽ ‪ٍ٘ 1.0‬بسؽ ‪ 2.0‬ؿجي‪ ٝ‬ػبص ٘يض ‪ٕٞ‬شا‪ ٜ‬ثب اثضاس س‪ٛ‬ػؼ‪ ٝ‬ي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪ 6‬ػشه‪ٝ‬‬
‫ؿذ و‪ ٝ‬ػّٕىشد ‪ ٚ‬وبسايي آٖ ٘ؼجز ث‪ٍ٘ ٝ‬بسؽ ‪ٌ 1.0‬ؼششؽ يبفز‪ .‬دس ثخـي اص ٔشاحُ ٘لت اثضاس س‪ٛ‬ػؼ‪ ٝ‬ي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪ٍ٘ ،6‬بسؽ ‪ 2.0‬ؿجي‪ ٝ‬ػبص‬
‫دػشٍب‪٘ ٜ‬يض ػبيٍضيٗ ٍ٘بسؽ ‪ٔ 1.0‬ي ٌشدد‪ .‬دس ‪ٚ‬الغ سٕبٔي دش‪ٚ‬ط‪ٞ ٜ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ؿٕب و‪ ٝ‬ثب ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2005 ٛ‬س‪ٛ‬ػؼ‪ ٝ‬داد‪ ٜ‬ايذ اص ٍ٘بسؽ‬
‫ػذيذ اػشفبد‪ ٜ‬خ‪ٛ‬ا‪ٙٞ‬ذ وشد‪ .‬حشي اٌش ؿٕب دالسفشْ ٔملذ سا ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪ 6‬سؼييٗ ٘ى‪ٙ‬يذ ‪ ٚ‬ثخ‪ٛ‬ا‪ٞ‬يذ ‪ٕٞ‬چ‪ٙ‬بٖ اص ٍ٘بسؽ ‪ 2005‬اػشفبد‪ٕ٘ ٜ‬بييذ‪ ،‬ثبص‬
‫‪ ٓٞ‬ث‪ٟ‬شش اػز و‪ ٝ‬حذالُ يه اثضاس س‪ٛ‬ػؼ‪ٚ ٝ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪ 6‬سا ٘لت و‪ٙ‬يذ سب ٘‪ ٝ‬فمي اص ػشػز ثبالسش ثّى‪ ٝ‬اص ديـشفز ‪ٞ‬بي آٖ ٔب٘‪ٙ‬ذ أىبٖ س‪ٙ‬ظيٕبر‬
‫ػضء ث‪ ٝ‬ػضء ثشاي ثخؾ ‪ٞ‬بي خبف دػشٍب‪ ،ٜ‬يب أىبٖ ؿجي‪ ٝ‬ػبصي اسلبَ ثي ػيٓ اػشفبد‪ٕ٘ ٜ‬بييذ‪.‬‬

‫ٍ٘بسؽ ‪ 0.3‬آخشيٗ ٍ٘بسؽ ؿجي‪ ٝ‬ػبص دػشٍب‪$ ٜ‬دس صٔبٖ ٍ٘بسؽ ايٗ ٔمبِ‪ #ٝ‬اػز و‪ٕٞ ٝ‬شا‪ ٜ‬ثب ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2008 ٛ‬ػشه‪ ٝ‬ؿذ‪ ٜ‬اػز ‪ ٚ‬ث‪ًٛ ٝ‬س‬
‫خ‪ٛ‬دوبس ٍ٘بسؽ ‪ٞ‬بي لجّي ٘لت ؿذ‪ ٜ‬س‪ٚ‬ي ػيؼشٓ ؿٕب سا ثب ٍ٘بسؽ ػذيذ ػبيٍضيٗ ٔي ٕ٘بيذ‪ٍ٘ .‬بسؽ ‪ ،0.3‬ػال‪ ٜٚ‬ثش ث‪ٟ‬ج‪ٛ‬د وبسآيي ٘ؼجز ث‪ٍ٘ ٝ‬بسؽ‬
‫‪ ،0.2‬اص ‪ٚ‬اػي ‪ٞ‬بي ‪ٔ COM‬ذيش ؿجي‪ ٝ‬ػبص دػشٍب‪ ٜ‬اػشفبد‪ٔ ٜ‬ي و‪ٙ‬ذ‪ .‬ث‪ ٝ‬ػال‪ ٜٚ‬أىبٖ و‪ٙ‬ششَ ؿجي‪ ٝ‬ػبص ‪ٞ‬ب سا اص ًشيك ثش٘بٔ‪ٛ٘ ٝ‬يؼي ثشاي ٔ‪ٛ‬اسد صيش‬
‫فشا‪ٔ ٓٞ‬ي ػبصد‪:‬‬

‫اػشاي ٕ٘‪(instance) ٝ٘ٛ‬‬ ‫‪‬‬


‫خ‪ٛ‬دوبسػبصي اػشاي ؿجي‪ ٝ‬ػبص‪ٞ‬ب‬ ‫‪‬‬
‫سغييش س‪ٙ‬ظيٕبر ؿجي‪ ٝ‬ػبص‬ ‫‪‬‬

‫‪12‬‬
‫‪http://m0911.wordpress.com‬‬
‫اػشاي ؿجي‪ ٝ‬ػبص دػشٍب‪ ٜ‬اص داخُ ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪2008 ٛ‬‬
‫چ‪ٙ‬ذ س‪ٚ‬ؽ ثشاي اػشاي ؿجي‪ ٝ‬ػبص اص داخُ ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ٚ 2008 ٛ‬ػ‪ٛ‬د داسد‪ .‬وبفي اػز و‪ ٝ‬يىي اص ا٘‪ٛ‬اع ؿجي‪ ٝ‬ػبص ‪ٞ‬ب سا و‪ٌٙٔ ٝ‬جك ثش ‪ٚ SDK‬يظ‪ٜ‬‬
‫ي دالسفشْ ٔملذ ثش٘بٔ‪ ٝ‬ي ؿٕب اػز‪ ،‬اص داخُ ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2008 ٛ‬ا٘شخبة و‪ٙ‬يذ ‪ ٚ‬ثش٘بٔ‪ ٝ‬سبٖ سا اػشا و‪ٙ‬يذ‪ .‬لجُ اص اػشاي ثش٘بٔ‪ ٝ‬سبٖ س‪ٚ‬ي ؿجي‪ٝ‬‬
‫ػبص ا٘شخبة ؿذ‪ ،ٜ‬ثش٘بٔ‪ ٝ‬سبٖ وبٔذبيُ ٔي ؿ‪ٛ‬د ‪ ٚ‬ؿجي‪ ٝ‬ػبص ٘يض اٌش دس حبَ اػشا ٘جبؿذ‪ ،‬ثبال ٔي آيذ ‪ ٚ‬ث‪ٚ ٝ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ٔ 2008 ٛ‬شلُ ٔي ؿ‪ٛ‬د‪ .‬ثؼذ‬
‫اص ػبخش‪ ٝ‬ؿذٖ ثش٘بٔ‪ ٝ‬ي اػشايي دس ك‪ٛ‬سر ِض‪ٕٞ SQL Server CE ْٚ‬شا‪ ٜ‬ثب ٍ٘بسؽ دسػز ‪ .NET Compact Framework‬ث‪ًٛ ٝ‬س خ‪ٛ‬دوبس‬
‫دس دجي‪ ٝ‬ػبص دػشٍب‪ ٜ‬اػشا خ‪ٛ‬ا‪ٞ‬ذ ؿذ‪.‬‬

‫ؿىُ ‪ :4‬ثش٘بٔ‪ ٝ‬ي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ دس حبَ اػشا س‪ٚ‬ي ؿجي‪ ٝ‬ػبص دػشٍب‪ٜ‬‬

‫‪13‬‬
‫‪http://m0911.wordpress.com‬‬
‫س‪ٙ‬ظيٓ ٔـخلبر ؿجي‪ ٝ‬ػبص دػشٍب‪ٜ‬‬
‫اغّت ا‪ٚ‬لبر ٕٔىٗ اػز ثخ‪ٛ‬ا‪ٞ‬يذ ثش٘بٔ‪ٚ ٝ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ سبٖ سا ثب س‪ٙ‬ظيٕبر ٔخشّفي اص دػشٍب‪ ٜ‬آصٔبيؾ و‪ٙ‬يذ‪ .‬ثشاي ايٗ حبِز ‪ٞ‬ب ؿجي‪ ٝ‬ػبص دػشٍب‪ٜ‬‬
‫ايٗ أىبٖ سا ث‪ ٝ‬ؿٕب ٔي د‪ٞ‬ذ و‪ ٝ‬سؼ‪ٟ‬يضار ٔخشّفي سا ؿجي‪ ٝ‬ػبصي ٕ٘بييذ‪ٔ .‬ظال ثشاي ٔيضاٖ ؿبسط ٔـخلي اص ثبسشي و‪ ٝ‬ثخ‪ٛ‬ا‪ٞ‬يذ ثش٘بٔ‪ ٝ‬سبٖ سا دس‬
‫حبِز ثبسشي هؼيف أشحبٖ و‪ٙ‬يذ‪ .‬يب ايٗ و‪ ٝ‬يه وبسر ؿجى‪ ٝ‬ي ٔؼبصي سا ث‪ ٝ‬وبسر ؿجى‪ ٝ‬ي فيضيىي خ‪ٛ‬د و‪ ٝ‬س‪ٚ‬ي وبٔذي‪ٛ‬سش سبٖ ‪ٞ‬ؼز ٔشلُ‬
‫ٕ٘بييذ ‪ٕٞ ٚ‬چ‪ٙ‬يٗ د‪ٛ‬سر اسسجبًي )‪ٔ (COM‬ؼبصي ؿجي‪ ٝ‬ػبص سا ث‪ ٝ‬د‪ٛ‬سر اسسجبًي فيضيىي س‪ٚ‬ي وبٔذي‪ٛ‬سشسبٖ ٔشلُ ٕ٘بييذ‪ .‬يب ايٗ و‪ ٝ‬د‪ٛ‬ؿ‪ ٝ‬ي‬
‫خبكي سا ثيٗ وبٔذي‪ٛ‬سش خ‪ٛ‬د ‪$‬و‪ ٝ‬س‪ٚ‬ي آٖ ثش٘بٔ‪ ٝ‬سا س‪ٛ‬ػؼ‪ٔ ٝ‬ي د‪ٞ‬يذ‪ ٚ #‬ؿجي‪ ٝ‬ػبص ‪$‬اص ًشيك د‪ٙ‬ؼش‪ ٜ‬ي ٔـخلبر‪ #‬ث‪ ٝ‬اؿششان ثٍزاسيذ‪ .‬د‪ٛ‬ؿ‪ ٝ‬ي‬
‫اؿششاوي ث‪ ٝ‬ك‪ٛ‬سر وبسر حبفظ‪ (Storage Card) ٝ‬داخُ ؿجي‪ ٝ‬ػبص دػشٍب‪ٔ ٜ‬ـب‪ٞ‬ذ‪ ٜ‬خ‪ٛ‬ا‪ٞ‬ذ ؿذ‪ .‬ثب اػشفبد‪ ٜ‬اص د‪ٛ‬ؿ‪ ٝ‬اؿششاوي ٔي س‪ٛ‬ا٘يذ فبيُ ‪ٞ‬ب‬
‫سا ثيٗ ؿجي‪ ٝ‬ػبص ‪ ٚ‬وبٔذي‪ٛ‬سشي و‪ ٝ‬داسيذ ثش٘بٔ‪ ٝ‬سبٖ سا س‪ٚ‬ي آٖ س‪ٛ‬ػؼ‪ٔ ٝ‬ي د‪ٞ‬يذ ٔجبدِ‪ ٝ‬و‪ٙ‬يذ‪.‬‬
‫ثشاي ٕ٘بيؾ د‪ٙ‬ؼش‪ ٜ‬ي ٔـخلبر ؿجي‪ ٝ‬ػبص اص ٔ‪ٛٙ‬ي ‪ File‬ؿجي‪ ٝ‬ػبص ٌضي‪ ٝٙ‬ي ‪ Configure‬سا ا٘شخبة ٕ٘بييذ‪.‬‬
‫ثب وّيه س‪ٚ‬ي ٌضي‪ ٝٙ‬ي ‪ Options‬دس ٔ‪ٛٙ‬ي ‪ٚ Tools‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪٘ 2008 ٛ‬يض ٔي س ‪ٛ‬ا٘يذ ‪ٕٞ‬يٗ د‪ٙ‬ؼش‪ ٜ‬ي ٔـخلبر سا ٔـب‪ٞ‬ذ‪ٕ٘ ٜ‬بييذ‪ .‬اثشذا دس‬
‫د‪ٙ‬ؼش‪ ٜ‬ي ‪ٌ Options‬ضي‪ ٝٙ‬ي ‪ Device Tools‬سا ثبص وشد‪ Devices ،ٜ‬سا وّيه و‪ٙ‬يذ‪ .‬دس د‪ٙ‬ؼش‪ ٜ‬اي و‪ ٝ‬ثبص ٔي ؿ‪ٛ‬د ؿجي‪ ٝ‬ػبص ٔ‪ٛ‬سد ٘ظش سبٖ سا‬
‫ا٘شخبة ‪ ٚ‬س‪ٚ‬ي ‪ Properties‬وّيه ٕ٘بييذ‪ .‬ثب وّيه س‪ٚ‬ي ‪ Emulator Options‬د‪ٙ‬ؼش‪ ٜ‬ي ‪ Emulator Properties‬ثبص خ‪ٛ‬ا‪ٞ‬ذ ؿذ‪.‬‬

‫ؿىُ ‪ :5‬س‪ٙ‬ظيٓ ٔـخلبر ؿجي‪ ٝ‬ػبص‬

‫‪14‬‬
‫‪http://m0911.wordpress.com‬‬
‫اػشفبد‪ ٜ‬ي ‪ ٓٞ‬صٔبٖ اص ؿجي‪ ٝ‬ػبص دػشٍب‪ ٚ ٜ‬ؿجي‪ ٝ‬ػبص سّفٗ ‪ٕٞ‬شا‪ٜ‬‬
‫ٔ‪ٛ‬اسد ثؼيبسي ديؾ ٔي آيذ و‪ ٝ‬ثخ‪ٛ‬ا‪ٞ‬يذ اػشاي ٘شْ افضاس سبٖ سا دس سّفٗ ‪ٕٞ‬شا‪ ٜ‬آصٔبيؾ و‪ٙ‬يذ‪ٔ .‬ظال ٘شْ افضاس ؿٕب ٕٔىٗ اػز ؿٕبس‪ٌ ٜ‬يشي سّفٗ يب‬
‫اسػبَ ‪ ٚ‬دسيبفز ديبٔه سا ا٘ؼبْ د‪ٞ‬ذ‪ .‬ثشاي ايٗ ٔ‪ٛ‬ساد ؿجي‪ ٝ‬ػبص دػشٍب‪ ٜ‬ثؼيبس ٔفيذ خ‪ٛ‬ا‪ٞ‬ذ ث‪ٛ‬د چشا و‪ ٝ‬وٕه ٔي و‪ٙ‬ذ سب ثذ‪٘ ٖٚ‬يبص ث‪ ٝ‬يه سّفٗ‬
‫‪ٕٞ‬شا‪ٚ ٜ‬الؼي سٕبٔي حبِز ‪ٞ‬بي آٖ سا آصٔبيؾ ٕ٘بييذ‪ .‬ؿجي‪ ٝ‬ػبص سّفٗ دس ٍ٘بسؽ ‪ ٚ 0.2‬ثبالسش لبثُ دػششع اػز‪ .‬ؿجي‪ ٝ‬ػبص سّفٗ ‪ٕٞ‬شا‪ ٜ‬سا اص ٔ‪ٛٙ‬ي‬
‫‪ Start/All Programs / Windows Mobile 6 SDK / Tools / Cellular Emulator‬اػشا ٕ٘بييذ‪ .‬ديؾ اص آٖ و‪ ٝ‬ؿجي‪ ٝ‬ػبص دػشٍب‪ ٜ‬سا ‪ٕٞ‬شا‪ٜ‬‬
‫ثب ؿجي‪ ٝ‬ػبص سّفٗ ‪ٕٞ‬شا‪ ٜ‬اػشفبد‪ٕ٘ ٜ‬بييذ‪ ،‬ثبيذ د‪ٛ‬سر ػشيبَ ؿٕبس‪ 0 ٜ‬ؿجي‪ ٝ‬ػبص دػشٍب‪ ٜ‬سا ث‪ ٝ‬د‪ٛ‬سر ػشيبِي و‪ ٝ‬دس ٘‪ٛ‬اس ‪ٚ‬هؼيز ثش٘بٔ‪ ٝ‬ي ؿجي‪ ٝ‬ػبص‬
‫سّفٗ ‪ٕٞ‬شا‪ٕ٘ ٜ‬بيؾ داد‪ٔ ٜ‬ي ؿ‪ٛ‬د ٔشلُ ٕ٘بييذ‪ .‬دس ؿىُ ‪ 3‬ؿٕب د‪ٛ‬سر ػشيبَ ؿٕبس‪ 0 ٜ‬سا دس كفح‪ ٝ‬ي ٔـخلبر ثش٘بٔ‪ ٝ‬ي ؿجي‪ ٝ‬ػبص ٔي ثي‪ٙ‬يذ و‪ٝ‬‬
‫ثشاي اسسجبى ثب ثش٘بٔ‪ ٝ‬ي ؿجي‪ ٝ‬ػبص سّفٗ ‪ٕٞ‬شا‪ ٜ‬ث‪ ٝ‬د‪ٛ‬سر ‪ٔ COM3‬شلُ ؿذ‪ ٜ‬اػز‪ .‬دغ اص اسلبَ د‪ٛ‬سر ػشيبَ ثبيذ ؿجي‪ ٝ‬ػبص دػشٍب‪ ٜ‬سا سا‪ ٜ‬ا٘ذاصي‬
‫ٔؼذد )‪ (reset‬و‪ٙ‬يذ سب ؿجي‪ ٝ‬ػبص سّفٗ ‪ٕٞ‬شا‪ ٜ‬وبس و‪ٙ‬ذ‪.‬‬

‫ؿىُ ‪ :6‬اسلبَ ؿجي‪ ٝ‬ػبص سّفٗ ‪ٕٞ‬شا‪ ٜ‬ث‪ ٝ‬ؿجي‪ ٝ‬ػبص دػشٍب‪ٜ‬‬

‫حبَ ٔي س‪ٛ‬ا٘يذ‪:‬‬

‫ٌشفشٗ ؿٕبس‪ ٜ‬سّفٗ‬ ‫‪‬‬


‫دسيبفز سٕبع سّف‪ٙ‬ي‬ ‫‪‬‬
‫اػشفبد‪ ٜ‬اص اسلبَ ‪ GPRS‬داخّي ؿجي‪ ٝ‬ػبص دػشٍب‪ ٜ‬ثشاي اسلبَ ث‪ ٝ‬ؿجى‪ٝ‬‬ ‫‪‬‬
‫اسػبَ ‪ ٚ‬دسيبفز ديبٔه‬ ‫‪‬‬
‫ا٘شخبة يىي اص د‪ ٚ‬حبِز ؿجى‪3G ٚ 2G ٝ‬‬ ‫‪‬‬
‫دشداصؽ فشٔبٖ ‪ٞ‬بي ػٌح دبييٗ ٔ‪ٛ‬دْ‬ ‫‪‬‬

‫‪15‬‬
‫‪http://m0911.wordpress.com‬‬
‫دسػز وشدٖ اسلبَ داخُ ؿجي‪ ٝ‬ػبص سّفٗ ‪ٕٞ‬شا‪ٜ‬‬
‫دغ اص اسلبَ ؿجي‪ ٝ‬ػبص دػشٍب‪ ٜ‬ث‪ ٝ‬ؿجي‪ ٝ‬ػبص سّفٗ ‪ٕٞ‬شا‪ ،ٜ‬ؿٕب آصٔبيؾ ‪ٞ‬بي ٔش‪ٛٙ‬ػي سا ثب آٖ ٔي س‪ٛ‬ا٘يذ ا٘ؼبْ د‪ٞ‬يذ‪ .‬ؿٕب ثالفبكّ‪ٔ ٝ‬ي س‪ٛ‬ا٘يذ سٕبع‬
‫سّف‪ٙ‬ي ‪ٕٞ ٚ‬چ‪ٙ‬يٗ ديبٔه اص ‪ /‬ث‪ ٝ‬ؿجي‪ ٝ‬ػبص دػشٍب‪ ٜ‬داؿش‪ ٝ‬ثبؿيذ‪ .‬ث‪ ٝ‬ػال‪ٔ ٜٚ‬ي س‪ٛ‬ا٘يذ اسلبَ ؿجى‪ ٝ‬ي ‪ GPRS‬اص ًشيك ؿجي‪ ٝ‬ػبص دػشٍب‪ ٜ‬دسػز‬
‫و‪ٙ‬يذ‪ .‬ثشاي يبدٌيشي دسػز وشدٖ اسلبَ ؿجى‪ ٝ‬دس ؿجي‪ ٝ‬ػبص دػشٍب‪ ٜ‬ث‪ ٝ‬آدسع صيش ٔشاػؼ‪ ٝ‬و‪ٙ‬يذ‪:‬‬

‫‪http://msdn.microsoft.com/en-us/library/bb158505.aspx‬‬

‫دس ؿىُ ‪ 4‬چ‪ٙ‬ذ اسلبَ ديشب و‪ ٝ‬ثيٗ ؿجي‪ ٝ‬ػبص دػشٍب‪ ٚ ٜ‬ؿجي‪ ٝ‬ػبص سّفٗ ‪ٕٞ‬شا‪ ٜ‬فؼبَ ‪ٞ‬ؼش‪ٙ‬ذ‪ٔ ،‬ي ثي‪ٙ‬يذ‪ .‬دس دغ صٔي‪ ٝٙ‬ي ؿجي‪ ٝ‬ػبص دػشٍب‪ ،ٜ‬ثش٘بٔ‪ٝ‬‬
‫ي اي‪ٙ‬شش٘ز اوؼذّ‪ٛ‬سس سا ٔي ثي‪ٙ‬يذ و‪ ٝ‬يه ‪ٚ‬ة ػبيز سا ثبص وشد‪ ٜ‬اػز‪ .‬اًالػبسي و‪ ٝ‬اص ًشيك اسلبَ ‪ GPRS‬سػيذ‪ ٜ‬اػز‪ً ،‬جك آٖ چ‪ ٝ‬دس ٘‪ٛ‬اس‬
‫‪ٚ‬هؼيز ؿجي‪ ٝ‬ػبص دػشٍب‪ٔ ٜ‬ي ثي‪ٙ‬يذ‪ ،‬ث‪ ٝ‬ؿٕب ٘ـبٖ ٔي د‪ٞ‬ذ و‪ٔ GPRS ٝ‬شلُ ؿذ‪ ٜ‬اػز‪ .‬ؿجي‪ ٝ‬ػبص سّفٗ ‪ٕٞ‬شا‪ ،ٜ‬اسلبَ ‪ GPRS‬سا ثب اػشفبد‪ ٜ‬اص‬
‫اسلبَ ؿجى‪ ٝ‬اي وبٔذي‪ٛ‬سشي و‪ ٝ‬س‪ٚ‬ي آٖ اػشا ؿذ‪ ٜ‬اػز‪ ،‬فشا‪ٔ ٓٞ‬ي و‪ٙ‬ذ‪.‬‬

‫دس ؿىُ ‪ 4‬ؿٕب ثش٘بٔ‪ ٝ‬ي ٔذيش سٕبع ؿجي‪ ٝ‬ػبص سّفٗ ‪ٕٞ‬شا‪ ٜ‬سا ٔي ثي‪ٙ‬يذ و‪ ٝ‬ثب ؿجي‪ ٝ‬ػبص دػشٍب‪ ،ٜ‬سٕبع ٌشفش‪ ٝ‬اػز‪ .‬دس ػؼج‪ٔ ٝ‬شٗ ‪Phone‬‬
‫‪ٔ Number‬ي س‪ٛ‬ا٘يذ ‪ٞ‬ش ؿٕبس‪ ٜ‬سّف‪ٙ‬ي سا ‪ٚ‬اسد ٕ٘بييذ ‪ ٚ‬دوٕ‪ ٝ‬ي ‪ Dial‬سا ثض٘يذ‪ .‬ثالفبكّ‪ ٝ‬ثؼذ اص ايٗ وبس‪ ،‬داخُ ؿجي‪ ٝ‬ػبص دػشٍب‪ ٜ‬ديغبْ سٕبع‬
‫‪ٚ‬س‪ٚ‬دي )‪ (incoming call‬سا خ‪ٛ‬ا‪ٞ‬يذ ديذ ‪ٕٞ ٚ‬بٖ ؿٕبس‪ ٜ‬اي و‪ ٝ‬ؿٕب اص داخُ ؿجي‪ ٝ‬ػبص سّفٗ ‪ٕٞ‬شا‪ٌ ٜ‬شفش‪ ٝ‬ايذ ٕ٘بيؾ داد‪ ٜ‬خ‪ٛ‬ا‪ٞ‬ذ ؿذ‪.‬‬

‫ؿىُ ‪ :7‬ؿجي‪ ٝ‬ػبص دػشٍب‪ ٚ ٜ‬ؿجي‪ ٝ‬ػبص سّفٗ ‪ٕٞ‬شا‪ ٜ‬دس حبَ اػشا‬

‫‪16‬‬
‫‪http://m0911.wordpress.com‬‬

‫اسػبَ ‪ ٚ‬دسيبفز ديبٔه‬


‫يه لبثّيز ٔ‪ ٟٓ‬ؿجي‪ ٝ‬ػبص سّفٗ ‪ ٕٞ‬شا‪ ٜ‬اسػبَ ‪ /‬دسيبفز ديبٔه ث‪ / ٝ‬اص ؿجي‪ ٝ‬ػبص دػشٍب‪ ٜ‬اػز‪ .‬س‪ٛ‬ػ‪ ٝ‬و‪ٙ‬ذي و‪ ٝ‬كشف دسيبفز ديبٔه اص ًشيك ؿجي‪ٝ‬‬
‫ػبص دػشٍب‪٘ ٟٓٔ ٜ‬يؼز‪ .‬ث‪ٔ ٝ‬حن دسيبفز ديبٔه‪ ،‬دغ اص اًالع دادٖ ث‪ ٝ‬وبسثش ديبٔه دسيبفشي دس د‪ٛ‬ؿ‪ ٝ‬ي ‪ inbox‬ؿجي‪ ٝ‬ػبص دػشٍب‪ ٜ‬رخيش‪ٔ ٜ‬ي‬
‫ٌشدد‪ .‬دس ػيٗ حبَ ؿٕب ٘يض ٔي س‪ٛ‬ا٘يذ د يبٔه سا اص ًشيك ثش٘بٔ‪ ٝ‬ي خ‪ٛ‬دسبٖ دسيبفز و‪ٙ‬يذ‪ٕٞ .‬يٗ لبثّيز ث‪ ٝ‬ؿٕب أىب٘بر ٔش‪ٛٙ‬ػي ٔي د‪ٞ‬ذ ث‪ٝ‬‬
‫خل‪ٛ‬ف صٔب٘ي و‪ ٝ‬ؿٕب ثش‪ٛ‬ا٘يذ يه ثش٘بٔ‪ ٝ‬سا و‪ ٝ‬س‪ٚ‬ي يه دػشٍب‪ٚ ٜ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ اػشا ٔي ؿ‪ٛ‬د‪ ،‬اص سا‪ ٜ‬د‪ٚ‬س و‪ٙ‬ششَ و‪ٙ‬يذ‪ .‬يب ثش٘بٔ‪ ٝ‬ي ؿٕب ديبٔه سا‬
‫ث‪ًٛ ٝ‬س ا٘حلبسي دسيبفز وشد‪$ ٜ‬ث‪ ٝ‬داْ ا ٘ذاخش‪ ،#ٝ‬سا‪ٚ ٜ‬س‪ٚ‬د آٖ ث‪ ٝ‬ػيؼشٓ سا ٔؼذ‪ٚ‬د ٕ٘بيذ يب اثشذا آٖ سا ٔؼذ‪ٚ‬د ‪ ٚ‬ػذغ ث‪ ٝ‬د‪ٛ‬ؿ‪ ٝ‬ي ‪ inbox‬داخُ‬
‫دػشٍب‪ ٜ‬اسػبَ ٕ٘بيذ‪.‬‬
‫ث‪ٚ ٝ‬يظ‪ ٜ‬دس حبِشي و‪ ٝ‬ؿٕب اص ديبٔه ثشاي و‪ٙ‬ششَ ثش٘بٔ‪ ٝ‬سبٖ اػشفبد‪ٔ ٜ‬ي و‪ٙ‬يذ‪ٕٔ ،‬ىٗ اع ديبٔه ‪ٞ‬بي ثؼيبسي سا ث‪ ٝ‬دػشٍب‪ ٜ‬اسػبَ ٕ٘بييذ‪ .‬سشويت‬
‫ؿجي‪ ٝ‬ػبص دػ شٍب‪ ٚ ٜ‬ؿجي‪ ٝ‬ػبص سّفٗ ‪ٕٞ‬شا‪ ٜ‬ثشاي چ‪ٙ‬يٗ حبِز ‪ٞ‬بي سؼز ثش٘بٔ‪ٞ ٝ‬يچ ‪ٞ‬ضي‪ ٝٙ‬اي ٘خ‪ٛ‬ا‪ٞ‬ذ داؿز ‪ ٚ‬ؿٕب ث‪ ٝ‬ؿجى‪ ٝ‬ي فيضيىي سّفٗ‬
‫‪ٕٞ‬شا‪ ٜ‬يب ٔظال د‪ ٚ‬ػيٓ وبسر ‪ ٚ‬د‪ ٚ‬ػذد ٌ‪ٛ‬ؿي ‪ ٚ‬دس ٘‪ٟ‬بيز ‪ٞ‬ضي‪ ٝٙ‬ي ديبٔه ث‪ ٝ‬ادشاس‪ٛ‬س سّفٗ ‪ٕٞ‬شا‪٘ ،ٜ‬يبص ٘خ‪ٛ‬ا‪ٞ‬يذ داؿز‪ .‬ث‪ ٝ‬دِيُ ٔحذ‪ٚ‬ديز ايٗ ٔمبِ‪ٝ‬‬
‫ثشاي س‪ٛ‬هيح ؿج ي‪ ٝ‬ػبص دػشٍب‪ٔ ،ٜ‬ب ث‪ ٝ‬ػضئيبر ٘ح‪ ٜٛ‬ي دسيبفز ديبٔه اص ًشيك ثش٘بٔ‪ٛ٘ ٝ‬يؼي اؿبس‪ٕ٘ ٜ‬ي و‪ٙ‬يٓ‪ .‬ثشاي اًالػبر ثيـشش ث‪ٔ ٝ‬شػغ‬
‫‪ MSDN‬آدسع صيش ٔشاػؼ‪ ٝ‬و‪ٙ‬يذ‪:‬‬
‫‪http://msdn.microsoft.com/en-‬‬
‫‪us/library/microsoft.windowsmobile.pocketoutlook.messageinterception.messageinterceptor.aspx‬‬

‫دس ؿىُ ‪ 5‬ؿٕب يه ٕ٘‪ ٝ٘ٛ‬ثش٘بٔ‪ٔ ٝ‬ي ثي‪ٙ‬يذ و‪ ٝ‬ديبٔه ‪ٞ‬بيي سا و‪ ٝ‬ثب ػجبسر ‪ Control Message‬آغبص ؿ‪٘ٛ‬ذ‪ ،‬ػذا ‪ ٚ‬دسيبفز ٔي ٕ٘بيذ‪ٞ .‬ش ثبس و‪ٝ‬‬
‫ديبٔه س‪ٛ‬ػي دػشٍب‪ – ٜ‬و‪ ٝ‬دس حبَ اػشاي ثش٘بٔ‪ ٝ‬ي ‪ SMS Capture‬اػز – دسيبفز ٔي ؿ‪ٛ‬د‪ ،‬اثشذا س‪ٛ‬ػي ثش٘بٔ‪ ٝ‬ثشسػي ٔي ؿ‪ٛ‬د‪ .‬ثش٘بٔ‪ٔ ٝ‬شٗ‬
‫ديبٔه سا دس يه ػؼج‪ٔ ٝ‬شٗ ٕ٘بيؾ ٔي د‪ٞ‬ذ ‪ٔ ٚ‬ـخل‪ ٝ‬ي ‪ Text‬يه و‪ٙ‬ششَ ‪ LinkLabel‬سا ثشاثش ثب ؿٕبس‪ ٜ‬سّفٗ اسػبَ و‪ٙٙ‬ذ‪ ٜ‬ي ديبٔه لشاس ٔي‬
‫د‪ٞ‬ذ‪ .‬وبسثش خ‪ٛ‬ا‪ٞ‬ذ س‪ٛ‬ا٘ؼز ث‪ ٝ‬ػبدٌي ثب وّيه س‪ٚ‬ي ؿٕبس‪ ٜ‬سّفٗ ٕ٘بيؾ داد‪ ٜ‬ؿذ‪ ،ٜ‬ثب فشػش‪ٙ‬ذ‪ ٜ‬ي ديبٔه سٕبع سّف‪ٙ‬ي ثٍيشد‪.‬‬

‫ؿىُ ‪ :8‬دسيبفز ديبٔه داخُ يه ثش٘بٔ‪ٝ‬‬

‫‪17‬‬
‫‪http://m0911.wordpress.com‬‬

‫و‪ٙ‬ششَ ؿجي‪ ٝ‬ػبص دػشٍب‪ ٜ‬س‪ٛ‬ػي ثش٘بٔ‪ ٝ‬ي ٔذيش ؿجي‪ ٝ‬ػبص دػشٍب‪ٜ‬‬
‫‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2008 ٛ‬اثضاسي ث‪٘ ٝ‬بْ «‪ »Device Emulator Manager‬داسد و‪ ٝ‬ثشاي و‪ٙ‬ششَ ؿجي‪ ٝ‬ػبص ‪ٞ‬بي دػشٍب‪ - ٜ‬و‪ ٝ‬س‪ٚ‬ي وبٔذي‪ٛ‬سش ٔيضثبٖ‬
‫٘لت ؿذ‪ ٜ‬اػز‪ -‬ثشاي اػشاي ايٗ ثش٘بٔ‪ ،ٝ‬اص ٔ‪ٛٙ‬ي ‪ٌ Tools‬ضي‪ ٝٙ‬ي ‪ Device Emulator Manager‬سا ا٘شخبة و‪ٙ‬يذ‪ .‬ثش٘بٔ‪ ٝ‬ي ٔذيش ؿجي‪ ٝ‬ػبص‬
‫ف‪ٟ‬شػشي اص ؿجي‪ ٝ‬ػبص ‪ٞ‬بي دػشٍب‪ٞ ٜ‬ب سا ث ‪ ٝ‬ك‪ٛ‬سر ٕ٘‪ٛ‬داس دسخشي ث‪ ٝ‬ؿٕب ٘ـبٖ ٔي د‪ٞ‬ذ ‪ ٚ‬ؿٕب ٔي س‪ٛ‬ا٘يذ ث‪ ٝ‬ؿجي‪ ٝ‬ػبص دػشٍب‪ٛٔ ٜ‬سد ٘ظش خ‪ٛ‬د‬
‫ٔشلُ ؿذ‪ ،ٜ‬دػشٍب‪ٞ‬ي سا حزف يب اهبف‪ٕٛ٘ ٝ‬د‪ ،ٜ‬دس ٘‪ٟ‬بيز دػشٍب‪ ٜ‬سا خبٔ‪ٛ‬ؽ و‪ٙ‬يذ‪ .‬اهبف‪ ٝ‬وشدٖ ؿجي‪ ٝ‬ػبص دػشٍب‪ ٜ‬أىبٖ ثؼيبس ٔفيذي اػز‪ ،‬چ‪ٖٛ‬‬
‫ايٗ لبثّيز سا فشا‪ٔ ٓٞ‬ي و‪ٙ‬ذ ؿجي‪ ٝ‬ػبص دػشٍب‪ ٜ‬س‪ٛ‬ػي ثش٘بٔ‪ ٝ‬ي )‪ (ActiveSync‬دس ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ايىغ دي ‪ Windows Mobile Device Center ٚ‬دس‬
‫‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ‪ٚ‬يؼشب ‪ 7 ٚ‬ث‪ ٝ‬وبٔذي‪ٛ‬سش ٔيضثبٖ ٔشلُ ٌشدد‪ .‬ايٗ ثش٘بٔ‪ ٝ‬ث‪ٔ ٝ‬حن اػشا أىبٖ ٔي د‪ٞ‬ذ و‪ ٝ‬ؿجي‪ ٝ‬ػبص دػشٍب‪ٔ ٜ‬حش‪ٛ‬يبر خ‪ٛ‬د سا ‪ٕٞ‬ؼبٖ ػبصي‬
‫)‪ (Syncronize‬و‪ٙ‬ذ‪ ،‬ث‪ ٝ‬اي‪ٙ‬شش٘ز ٔشلُ ٌشدد يب ث‪ٚ ٝ‬ػيّ‪ ٝ‬ي فبيُ ‪ .CAB‬ثش٘بٔ‪ ٝ‬اي سا اص وبٔذي‪ٛ‬سش ٔيضثبٖ س‪ٚ‬ي ؿجي‪ ٝ‬ػبص دػشٍب‪٘ ٜ‬لت و‪ٙ‬ذ‪.‬‬
‫٘ىش‪ :ٝ‬ؿٕب ثبيذ ثش٘بٔ‪ ٝ‬ي ‪ ActiveSync‬يب ‪ Windows Mobile Device Center‬سا ثشاي اسلبَ ؿجي‪ ٝ‬ػبص دػشٍب‪ ٜ‬ث‪ ٝ‬وبٔذي‪ٛ‬سش‪ ،‬دس ػيؼشٓ خ‪ٛ‬د ٘لت‬
‫وشد‪ ٜ‬ثبؿيذ‪ .‬دس هٕٗ اسلبَ اص ًشيك ‪$ DMA‬دػششػي ٔؼشميٓ ث‪ ٝ‬حبفظ‪ #Direct Memory Access ; ٝ‬سا ٘يض ثبيذ فؼبَ ٕ٘بييذ‪.‬‬
‫‪$‬س‪.‬ن ‪# http://msdn.microsoft.com/en-us/library/aa188173.aspx‬‬

‫ؿىُ ‪ٔ :9‬ذيش ؿجي‪ ٝ‬ػبص دس حبَ اػشاي يه ؿجي‪ ٝ‬ػبص دػشٍب‪ٜ‬‬

‫دس ؿىُ ‪ٚ 6‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪ 1.6‬سا ٔي ثي‪ٙ‬يذ و‪ ٝ‬دس يه كفح‪ ٝ‬ي ٔشثؼي داخُ ٔذيش ؿجي‪ ٝ‬ػبص اػشا ؿذ‪ ٜ‬اػز‪.‬دغ اص اػشاي ؿجي‪ ٝ‬ػبص‪ ،‬ثش٘بٔ‪ ٝ‬ي‬
‫ٔذيش ؿجي‪ ٝ‬ػبص ثشاي اسلبَ ث‪ ٝ‬آٖ ث‪ ٝ‬وبس ٔي س‪ٚ‬د‪ .‬ثشاي و‪ٙ‬ششَ ؿجي‪ ٝ‬ػبص ‪ٞ‬ب اص داخُ ٔذيش ؿجي‪ ٝ‬ػبص ثبيذ س‪ٚ‬ي ؿجي‪ ٝ‬ػبص ٔ‪ٛ‬سد ٘ظش سبٖ اص ِيؼز‬
‫ٕ٘بيؾ دسخشي – و‪ ٕٝٞ ٝ‬ي ؿجي‪ ٝ‬ػبص ‪ٞ‬بي ٘لت ؿذ‪ ٜ‬سا ٘ـبٖ ٔي د‪ٞ‬ذ – ساػز وّيه و‪ٙ‬يذ ‪ٌ ٚ‬ضي‪ ٝٙ‬ي ٔ‪ٛ‬سد ٘ظش سبٖ سا اص ٔ‪ٛٙ‬ي ‪Actions‬‬
‫س‪ٚ‬ي ؿجي‪ ٝ‬ػبص دس حبَ اػشا ا٘شخبة ٕ٘بييذ‪ .‬ث‪ٔ ٝ‬حن اسلبَ ث‪ ٝ‬ؿجي‪ ٝ‬ػبص دػشٍب‪ ٜ‬خ‪ٛ‬ا‪ٞ‬يذ ديذ و‪ ٝ‬ثش٘بٔ‪ ٝ‬ي ‪ ActiveSync‬يب ‪Windows Mobile‬‬
‫‪ Device Center‬ثبال ٔي آي‪ٙ‬ذ‪.‬‬
‫‪18‬‬
‫‪http://m0911.wordpress.com‬‬
‫رخيش‪ ٜ‬ي س‪ٙ‬ظيٕبر ؿجي‪ ٝ‬ػبص دػشٍب‪ ٜ‬ثشاي اػشفبد‪ٞ ٜ‬بي ثؼذي‬
‫ثب ثش٘بٔ‪ ٝ‬ي ٔذيش ؿجي‪ ٝ‬ػبص ايٗ أىبٖ ‪ٞ‬ؼز و‪ ٝ‬ؿٕب س‪ٙ‬ظيٕبر خبف ٔ‪ٛ‬سد ٘ظشسبٖ سا ثشاي ‪ٞ‬ش ٘‪ٛ‬ع ؿجي‪ ٝ‬ػبص دػشٍب‪ ٜ‬رخيش‪ٕ٘ ٜ‬بييذ‪ٔ .‬ظال يه ؿجي‪ٝ‬‬
‫ػبص ايؼبد ٔي و‪ٙ‬يذ و‪ٕٞ ٝ‬يـ‪ ٝ‬ثب ثبسشي ‪ ٚ "50‬وبسر حبفظ‪ ٝ‬اي و‪ ٝ‬س‪ٚ‬ي يه د‪ٛ‬ؿ‪ ٝ‬ي خبف س‪ٚ‬ي وبٔذي‪ٛ‬سش ٔيضثبٖ س‪ٙ‬ظيٓ ؿذ‪ ٜ‬اػز‪ ،‬ثبال ثيبيذ‪.‬‬
‫ثذيٗ ٔ‪ٙ‬ظ‪ٛ‬س دس ثش٘بٔ‪ ٝ‬ي ٔذيش ؿجي‪ ٝ‬ػبص يىي اص ؿجي‪ ٝ‬ػبص ‪ٞ‬بي ٘لت ؿذ‪ ٜ‬سا ا٘شخبة ‪ ٚ‬دغ اص ساػز وّيه س‪ٚ‬ي آٖ ٌضي‪ ٝٙ‬ي ‪ Connect‬سا ثض٘يذ‪.‬‬
‫ث‪ٍٙٞ ٝ‬بْ اػشاي ؿجي‪ ٝ‬ػبص ٔي س‪ٛ‬ا٘يذ س‪ٙ‬ظيٕبر آٖ سا سغييش د‪ٞ‬يذ ‪ ٚ‬س‪ٛ‬ػي ٌضي‪ ٝٙ‬ي ‪ Save As‬اص ٔ‪ٛٙ‬ي ساػز وّيه داخُ ٔذيش ؿجي‪ ٝ‬ػبص‬
‫س‪ٙ‬ظيٕبر ػذيذ سا رخيش‪ٕ٘ ٜ‬بييذ‪.‬ايٗ س‪ٙ‬ظيٕبر رخيش‪ ٜ‬ؿذ‪ ٜ‬ث‪ ٝ‬ك‪ٛ‬سر يه ٘بْ ؿجي‪ ٝ‬ػبص ػذيذ داخُ ٔذيش ؿجي‪ ٝ‬ػبص ديذ‪ ٜ‬خ‪ٛ‬ا‪ٙٞ‬ذ ؿذ‪ .‬دس ٕ٘‪ٛ‬داس‬
‫دسخشي ‪ My Device Emulators‬داخُ ٔذيش ؿجي‪ ٝ‬ػبص ٔي س‪ٛ‬ا٘يذ ايٗ ؿجي‪ ٝ‬ػبص دػشٍب‪ٞ ٜ‬ب سا ثجي‪ٙ‬يذ‪ .‬ثب ايٗ وبس كشفب يه فبيُ حب‪ٚ‬ي س‪ٙ‬ظيٕبر‬
‫ثش ٔج‪ٙ‬بي ٘‪ٛ‬ع خبف ؿجي‪ ٝ‬ػبص ٔ‪ٛ‬سد ٘ظش ؿٕب ايؼبد ٔي ؿ‪ٛ‬د ‪ ٚ‬ثب ‪ٞ‬ش ثبس ايؼبد يه ؿجي‪ ٝ‬ػبص ثب س‪ٙ‬ظيٕبر ػذيذ حبفظ‪ ٝ‬ي چ‪ٙ‬ذا٘ي ثشاي آٖ س‪ٚ‬ي‬
‫‪ٞ‬بسد ديؼه ؿٕب اخشلبف ٕ٘ي يبثذ‪.‬‬

‫ؿىُ ‪ :10‬س‪ٙ‬ظيٕبر ؿجي‪ ٝ‬ػبص دػشٍب‪ٜ‬‬

‫دس ؿىُ ‪ ٜٕٚٛ٘ 7‬اي اص س‪ٙ‬ظيٕبر ؿجي‪ ٝ‬ػبص دػشٍب‪ ٜ‬سا ٔي ثي‪ٙ‬يذ و‪ ٝ‬يه وبسر حبفظ‪ ٝ‬دس ٔؼيش ‪ C:\Users\Public\Documents‬س‪ٚ‬ي وبٔذي‪ٛ‬سش‬
‫ٔيضثبٖ ثشاي آٖ سؼشيف ؿذ‪ ٜ‬اػز ‪ ٚ‬حبِز ثبسشي ‪ "50‬سا ٘يض ث‪ٍٙٞ ٝ‬بْ اػشا ؿجي‪ ٝ‬ػبصي وشد‪ ٜ‬اػز‪ٞ .‬ش ثبس و‪ ٝ‬ايٗ ؿجي‪ ٝ‬ػبص خبف اػشا ؿ‪ٛ‬د ‪ٕٞ‬يٗ‬
‫س‪ٙ‬ظيٕبر اص اثشذا ثشلشاس خ‪ٛ‬ا‪ٙٞ‬ذ ث‪ٛ‬د‪.‬‬

‫‪19‬‬
‫‪http://m0911.wordpress.com‬‬
‫اػشفبد‪ ٜ‬اص ؿجي‪ ٝ‬ػبص دػشٍب‪ ٜ‬ثشاي آصٔبيؾ س‪ٙ‬ظيٕبر أ‪ٙ‬يشي ٔخشّف‬
‫‪ٍٙٞ‬بٔي و‪ ٝ‬اص ؿجي‪ ٝ‬ػبص دػشٍب‪ ٜ‬ثشاي آصٔبيؾ ثش٘بٔ‪ٞ ٝ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ سبٖ اػشفبد‪ٔ ٜ‬ي و‪ٙ‬يذ ثب فشم اسلبَ ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ ٛ‬ث‪ ٝ‬ؿجي‪ ٝ‬ػبص دػشٍب‪ٜ‬‬
‫‪ٞ‬يچ ٔب٘ؼي ثشاي ٘لت ‪ ٚ‬اػشاي آ٘‪ٟ‬ب ٘خ‪ٛ‬ا‪ٞ‬يذ داؿز‪ .‬ؿجي‪ ٝ‬ػبص ٔب٘‪ٙ‬ذ يه ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ وبُٔ ‪ ٚ‬ثذ‪ٔ ٖٚ‬حذ‪ٚ‬ديز أ‪ٙ‬يشي ثشاي ؿٕب وبس خ‪ٛ‬ا‪ٞ‬ذ وشد‪.‬‬
‫ثؼش‪ ٝ‬ث‪ ٝ‬س‪ٙ‬ظيٕبر أ‪ٙ‬يشي س‪ٚ‬ي دػشٍب‪ٚ ٜ‬الؼي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ٕٔىٗ اػز ؿٕب ٕٔىٗ اػز ٔحذ‪ٚ‬ديز ‪ٞ‬بي أ‪ٙ‬يشي ثشاي دػششػي ث‪ ٝ‬آٖ داؿش‪ٝ‬‬
‫ثبؿيذ‪ .‬ثب اػشفبد‪ ٜ‬اص ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2008 ٛ‬خ‪ٛ‬ا‪ٞ‬يذ س‪ٛ‬ا٘ؼز س‪ٙ‬ظيٕبر أ‪ٙ‬يشي ٔ‪ٛ‬سد ٘ظشسبٖ سا س‪ٚ‬ي ؿجي‪ ٝ‬ػبص اػٕبَ ٕ٘بييذ‪ِ .‬يىٗ س‪ٛ‬هيح ايٗ و‪ ٝ‬چ‪ٝ‬‬
‫س‪ٙ‬ظيٕبر أ‪ٙ‬يشي سا ٔي س‪ٛ‬ا٘يذ دس ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ اػٕبَ و‪ٙ‬يذ خبسع اص ح‪ٛ‬كّ‪ ٝ‬ي ايٗ ٔمبِ‪ ٝ‬اػز‪ .‬اص ًشيك ادسع صيش دس ػبيز ٔيىش‪ٚ‬ػبفز ٔي‬
‫س‪ٛ‬ا٘يذ ث‪ ٝ‬سفليُ س‪ٙ‬ظيٕبر أ‪ٙ‬يشي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ سا ثجي‪ٙ‬يذ‪:‬‬

‫‪http://msdn.microsoft.com/en-us/library/bb416353.aspx‬‬

‫‪$‬ث‪ ٝ‬ص‪ٚ‬دي ٔحش‪ٛ‬يبر ايٗ كفح‪ ٝ‬سشػٕ‪ ٝ‬خ‪ٛ‬ا‪ٞ‬ذ ؿذ‪ٔ .‬ششػٓ‪#‬‬

‫اػٕبَ س‪ٙ‬ظيٕبر أ‪ٙ‬يشي خبف دس ؿجي‪ ٝ‬ػبص دػشٍب‪ ٜ‬ػشساػز ‪ ٚ‬آػبٖ اػز‪ .‬ثؼذ اص اػشاي يه ؿجي‪ ٝ‬ػبص دػشٍب‪ٔ ٜ‬ي س‪ٛ‬ا٘يذ س‪ٙ‬ظيٕبر أ‪ٙ‬يشي فؼّي‬
‫آٖ سا اػشخشاع ٕ٘بييذ‪ .‬ثذيٗ ٔ‪ٙ‬ظ‪ٛ‬س اص ٔ‪ٛٙ‬ي ‪ٚ Tools‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ٌ 2008 ٛ‬ضي‪ ٝٙ‬ي ‪ Device Security Manager‬سا ا٘شخبة ٕ٘بييذ‪ .‬دغ اص‬
‫ايٗ‪ ،‬س‪ٙ‬ظيٕبر أ‪ٙ‬يشي ديؾ فشم ٔحيي ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2008 ٛ‬سا خ‪ٛ‬ا‪ٞ‬يذ ديذ‪ .‬س‪ٛ‬ػي ‪ٔ Device Security Manager‬ي س‪ٛ‬ا٘يذ س‪ٙ‬ظيٕبر‬
‫أ‪ٙ‬يشي ؿجي‪ ٝ‬ػبص دػشٍب‪ ٜ‬دس حبَ اػشا ‪ٕٞ ٚ‬چ‪ٙ‬يٗ سأييذي‪ٞ ٝ‬بي ٘لت ؿذ‪ ٜ‬سا ثجي‪ٙ‬يذ‪.‬‬
‫٘ىش‪ :ٝ‬اص ثش٘بٔ‪ ٝ‬ي ‪ Device Security Manager‬ػ‪ٟ‬ز اػشخشاع ‪ ٚ‬ثشسػي س‪ٙ‬ظيٕبر أ‪ٙ‬يشي دػشٍب‪ٚ ٜ‬الؼي ‪$‬فيضيىي‪ٚ #‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪ٔ ٓٞ‬ي‬
‫س‪ٛ‬ا٘يذ اػشفبد‪ ٜ‬و‪ٙ‬يذ‪.‬‬

‫‪20‬‬
‫‪http://m0911.wordpress.com‬‬
‫ثشاي اػٕبَ س‪ٙ‬ظيٕبر أ‪ٙ‬يشي ػذيذ دس يه ؿجي‪ ٝ‬ػبص دػشٍب‪ٔ ٜ‬شاحُ صيش سا ا٘ؼبْ د‪ٞ‬يذ‪:‬‬
‫‪ .1‬اص ثشٌ‪ ٝ‬ي ‪ٌ Device Security Manager‬ضي‪ ٝٙ‬ي ‪ Security Configuration‬سا ثض٘يذ‬
‫‪ .2‬اص ف‪ٟ‬شػز ‪ Security configuration‬س‪ٙ‬ظيٕبر ٔ‪ٛ‬سد ٘ظشسبٖ سا ا٘شخبة و‪ٙ‬يذ‪.‬‬
‫‪ .3‬س‪ٚ‬ي ثشٌ‪ ٝ‬ي ‪ Deploy to Device‬داخُ ‪ Device Security Manager‬وّيه و‪ٙ‬يذ سب س‪ٙ‬ظيٕبر أ‪ٙ‬يشي ٔ‪ٛ‬سد ٘ظشسبٖ س‪ٚ‬ي ؿجي‪ٝ‬‬
‫ػبص اػٕبَ ؿ‪ٛ‬د‪.‬‬

‫ؿىُ ‪ٔ :11‬ذيش أ‪ٙ‬يز دػشٍب‪ ٜ‬دس حبَ اػشا اص داخُ ؿجي‪ ٝ‬ػبص دػشٍب‪ٜ‬‬

‫‪21‬‬
http://m0911.wordpress.com
‫ ػبص‬ٝ‫دوبس ػبصي ٔذيش ؿجي‬ٛ‫خ‬
‫بي‬ٞ ٝٔ‫ب ثش٘ب‬ٞ ٖ‫ا٘يٓ ثب آ‬ٛ‫ ٔي س‬ٝ‫( اػز و‬Component Object Model) COM ‫سر يه ػشي اؿيبي‬ٛ‫ ك‬ٝ‫ ث‬ٜ‫ ػبص دػشٍب‬ٝ‫وبسآيي ٔذيش ؿجي‬
‫ ػبص خبف‬ٝ‫ يه ؿجي‬ٝ‫ ث‬ٝ‫يؼيذ و‬ٛٙ‫ اي ث‬ٝٔ‫ ثش٘ب‬C# ٖ‫ صثب‬ٝ‫ا٘يذ ث‬ٛ‫اٖ ٔظُ ؿٕب ٔي س‬ٛٙ‫ ػ‬ٝ‫ ث‬.ٓ‫يؼي‬ٛٙ‫ ػبص ث‬ٝ‫ششَ ٔذيش ؿجي‬ٙ‫ص ثشاي و‬ٚ‫ذ‬ٙ‫ي‬ٚ ‫دػىشبح‬
‫ ٕ٘بيذ‬ٜ‫ ػبص اػشفبد‬ٝ‫ اص أىب٘بر ٔذيش ؿجي‬ٝ‫( و‬Desktop Apllication) ‫ص‬ٚ‫ذ‬ٙ‫ي‬ٚ ‫ ي دػىشبح‬ٝٔ‫ ثشاي ايؼبد يه ثش٘ب‬.‫ آٖ سا اػشا ٕ٘بيذ‬ٜ‫ٔشلُ ؿذ‬
:‫يذ‬ٞ‫ٔشاحُ صيش سا ا٘ؼبْ د‬

.‫ ايؼبد ٕ٘بييذ‬Visual C# Windows application ‫ ي‬ٝٔ‫ يه ثش٘ب‬2008 ٛ‫دي‬ٛ‫اَ اػش‬ٚ‫يظ‬ٚ ‫ دس ٔحيي‬.1


.‫يذ‬ٙ‫ و‬ٝ‫ اهبف‬ٜ‫ط‬ٚ‫ دش‬ٝ‫ سا ث‬Microsoft.DeviceEmulatorManager.Interop.9.0 ‫ يه ٔشػغ اػٕجّي‬.2
‫سد ٘يبص دس ٔؼيش‬ٛٔ ‫ فبيُ اػٕجّي‬ٝ‫ ٕ٘بييذ الصْ اػز و‬ٜ‫ سا اػشفبد‬ٜ‫ ػبص دػشٍب‬ٝ‫ حشي اٌش ٍ٘بسؽ ػذيذسشي اص ؿجي‬:ٝ‫٘ىش‬
‫د ثبؿذ‬ٛ‫ػ‬ٛٔ \Program Files\Microsoft Device Emulator\1.0\Microsoft.DeviceEmulatorManager.Interop.9.0.dll
.‫ دس اكُ يه اسسمب اص ٍ٘بسؽ ديـيٗ آٖ اػز‬ٜ‫ ػبص دػشٍب‬ٝ‫ ٍ٘بسؽ ػذيذسش ؿجي‬ٝ‫چشا و‬
(TreeView ‫داس دسخشي‬ٕٛ٘ ‫سر يه‬ٛ‫ ك‬ٝ‫ ث‬،‫د‬ٛ‫سش خ‬ٛ‫ دس وبٔذي‬ٜ‫ ؿذ‬ٜ‫بي رخيش‬ٞ ‫ ػبص‬ٝ‫ ؿجي‬ٝ‫ى ث‬ٛ‫ ثشاي ٕ٘بيؾ سٕبٔي اًالػبر ٔشث‬.3
‫ششفيغ‬ٙ‫ ايٗ وذ اص اي‬.‫ ٕ٘بييذ‬ٜ‫ سبٖ اػشفبد‬ٝٔ‫ فشْ اكّي ثش٘ب‬Load ‫يذاد‬ٚ‫ وذ صيش دس ثخؾ ٔذيش س‬ٝ‫ اص لٌؼ‬Control)
.‫ذ‬ٙ‫ ٔي و‬ٜ‫ اػشفبد‬%IDeviceEmulatorManager

# http://msdn.microsoft.com/en-us/library/bb531169.aspx ‫ن‬.‫ س‬%$

string categoryName;
TreeNode categoryNode;
IDeviceEmulatorManager emulatorManager = new DeviceEmulatorManagerClass();

emulatorManager.Reset();
try
{
while (true)
{
categoryName = emulatorManager.get_Name();
categoryNode = new TreeNode(categoryName);
ListDeviceEmulatorSDKs(emulatorManager, categoryNode);
tvEmulators.Nodes.Add(categoryNode);
emulatorManager.MoveNext();
}
}
catch (COMException ex)
{
if (ex.ErrorCode != END_OF_DATA)
throw ex;
}

22
‫‪http://m0911.wordpress.com‬‬
‫‪ .4‬ث‪ ٝ‬س‪ٚ‬ؽ ٔـبث‪ٔ ٝ‬ي س‪ٛ‬ا٘يذ اًالػبر سٕبٔي ؿجي‪ ٝ‬ػبص ‪ٞ‬بي ٘لت ؿذ‪ ٜ‬سا ثب اػشفبد‪ ٜ‬حّم‪ ٝ‬ي ‪ ٚ while‬اي‪ٙ‬ششفيغ‬
‫‪ %%IEnumManagerSDKs‬ث‪ ٝ‬دػز آ‪ٚ‬سيذ‪.‬‬

‫‪ %%$‬س‪.‬ن ‪# http://msdn.microsoft.com/en-us/library/bb531190.aspx‬‬

‫‪ .5‬دغ اص ثبصيبثي اًالػبر سٕبٔي خب٘‪ٛ‬اد‪ ٜ‬ي ؿجي‪ ٝ‬ػبص ‪ٞ‬ب‪ ،‬ثب س‪ٚ‬ؽ ٔـبث‪ ٝ‬خ‪ٛ‬ا‪ٞ‬يذ س‪ٛ‬ا٘ؼز اًالػبر سه سه ؿجي‪ ٝ‬ػبص ‪ٞ‬بي ٔشؼّك ث‪ٞ ٝ‬ش‬
‫‪ SDK‬سا دس حّم‪ ٝ‬ي ‪ while‬ديٍشي ثب اػشفبد‪ ٜ‬اص اي‪ٙ‬ششفيغ ‪ %%% IEnumVMIDs‬ث‪ ٝ‬دػز آ‪ٚ‬سيذ‪.‬‬

‫‪ %%%$‬س‪.‬ن ‪# http://msdn.microsoft.com/en-us/library/bb531183.aspx‬‬

‫‪ .6‬دغ اص دػششػي ث‪ ٝ‬يه ؿجي‪ ٝ‬ػبص خبف‪ ،‬ثب اػشفبد‪ ٜ‬اص س‪ٚ‬اَ ‪ٞ‬ب ٔي س‪ٛ‬ا٘يذ آٖ سا و‪ٙ‬ششَ ٕ٘بييذ‪ٔ .‬ظال ثب فشاخ‪ٛ‬ا٘ي س‪ٚ‬اَ ‪ٞ‬بي‪، Connect‬‬
‫‪ Shutdown ٚ Uncradle ،Cradle‬دس اي‪ٙ‬ششفيغ ‪.%%%% IDeviceEmulatorManagerVMID‬‬

‫‪ %%%%$‬س‪.‬ن ‪# http://msdn.microsoft.com/en-us/library/bb531187.aspx‬‬

‫‪23‬‬
http://m0911.wordpress.com

‫فصل سوم‬

WinForm ‫توسعه ي ترنامه تا‬

24
‫‪http://m0911.wordpress.com‬‬
‫ٔمذٔ‪ٝ‬‬
‫س‪ٛ‬ػؼ‪ ٝ‬ي ٘شْ افضاس ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ؿجب‪ٞ‬ز صيبدي ث‪ ٝ‬س‪ٛ‬ػؼ‪ ٝ‬ي ٘شْ افضاس دس دػىشبح داسد ث‪ٚ ٝ‬يظ‪ ٜ‬صٔب٘ي و‪ ٝ‬يىي اص د‪ ٚ‬صثبٖ ‪ٚ‬يظ‪ٚ‬اَ ثيؼيه يب ‪ٚ‬يژظ‪ٚ‬اَ‬
‫ػي ؿبسح دار ٘ز سا اػشفبد‪ٔ ٜ‬ي و‪ٙ‬يذ‪ .‬ؿٕب ‪ٕٞ‬بٖ اثضاس‪ٞ‬بي س‪ٛ‬ػؼ‪ ٝ‬ي ثش٘بٔ‪ٞ ٝ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص دػىشبح سا ثشاي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪ٞ‬ژٓ اػژشفبد‪ٔ ٜ‬ژي و‪ٙ‬يژذ‬
‫ِيىٗ سفب‪ٚ‬ر ‪ٞ‬بيي ٘يض ثيٗ ايٗ د‪ٔ ٚ‬حيي ‪ٞ‬ؼز‪ .‬دػشٍب‪ٞ ٜ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ كفح‪ ٝ‬ي ٕ٘بيؾ و‪ٛ‬چه سش ‪ٙٔ ٚ‬بثغ ٔحذ‪ٚ‬د سش داس٘ذ ‪ٕٞ ٚ‬چ‪ٙ‬ژيٗ لبثژُ‬
‫حُٕ ث‪ٛ‬د‪ ،ٜ‬اغّت ثبسشي اػشفبد‪ٔ ٜ‬ي و‪ٙٙ‬ذ‪.‬‬
‫ايٗ ٔمبِ‪ ٝ‬اًالػبسي سا دس ثبس‪ ٜ‬ي چٍ‪ٍ٘ٛ‬ي ٘شْ افضاس‪ٞ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص فشْ ثشاي دػشٍب‪ٞ ٜ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ث‪ ٝ‬ؿٕب خ‪ٛ‬ا‪ٞ‬ژذ داد ‪ ٚ‬دس ٘‪ٟ‬بيژز ؿژٕب يژبد ٔژي‬
‫ٌيشيذ و‪ ٝ‬چٌ‪ٛ‬س ٘شْ افضاس‪ٞ‬ب سا ثشاي اػشفبد‪ ٜ‬اص أىب٘بر دػشٍب‪ٞ ٜ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ س‪ٛ‬ػؼ‪ ٝ‬د‪ٞ‬يذ ‪ ٚ‬دس ػيٗ حبَ ح‪ٛ‬اع سبٖ ث‪ ٝ‬ؿبسط ثبسشي ‪ ٓٞ‬ثبؿژذ‬
‫‪ ٚ‬كفح‪ٕ٘ ٝ‬بيؾ ثش٘بٔ‪ ٝ‬سبٖ ثذ‪ ٖٚ‬س‪ٛ‬ػ‪ ٝ‬ث‪ ٝ‬ػ‪ٟ‬ز كفح‪ ٝ‬ي ٕ٘بيؾ دػشٍب‪ ،ٜ‬دسػز ػُٕ و‪ٙ‬ذ‪.‬‬

‫دػشٍب‪ٞ ٜ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ٔذَ ‪ٞ‬بي ٔش‪ٛٙ‬ػي داس٘ذ‬


‫دػشٍب‪ٞ ٜ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ دس ثبصاس ثؼيبس ٔش‪ٛٙ‬ع ‪ٞ‬ؼش‪ٙ‬ذ ‪ ٚ‬ث‪ ٝ‬ػال‪ٍ٘ ٜٚ‬بسؽ ‪ٞ‬بي ٔخشّفي اص ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ سا اػشفبد‪ٔ ٜ‬ي و‪ٙٙ‬ذ‪ .‬دس ايٗ ٔمبِژ‪ٔ ٝ‬ژب ثژب‬
‫ٍ٘بسؽ ‪ٚ 6‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪ٞ$‬ش د‪ٚ ٚ‬يشايؾ اػشب٘ذاسد ‪ ٚ‬حشف‪ ٝ‬اي‪ #‬وبس خ‪ٛ‬ا‪ٞ‬يٓ وشد‪.‬‬

‫دػشٍب‪ٞ ٜ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ اػشب٘ذاسد‬


‫ايٗ دػشٍب‪ٞ ٜ‬ب اغّت ث‪٘ ٝ‬بْ اػٕبسر ف‪$ ٖٛ‬سّفٗ ‪ٛٞ‬ؿٕ‪ٙ‬ذ‪ #‬دس ثبصاس ‪ٞ‬ؼش‪ٙ‬ذ‪ ٕٝٞ .‬ي ايٗ دػشٍب‪ٞ ٜ‬ب أىب٘ژبر سّفژٗ سا داس٘ژذ ِژيىٗ كژفح‪ ٝ‬ي ِٕؼژي‬
‫)‪٘ (Touch Screen‬ذاس٘ذ‪ٔ .‬ؼٕ‪ٛ‬ال ثشاي وبس ثب آٖ ‪ٞ‬ب ث‪ ٝ‬يه دػز ٘يبص داسيذ )‪ .(one-hand operation‬ثشاي س‪ٛ‬ػؼ‪٘ ٝ‬شْ افضاس ‪ٞ‬بيي وژ‪ ٝ‬ثژب ايژٗ‬
‫دػشٍب‪ٞ ٜ‬ب وبس و‪ٙٙ‬ذ ؿٕب اثضاس س‪ٛ‬ػؼ‪ ٝ‬ي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪ 6‬اػشب٘ذاسد ) ‪ (Windows Mobile 6 Standard SDK‬سا ‪ٕٞ‬شا‪ ٜ‬ثژب ‪ٚ‬يژظ‪ٚ‬اَ اػژش‪ٛ‬دي‪ٛ‬‬
‫‪ 2005‬يب ثبالسش ٘يبص داسيذ‪.‬‬

‫دػشٍب‪ٞ ٜ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪ 6‬حشف‪ ٝ‬اي‬


‫ايٗ دػشٍب‪ٞ ٜ‬ب ػٕذسب ث‪٘ ٝ‬بْ دبوز دي ػي )‪ (Pocket PC=PPC‬ؿ‪ٙ‬بخش‪ٔ ٝ‬ي ؿ‪٘ٛ‬ذ‪ .‬ايٗ دػشٍب‪ٞ ٜ‬ب ثؼوب أىب٘بر سّفٗ سا ٘يض داس٘ذ ‪ِٚ‬ژي ‪ٕٞ‬ژ‪ ٝ‬ي‬
‫آٖ ‪ٞ‬ب ث‪ ٝ‬كفح‪ ٝ‬ي ِٕؼي ٔؼ‪ٟ‬ض ‪ٞ‬ؼش‪ٙ‬ذ‪ٔ .‬ؼٕ‪ٛ‬ال ثشاي وبس ثب ايٗ دػشٍب‪ٞ ٜ‬ب ث‪ ٝ‬د‪ ٚ‬دػز ‪ٕٞ‬شا‪ ٜ‬ثب يه و‪ٙ‬ششَ ِٕؼي ٘يبص داسيذ‪ .) .‬ثژشاي س‪ٛ‬ػژؼ‪٘ ٝ‬ژشْ‬
‫افضاس ‪ٞ‬بيي و‪ ٝ‬ثب ايٗ دػشٍب‪ٞ ٜ‬ب وبس و‪ٙٙ‬ذ ؿٕب اثضاس س‪ٛ‬ػؼ‪ ٝ‬ي ‪ٚ‬ي‪ٙ‬ژذ‪ٚ‬ص ٔ‪ٛ‬ثبيژُ ‪ 6‬حشفژ‪ ٝ‬اي ) ‪ (Windows Mobile 6 Professional SDK‬سا‬
‫‪ٕٞ‬شا‪ ٜ‬ثب ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2005 ٛ‬يب ثبالسش ٘يبص داسيذ‪.‬‬

‫ٔ‪ٟ‬بسر ‪ٞ‬بيي و‪ ٝ‬س‪ٛ‬ػؼ‪ ٝ‬د‪ٙٞ‬ذ‪ ٜ‬ثبيذ داؿش‪ ٝ‬ثبؿذ‬


‫س‪ٚ‬ؽ ‪ٞ‬بي س‪ٛ‬ػؼ‪ ٝ‬ي ٘شْ افضاس ‪ٞ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪ ٚ‬دػىشبح دس ٔحيي ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2008 ٛ‬سفب‪ٚ‬ر چ‪ٙ‬ذا٘ي ثب ‪٘ ٓٞ‬ذاس٘ذ‪ .‬دغ اص ‪ٚ‬س‪ٚ‬د ثژ‪ٔ ٝ‬حژيي‬
‫‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2008 ٛ‬ؿٕب سلٕيٓ ٔي ٌيشيذ و‪ ٝ‬چ‪ٛ٘ ٝ‬ع دش‪ٚ‬ط‪ ٜ‬اي سا ‪ ٚ‬دس چ‪ ٝ‬دالسفشٔي آغبص و‪ٙ‬يذ‪ .‬ػذغ ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ ٛ‬يژه دژش‪ٚ‬ط‪ ٜ‬ي ا‪ِٚ‬يژ‪ ٝ‬ثژب‬
‫يه فشْ خبِي ٕ٘بيؾ ٔي د‪ٞ‬ذ و‪ ٝ‬دس آٖ فشْ‪ٚ ،‬اػي وبسثش سا ًشاحي و‪ٙ‬يذ‪ .‬ػٕذ‪ ٜ‬سشيٗ سفب‪ٚ‬ر ث‪ٍٙٞ ٝ‬بْ س‪ٛ‬ػؼ‪ ٝ‬ي ٘شْ افضاس ‪ٚ‬ي‪ٙ‬ژذ‪ٚ‬ص ٔ‪ٛ‬ثبيژُ‪ ،‬كژفح‪ٝ‬‬
‫ٕ٘بيؾ و‪ٛ‬چه ‪ ٚ‬دس ػيٗ حبَ ٔش‪ٛٙ‬ع ٔ‪ٛ‬سد اػشفبد‪ ٜ‬دس دػشٍب‪ٞ ٜ‬ب اػز‪ .‬سفب‪ٚ‬ر ثؼذي سا صٔب٘ي ٔش‪ٛ‬ػ‪ٔ ٝ‬ي ؿ‪ٛ‬يذ و‪ ٝ‬و‪ ٝ‬ثخ‪ٛ‬ا‪ٞ‬يذ و‪ٙ‬ششَ ‪ٞ‬ژبي ‪ٚ‬اػژي‬
‫وبسثش سا اص ػؼج‪ ٝ‬اثضاس ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2008 ٛ‬ثىـيذ ‪ ٚ‬س‪ٚ‬ي فشْ لشاس د‪ٞ‬يذ‪ .‬سؼذاد ٔحذ‪ٚ‬دي و‪ٙ‬ششَ دس ٔمبيؼ‪ ٝ‬ثب دالسفشْ دػىشبح دس دػژششع ؿژٕب‬
‫خ‪ٛ‬ا‪ٞ‬ذ ث‪ٛ‬د‪ .‬ايٗ ٔحذ‪ٚ‬ديز دس ‪ٚ‬يشايؾ اػشب٘ذاسد ثيـشش اص ‪ٚ‬يشايؾ حشف‪ ٝ‬اي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ اػز‪ .‬اص آٖ ػب و‪ ٝ‬دػشٍب‪ٞ ٜ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ اػژشب٘ذاسد‬
‫كفح‪ ٝ‬ي ِٕؼي ٘ذاس٘ذ‪ ،‬ثشخي و‪ٙ‬ششَ ‪ٞ‬بي ‪ٚ‬يشايؾ حشف‪ ٝ‬اي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ دس ‪ٚ‬يشايؾ اػشب٘ذاسد وبسآيي ٘ذاس٘ذ‪.‬‬
‫ايؼبد ‪ٚ‬اػي وبسثشي ثشاي ثش٘بٔ‪ ٝ‬يؼ‪ٙ‬ي ‪ٕٞ‬بٖ وـيذٖ و‪ٙ‬ششَ ‪ٞ‬ب اص ػؼج‪ ٝ‬اثضاس ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ ٚ ٛ‬س‪ٞ‬ب وشدٖ ‪ ٚ‬لشاس دادٖ آٖ س‪ٚ‬ي يه فشْ يب داخُ يه‬
‫و‪ٙ‬ششَ وب٘شي‪ٙ‬ش )‪ - (Container‬و‪ ٝ‬ثشاي ٌش‪ ٜٚ‬ث‪ٙ‬ذي و‪ٙ‬ششَ ‪ٞ‬ب س‪ٚ‬ي فشْ لشاس داد‪ ٜ‬ايذ‪ ٚ -‬اص ًشفي ٔي س‪ٛ‬ا٘يذ چ‪ٙ‬ذ فشْ دس ثش٘بٔ‪ ٝ‬سبٖ داؿش‪ ٝ‬ثبؿژيذ‪،‬‬
‫خ‪ٛ‬دسبٖ و‪ٙ‬ششِي دسػز و‪ٙ‬يذ و‪ ٝ‬اص يه و‪ٙ‬ششَ ٔ‪ٛ‬ػ‪ٛ‬د ٔـشك ؿذ‪ ٜ‬ثبؿذ يب ايٗ و‪ ٝ‬اص اثشذا يه و‪ٙ‬ششَ سا وبٔال خ‪ٛ‬دسبٖ ايؼبد و‪ٙ‬يژذ‪ .‬ػژال‪ ٜٚ‬ثژش ايژٗ‬
‫و‪ٙ‬ششَ ‪ٞ‬بي ػبد‪ ٜ‬سؼذادي د‪ٙ‬ؼش‪ ٜ‬ي ٔىبِٕ‪ٞ ٓٞ ٝ‬ؼز و‪ ٝ‬ؿٕب سا وٕه خ‪ٛ‬ا‪ٞ‬ذ وشد سب ثش٘بٔ‪ ٝ‬سبٖ ث‪ ٝ‬ثش٘بٔ‪ٞ ٝ‬بي ػٕ‪ٔٛ‬ي ‪ ٚ‬اػژشب٘ذاسد ‪ٚ‬ي‪ٙ‬ژذ‪ٚ‬ص ٔ‪ٛ‬ثبيژُ‬
‫ؿجي‪ ٝ‬ثبؿذ‪.‬‬

‫‪25‬‬
‫‪http://m0911.wordpress.com‬‬

‫ًشاحي يه ‪ٚ‬اػي وبسثش ػبد‪ ٜ‬دس ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪ 6‬حشف‪ ٝ‬اي‬


‫يه دش‪ٚ‬ط‪ ٜ‬ي ػذيذ دس ٔحيي ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2008 ٛ‬ايؼبد و‪ٙ‬يذ‪ٛ٘ .‬ع دش‪ٚ‬ط‪ ٜ‬ثبيذ ‪ Smart Device project‬دس يىي اص صثبٖ ‪ٞ‬ژبي ‪ C#‬يژب ‪ٚ‬يژظ‪ٚ‬اَ‬
‫ثيؼيه دار ٘ز ثبؿذ‪ .‬دالسفشْ ٔملذ سا ‪ Windows Mobile 6 Professional SDK‬ا٘شخبة ٕ٘بييذ‪ٚ .‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2008 ٛ‬يه فشْ خبِي ثب‬
‫اثؼبد ٔش‪ٙ‬بػت ثب دالسفشْ ٔملذ ث‪ ٝ‬ؿٕب ٕ٘بيؾ خ‪ٛ‬ا‪ٞ‬ذ داد و‪ ٝ‬ث‪ ٝ‬ؿىُ يه دػشٍب‪ٚ ٜ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ اػز سب ث‪ ٝ‬حذ أىبٖ ؿجي‪ ٝ‬سش ثبؿذ ثژ‪ ٝ‬آٖ چژ‪ ٝ‬دس‬
‫‪ٚ‬الؼيز اػشفبد‪ٔ ٜ‬ي ٌشدد‪ .‬ثب اػشفبد‪ ٜ‬اص ػؼج‪ ٝ‬اثضاس ‪$ Device Controls‬ؿىُ ‪ٔ #1‬ي س‪ٛ‬ا٘يذ و‪ٙ‬ششَ ‪ٞ‬بي ٔ‪ٛ‬سد ٘ظش سبٖ سا س‪ٚ‬ي فشْ لشاس د‪ٞ‬يذ‪.‬‬

‫ؿىُ ‪ٚ :12‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2008 ٛ‬دس ٕ٘بي ًشاحي فشْ‬

‫‪26‬‬
‫‪http://m0911.wordpress.com‬‬
‫خت ! ثيىبس ٕ٘ب٘يذ ‪ ٚ‬و‪ٙ‬ششَ ‪ٞ‬بي ٔخشّفي سا و‪ٔ ٝ‬ي س‪ٛ‬ا٘يذ دس ًشاحي ‪ٚ‬اػي وبسثش اػشفبد‪ ٜ‬و‪ٙ‬يذ‪ٍ٘ ،‬ب‪ٞ‬ي ثي‪ٙ‬ذاصيذ‪ .‬اٌش ثشخي اص آٖ ‪ٞ‬ب ثژ‪ ٝ‬چـژٓ سژبٖ‬
‫آؿ‪ٙ‬ب ٘يؼش‪ٙ‬ذ ث‪ٟ‬ششيٗ وبس ايٗ اػز و‪ ٝ‬آٖ ‪ٞ‬ب س‪ٚ‬ي فشْ لشاس د‪ٞ‬يذ ‪ٔ ٚ‬ـخل‪ٞ ٝ‬بي آٖ ‪ٞ‬ب ‪ ٚ‬وبسوشد ‪ٞ‬ش وذاْ سا ٌٔبِؼژ‪ ٝ‬و‪ٙ‬يژذ ‪ ٚ‬كژذ اِجشژ‪ ٝ‬سا‪ٕٙٞ‬ژبي‬
‫آ٘اليٗ سا ‪ ٓٞ‬ث‪ ٝ‬يبد داؿش‪ ٝ‬ثبؿيذ‪ .‬يىي اص ٔ‪ ٟٓ‬سشيٗ چيض‪ٞ‬بيي و‪ ٝ‬ث‪ٍٙٞ ٝ‬بْ ًشاحي ‪ٚ‬اػي وبسثش ث‪ ٝ‬چـٓ خ‪ٛ‬ا‪ٞ‬ذ آٔذ‪٘ ،‬ح‪ ٜٛ‬ي وبس ًشاح ‪ٚ‬اػي وژبسثش‬
‫اػز‪ .‬دلز و‪ٙ‬يذ و‪ ٝ‬چٌ‪ٛ‬س وٕه سبٖ خ‪ٛ‬ا‪ٞ‬ذ وشد ٔحُ لشاس ٌيشي و‪ٙ‬ششَ ‪ٞ‬ب سا سشاص و‪ٙ‬يذ ‪ ٚ‬وٕششيٗ فبكّ‪ ٝ‬ي ٕٔىٗ سا ثشاي آٖ ‪ٞ‬ب دس ٘ظش ثٍيشيژذ‪.‬‬
‫خٌ‪ٛ‬ى سا‪ٕٙٞ‬ب )‪ (Guide Lines‬وٕه صيبدي خ‪ٛ‬ا‪ٙٞ‬ذ وشد سب دس ا٘ذن صٔب٘ي‪ٚ ،‬اػي وبسثش سا خيّي خ‪ٛ‬ؽ دػز ًشاحي و‪ٙ‬يژذ‪ .‬دس ؿژىُ ‪ 2‬لژشاس‬
‫ٌيشي دوٕ‪ٞ ٝ‬بي ‪ button2 ٚ button1‬سا دس د‪ ٚ‬حبِز افمي ‪ ٚ‬ػٕ‪ٛ‬دي ٘ؼجز ث‪ٔ ٓٞ ٝ‬ي ثي‪ٙ‬يذ و‪ ٝ‬ث‪ ٝ‬وٕه خٌ‪ٛ‬ى ثبسيه آثي سً٘‪ِ ،‬ج‪ٞ ٝ‬ژبي آٖ‬
‫‪ٞ‬ب ٘ؼجز ث‪ ٓٞ ٝ‬سشاص ؿذ‪ ٜ‬ا٘ذ‪.‬‬

‫ؿىُ ‪ :13‬خٌ‪ٛ‬ى سا‪ٕٙٞ‬ب ث‪ٟ‬ششيٗ دػشيبس ؿٕب دس سشويت ث‪ٙ‬ذي ‪ٚ‬اػي وبسثش‬

‫ايؼبد ٘شْ افضاسي و‪ ٝ‬ثش‪ٛ‬ا٘ذ ثب ػ‪ٟ‬ز ‪ٞ‬بي ٔخشّف كفح‪ٕ٘ ٝ‬بيؾ ػبصٌبس ثبؿذ‬
‫س‪ٛٙ‬ع صيبد دػشٍب‪ٞ ٜ‬ب ‪ٔ ٚ‬ذَ ‪ٞ‬بي آٖ ‪ٞ‬ب ثبػض ؿذ‪ ٜ‬اػز و‪ ٝ‬س‪ٛ‬ػؼ‪ ٝ‬ي يه ٘شْ افضاس و‪ ٝ‬ثش‪ٛ‬ا٘ذ دس سؼذاد ٔش‪ٛٙ‬ػي دػشٍب‪ ٜ‬وبس و‪ٙ‬ذ ا٘ذوي ديچيذ‪ٜ‬‬
‫ثبؿذ‪ٚ .‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ ٛ‬ث‪ ٝ‬ؿٕب أىبٖ ث‪ٙ‬ذوـي ‪ ٚ‬طبثز وشدٖ و‪ٙ‬ششَ ‪ٞ‬بي ‪ٚ‬اػي وبسثش سا فشا‪ٔ ٓٞ‬ي و‪ٙ‬ذ‪ .‬ثب اثضاس س‪ٛ‬ػؼ‪ ٝ‬ي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪ٔ 6‬ي س‪ٛ‬ا٘يذ‬
‫اًالػبسي دس ثبس‪ ٜ‬ي لبثّيز ‪ٞ‬بي دػشٍب‪ٍ٘ ٚ ٜ‬بسؽ ‪ٞ‬بي ػيؼشٓ ػبُٔ دػشٍب‪ ٜ‬ث‪ ٝ‬دػز آ‪ٚ‬سيذ‪ِ .‬يىٗ دس ايٗ ٔمبِ‪ٔ ٝ‬ب س‪ٚ‬ي چ‪ٙ‬ذ ٔ‪ٛ‬سد خبف ‪ٔ ٚ‬حذ‪ٚ‬د‬
‫وبس ٔي و‪ٙ‬يٓ‪:‬‬
‫س‪ٛ‬ػ‪ ٝ‬ث‪ٔ ٝ‬يضاٖ ٔ‪ٙ‬بثغ آصاد ػيؼشٓ ‪ ٚ‬ثبسشي‬ ‫‪‬‬
‫اػشا دس دػشٍب‪ٞ ٜ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪6‬‬ ‫‪‬‬
‫‪ٕ٘ ‬بيؾ دسػز دس ‪ٞ‬ش د‪ ٚ‬حبِز افمي‪ ،‬ػٕ‪ٛ‬دي ‪ٕٞ ٚ‬چ‪ٙ‬يٗ دػشٍب‪ٞ ٜ‬بيي ثب كفح‪ٕ٘ ٝ‬بيؾ ٔشثغ ؿىُ‬
‫ثب ‪ٚ‬ػ‪ٛ‬دي و‪$ ٝ‬دس صٔبٖ ٍ٘بسؽ ايٗ ٔمبِ‪ #ٝ‬دػشٍب‪ٞ ٜ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ اػشب٘ذاسد ػ‪ٟ‬ز ‪ٞ‬بي ٔخشّف كفح‪ ٝ‬ي ٕ٘بيؾ سا دـشيجب٘ي ٕ٘ي و‪ٙٙ‬ذ ‪ِٚ‬ي‬
‫ٕٔىٗ اػز دس آي‪ٙ‬ذ‪ ٜ‬ايٗ أىبٖ فشا‪ ٓٞ‬ؿ‪ٛ‬د‪ .‬دس ثشخي ٔ‪ٛ‬اسد ٕ٘بيؾ اًالػبر دس كفح‪ ٝ‬ي افمي ثبػض ساحشي ثيـشش وبسثش خ‪ٛ‬ا‪ٞ‬ذ ؿذ‪ٚ .‬يظ‪ٚ‬اَ‬
‫اػش‪ٛ‬دي‪ ٛ‬ث‪ٍٙٞ ٝ‬بْ ًشاحي ‪ٚ‬اػي وبسثش يه ثش٘بٔ‪ ٝ‬ي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص فشْ‪ ،‬وٕه سبٖ خ‪ٛ‬ا‪ٞ‬ذ وشد سب و‪ٙ‬ششَ ‪ٞ‬ب دس يه ٔ‪ٛ‬لؼيز خبف طبثز وشد‪ ،ٜ‬يب ث‪ٙ‬ذوـي‬
‫و‪ٙ‬يذ‪.‬‬

‫ث‪ٙ‬ذوـي يب طبثز وشدٖ و‪ٙ‬ششَ ‪ٞ‬ب‬


‫ثشاي ٌٕٔئٗ ؿذٖ اص ايٗ و‪ ٝ‬يه فشْ دس ‪ٞ‬ش د‪ ٚ‬حبِز افمي ‪ ٚ‬ػٕ‪ٛ‬دي ث‪ ٝ‬دسػشي ٕ٘بيؾ داد‪ ٜ‬خ‪ٛ‬ا‪ٞ‬ذ ؿذ‪ٔ ،‬ي س‪ٛ‬ا٘يذ و‪ٙ‬ششَ ‪ٞ‬ب سا دس ٔحُ خبكي‬
‫داخُ يه و‪ٙ‬ششَ ٔبف‪ٛ‬ق )‪ٔ (Parent‬ب٘‪ٙ‬ذ فشْ يب دبُ٘ )‪ (Panel Control‬طبثز يب ث‪ٙ‬ذوـي ٕ٘بييذ‪.‬‬
‫٘ىش‪ ٝ‬ي ٔ‪ ٟٓ‬سفب‪ٚ‬ر ثيٗ ث‪ٙ‬ذوـي )‪ ٚ (Dock‬سظجيز )‪ (Anchor‬و‪ٙ‬ششَ ‪ٞ‬ب اػز‪ .‬صٔب٘ي و‪ ٝ‬ؿٕب يه و‪ٙ‬ششَ سا ٘ؼجز ث‪ ٝ‬يه يب چ‪ٙ‬ذ ِج‪ ٝ‬ي يه‬
‫وب٘شي‪ٙ‬ش طبثز ٔي و‪ٙ‬يذ ٔ‪ٛ‬ػت خ‪ٛ‬ا‪ٞ‬ذ ؿذ و‪ٔ ٝ‬خشلبر ٘ؼت ث‪ِ ٝ‬ج‪ٞ ٝ‬بي طبثز ؿذ‪ ٜ‬ثب سغييش ػ‪ٟ‬ز ٕ٘بيؾ طبثز ثٕب٘ذ‪ٍٙٞ .‬بْ ث‪ٙ‬ذوـي يه و‪ٙ‬ششَ‬
‫ؿٕب ِج‪ ٝ‬اي اص وب٘شي‪ٙ‬شش سا و‪ ٝ‬و‪ٙ‬ششَ ثبيذ دس آٖ ٔ‪ٛ‬لؼيز لشاس ثٍيشد‪ ،‬سؼييٗ ٔي و‪ٙ‬يذ‪ .‬اٌش و‪ٙ‬ششَ سا ث‪ٞ ٝ‬ش چ‪ٟ‬بس ِج‪ ٝ‬ث‪ٙ‬ذوـي و‪ٙ‬يذ دس ايٗ ك‪ٛ‬سر آٖ‬
‫و‪ٙ‬ششَ سٕبْ ػٌح و‪ٙ‬ششَ ٔبف‪ٛ‬لؾ ‪$‬فشْ يب وب٘شي‪ٙ‬ش‪ #‬سا خ‪ٛ‬ا‪ٞ‬ذ د‪ٛ‬ؿب٘ذ‪.‬‬
‫‪27‬‬
‫‪http://m0911.wordpress.com‬‬
‫ثشاي ف‪ٕٟ‬يذٖ ث‪ٟ‬شش سفب‪ٚ‬ر ث‪ٙ‬ذوـي ‪ ٚ‬سظجيز و‪ٙ‬ششَ ‪ٞ‬ب ‪ ٚ‬وبسوشد آٖ ‪ٞ‬ب دس ػ‪ٟ‬ز ‪ٞ‬بي ٔخشّف كفح‪ ٝ‬ي ٕ٘بيؾ يه فشْ ػبد‪ ٜ‬ايؼبد ٔي و‪ٙ‬يٓ ‪ٚ‬‬
‫سؼذادي و‪ٙ‬ششَ ثشچؼت سا )‪ - (Label‬و‪ٞ ٝ‬ش وذاْ سً٘ دغ صٔي‪ ٝٙ‬ي ٔشفب‪ٚ‬ر ثب ثمي‪ ٝ‬داؿش‪ ٝ‬ثبؿذ – س‪ٚ‬ي آٖ لشاس ٔي د‪ٞ‬يٓ‪ .‬اِجش‪ ٝ‬ايٗ ‪ٚ‬اػي‬
‫وبسثشي ؿبيذ ث‪٘ ٝ‬ظش ثي ٔلشف ثبؿذ ِيىٗ ٔ‪ ٟٓ‬سشيٗ اػشفبد‪ ٜ‬ي آٖ دس حبَ حبهش ‪ٕٞ‬يٗ ف‪ٕٟ‬يذٖ ث‪ٙ‬ذوـي ‪ ٚ‬سظجيز و‪ٙ‬ششَ ‪ٞ‬ب ‪ ٚ‬سغييش ‪ٚ‬هؼيز آٖ‬
‫‪ٞ‬ب ث‪ٍٙٞ ٝ‬بْ سغييش ػ‪ٟ‬ز ثيٗ افمي ‪ ٚ‬ػٕ‪ٛ‬دي اػز‪$ .‬ؿىُ ‪#3‬‬

‫ؿىُ ‪ٚ :14‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪ 6‬حشف‪ ٝ‬اي دس حبِز ػٕ‪ٛ‬دي‪ ،‬و‪ٙ‬ششَ ‪ٞ‬ب ٘‪ ٝ‬طبثز ؿذ‪ ٜ‬ا٘ذ ‪ ٝ٘ ٚ‬ث‪ٙ‬ذوـي‬

‫ػ‪ ٝ‬ثشچؼت ثباليي س‪ٚ‬ي يه دبُ٘ لشاس ٌشفش‪ ٝ‬ا٘ذ ‪ ٚ‬د‪ ٚ‬ثشچؼت دبيي‪ٙ‬ي س‪ٚ‬ي خ‪ٛ‬د فشْ‪ .‬ثشاي سٕبٔي و‪ٙ‬ششَ ‪ٞ‬بيي وژ‪ ٝ‬س‪ٚ‬ي فژشْ لژشاس ٔژي د‪ٞ‬يژذ ثبيژذ‬
‫ٔـخل‪ٞ ٝ‬بي سظجيز آٖ سا حزف و‪ٙ‬يذ چشا و‪ٚ ٝ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ ٛ‬ث‪ ٝ‬ك‪ٛ‬سر ديؾ فشم ‪ ٕٝٞ‬ي و‪ٙ‬ششَ ‪ٞ‬ب سا ٘ؼجز ثژ‪ِ ٝ‬جژ‪ٞ ٝ‬ژبي ثژبال ‪ ٚ‬ػژٕز چژخ‬
‫وب٘شي‪ٙ‬ش ؿبٖ طبثز ٔي و‪ٙ‬ذ‪ٚ .‬اػي وبسثش دس حبِز ػٕ‪ٛ‬دي خ‪ٛ‬ة ث‪٘ ٝ‬ظش ٔي آيذ ‪ِٚ‬ي ث‪ٔ ٝ‬حن سغييش ػ‪ٟ‬ز اص ػٕ‪ٛ‬دي ث‪ ٝ‬افمي ٔـژىالسي دژيؾ ٔژي‬
‫آيذ‪ .‬وبفي اػز ث‪ ٝ‬ؿىُ ‪ 4‬س‪ٛ‬ػ‪ ٝ‬و‪ٙ‬يذ‪.‬‬

‫ؿىُ ‪ٚ :15‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪ 6‬حشف‪ ٝ‬اي دس حبِز افمي‪ ،‬و‪ٙ‬ششَ ‪ٞ‬ب ٘‪ ٝ‬طبثز ؿذ‪ ٜ‬ا٘ذ ‪ ٝ٘ ٚ‬ث‪ٙ‬ذوـي‬

‫ثالفبكّ‪ ٝ‬خ‪ٛ‬ا‪ٞ‬يذ ديذ و‪ ٝ‬سٕبٔي و‪ٙ‬ششَ ‪ٞ‬بي ثشچؼت و‪ ٝ‬دس ٕ٘بيؾ ػٕ‪ٛ‬دي لبثُ ديذٖ ث‪ٛ‬د٘ذ دس ٕ٘بيؾ افمي ديذ‪ٕ٘ ٜ‬ي ؿ‪٘ٛ‬ذ‪ .‬ثخـي اص دژبّ٘ي وژ‪ٝ‬‬
‫ؿبُٔ ثشچؼت ثباليي اػز‪ ،‬اص كفح‪ ٝ‬ثيش‪ ٖٚ‬سفش‪ ٝ‬اػز‪ .‬ث‪ٕٞ ٝ‬يٗ حبِز ثشچؼت دبيي‪ٙ‬ي وبٔال ٔح‪ ٛ‬ؿژذ‪ ٜ‬اػژز ‪ ٚ‬ػژٕز ساػژز ‪ ٚ‬چژخ كژفح‪ ٝ‬ي‬
‫ٕ٘بيؾ دس حبِز ػٕ‪ٛ‬دي خبِي ٔب٘ذ‪ ٜ‬ا٘ذ‪ .‬ايٗ يؼ‪ٙ‬ي حبِز افمي كشفب ثخـي اص كفح‪ٕ٘ ٝ‬بيؾ حبِز ػٕ‪ٛ‬دي ‪ٚ‬اػي وبسثش سا ٘ـبٖ ٔي د‪ٞ‬ذ‪.‬‬

‫ثشاي سفغ ايٗ ٔـىُ ثذ‪٘ ٖٚ‬يبص ث‪ ٝ‬وذ٘‪ٛ‬يؼي وبفي اػز اص ث‪ٙ‬ذوـي ‪ ٚ‬سظجيژز و‪ٙ‬ژشَ ‪ٞ‬ژب ثژ‪ ٝ‬دسػژشي اػژشفبد‪ٕ٘ ٜ‬بييژذ‪ .‬ثژب اػژشفبد‪ ٜ‬اص ٔـخلژ‪ ٝ‬ي‬
‫‪ٔ Anchor‬ي س‪ٛ‬ا٘يذ يه و‪ٙ‬ششَ سا ٘ؼجز ث‪ ٝ‬يه يب چ‪ٙ‬ذ ِج‪ ٝ‬ي كفح‪ ٝ‬ي ٕ٘بيؾ‪ ،‬طبثز ٍ٘‪ ٝ‬داسيذ‪ .‬يؼ‪ٙ‬ي ٔخشلبر آٖ ٘ؼژجز ثژ‪ِ ٝ‬جژ‪ٞ ٝ‬ژبي سؼيژيٗ‬
‫ؿذ‪ ٜ‬دس ‪ٞ‬ش حبِشي اص ػ‪ٟ‬ز ٕ٘بيؾ طبثز ٔي ٔب٘ذ‪ .‬ثب اػشفبد‪ ٜ‬اص ٔـخل‪ ٝ‬ي ‪٘ Dock‬يض سؼييٗ ٔي و‪ٙ‬يذ و‪ ٝ‬يه و‪ٙ‬ششَ چٍ‪٘ ٝ٘ٛ‬ؼجز ثژ‪ِ ٝ‬جژ‪ٞ ٝ‬ژبي‬
‫و‪ٙ‬ششَ ٔبف‪ٛ‬ق خ‪ٛ‬دؽ سشاص ؿذ‪ ،ٜ‬يب ثخـي اص كفح‪ ٝ‬ي ٕ٘بيؾ سا دش و‪ٙ‬ذ‪ .‬ثب ث‪ٙ‬ذوـي چ‪ٙ‬ذ و‪ٙ‬ششَ ث‪ ٝ‬يه ِج‪ ٝ‬و‪ٙ‬ششَ ٔبف‪ٛ‬ق ؿبٖ‪ ،‬ثبػژض خ‪ٛ‬ا‪ٞ‬ژذ ؿژذ‬

‫‪28‬‬
‫‪http://m0911.wordpress.com‬‬
‫و‪ٙ‬ششَ ‪ٞ‬بي ٔ‪ٛ‬سد ٘ظش ث‪ ٝ‬ك‪ٛ‬سر دـز ػش ‪ ٓٞ‬لشاس ٌيش٘ذ‪ .‬دس ايٗ ٔظبَ ػ‪ ٝ‬ثشچؼت ثباليي داخُ يه دبُ٘ لشاس ٌشفش‪ ٝ‬ا٘ذ‪ .‬ثبالسشيٗ ثشچؼت ث‪ٙ‬ذوـي‬
‫٘ـذ‪ ٜ‬اػز ‪٘ ٚ‬ؼجز ث‪ِ ٝ‬ج‪ٞ ٝ‬بي چخ‪ ،‬ساػز ‪ ٚ‬ثبالي دبُ٘ طبثز ؿذ‪ ٜ‬اػز‪ .‬ث‪ ٝ‬ػجبسسي ٔي س‪ٛ‬اٖ ٌفز و‪ ٝ‬ث‪ ٝ‬ػٕز ثبالي فشْ ث‪ٙ‬ذوـي ؿژذ‪ ٜ‬اػژز‪ .‬دس‬
‫‪ٞ‬ش د‪ ٚ‬حبِز ػٕ‪ٛ‬دي ‪ ٚ‬افمي فبكّ‪ ٝ‬ي ثشچؼت ثب ِج‪ٞ ٝ‬بي ثبال‪ ،‬چخ ‪ ٚ‬ساػز سغييش ٘خ‪ٛ‬ا‪ٞ‬ذ وشد‪ .‬ثژ‪ً ٝ‬ژ‪ٛ‬س ٔـژخق دس حبِژز ٕ٘ژبيؾ افمژي ا٘ژذاص‪ٜ‬‬
‫ثشچؼت ثضسي سش ٔي ؿ‪ٛ‬د سب فبكّ‪ٞ ٝ‬بي ٔزو‪ٛ‬س سغييش ٘ى‪ٙٙ‬ذ‪ .‬د‪ ٚ‬ثش چؼت ديٍش داخُ دبُ٘ – و‪ ٝ‬س‪ٚ‬ي ‪ٕ٘ ٓٞ‬بيؾ داد‪ٔ ٜ‬ي ؿ‪٘ٛ‬ذ‪ -‬ثژ‪ ٝ‬ػژٕز دژبييٗ‬
‫دبُ٘ ث‪ٙ‬ذوـي ؿذ‪ ٜ‬ا٘ذ‪ .‬ؿٕبس‪ ٜ‬ي سشسيت )‪ٔ (tab order‬ـخق ٔي و‪ٙ‬ذ و‪ ٝ‬وذاْ يه اص ثشچؼت ‪ٞ‬ب ٕ٘بيؾ داد‪ ٜ‬ؿژ‪٘ٛ‬ذ‪ .‬اٌژش ػ‪ٟ‬ژز ٕ٘ژبيؾ سا ثژ‪ٝ‬‬
‫افمي سغييش د‪ٞ‬يذ‪ ٕٝٞ ،‬ي و‪ٙ‬ششَ ‪ٞ‬بي س‪ٚ‬ي فشْ ‪ٕٞ‬چ‪ٙ‬بٖ لبثُ ٔـب‪ٞ‬ذ‪ ٜ‬خ‪ٛ‬ا‪ٙٞ‬ذ ث‪ٛ‬د ‪ ٕٝٞ ٚ‬ي ػٌح فشْ س‪ٛ‬ػي و‪ٙ‬ششَ ‪ٞ‬ب دش خ‪ٛ‬ا‪ٞ‬ذ ؿذ‪$ .‬ؿىُ ‪#5‬‬

‫ؿىُ ‪ٚ :16‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪ 6‬حشف‪ ٝ‬اي دس حبِز افمي‪ ،‬ثب و‪ٙ‬ششَ ‪ٞ‬بي طبثز ‪ ٚ‬ث‪ٙ‬ذوـي ؿذ‪ٜ‬‬

‫‪ٚ‬اػي وبسثشي و‪ ٝ‬دس ؿىُ ‪ٔ 5‬ي ثي‪ٙ‬يذ‪ ،‬ث‪ٔ ٝ‬شاست ث‪ٟ‬شش اص ؿىُ ‪ 4‬اػز‪ ،‬چ‪ ٖٛ‬و‪ٙ‬ششَ ‪ٞ‬ب ثشاي ٕ٘بيؾ افمي سغييش ا٘ذاص‪ ٜ‬داد‪ ٜ‬ؿذ‪ ٜ‬ا٘ذ‪ .‬ثشاي ايٗ و‪ٝ‬‬
‫دػز سبٖ ثيبيذ چٌ‪ٛ‬س ثب اػشفبد‪ ٜ‬اص سظجيز يب ث‪ٙ‬ذوـي‪ ،‬و‪ٙ‬ششَ ‪ٞ‬ب سا ػب ٕ٘بيي و‪ٙ‬يذ وبفي اػز وٕي ثيـشش ‪ٚ‬لز ٌزاؿش‪ ،ٝ‬حبِز ‪ٞ‬بي ٔخشّف سا‬
‫آصٔبيؾ و‪ٙ‬يذ‪.‬‬

‫‪29‬‬
‫‪http://m0911.wordpress.com‬‬
‫دس ٔحيي ًشاحي ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2008 ٛ‬ث‪ ٝ‬ساحشي ‪ٞ‬ش د‪ ٚ‬حبِز ػٕ‪ٛ‬دي ‪ ٚ‬افمي سا ٔي س‪ٛ‬ا٘يذ آصٔبيؾ و‪ٙ‬يذ‪ .‬س‪ٚ‬ي ؿىُ دػشٍب‪ ٜ‬ساػز وّيه ‪ٚ‬‬
‫ٌضي‪ ٝٙ‬ي ‪ Rotate Left‬يب ‪ Rotate Right‬سا ا٘شخبة ٕ٘بييذ‪$ .‬ؿىُ ‪ # 6‬سا‪ ٜ‬ديٍش آٖ اػز و‪ ٝ‬فشْ سا ا٘شخبة ‪$‬وّيه‪ #‬وشد‪ ،ٜ‬دوٕ‪ٞ ٝ‬بي س‪ٚ‬ي ٘‪ٛ‬اس‬
‫اثضاس سا ثشاي سغييش ػ‪ٟ‬ز ٕ٘بيؾ اػشفبد‪ ٜ‬و‪ٙ‬يذ‪.‬‬

‫ؿىُ ‪ :17‬سغييش ػ‪ٟ‬ز ٕ٘بيؾ دس حبِز ًشاحي‬

‫ًشاحي ثش٘بٔ‪ ٝ‬اي و‪ ٝ‬س‪ٚ‬ي دػشٍب‪ٞ ٜ‬بي ٔخشّف وبس و‪ٙ‬ذ‬


‫ث‪ٍٙٞ ٝ‬بْ ايؼبد ٘شْ افضاسي و‪ ٝ‬س‪ٚ‬ي يىي اص دالسفشْ ‪ٞ‬بي ٔملذ اثضاس س‪ٛ‬ػؼ‪ ٝ‬ي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪$ 6‬اػٓ اص اػشب٘ذاسد يب حشف‪ ٝ‬اي‪ #‬وبس و‪ٙ‬ژذ‪ٔ ،‬ژي س‪ٛ‬ا٘يژذ‬
‫دالسفشْ فؼّي سا ث‪ ٝ‬دالسفشْ ٔملذ دس اثضاس س‪ٛ‬ػؼ‪ ٝ‬ي ديٍشي سغييش د‪ٞ‬يذ‪ .‬دس ايٗ حبِز ٘شْ افضاس ث‪ ٝ‬دالسفشْ ديٍشي سجژذيُ ٔژي ؿژ‪ٛ‬د يؼ‪ٙ‬ژي ‪ٚ‬يژظ‪ٚ‬اَ‬
‫اػش‪ٛ‬دي‪ 2008 ٛ‬ثش٘بٔ‪ ٝ‬ي ؿٕب سا سغييش ٔي د‪ٞ‬ذ‪ .‬اٌش ثخ‪ٛ‬ا‪ٞ‬يذ ثش٘بٔ‪ ٝ‬اي سا و‪ ٝ‬دس ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪ 6‬حشف‪ ٝ‬اي ػبخش‪ ٝ‬ايذ‪ ،‬ثژ‪ ٝ‬دالسفژشْ ديٍژشي سجژذيُ‬
‫و‪ٙ‬يذ ٔـىالسي سا ديؾ س‪ٚ‬ي خ‪ٛ‬د خ‪ٛ‬ا‪ٞ‬يذ داؿز‪ .‬اص آٖ ػب و‪ٚ ٝ‬يشايؾ اػشب٘ذاسد ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪ 6‬ثژ‪٘ ٝ‬ؼژجز ‪ٚ‬يژشايؾ حشفژ‪ ٝ‬اي آٖ و‪ٙ‬شژشَ ‪ٞ‬ژبي‬
‫وٕششي سا دس ‪ٚ‬اػي وبسثش دـشيجب٘ي ٔي و‪ٙ‬ذ‪ ،‬و‪ٙ‬ششَ ‪ٞ‬بي دـشيجب٘ي ٘ـذ‪ ٜ‬سا ثبيذ ث‪ ٝ‬و‪ٙ‬ششَ ‪ٞ‬بيي سغييش د‪ٞ‬يذ و‪ ٝ‬دس دالسفشْ ػذيژذ وبٔذبيژُ ‪ ٚ‬اػژشا‬
‫ؿ‪٘ٛ‬ذ‪ٚ .‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2008 ٛ‬وبس سجذيُ سا ث‪ ٝ‬ساحشي ا٘ؼبْ خ‪ٛ‬ا‪ٞ‬ذ داد‪ .‬اص ديذٌ ب‪ ٜ‬س‪ٛ‬ػؼ‪ ٝ‬ي ٘شْ افضاس ايذ‪ ٜ‬ي ثشسش آٖ اػز و‪ ٝ‬ثشاي ػژبد‪ ٜ‬سژش ؿژذٖ‬
‫ثحض ػبصٌبسي دالسفشْ ‪ٞ‬ب‪ ،‬الي‪ ٝ‬ي ثيضي‪ٙ‬غ الػيه‪ %‬سا اص الي‪ ٝ‬ي ‪ٚ‬اػي وبسثش ػذا و‪ٙ‬يٓ‪ .‬و‪ٙ‬ششَ ‪ٞ‬بي ‪ٚ‬اػي وبسثش وژ‪ ٝ‬دس دالسفژشْ ػذيژذ دـژشيجب٘ي‬
‫ٕ٘ي ؿ‪٘ٛ‬ذ‪ ،‬س‪ٛ‬ػي ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2008 ٛ‬ػالٔز ٌزاسي ٔي ؿ‪٘ٛ‬ذ ‪ ٚ‬دس ػيٗ حبَ ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2008 ٛ‬ث‪ ٝ‬ؿٕب ديـ‪ٟٙ‬بد ٔي د‪ٞ‬ذ و‪ ٝ‬و‪ٙ‬ششَ ‪ٞ‬ژبي‬
‫ٔزو‪ٛ‬س سا ث‪٘ ٝ‬ضديه سشيٗ حبِز ٔ‪ٌٙ‬جك ثب دالسفشْ ػذيذ سجذيُ و‪ٙ‬يذ‪ .‬اٌش ٘خ‪ٛ‬اػشيذ و‪ ٝ‬دش‪ٚ‬ط‪ ٜ‬سبٖ سا ث‪ ٝ‬دالسفژشْ ٔملژذ ديٍژشي سجژذيُ و‪ٙ‬يژذ ٔژي‬
‫س‪ٛ‬ا٘يذ اص أىب٘بر اسص ثشي فشْ ‪ٞ‬ب )‪ (Visual Form Inheritance‬اػشفبد‪ ٜ‬و‪ٙ‬يذ سب ثب يه دفؼ‪ ٝ‬وذ٘‪ٛ‬يؼي ثش‪ٛ‬ا٘يذ ثش٘بٔ‪ ٝ‬سبٖ سا دس دالسفژشْ ‪ٞ‬ژبي‬
‫ٔخشّف اػشا ٕ٘بييذ‪.‬‬

‫‪ Business Logic %‬ايٗ اكٌالح سا سشػٕ‪٘ ٝ‬ىشدْ‪ .‬اٌش ا‪ ُٞ‬فٗ ‪ٞ‬ؼشيذ سلذيك ٔي و‪ٙ‬يذ و‪٘ ٝ‬جبيذ ايٗ چ‪ٙ‬يٗ ػجبسسي سا سشػٕ‪ ٝ‬وشد‪ .‬اٌش ‪ ٓٞ‬ايٗ اكٌالح ثشاي سبٖ آؿژ‪ٙ‬ب ٘يؼژز‪،‬‬
‫«ث‪ٌ ٝ‬يش٘ذ‪ٞ ٜ‬بي خ‪ٛ‬د دػز ٘ض٘يذ!» وبفي اػز ٌٔبِجي دس ثبس‪ ٜ‬ي ٔؼٕبسي الي‪ ٝ‬ث‪ ٝ‬الي‪ ٝ‬ي ٘شْ افضاس سا ٌٔبِؼ‪ ٝ‬و‪ٙ‬يذ‪ٔ$ .‬ششػٓ‪#‬‬

‫‪30‬‬
‫‪www.SoftGozar.Com‬‬
‫‪http://m0911.wordpress.com‬‬
‫اسص ثشي فشْ ‪ٞ‬ب‬
‫‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2008 ٛ‬أىب٘بر وبُٔ ًشاحي سا دس صٔبٖ اسص ثشي يه فشْ اص فشْ ديٍش‪ ،‬ث‪ ٝ‬ؿٕب ٔي د‪ٞ‬ذ‪ .‬ثشاي ف‪ٕٟ‬يذٖ ث‪ٟ‬شش‪ ،‬ثب يه فشْ دبي‪ ٝ‬ؿژش‪ٚ‬ع‬
‫ٔي و‪ٙ‬يٓ و‪٘ ٝ‬مٌ‪ ٝ‬ي آغبصي خ‪ٛ‬ا‪ٞ‬ذ ث‪ٛ‬د ثشاي س‪ِٛ‬يذ ٘شْ افضاسي و‪ ٝ‬دس دالسفشْ ‪ٞ‬بي ٔخشّف ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ وبس و‪ٙ‬ذ‪ .‬ثب ‪ٚ‬ػ‪ٛ‬د ايٗ و‪ٕٔ ٝ‬ىٗ اػز ايژٗ‬
‫وبس دس ٍ٘ب‪ ٜ‬ا‪ َٚ‬غيش هش‪ٚ‬سي ث‪ ٝ‬چـٓ ثيبيذ‪ِ ،‬يىٗ سؼشث‪ ٝ‬ي ايؼبد يه فبيُ وشبثخب٘‪ ٝ‬اي والع )‪ - (class library‬و‪ ٝ‬فشْ دبي‪ ٝ‬سا ايؼبد ٔي و‪ٙ‬ژذ‪-‬‬
‫ثؼيبس اسصؽ ٔ‪ٙ‬ذ خ‪ٛ‬ا ‪ٞ‬ذ ث‪ٛ‬د‪ .‬ايٗ ٔ‪ٛ‬ه‪ٛ‬ع صٔب٘ي و‪ ٝ‬ؿٕب يبد ثٍيشيذ وذاْ و‪ٙ‬ششَ ‪ٞ‬ب دس فشْ ‪ٞ‬بي اسص ثژشي ؿژذ‪ ٜ‬لبثژُ سغييژش ‪ٞ‬ؼژش‪ٙ‬ذ ‪ ٚ‬وژذاْ ؿژبٖ‬
‫٘يؼش‪ٙ‬ذ‪ ،‬ا‪ٕٞ‬يز ثيـششي داسد‪ .‬ثشاي ايٗ و‪ ٝ‬ثش‪ٛ‬ا٘يذ و‪ٙ‬ششَ ‪ٞ‬ب يب وبسوشد آٖ ‪ٞ‬ب سا سغييش د‪ٞ‬يذ ثبيذ ٔـخلژ‪ ٝ‬ي ‪ Access Modifier‬و‪ٙ‬شژشَ ٔژ‪ٛ‬سد‬
‫٘ظش سا ث‪ٔ ٝ‬مذاسي غيش اص ‪ Private‬سغييش د‪ٞ‬يذ‪ .‬دس ؿىُ ‪ 7‬يه فشْ دبي‪ٔ ٝ‬ي ثي‪ٙ‬يذ و‪ ٝ‬ث‪ ٝ‬ػ‪ٛٙ‬اٖ ٔشحّ‪ ٝ‬ي آغبص ثش٘بٔ‪ ٝ‬سبٖ اػشفبد‪ٔ ٜ‬ي ؿ‪ٛ‬د‪.‬‬

‫ؿىُ ‪ :18‬فشْ دبي‪ ٝ‬ي ثش٘بٔ‪ ٝ‬ثشاي دػشٍب‪ٚ ٜ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ اػشب٘ذاسد‬

‫فشْ دبي‪ ٝ‬حب‪ٚ‬ي يه و‪ٙ‬ششَ ‪ٚ‬يشايـٍش )‪ - (Edit‬و‪ ٕٝٞ ٝ‬ي كفح‪ ٝ‬سا دش وشد‪ ٚ -ٜ‬يه ٔ‪ ٛٙ‬اػز‪ .‬ايٗ ثش٘بٔ‪ ٝ‬يه ‪ٚ‬يشايـٍش ٔشٗ ػبد‪ ٜ‬اػز‪ .‬ايٗ ثش٘بٔ‪ٝ‬‬
‫فبيُ ٔش‪ٙ‬ي ايؼبد ٔي و‪ٙ‬ذ‪ٔ ،‬حش‪ٛ‬اي فبيُ ٔش‪ٙ‬ي ٔ‪ٛ‬ػ‪ٛ‬د سا سغييش ٔي د‪ٞ‬ذ ‪ٕٞ ٚ‬چ‪ٙ‬يٗ أىبٖ سغييش ٘بْ يب حزف فبيُ ٔش‪ٙ‬ي سا فشا‪ٔ ٓٞ‬ي و‪ٙ‬ذ‪ .‬ثب ايٗ وژ‪ٝ‬‬
‫فبيُ ‪ٞ‬بي ايؼبد ؿذ‪ ٜ‬س‪ٛ‬ػي ايٗ ثش٘بٔ‪ٕٞ ٝ‬بٖ فبيُ ‪ٞ‬بي ٔش‪ٙ‬ي ػبدي ‪ٞ‬ؼش‪ٙ‬ذ‪ِ ،‬يىٗ ثشاي ٔذيشيز ساحز آٖ ‪ٞ‬ب ‪ ٚ‬فيّشش وژشدٖ ؿژبٖ‪ ،‬دؼژ‪٘ٛ‬ذ فبيژُ سا‬
‫ٔخل‪ٛ‬ف ايٗ ثش٘بٔ‪ ٝ‬لشاس داد‪ ٜ‬ايٓ‪ .‬فشْ دبي‪ ٝ‬ثشاي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ اػشب٘ذاسد ًشاحي ؿذ‪ ٜ‬اػز‪ .‬دِيّؾ ‪ ٓٞ‬س‪ٚ‬ؿژٗ اػژز‪ٚ .‬ي‪ٙ‬ژذ‪ٚ‬ص ٔ‪ٛ‬ثبيژُ اػژشب٘ذاسد‬
‫٘ؼجز ث‪ ٝ‬حشف‪ ٝ‬اي و‪ٙ‬ششَ ‪ٞ‬بي وٕششي داسد‪ .‬ثشاي ٔذيشيز فبيُ ‪ٞ‬ب ‪ ٓٞ‬د‪ ٚ‬فشْ ديٍش دس ٘ظش ٌشفش‪ ٝ‬ايٓ و‪ ٝ‬يىي ف‪ٟ‬شػز فبيُ ‪ٞ‬بي ٔ‪ٛ‬ػژ‪ٛ‬د سا ٘ـژبٖ‬
‫د‪ٞ‬ذ ‪ ٚ‬ديٍشي ثشاي سغييش ٘بْ يب حزف آٖ ‪ٞ‬ب اػشفبد‪ ٜ‬ؿ‪ٛ‬د‪ .‬اص آٖ ػب و‪ٚ ٝ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ اػشب٘ذاسد‪ ،‬كفح‪ ٝ‬ي ِٕؼژي سا دـژشيجب٘ي ٕ٘ژي و‪ٙ‬ژذ سٕژبٔي‬
‫ػّٕيبر فبيُ ‪ٞ‬ب اص ًشيك ٌضي‪ٞ ٝٙ‬بي ٔ‪ ٛٙ‬ا٘ؼبْ ٔي ؿ‪٘ٛ‬ذ‪ .‬دس ايٗ ٔمبِ‪ٔ ٝ‬ب س‪ٛ‬هيحبر ٔشث‪ٛ‬ى ث‪ٚ ٝ‬يشايـٍش ٔش‪ٙ‬ي سا ٘خ‪ٛ‬ا‪ٞ‬يٓ ٌفژز ‪ ٚ‬س‪ٚ‬ي ايؼژبد ٘ژشْ‬
‫افضاسي و‪ ٝ‬س‪ٚ‬ي ا٘‪ٛ‬اع ٔخشّف دػشٍب‪ٞ ٜ‬ب وبس و‪ٙ‬ذ ٔشٕشوض ٔي ؿ‪ٛ‬يٓ‪ٞ .‬ش چ‪ٙ‬ذ و‪ ٝ‬ثش٘بٔ‪ ٝ‬ي ٕ٘‪٘ٛ‬ژ‪ ٝ‬ي ‪ Mobile Edit‬ثژشاي داّ٘ژ‪ٛ‬د دْ دػژز ٔژبٖ‬
‫‪ٞ‬ؼز‪.‬‬
‫دس ؿىُ ‪ 8‬ؿٕب فشْ اكّي سا دس حبَ اػشا س‪ٚ‬ي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪ 6‬حشف‪ ٝ‬اي ٔي ثي‪ٙ‬يذ‪ .‬ثب ‪ٚ‬ػ‪ٛ‬د سفب‪ٚ‬ر ظب‪ٞ‬شي اؽ ثب آٖ چ‪ ٝ‬دس ؿىُ ‪ 7‬ديذ‪ ٜ‬ايذ‪ِٚ ،‬ي‬
‫ايٗ فشْ اص ‪ٕٞ‬بٖ فشْ اكّي و‪ ٝ‬دس ؿىُ ‪ 7‬ديذيذ ٔـشك ؿذ‪ ٜ‬اػز‪ .‬فمي يه و‪ٙ‬ششَ ٔخل‪ٛ‬ف ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪ 6‬حشف‪ ٝ‬اي ث‪ ٝ‬آٖ اهژبف‪ ٝ‬ؿژذ‪ ٜ‬اػژز‪.‬‬
‫يؼ‪ٙ‬ي يه ‪ٕٞ ٚ Document List‬بٖ ً‪ٛ‬س و‪ ٝ‬اص ٘بٔؾ ديذا اػز ثشاي ٕ٘بيؾ ف‪ٟ‬شػز فبيُ ‪ٞ‬ب ث‪ ٝ‬وبس ٔي س‪ٚ‬د‪ .‬ثب ايٗ وژ‪ ٝ‬فژشْ اكژّي حژب‪ٚ‬ي يژه‬
‫‪31‬‬
‫‪http://m0911.wordpress.com‬‬
‫و‪ٙ‬ششَ ‪ٚ‬يشايـٍش ٔشٗ اػز ‪ِٚ‬ي ث‪ٍٙٞ ٝ‬بْ ًشاحي آٖ سا ٕ٘ي ثي‪ٙ‬يذ چ‪ ٖٛ‬و‪ٙ‬ششَ «ف‪ٟ‬شػژز فبيژُ ‪ٞ‬ژب» )‪ (Document List‬س‪ٚ‬ي آٖ لژشاس ٌشفشژ‪ٝ‬‬
‫اػز‪ .‬داخُ ثش٘بٔ‪ ٝ‬ثب وذ٘‪ٛ‬يؼي وبسي ٔي و‪ٙ‬يٓ و‪ ٝ‬و‪ٙ‬ششَ «ف‪ٟ‬شػز فبيُ ‪ٞ‬ب» دس صٔب٘ي و‪ ٝ‬الصْ ٘يؼز ٘ـبٖ داد‪٘ ٜ‬ـ‪ٛ‬د‪ .‬و‪ٙ‬ششَ ‪ٞ‬بيي وژ‪ ٝ‬ثخـژي اص‬
‫فشْ دبي‪ٞ ٝ‬ؼش‪ٙ‬ذ دس فشْ ٔـشك ؿذ‪ ٓٞ ٜ‬ث‪ ٝ‬اسص ٔي سػ‪ٙ‬ذ‪ .‬و‪ٙ‬ششَ ‪ٞ‬بيي سا و‪ ٝ‬اص ًشيك اسص ثشي دس فشْ ػذيذ لشاس ٌشفش‪ ٝ‬ا٘ذ‪ ،‬ثب يه ػالٔز فّؾ دس‬
‫ٌ‪ٛ‬ؿ‪ ٝ‬ي ثبال ػٕز چخ ؿبٖ ‪ٕٞ$‬ب٘‪ٙ‬ذ و‪ٙ‬ششَ ٔ‪ٔ #ٛٙ‬ـخق ٔي ؿ‪٘ٛ‬ذ‪.‬‬

‫ؿىُ ‪ :19‬فشْ دبي‪ ٝ‬ي ٔـشك ؿذ‪ ٜ‬ثشاي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ حشف‪ ٝ‬اي‬

‫اص آٖ ػب و‪ ٝ‬دػشٍب‪ٞ ٜ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ حشف‪ ٝ‬اي اص و‪ٙ‬ششَ ‪ٞ‬بي ثيـششي دـشيجب٘ي ٔي و‪ٙٙ‬ذ‪ ،‬خ‪ٛ‬د ٘شْ افضاس ػبد‪ ٜ‬سش ٔي ؿ‪ٛ‬د ‪ ٚ‬ث‪ ٝ‬ساحشي اص أىژبٖ‬
‫كف‪ ٝ‬ي ِٕؼي اػشفبد‪ ٜ‬خ‪ٛ‬ا‪ٞ‬ذ وشد‪ .‬أىبٖ اػشفبد‪ ٜ‬اص و‪ٙ‬شَ «ف‪ٟ‬شػز فبيُ ‪ٞ‬ب» ثشاي ٔذيشيز فبيُ ‪ٞ‬ب يؼ‪ٙ‬ي ايٗ و‪ ٝ‬ديٍژش ٘يژبصي ثژ‪ً ٝ‬شاحژي فژشْ‬
‫ػذيذ ٘يؼز‪ .‬اص آٖ ػب و‪ٞ ٝ‬ذف اكّي ٔب ايؼب يه فبيُ ثبي‪ٙ‬شي ‪$‬اػشايي‪ #‬ثشاي اػشفبد‪ ٜ‬دس ‪ٞ‬ش د‪ ٚ‬دالسفشْ ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ اػشب٘ذاسد ‪ ٚ‬حشف‪ ٝ‬اي اػژز‪،‬‬
‫ث‪ٍٙٞ ٝ‬بْ ؿش‪ٚ‬ع اػشاي آٖ ٔي س‪ٛ‬ا٘يٓ دػشٍب‪ٞ‬ي سا و‪ ٝ‬ثش٘بٔ‪ ٝ‬دس آٖ اػشا ٔي ؿ‪ٛ‬د‪ ،‬سـخيق د‪ٞ‬يٓ ‪ ٚ‬فشْ ٔ‪ٙ‬بػت آٖ سا ٕ٘بيؾ د‪ٞ‬يٓ‪.‬‬
‫‪ .NET Compact Framework 3.5‬ث‪ ٝ‬ساحشي أىبٖ سـخيق ٘‪ٛ‬ع دػشٍب‪ ٜ‬سا ثشاي سبٖ فشا‪ٔ ٓٞ‬ي و‪ٙ‬ذ‪ .‬لٌؼ‪ ٝ‬وذ صيش سا ‪ -‬وژ‪ ٝ‬ثخـژي اص فبيژُ‬
‫‪ Program.cs‬اػز – ثجي‪ٙ‬يذ‪:‬‬
‫)(‪static void Main‬‬
‫{‬
‫)‪if (SystemSettings.Platform == WinCEPlatform.PocketPC‬‬
‫{‬
‫;))(‪Application.Run(new MainFormTouch‬‬
‫}‬
‫)‪else if (SystemSettings.Platform == WinCEPlatform.Smartphone‬‬
‫{‬
‫;))(‪Application.Run(new MainFormNoTouch‬‬
‫}‬
‫}‬

‫‪32‬‬
‫‪http://m0911.wordpress.com‬‬
‫ثؼش‪ ٝ‬ث‪ٛ٘ ٝ‬ع دػشٍب‪ ،ٜ‬يىي اص د‪ ٚ‬فشْ ‪ MainFormNoTouch‬يب ‪ MainFormTouch‬سا ث‪ ٝ‬ػ‪ٛٙ‬اٖ فشْ اكّي ثش٘بٔژ‪ٔ ٝ‬ژبٖ اػژشفبد‪ٔ ٜ‬ژي و‪ٙ‬ژيٓ‪.‬‬
‫ٔضيز اكالي اسص ثشي فشْ ايٗ اػز و‪ٔ ٝ‬ب أىب٘بر فشْ اكّي )‪ (Main‬سا دس ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ حشف‪ ٝ‬اي‪ ،‬د‪ٚ‬ثبس‪ ٜ‬اػشفبد‪ٔ ٜ‬ژي و‪ٙ‬ژيٓ‪ٔ .‬ژظال اٌژش وژبسثش‬
‫ٌضي‪ ٝٙ‬ي ‪ New‬سا دس ٔ‪ ٛٙ‬وّيه و‪ٙ‬ذ‪ ،‬كشف ٘ظش اص ٘‪ٛ‬ع دػشٍب‪ٞ‬ي و‪ ٝ‬ثش٘بٔ‪ ٝ‬دس آٖ اػشا ٔي ؿژ‪ٛ‬د‪ٔ ،‬ژذيش س‪ٚ‬يژذادي )‪ (event handler‬وژ‪ ٝ‬ثژشاي‬
‫ٌضي‪ ٝٙ‬ي ‪ New‬ي ٔ‪ ٛٙ‬دس كفح‪ ٝ‬ي ‪ MainFormNoTouch‬سؼشيف وشد‪ ٜ‬ايٓ‪ ،‬اػشا خ‪ٛ‬ا‪ٞ‬ذ ؿذ‪:‬‬

‫)‪protected virtual void menuNew_Click(object sender, EventArgs e‬‬


‫{‬
‫;‪autoSave = false‬‬
‫)‪if (tbWorkArea.Text.Length != 0‬‬
‫{‬
‫‪if (MessageBox.Show("Save contents before creating a new file",‬‬
‫‪"Save current contents",‬‬
‫‪MessageBoxButtons.YesNo,‬‬
‫‪MessageBoxIcon.Question,‬‬
‫)‪MessageBoxDefaultButton.Button1) == DialogResult.Yes‬‬
‫{‬
‫;)‪EditLogic.WriteFile(fileName, tbWorkArea.Text‬‬
‫}‬
‫;‪tbWorkArea.Text = string.Empty‬‬
‫}‬
‫;‪autoSave = true‬‬
‫;‪fileName = EditLogic.FileName‬‬
‫}‬

‫ايٗ وذ اص وبسثش خ‪ٛ‬ا‪ٞ‬ذ دشػيذ و‪ ٝ‬آيب فبيُ ‪ٞ‬بي دس حبَ اػشفبد‪ ٜ‬سا لجُ اص ايؼبد فبيُ ػذيذ‪ ،‬رخيش‪ ٜ‬و‪ٙ‬ذ يب ٘‪ٕٞ .ٝ‬بٖ ً‪ٛ‬س و‪ٔ ٝ‬ي ثي‪ٙ‬يذ أىب٘بر خ‪ٛ‬د‬
‫‪ٚ‬يشايـژژٍش دس وژژالع ديٍژژشي ثژژ‪٘ ٝ‬ژژبْ ‪ EditLogic‬لژژشاس داسد وژژ‪ ٝ‬اليژژ‪ ٝ‬ي ‪ٚ‬اػژژي وژژبسثش سا ثژژ‪ً ٝ‬ژژ‪ٛ‬س وبٔژژُ اص اليژژ‪ ٝ‬ي ادّيىيـژژٗ الػيژژه‬
‫)‪ (Application Logic‬ػذا ٔي و‪ٙ‬ذ‪ .‬اٌش ثش٘بٔ‪ ٝ‬دس دػشٍب‪ ٜ‬ثب ػيؼشٓ ػبُٔ ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ حشف‪ ٝ‬اي اػشا ؿ‪ٛ‬د‪ ،‬يىي اص لبثّيز ‪ٞ‬بيي وژ‪ ٝ‬ثبيژذ دس‬
‫اثشذاي اػشاي ثش٘بٔ‪ ٝ‬غيش فؼبَ ؿ‪ٛ‬د و‪ٙ‬ششَ «ف‪ٟ‬شػز فبيُ ‪ٞ‬ب» اػز‪ .‬ايٗ وبس سا ثب اثٌبَ ٔذيش س‪ٚ‬يذاد ‪ٌٔ menuNew_Click‬بثك لٌؼژ‪ ٝ‬وژذ صيژش‬
‫ا٘ؼبْ ٔي د‪ٞ‬يٓ‪:‬‬

‫)‪protected override void menuNew_Click(object sender, EventArgs e‬‬


‫{‬
‫;)‪base.menuNew_Click(sender, e‬‬
‫;‪documentList.Visible = false‬‬
‫;‪MinimizeBox = false‬‬
‫}‬

‫صٔب٘ي و‪ ٝ‬وبسثش دس ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ حشف‪ ٝ‬اي ٌضي‪ ٝٙ‬ي ‪ New‬سا ا٘شخبة ٔي ٕ٘بيذ‪ ،‬اثشذا وذ ٘‪ٛ‬ؿش‪ ٝ‬ؿذ‪ ٜ‬دس فشْ دبي‪ ٝ‬اػشا ٔي ؿ‪ٛ‬د ػذغ د‪ ٚ‬خژي وژذ‬
‫و‪ ٝ‬فمي دس ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص حشف‪ ٝ‬اي دس دػششع ‪ٞ‬ؼش‪ٙ‬ذ اػشا ٔي ؿ‪٘ٛ‬ذ‪ .‬ايٗ دػش‪ٛ‬س ‪ٞ‬ب ث‪ ٝ‬سشسيت ثشاي ٔخفي وشدٖ و‪ٙ‬ششَ «ف‪ٟ‬شػز فبيُ ‪ٞ‬ژب» ثژشاي ديژذ‪ٜ‬‬
‫ؿذٖ و‪ٙ‬ششَ «ػؼج‪ٔ ٝ‬شٗ» ‪ٕ٘ ٚ‬بيؾ يه دوٕ‪ ٝ‬ي ‪ OK‬دس ٘‪ٛ‬اس ػ‪ٛٙ‬اٖ فشْ‪ ،‬اػشا ٔي ؿ‪٘ٛ‬ذ‪.‬‬
‫ثشاي اثٌبَ ٔذيش س‪ٚ‬يذاد ‪ menuNew_Click‬ثبيذ آٖ سا ث‪ًٛ ٝ‬س دػژشي ثژ‪ ٝ‬فبيژُ ‪ MainFormTouch.cs‬اهژبف‪ٕ٘ ٝ‬بييژذ‪ .‬اٌژش س‪ٚ‬ي ٌضي‪ٙ‬ژ‪ ٝ‬ي‬
‫‪ New‬دس ٔحيي ًشاحي فشْ داثُ وّيه و‪ٙ‬يذ‪ٚ ،‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ ٛ‬يه ٔذيش س‪ٚ‬يذاد ػذيذ ث‪٘ ٝ‬ژبْ ‪ menuNew_Click_1‬ايؼژبد ٔژي و‪ٙ‬ژذ وژ‪ ٝ‬دس‬
‫صٔبٖ اػشا‪ ،‬دغ اص فشاخ‪ٛ‬ا٘ي ٔذيش س‪ٚ‬يذاد ‪ menuNew_Click‬اكّي دس فشْ دبي‪ ،ٝ‬فشاخ‪ٛ‬ا٘ي خ‪ٛ‬ا‪ٞ‬ذ ؿذ‪.‬‬

‫‪33‬‬
‫‪http://m0911.wordpress.com‬‬
‫س‪ٛ‬ػ‪ ٝ‬ث‪ٙٔ ٝ‬بثغ ػيؼشٓ‬
‫كشف ٘ظش اص ٔذَ دػشٍب‪ٞ ٜ‬ش صٔبٖ و‪ ٝ‬فشْ اكّي ثش٘بٔ‪ٔ ٝ‬خفي ؿ‪ٛ‬د ‪$‬دس دغ صٔي‪ ٝٙ‬لشاس ٌيشد‪ #‬يه س‪ٚ‬يذاد فشاخ‪ٛ‬ا٘ي ٔي ؿ‪ٛ‬د‪ .‬ث‪ًٛ ٝ‬س ٔـژبث‪ ٝ‬صٔژب٘ي‬
‫و‪ ٝ‬فشْ اكّي ثش٘بٔ‪ٔ ٝ‬ؼذد فؼبَ ٔي ؿ‪ٛ‬د ‪ ٚ‬دس ديؾ صٔي‪ٚ ٝٙ‬ي‪ٙ‬ذ‪ٚ‬ص لشاس ٔي ٌيشد‪ ،‬س‪ٚ‬يذاد ديٍشي فشاخ‪ٛ‬ا٘ي ٔي ؿ‪ٛ‬د‪ .‬ايٗ س‪ٚ‬يذاد ‪ٞ‬ب سا ٔي س‪ٛ‬ا٘يٓ ثشاي‬
‫آصاد ػبصي ٔ‪ٙ‬بثغ ػيؼشٓ ‪ٍٙٞ‬بٔي و‪ ٝ‬ثش٘بٔ‪ ٝ‬دس دغ صيٕ‪ ٝٙ‬اػشا ٔي ؿ‪ٛ‬د‪ ،‬اػشفبد‪ٕ٘ ٜ‬بييٓ‪ٔ$ .‬ظال غيش فؼبَ وشدٖ سبيٕش‪ #‬دس ايٗ حبَ ثش٘بٔ‪ ٝ‬حبفظ‪ ٝ‬ي‬
‫ٔ‪ٛ‬سد اػشفبد‪ ٜ‬اؽ سا صٔب٘ي و‪٘ ٝ‬يبصي ث‪ ٝ‬آٖ ٘يؼ ز‪ ،‬آصاد ٔي ٕ٘بيذ ‪ ٚ‬حشي االٔىبٖ اص وٕششيٗ دشداصؽ ‪ ٚ‬ث‪ ٝ‬سجغ آٖ وٕششيٗ س‪ٛ‬اٖ ثبسشي اػژشفبد‪ٔ ٜ‬ژي‬
‫و‪ٙ‬ذ‪.‬‬
‫اٌش ثش٘بٔ‪ ٝ‬ي ‪ Mobile Editor‬دس دغ صٔي‪ ٝٙ‬لشاس ثٍيشد ث‪ًٛ ٝ‬س ٔ‪ٛ‬لز ٔحش‪ٛ‬اي ػؼج‪ٔ ٝ‬شٗ سا دس يه فبيُ رخيش‪ٔ ٜ‬ي و‪ٙ‬ذ ‪$‬وذ صيش‪:#‬‬

‫)‪protected virtual void MainFormNoTouch_Deactivate(object sender, EventArgs e‬‬


‫{‬
‫)‪if (fileName != string.Empty && tbWorkArea.Text.Length != 0‬‬
‫{‬
‫;)‪EditLogic.WriteFile(fileName, tbWorkArea.Text‬‬
‫;‪tbWorkArea.Text = string.Empty‬‬
‫;‪autoSave = true‬‬
‫}‬
‫}‬

‫‪ٍٙٞ ٚ‬بٔي و‪ ٝ‬ثش٘بٔ‪ ٝ‬د‪ٚ‬ثبس‪ ٜ‬دس ديؾ صٔي‪ ٝٙ‬لشاس ثٍيشد‪ٔ ،‬حش‪ٛ‬اي فبيُ ٔژزو‪ٛ‬س سا ثبصيژبثي وژشد‪ ،ٜ‬دس ػؼجژ‪ٔ ٝ‬ژشٗ ‪ٕ٘ tbWorkArea‬ژبيؾ ٔژي د‪ٞ‬ژذ‬
‫‪$‬وذ صيش‪:#‬‬

‫)‪protected virtual void MainFormNoTouch_Activated(object sender, EventArgs e‬‬


‫{‬
‫)‪if (autoSave‬‬
‫{‬
‫;)‪tbWorkArea.Text = EditLogic.ReadFile(fileName‬‬
‫}‬
‫}‬

‫‪34‬‬
‫‪http://m0911.wordpress.com‬‬
‫س‪ِٛ‬يذ ٘شْ افضاس ‪ٞ‬بيي و‪ ٝ‬دس ‪ٞ‬ش د‪ٚ ٚ‬يشايؾ حشف‪ ٝ‬اي ‪ ٚ‬اػشب٘ذاسد ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ وبس و‪ٙ‬ذ‪ ،‬أىبٖ دزيش اػز‪ ،‬أب ايٗ و‪ ٝ‬فىشي ‪ ٓٞ‬ثژشاي ٔؼٕژبسي ٘ژشْ‬
‫افضاس ثى‪ٙ‬يذ ثؼيبس ٔ‪ ٚ ٟٓ‬اػبػي اػز‪ .‬ث‪ٚ ٝ‬يظ‪ ٜ‬صٔب٘ي و‪ّٔ ٝ‬ضْ ثبؿيذ أىب٘بر ػخز افضاسي ٔخشّف سا دس دػشٍب‪ٞ ٜ‬بي ٔش‪ٛٙ‬ع دس ٘ظش ثٍيشيذ‪ ،‬ايٗ وبس‬
‫ديچيذ‪ ٜ‬سش خ‪ٛ‬ا‪ٞ‬ذ ث‪ٛ‬د و‪ ٝ‬كذ اِجش‪ ٝ‬اص ح‪ٛ‬كّ‪ ٝ‬ي ايٗ ٔمبِ‪ ٝ‬خبسع اػز‪.‬‬

‫ؿىُ ‪ :9‬ثش٘بٔ‪ ٝ‬ي ‪ Mobile Edit‬دس حبَ اػشا س‪ٚ‬ي دػشٍب‪ٞ ٜ‬بي ٔخشّف‬

‫ثشاي اػشفبد‪ ٜ‬اص اصص ثشي فشْ ‪ٞ‬ب دس ٔحيي ًشاحي ‪ Windows Forms‬ثبيذ يه ايذ‪ ٜ‬ي دسػز ‪ ٚ‬حؼژبثي داؿژش‪ ٝ‬ثبؿژيذ‪ .‬اِجشژ‪ٞ ٝ‬ژش و‪ٙ‬ششِژي سا‬
‫ٔي س‪ٛ‬ا٘يذ س‪ٚ‬ي فشْ دبي‪ ٝ‬لشاس د‪ٞ‬يذ ث‪ ٝ‬ؿشًي و‪ ٝ‬ثخ‪ٛ‬ا‪ٞ‬يذ آٖ سا دس فشْ ‪ٞ‬بي ٔـشك ؿذ‪٘ ٜ‬يض اػشفبد‪ٕ٘ ٜ‬بييذ‪ .‬فمژي يبدسژبٖ ثبؿژذ اٌژش ٔژي خ‪ٛ‬ا‪ٞ‬يژذ‬
‫وبسوشد يه و‪ٙ‬ششَ سا دس فشْ ٔـشك ؿذ‪ ٜ‬سغييش د‪ٞ‬يذ‪ ،‬ثبيذ ٔـخل‪ ٝ‬ي ‪ Modifiers‬و‪ٙ‬ششَ سا ثب ‪ protected‬يب ‪ٔ public‬مذاس د‪ٞ‬ژي و‪ٙ‬يژذ‪ .‬اٌژش‬
‫ٔـخل‪ ٝ‬ي ‪ Modifiers‬يه و‪ٙ‬ششَ سا ثب ‪ٔ private‬مذاس ثذ‪ٞ‬يذ‪ ،‬دس فشْ ٔـشك ؿذ‪ ٜ‬فمي ٔي س‪ٛ‬ا٘يذ آٖ سا ٔخفي يب ث‪ٙ‬ذوـي وشد‪ ،ٜ‬يب آٖ سا سغييژش‬
‫ا٘ذاص‪ ٜ‬ثذ‪ٞ‬يذ‪.‬‬

‫‪35‬‬
‫‪http://m0911.wordpress.com‬‬

‫فصل چهارم‬

‫افسودن كنترل سفارشي و استفاده از ‪GPS‬‬

‫‪36‬‬
‫‪http://m0911.wordpress.com‬‬
‫ٔمذٔ‪ٝ‬‬
‫س‪ٛ‬ػؼ‪ ٝ‬ي ٘شْ افضاس ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ؿجب‪ٞ‬ز صيبدي ث‪ ٝ‬س‪ٛ‬ػؼ‪ ٝ‬ي ٘شْ افضاس دس دػىشبح داسد ث‪ٚ ٝ‬يظ‪ ٜ‬صٔب٘ي و‪ ٝ‬يىي اص د‪ ٚ‬صثبٖ ‪ٚ‬يظ‪ٚ‬اَ ثيؼيه يب ‪ٚ‬يژظ‪ٚ‬اَ‬
‫ػي ؿبسح دار ٘ز سا اػشفبد‪ٔ ٜ‬ي و‪ٙ‬يذ‪ .‬ؿٕب ‪ٕٞ‬بٖ اثضاس‪ٞ‬بي س‪ٛ‬ػؼ‪ ٝ‬ي ثش٘بٔ‪ٞ ٝ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص دػىشبح سا ثشاي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪ٞ‬ژٓ اػژشفبد‪ٔ ٜ‬ژي و‪ٙ‬يژذ‬
‫ِيىٗ سفب‪ٚ‬ر ‪ٞ‬بيي ٘يض ثيٗ ايٗ د‪ٔ ٚ‬حيي ‪ٞ‬ؼز‪ .‬دػشٍب‪ٞ ٜ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ كفح‪ ٝ‬ي ٕ٘بيؾ و‪ٛ‬چه سش ‪ٙٔ ٚ‬بثغ ٔحذ‪ٚ‬د سش داس٘ذ ‪ٕٞ ٚ‬چ‪ٙ‬ژيٗ لبثژُ‬
‫حُٕ ث‪ٛ‬د‪ ،ٜ‬اغّت ثبسشي اػشفبد‪ٔ ٜ‬ي و‪ٙٙ‬ذ‪.‬‬
‫دس ايٗ ٔمبِ‪ ٝ‬يبد ٔي ٌيشيذ و‪ ٝ‬چٌ‪ٛ‬س ٘شْ افضاس‪ٞ‬بي ثش ٔج‪ٙ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص فشْ‪ ،‬ثشاي ٔ‪ٛ‬ثبيُ ايؼبد و‪ٙ‬يذ‪ .‬و‪ٙ‬ششَ ‪ٞ‬بي ػفبسؿي سا ث‪ ٝ‬ثش٘بٔ‪ ٝ‬سبٖ اهبف‪ ٝ‬و‪ٙ‬يذ‬
‫‪ ٚ‬چٍ‪ٍ٘ٛ‬ي ػبخشٗ و‪ٙ‬ششَ ‪ٞ‬بي ػفبسؿي ثب دـشيجب٘ي وبُٔ ٔحيي ًشاحي سا سٕشيٗ و‪ٙ‬يذ‪ .‬ث‪ ٝ‬ػال‪ ٜٚ‬وبسثشد ػژخز افژضاس ‪ GPS‬داخژُ ٘ژشْ افژضاس ‪ٚ‬‬
‫‪ٕٞ‬چ‪ٙ‬يٗ ث‪ ٝ‬س‪ٚ‬ص سػب٘ي ٔمبديش و‪ٙ‬ششَ ‪ٞ‬بي ‪ٚ‬اػي وبسثش سا داخُ يه ثش٘بٔ‪ ٝ‬ي چ‪ٙ‬ذ دشداصؿي )‪ (Multi Threaded‬سا ٘يض فشا خ‪ٛ‬ا‪ٞ‬يذ ٌشفز‪.‬‬

‫افض‪ٚ‬دٖ و‪ٙ‬ششَ ‪ٞ‬بي ػفبسؿي ث‪ ٝ‬ثش٘بٔ‪ ٝ‬ي خ‪ٛ‬دسبٖ‬


‫اٌژژش ثژژ‪ٍٙٞ ٝ‬ژژبْ س‪ٛ‬ػژژؼ‪ ٝ‬ي ثش٘بٔژژ‪ ٝ‬ي ‪ٚ‬ي‪ٙ‬ژژذ‪ٚ‬ص ٔ‪ٛ‬ثبيژژُ ثژژ‪ ٝ‬و‪ٙ‬شژژشَ ‪ٞ‬ژژبي خبكژژي ٘يژژبص ديژژذا و‪ٙ‬يژژذ وژژ‪ ٝ‬دس ٔؼٕ‪ٛ‬ػژژ‪ ٝ‬ي و‪ٙ‬شژژشَ ‪ٞ‬ژژبي اػژژشب٘ذاسد‬
‫‪٘ .NET Compact Framework‬يؼش‪ٙ‬ذ‪ ،‬سا‪ ٜ‬حُ ‪ٞ‬بي صيش سا ديؾ س‪ ٚ‬خ‪ٛ‬ا‪ٞ‬يذ داؿز‪:‬‬
‫يه و‪ٙ‬ششَ ‪ٚ‬اػي وبسثش فمي ثشاي ثش٘بٔ‪ ٝ‬ي فؼّي سبٖ دسػز و‪ٙ‬يذ‬ ‫‪‬‬
‫يه و‪ٙ‬ششَ ‪ٚ‬اػي وبسثش و‪ ٝ‬دس ثش٘بٔ‪ ٝ‬ي ديٍش ‪ ٓٞ‬لبثُ اػشفبد‪ ٜ‬ثبؿذ‪ ،‬دسػز و‪ٙ‬يذ‬ ‫‪‬‬
‫‪ ‬يه و‪ٙ‬ششَ ‪ٚ‬اػي وبسثش ثب أىب٘بر ٔ‪ٛ‬سد ٘ظشسبٖ خشيذاسي و‪ٙ‬يذ‬
‫دس ايٗ ٔمبِ‪ ٝ‬ػ‪ ٝ‬س‪ٚ‬ؽ ايؼبد و‪ٙ‬ششَ ‪ٞ‬ب سا ‪ ٓٞ‬اص اثشذا ‪ ٓٞ ٚ‬اص ًشيك اػشفبد‪ ٜ‬ي ٔؼذد ‪ ٚ‬سشويت ثب و‪ٙ‬ششَ ‪ٞ‬بي ٔ‪ٛ‬ػ‪ٛ‬د يبد خ‪ٛ‬ا‪ٞ‬يذ ٌشفز‪.‬‬

‫و‪ٙ‬ششَ ‪ٞ‬بي وبسثش ‪$‬ػفبسؿي‪#‬‬


‫ايٗ و‪ٙ‬ششَ ‪ٞ‬ب ٔؼٕ‪ٛ‬ال ثب سشويت چ‪ٙ‬ذ و‪ٙ‬ششَ ٔ‪ٛ‬ػ‪ٛ‬د ‪ ٚ‬دسػز وشدٖ يه و‪ٙ‬ششَ ػذيذ ث‪ ٝ‬وبس ٔي س‪٘ٚ‬ذ‪ .‬دس ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2008 ٛ‬ايؼبد و‪ٙ‬ششَ ‪ٞ‬ژبي‬
‫وبسثش ث‪ًٛ ٝ‬س وبُٔ س‪ٛ‬ػي يىي اص ا٘‪ٛ‬اع دش‪ٚ‬ط‪ ٜ‬ي آٖ )‪ (User Control Project‬دـشيجب٘ي ٔي ؿ‪ٛ‬د‪ٚ .‬لشي يه و‪ٙ‬ششَ ػذيذ ايؼبد ٔي و‪ٙ‬يذ يژه‬
‫كفح‪ ٝ‬ي ًشاحي ٔب٘‪ٙ‬ذ وب٘شي‪ٙ‬ش دذيذ ٔي آيذ و‪ ٝ‬و‪ٙ‬ششَ ‪ٞ‬ب سا س‪ٚ‬ي آٖ لشاس ٔي د‪ٞ‬يذ‪ .‬ثب يه و‪ٙ‬ششَ وبسثش ؿٕب ٔي س‪ٛ‬ا٘يذ چ‪ٙ‬ذ و‪ٙ‬شژشَ ٔ‪ٛ‬ػژ‪ٛ‬د سا ثژب‬
‫‪ ٓٞ‬سشويت و‪ٙ‬يذ ث‪ًٛ ٝ‬سي و‪ ٝ‬ث‪ٍٙٞ ٝ‬بْ اػشفبد‪ ٜ‬اص و‪ٙ‬ششَ سشويجي ػّٕىشد آٖ ٔب٘‪ٙ‬ذ يه و‪ٙ‬ششَ ٔ‪ٙ‬فشد ثبؿژذ‪ .‬دس ؿژىُ ‪ 1‬ؿژٕب يژه و‪ٙ‬شژشَ وژبسثش‬
‫داخُ ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ٔ 2008 ٛ‬ي ثي‪ٙ‬يذ‪ .‬و‪ٙ‬ششَ ٔزو‪ٛ‬س ؿبُٔ د‪ ٚ‬و‪ٙ‬ششَ ثشچؼت )‪ ٚ (Label‬د‪ ٚ‬و‪ٙ‬ششَ ػؼجژ‪ٔ ٝ‬ژشٗ )‪ (TextBox‬اػژز وژ‪ٔ ٝ‬ژي‬
‫س‪ٛ‬ا٘يذ ثشاي اػشجبس ػ‪ٙ‬ؼي وبسثش‪ٔ ،‬ظال ثشاي ‪ٚ‬س‪ٚ‬د ث‪ ٝ‬يه ػيؼشٓ ثب٘ه اًالػبسي اػشفبد‪ ٜ‬و‪ٙ‬يذ‪ .‬صٔب٘ي و‪ ٝ‬دژش‪ٚ‬ط‪ ٜ‬وبٔذبيژُ ٔژي ؿژ‪ٛ‬د ايژٗ و‪ٙ‬شژشَ دس‬
‫اػٕجّي ٔشث‪ٛ‬ى ث‪ ٝ‬خ‪ٛ‬دؽ رخيش‪ٔ ٜ‬ي ؿ‪ٛ‬د سب دس آي‪ٙ‬ذ‪ ٜ‬س‪ٛ‬ػي ‪ٞ‬ش دش‪ٚ‬ط‪ ٜ‬ي ديٍش ‪ٚ‬ي‪ٙ‬ژذ‪ٚ‬ص ٔ‪ٛ‬ثبيژُ اػژشفبد‪ٌ ٜ‬ژشدد‪ .‬دس ايژٗ و‪ٙ‬شژشَ وژبسثش‪ ،‬وذ٘‪ٛ‬يؼژي‬
‫چ‪ٙ‬ذا٘ي دغ اص لشاس دادٖ و‪ٙ‬ششَ ػفبسؿي س‪ٚ‬ي آٖ الصْ ٘يؼز‪ .‬س‪ٟٙ‬ب وذ ٔ‪ٛ‬سد ٘يبص داخُ ايٗ و‪ٙ‬ششَ وبسثش ػجبسر اػز اص سؼشيف د‪ٔ ٚ‬شغيش ثژب ػژٌح‬
‫دػششػي ػٕ‪ٔٛ‬ي )‪ (Public‬ثشاي ث‪ ٝ‬دػز آ‪ٚ‬سدٖ ٘بْ وبسثش ‪ٌ ٚ‬زس‪ٚ‬اط‪ ٜ‬داخُ يژه ثش٘بٔژ‪ٕٞ ٚ ٝ‬چ‪ٙ‬ژيٗ ٔمژذاس د‪ٞ‬ژي ٘ژبْ وژبسثش اػژز‪ٔ .‬ـخلژ‪ ٝ‬ي‬
‫‪ٌ$ Password‬زس‪ٚ‬اط‪ #ٜ‬فمي خ‪ٛ‬ا٘ذ٘ي )‪ (Read-only‬اػز سب وبسثش سا ٔؼج‪ٛ‬س و‪ٙ‬ذ و‪ ٝ‬حذالُ يه ٌزس‪ٚ‬اط‪ ٜ‬ي ٔؼبص ثژشاي خژ‪ٛ‬دؽ دس ٘ظژش ثٍيژشد‪.‬‬
‫اػشجبس ػ‪ٙ‬ؼي ٌزس‪ٚ‬اط‪ ٜ‬دس داخُ ثش٘بٔ‪ ٝ‬ا٘ؼبْ ٔي ؿ‪ٛ‬د ٘‪ ٝ‬داخُ و‪ٙ‬ششَ وبسثش‪ .‬دِيُ ايٗ أش ساحشي وبس ثژب و‪ٙ‬شژشَ ‪ ٚ‬أىژبٖ اػژشفبد‪ ٜ‬ي ٔؼژذد اص آٖ‬
‫اػز‪.‬‬

‫‪37‬‬
‫‪http://m0911.wordpress.com‬‬

‫ؿىُ ‪ :20‬و‪ٙ‬ششَ ػفبسؿي ثشاي اػشجبس ػ‪ٙ‬ؼي وبسثش‬

‫ثشاي اػشفبد‪ ٜ‬اص و‪ٙ‬ششَ اػ شجبس ػ‪ٙ‬ؼي وبسثش داخُ ثش٘بٔ‪ ٝ‬وبفي اػز آٖ سا اص ػؼج‪ ٝ‬اثضاس ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ ٛ‬ثىـيذ ‪ ٚ‬س‪ٚ‬ي فشْ ثي‪ٙ‬ذاصيژذ‪ .‬و‪ٙ‬شژشَ اػجشژشا‬
‫ػ‪ٙ‬ؼي وبسثش ث‪ًٛ ٝ‬س خ‪ٛ‬دوبس دس ػؼج‪ ٝ‬اثضاس ٘ـبٖ داد‪ٕ٘ ٜ‬ي ؿ‪ٛ‬د‪ .‬ثبيذ ٘خؼز س‪ٚ‬ي ثخؾ ‪ General‬ػؼج‪ ٝ‬اثضاس ساػز وّيژه و‪ٙ‬يژذ ‪ ٚ‬اص ٔ‪ٙ‬ژ‪ٛ‬ي ثژبص‬
‫ؿذ‪ٌ ،ٜ‬ضي‪ ٝٙ‬ي ‪ Choose Items‬سا ثض٘يذ ‪ ٚ‬ث‪ ٝ‬فبيُ اػٕجّي و‪ ٝ‬حب‪ٚ‬ي و‪ٙ‬ششَ اػشجبس ػ‪ٙ‬ؼي وبسثش اػز اؿبس‪ ٜ‬و‪ٙ‬يذ سب و‪ٙ‬ششَ ٔزو‪ٛ‬س دس ػؼج‪ ٝ‬اثژضاس‬
‫ظب‪ٞ‬ش ؿ‪ٛ‬د‪ .‬دس ؿىُ ‪ 2‬ؿٕب چٍ‪ٍ٘ٛ‬ي ٕ٘بيؾ و‪ٙ‬ششَ اػشجبس ػ‪ٙ‬ؼي )‪ (User Credentals‬سا داخُ ثش٘بٔ‪ٔ ٝ‬ي ثي‪ٙ‬يذ‪ .‬اٌش ث‪ ٝ‬ػؼج‪ ٝ‬اثضاس ‪ٞ‬ژٓ ث‪ٍٙ‬شيژذ‬
‫و‪ٙ‬ششَ ثب ٘بْ ‪ UserCredentals‬سا دس ثخؾ ‪ General‬ػؼج‪ ٝ‬اثضاس خ‪ٛ‬ا‪ٞ‬يذ ديذ و‪ ٝ‬ث‪ ٝ‬آػب٘ي ٔي س‪ٛ‬ا٘يذ آٖ سا س‪ٚ‬ي فشْ خژ‪ٛ‬د لژشاس د‪ٞ‬يژذ‪ .‬دژغ اص‬
‫ايٗ وبس ؿٕب دس د‪ٙ‬ؼش‪ ٜ‬ي ٔـخلبر )‪ (Properties‬يه ٔـخل‪ ٝ‬ي ‪ - UserName‬و‪ ٝ‬لبثُ ٔمذاس د‪ٞ‬ي دس ٔحيي ًشاحژي ‪ ٚ‬دس ػژيٗ حژبَ ثژ‪ٝ‬‬
‫ك‪ٛ‬سر وذ ٘‪ٛ‬يؼي داخُ ثش٘بٔ‪ ٝ‬اػز‪ٔ -‬ي ثي‪ٙ‬يذ‪ .‬دس ػيٗ حبَ ٔـخل‪ ٝ‬ي ‪ Password‬سا ثب سً٘ خبوؼششي دس د‪ٙ‬ؼش‪ ٜ‬ي ٔـخلبر خ‪ٛ‬ا‪ٞ‬يذ ديژذ‬
‫و‪ ٝ‬ث‪ ٝ‬دِيُ فمي خ‪ٛ‬ا٘ذ٘ي ث‪ٛ‬دٖ آٖ اػز‪ .‬ايٗ ٔـخل‪ ٝ‬لبثُ ٔمذاسد‪ٞ‬ي ٘يؼز ‪ِٚ‬ي ٔمذاسؽ دغ اص آٖ و‪ ٝ‬س‪ٛ‬ػي وبسثش ث‪ٍٙٞ ٝ‬بْ اػژشاي ثش٘بٔژ‪ٚ ٝ‬اسد‬
‫ؿذ‪ ،‬لبثُ ثبصيبثي ‪$‬خ‪ٛ‬ا٘ذٖ‪ #‬خ‪ٛ‬ا‪ٞ‬ذ ث‪ٛ‬د‪.‬‬

‫‪38‬‬
‫‪http://m0911.wordpress.com‬‬

‫ؿىُ ‪ :21‬و‪ٙ‬ششَ ػفبسؿي داخُ يه ثش٘بٔ‪ٝ‬‬

‫و‪ٙ‬ششَ ‪ٞ‬بي اسص ثشي ؿذ‪ٜ‬‬


‫ٌب‪ٞ‬ي ا‪ٚ‬لبر ٔظال يه و‪ٙ‬ششَ ػٕ‪ٔٛ‬ي ‪ .NET Compact Framework‬سا اػشفبد‪ٔ ٜ‬ي و‪ٙ‬يذ ِيىٗ الصْ داسيذ و‪ ٝ‬وبسوشد آٖ ٌٔبثك دِخ‪ٛ‬ا‪ ٜ‬ؿٕب‬
‫سغييش و‪ٙ‬ذ‪ٔ .‬ظال يه ػؼج‪ٔ ٝ‬شٗ )‪ (TextBox‬و‪ ٝ‬فمي ػذد سا ثـ‪ٛ‬د دس آٖ ‪ٚ‬اسد ٕ٘ ‪ٛ‬د‪ .‬اِجش‪ ٝ‬ؿٕب ٔي س‪ٛ‬ا٘يذ ث‪ ٝ‬وبسثش اػبص‪ ٜ‬د‪ٞ‬يذ و‪ٞ ٝ‬ش چ‪ ٝ‬خ‪ٛ‬اػز‬
‫‪ٚ‬اسد ٕ٘بيذ ‪ ٚ‬دغ اص ‪ٚ‬س‪ٚ‬د اًالػبر‪ ،‬دس داخُ ثش٘بٔ‪ ٝ‬آٖ سا اػشجبس ػ‪ٙ‬ؼي و‪ٙ‬يذ‪ .‬أب ايؼبد يه و‪ٙ‬ششَ ػفبسؿي خ‪ٛ‬ا‪ ٜ‬داخُ ثش٘بٔ‪ ٝ‬سبٖ يب ث‪ ٝ‬ك‪ٛ‬سر يه‬
‫و‪ٙ‬ششَ ٔؼضاي ٔـشك ؿذ‪ ٜ‬اص ػؼج‪ٔ ٝ‬شٗ ػبدي‪ ،‬و‪ ٝ‬كشفب وبساوشش‪ٞ‬بي ػذدي ‪ $‬دليمب‪ #‬ث‪ٍٙٞ ٝ‬بْ ‪ٚ‬س‪ٚ‬د داد‪ٞ ٜ‬ب ثذزيشد ايذ‪ ٜ‬ي ث‪ٟ‬ششي اػز‪ .‬دس ايٗ‬
‫س‪ٚ‬ؽ ؿٕب وذ٘‪ٛ‬يؼي وٕششي سا دس ثش٘بٔ‪ ٝ‬سبٖ خ‪ٛ‬ا‪ٞ‬يذ داؿز چشا و‪ ٝ‬اػشجبس ػ‪ٙ‬ؼي داخُ و‪ٙ‬ششَ اسص ثشي ؿذ‪ ٜ‬ي )‪ (inherited‬ػؼج‪ٔ ٝ‬شٗ ك‪ٛ‬سر‬
‫ٔي ٌيشد‪ .‬ثب ‪ٚ‬ػ‪ٛ‬د ٔحذ‪ٚ‬د ؿذٖ لبثّيز ‪ٞ‬بي ايٗ ػؼج‪ٔ ٝ‬شٗ ػذيذ دس ٔمبيؼ‪ ٝ‬ثب ػؼج‪ٔ ٝ‬شٗ ٔؼٕ‪ِٛ‬ي‪ ،‬ثبص ‪ ٓٞ‬ػؼج‪ٔ ٝ‬شٗ ػذيذ أىب٘بر وبُٔ ًشاحي‬
‫ؿبُٔ ‪ ٕٝٞ‬ي ٔـخل‪ٞ ٝ‬ب ‪ ٚ‬س‪ٚ‬يذاد ‪ٞ‬بي ػؼج‪ٔ ٝ‬شٗ اكّي سا دس اخشيبس ؿٕب لشاس ٔي د‪ٞ‬ذ‪ .‬ث‪ ٝ‬ػال‪ ٜٚ‬اٌش و‪ٙ‬ششَ ٔضث‪ٛ‬س سا ث‪ًٛ ٝ‬س ٔؼضا ايؼبد ‪ ٚ‬وبٔذبيُ‬
‫و‪ٙ‬يذ دس ثش٘بٔ‪ٞ ٝ‬بي ٔشؼذدي ٔي س‪ٛ‬ا٘يذ اص آٖ اػشفبد‪ٕ٘ ٜ‬بييذ‪ .‬ثشاي ايؼبد يه و‪ٙ‬ششَ ثب ٘بْ ‪ numericTextbox‬ث‪ ٝ‬ك‪ٛ‬سر ٔؼضا‪٘ ،‬خؼز يه‬
‫دش‪ٚ‬ط‪ ٜ‬ي ػذيذ اص ٘‪ٛ‬ع ‪ Class Library‬سا دس ثشٌ‪ ٝ‬ي ‪ Smart Device Project‬ا٘شخبة ‪ ٚ‬ايؼبد و‪ٙ‬يذ‪ .‬چ‪ٙ‬ذ خي وذ ثشاي سجذيُ يه ػؼج‪ٝ‬‬
‫ٔشٗ ٔؼٕ‪ِٛ‬ي ث‪ ٝ‬ػؼج‪ٔ ٝ‬شٗ ػذدي ٔ‪ٛ‬سد ٘ظش‪٘ ،‬يبص خ‪ٛ‬ا‪ٞ‬يذ داؿز و‪ ٝ‬كشفب اػبص‪ ٜ‬ي ‪ٚ‬س‪ٚ‬د داد‪ٞ ٜ‬بي ػذدي ‪ ٚ‬وّيذ ‪ BackSpace‬سا ث‪ ٝ‬وبسثش ٔي‬
‫د‪ٞ‬ذ‪.‬‬

‫‪39‬‬
‫‪www.SoftGozar.Com‬‬
‫‪http://m0911.wordpress.com‬‬
‫‪public class NumericTextBox : TextBox‬‬
‫{‬
‫)‪protected override void OnKeyPress(KeyPressEventArgs e‬‬
‫{‬
‫)‪if ((e.KeyChar < '0' || e.KeyChar > '9') && e.KeyChar != (char)Keys.Back‬‬
‫{‬
‫;)(‪SystemSounds.Beep.Play‬‬
‫;‪e.Handled = true‬‬
‫}‬
‫;)‪base.OnKeyPress(e‬‬
‫}‬
‫}‬
‫صٔب٘ي و‪ ٝ‬ؿٕب وذ ثبًُ و‪ٙٙ‬ذ‪ ٜ‬ي ٔشذ اكّي سا ٔي ٘‪ٛ‬يؼيذ ثبيذ سؼييٗ و‪ٙ‬يذ و‪ٔ ٝ‬شذ والع دبي‪$ ٝ‬اكّي‪ #‬چ‪ٛٔ ٝ‬لغ ٔي س‪ٛ‬ا٘ذ فشاخ‪ٛ‬ا٘ي ؿ‪ٛ‬د‪ٌٔ .‬بثك‬
‫ٔؼش‪ٙ‬ذار اسص ثشي دس ثش٘بٔ‪ٛ٘ ٝ‬يؼي ؿيء ٌشا ‪ٍٙٞ‬بٔي و‪ٔ ٝ‬شذ ‪ OnKeyPress‬سا دس يه والع ٔـشك ؿذ‪ ٜ‬ثبًُ ٔي و‪ٙ‬يٓ ثبيذ ٌٕٔئٗ ؿ‪ٛ‬يٓ‬
‫و‪ٔ ٝ‬شذ ‪ٔ OnKeyPress‬شؼّك ث‪ ٝ‬والع دبي‪ ٝ‬فشاخ‪ٛ‬ا٘ي ٔي ؿ‪ٛ‬د سب دس اكُ ديغبْ ٔشث‪ٛ‬ى ث‪ ٝ‬س‪ٚ‬يذاد دسيبفز ٌشدد‪ .‬اص آ٘ؼب و‪ ٝ‬و‪ٙ‬ششَ و‪ٙٙ‬ذ‪ ٜ‬ي‬
‫س‪ٚ‬يذاد ‪ TextChanged‬فمي داد ‪ٞ ٜ‬بي ػذدي سا دسيبفز ٔي و‪ٙ‬ذ‪ ،‬ؿٕب دغ اص اػشجبس ػ‪ٙ‬ؼي وبساوشش ‪ٞ‬بي ‪ٚ‬س‪ٚ‬دي ٔي س‪ٛ‬ا٘يذ ٔشذ والع دبي‪ ٝ‬سا‬
‫فشاخ‪ٛ‬ا٘ي ٕ٘بييذ‪ .‬اػشفبد‪ ٜ‬اص ػؼج‪ٔ ٝ‬شٗ ػذدي داخُ ثش٘بٔ‪ ٝ‬ث‪ٕٞ ٝ‬بٖ س‪ٚ‬ؽ اػشفبد‪ ٜ‬اص و‪ٙ‬ششَ اػشجبس ػ‪ٙ‬ؼي وبسثش اػز و‪ ٝ‬دس ثخؾ لجّي ‪ٕٞ‬يٗ‬
‫ٔمبِ‪ ٝ‬ديذيذ‪.‬‬

‫ؿىُ ‪ :22‬و‪ٙ‬ششَ ‪ٞ‬بي ‪$ UserCredentials‬اػشجبس ػ‪ٙ‬ؼي وبسثش‪ٚ$ NumericTextBox ٚ #‬س‪ٚ‬د داد‪ ٜ‬ي ػذدي‪ #‬دس حبِز ًشاحي ‪ ٚ‬اػشا داخُ ؿجي‪ ٝ‬ػبص‬

‫‪40‬‬
‫‪http://m0911.wordpress.com‬‬
‫و‪ٙ‬ششَ ‪ٞ‬بي ػفبسؿي‬
‫اٌش ٕ٘ي خ‪ٛ‬ا‪ٞ‬يذ و‪ٙ‬ششَ ‪ٞ‬بي ٔ‪ٛ‬ػ‪ٛ‬د سا د‪ٚ‬ثبس‪ ٜ‬اػشفبد‪$ ٜ‬ثبص٘‪ٛ‬يؼي‪ #‬و‪ٙ‬يذ ‪ِٚ‬ي ث‪ ٝ‬و‪ٙ‬ششَ ‪ٞ‬بي ػذيذ ٘يبص داسيذ ٔي س‪ٛ‬ا٘يذ و‪ٙ‬ششَ ػفبسؿژي خ‪ٛ‬دسژبٖ سا‬
‫ثؼژژبصيذ‪ٔ .‬ؼٕژژ‪ٛ‬ال ايژژٗ ٘ژژ‪ٛ‬ع و‪ٙ‬شژژشَ ‪ٞ‬ژژب اص ٘مٌژژ‪ ٝ‬ي كژژفش ٘‪ٛ‬ؿژژش‪ٔ ٝ‬ژژي ؿژژ‪٘ٛ‬ذ حشژژي اٌژژش ثش‪ٛ‬ا٘يژژذ ثژژ‪ ٝ‬ػ‪ٙ‬ژژ‪ٛ‬اٖ ٔظژژبَ آٖ ‪ٞ‬ژژب سا اص وژژالع‬
‫‪ System.Windows.Forms.Control‬اسص ثشي ٕ٘بييذ و‪ ٝ‬حذالُ وبسآيي ‪ٞ‬بي ػٕ‪ٔٛ‬ي و‪ٙ‬ششَ ‪ٞ‬ب سا داؿش‪ ٝ‬ثبؿ‪ٙ‬ذ‪ .‬ث‪ ٝ‬ايٗ ٘‪ٛ‬ع و‪ٙ‬ششَ ‪ٞ‬ب دػز‬
‫ػبص )‪ٔ ٓٞ (Own Drawn Controls‬ي ٌ‪ٛ‬ي‪ٙ‬ذ‪ .‬دس ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2008 ٛ‬اٍِ‪ٛ‬ي آٔبد‪ ٜ‬اي ثشاي و‪ٙ‬ششَ ‪ٞ‬بي ػفبسؿژي ٘يؼژز‪ .‬آػژبٖ سژشيٗ سا‪ٜ‬‬
‫‪ٕٞ‬بٖ ايؼبد يه و‪ٙ‬ششَ وبسثش داخُ ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ ٛ‬اػز‪ .‬دغ اص ايؼبد دش‪ٚ‬ط‪ ٜ‬ي خبِي ٔي س‪ٛ‬ا٘يذ و‪ٙ‬ششَ وبسثش سا حزف و‪ٙ‬يذ ‪ ٚ‬ث‪ ٝ‬ك‪ٛ‬سر دػشي يه‬
‫و‪ٙ‬ششَ ػفبسؿي سا اص ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2008 ٛ‬ث‪ ٝ‬آٖ اهبف‪ٕ٘ ٝ‬بييذ‪.‬‬

‫‪public partial class CustomControl1 : Control‬‬


‫{‬
‫)(‪public CustomControl1‬‬
‫{‬
‫;)(‪InitializeComponent‬‬
‫}‬

‫)‪protected override void OnPaint(PaintEventArgs pe‬‬


‫{‬
‫‪// TODO: Add custom paint code here‬‬
‫‪// Calling the base class OnPaint‬‬
‫;)‪base.OnPaint(pe‬‬
‫}‬
‫}‬
‫ثشاي ايؼبد يه و‪ٙ‬ششَ ػفبسؿي اص كفش ثبيذ خ‪ٛ‬دسبٖ آٖ سا سشػيٓ )‪ (Paint‬و‪ٙ‬يذ‪ .‬ثذيٗ ٔ‪ٙ‬ظ‪ٛ‬س وبفي اػز ٔشذ ‪ OnPaint‬سا ثبًُ و‪ٙ‬يذ‪ .‬اِجش‪ ٝ‬ايژٗ‬
‫ٔ‪ٛ‬سد اص ‪ٕٞ‬بٖ ِحظ‪ ٝ‬ي ايؼبد و‪ٙ‬ششَ ػفبسؿي ث‪ًٛ ٝ‬س خ‪ٛ‬دوبس س‪ٛ‬ػي ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2008 ٛ‬ث‪ ٝ‬ػ‪ٛ‬سع ثش٘بٔ‪ ٝ‬سبٖ اهبف‪ٔ ٝ‬ي ؿ‪ٛ‬د‪ .‬اص آ”ػب و‪ ٝ‬سشػيٓ‬
‫و‪ٙ‬ششَ سبٖ ث‪ٍٙٞ ٝ‬بْ اػشاي ثش٘بٔ‪ ٝ‬ي اػشفبد‪ ٜ‬و‪ٙٙ‬ذ‪ ٜ‬اص آٖ ٕٔىٗ اػز ثبس ‪ٞ‬ب ‪ ٚ‬ثبس ‪ٞ‬ب ديؾ ثيبيذ‪ ،‬اص ايٗ س‪ ٚ‬وبسآيي س‪ٚ‬ؽ ديبد‪ ٜ‬ػژبصي ؿژٕب ا‪ٕٞ‬يژز‬
‫د‪ٚ‬چ‪ٙ‬ذاٖ ديذا ٔي و‪ٙ‬ذ‪ .‬دس ‪ٚ‬ال غ ‪ ٓٞ‬وبسآيي ‪ ٓٞ ٚ‬اػشفبد‪ ٜ‬اص ٔ‪ٙ‬بثغ ػيؼشٓ‪ .‬اص آٖ ػب و‪ٔ ٝ‬ؼٕ‪ٛ‬ال اص والع ‪ٞ‬ژبي ٔشثژ‪ٛ‬ى ثژ‪ٌ ٝ‬شافيژه دس داخژُ ٔشژذ‬
‫‪ OnPaint‬اػشفبد‪ٔ ٜ‬ي و‪ٙ‬يذ ‪ ٚ‬دس اػشفبد‪ ٜ‬اص ايٗ والع ‪ٞ‬ب ث‪ ٝ‬وذ اكّي ٔشاػؼ‪ٔ ٝ‬ي و‪ٙ‬يذ دبوؼبصي ‪ ٚ‬آصاد ػبصي ٔ‪ٙ‬بثغ ٔ‪ٛ‬سد اػشفبد‪ ٜ‬دغ اص ‪ٞ‬ش ثژبس‬
‫سشػيٓ ثؼيبس ٔ‪ ٟٓ‬اػز‪ .‬دس ‪ C#‬ث‪ٟ‬شش اػز اص والع ‪ٞ‬بيي اػشفبد‪ ٜ‬و‪ٙ‬يذ و‪ ٝ‬يه ٔشذ ‪ Dispose‬سا ث‪ ٝ‬ك‪ٛ‬سر سشويت ثب دػش‪ٛ‬س ‪ using‬ديژبد‪ ٜ‬وژشد‪ٜ‬‬
‫ثبؿ‪ٙ‬ذ‪ .‬دػش‪ٛ‬س ‪ using‬سوٕيٗ ٔي و‪ٙ‬ذ و‪ Dispose ٝ‬حشي دس ثش‪ٚ‬ص خٌب ث‪ٍٙٞ ٝ‬بْ فشاخ‪ٛ‬ا٘ي ٔشذ‪ٞ‬بي يه ؿئ ‪ ٓٞ‬اػشا ٔژي ؿژ‪ٛ‬د‪ .‬دس ‪ٚ‬الژغ ؿژٕب اص‬
‫ثبثز ٔذيشيز خٌب‪ٞ‬ب )‪ (Exception Handling‬خيبَ سبٖ ساحز اػز‪ٔ .‬ظال ٔي خ‪ٛ‬ا‪ٞ‬يذ يه ٔشٗ سا ٕ٘بيؾ د‪ٞ‬يذ‪.‬‬

‫‪41‬‬
http://m0911.wordpress.com
‫سر ثخـژي اص دژبسأشش‬ٛ‫ ك‬ٝ‫ سا ث‬Graphics ‫ع‬ٛ٘ ‫ ؿيء اص‬ٚ ‫يذ‬ٙ‫ا٘ي و‬ٛ‫ فشاخ‬OnPaint ‫ آٖ سا داخُ ٔشذ‬ٚ ‫ ٕ٘بييذ‬ٜ‫ وذ صيش سا اػشفبد‬ٝ‫ا٘يذ لٌؼ‬ٛ‫ٔي س‬
:‫ داخُ آٖ ثفشػشيذ‬ٝ‫ ث‬PaintEventArgs

private void DisplayLabelInfo(Graphics g, string labelText, int xPos, int yPos)


{
using (Font labelFont = new Font(FontFamily.GenericSerif, 10.0F, FontStyle.Regular))
{
using (SolidBrush labelBrush = new SolidBrush(LabelForeground))
{
g.DrawString(labelText,
labelFont,
labelBrush,
xPos, yPos);
}
}
}
‫ ديٍژشي‬ٚ Font ‫ يىژي‬،‫ژٓ الصْ داسيژذ‬ٞ ‫ ديٍژش‬Graphics ‫ع‬ٛ‫ ؿيء اص ٘ژ‬ٚ‫ د‬.‫د‬ٛ‫ششَ ث‬ٙ‫ ثشاي ٕ٘بيؾ ٔشٗ داخُ يه و‬ٜ‫ ديذيذ يه ٔشذ ػبد‬ٝ‫آٖ چ‬
‫ وبس ثجشيژذ‬ٝ‫ ث‬using ‫س‬ٛ‫ ايٗ اؿيب سا ثب دػش‬ٝ‫ صٔب٘ي و‬.‫٘ذ‬ٛ‫ ايؼبد ٔي ؿ‬DisplayLabelInfo ‫ا٘ي‬ٛ‫ٍبْ فشاخ‬ٙٞ ٝ‫ب ث‬ٞ ٗ‫ي اي‬ٚ‫ش د‬ٞ ٝ‫ و‬SolidBrush
#‫دػششػژي‬$ ‫ ي سؼشيژف‬ٜ‫د‬ٚ‫ خژبسع اص ٔحژذ‬ٝ‫ ث‬ٝٔ‫ششَ ثش٘ب‬ٙ‫ و‬ٝ‫ دسػز دس صٔب٘ي و‬Dispose ‫ٖ ٔشذ‬ٛ‫ذ داؿز چ‬ٞ‫ا‬ٛ‫ب وبسآيي ثبالسشي خ‬ٞ ٖ‫دبوؼبصي آ‬
ٝ‫ٖ ٘يبصي ث‬ٛ‫د چ‬ٛ‫( اػشا ٔي ؿ‬Garbage Collection) ٝ‫ٍبْ دبوؼبصي حبفظ‬ٙٞ ٝ‫سار وٕششي ث‬ٛ‫ دػش‬ٝ‫ دس ٘شيؼ‬ٚ ‫د‬ٛ‫ا٘ي ٔي ؿ‬ٛ‫ فشاخ‬،‫د‬ٚ‫ؿيء ٔي س‬
‫د‬ٚ‫ژبثغ ٔحژذ‬ٙٔ ‫ژب اص‬ٞ ٖ‫ آ‬ٝ‫ دِيُ آٖ و‬ٝ‫ ث‬- ‫ وبس داسيذ‬ٚ ‫ ٌشافيه ػش‬ٝ‫ى ث‬ٛ‫بي ٔشث‬ٞ ‫ ثب والع‬ٝ‫ صٔب٘ي و‬ٜ‫يظ‬ٚ ٝ‫ؽ ث‬ٚ‫ ايٗ س‬.‫ ٘يؼز‬Finalize ‫ا٘ي‬ٛ‫فشاخ‬
.‫ ثؼيبس ٔفيذ اػز‬-‫٘ذ‬ٛ‫لز آصاد ؿ‬ٚ ‫ ثبيذ دس اػشع‬ٝ‫ذ و‬ٙٙ‫ ٔي و‬ٜ‫ٔحّي اػشفبد‬
،‫ژذ داؿژز‬ٞ‫ا‬ٛ‫ ٕ٘بيؾ حبِز دشؽ خ‬ٝ‫يذ كفح‬ٞ‫ ا٘ؼبْ د‬Graphics ‫ ي‬ٕٝ٘ٛ٘ ‫ اص يه وذي‬ٜ‫بي ٌشافيىي سا ثب اػشفبد‬ٞ ٓ‫اٌش ؿٕب ٔؼشميٕب سٕبْ سشػي‬
‫ژش‬ٞ ‫ ؿٕب‬ٝ‫ي ايٗ و‬ٙ‫ يؼ‬.‫يه ثبفش اػز‬ٙ‫ اص سى‬ٜ‫ششيٗ وبس اػشفبد‬ٟ‫ دس ايٗ حبِز ث‬.‫ ايذ‬ٝ‫ؿش‬ٛ٘ ‫د‬ٛ‫ خ‬OnPaint ‫بي صيبدي سا دس ٔشذ‬ٞ‫ وذ‬ٝ‫ صٔب٘ي و‬ٜ‫يظ‬ٚ ٝ‫ث‬
‫ژب‬ٞ ٖ‫ ي آ‬ٝ‫ٕژ‬ٞ ٓ‫ دغ اص سشػي‬ٚ ‫يذ‬ٞ‫ ي اكّي ا٘ؼبْ د‬ٝ‫ دس حبفظ‬Graphics ‫ ي‬ٝ٘‫بي ػذا ٌب‬ٞ ٕٝ٘ٛ٘ ‫يذ اثشذا دس‬ٙ‫يذ سشػيٓ و‬ٞ‫ا‬ٛ‫ ٔي خ‬ٝ‫چيضي سا و‬
.‫يذ‬ٙ‫ذ وذي و‬ٞ‫ ي ٕ٘بيؾ سا ا٘ؼبْ ٔي د‬ٝ‫ي كفح‬ٚ‫ سشػيٓ س‬ٝ‫ و‬Graphics ‫ ؿيء‬ٝ‫ ي اكّي ث‬ٝ‫ سا اص حبفظ‬Graphics ‫اي ؿيء‬ٛ‫ٔحش‬
:‫يذ‬ٞ‫ اص ثبفش ٔشاحُ صيش سا ثبيذ ا٘ؼبْ د‬ٜ‫ ثشاي اػشفبد‬.‫يذ‬ٞ‫ي آٖ ٕ٘بيؾ ٔي د‬ٚ‫ ثب يه ٔشٗ س‬ٜ‫ٕشا‬ٞ ‫يش‬ٛ‫يذ يه سل‬ٙ‫فشم و‬
protected override void OnPaint(PaintEventArgs pe)
{
// Initialize a Graphics object with the bitmap we just created
// and make sure that the bitmap is empty.
Graphics memoryGraphics = Graphics.FromImage(memoryBitmap);
memoryGraphics.Clear(this.BackColor);
// Draw the control image in memory
memoryGraphics.DrawImage(someImage,
destRect,
imageRect,
GraphicsUnit.Pixel);
// Display some text
DisplayLabelInfo(memoryGraphics, “Some text”, 0, 0);
// Draw the memory bitmap on the display
pe.Graphics.DrawImage(memoryBitmap, 0, 0);
// Calling the base class OnPaint
base.OnPaint(pe);
}

42
‫‪http://m0911.wordpress.com‬‬
‫دس وذ لجّي فشم ثش ايٗ اػز و‪ ٝ‬ؿٕب يه ٕ٘‪٘ٛ‬ژ‪ ٝ‬اص ٘ژ‪ٛ‬ع ‪ Bitmap‬ثژب ٘ژبْ ‪ٕٞ ٚ memoryBitmap‬چ‪ٙ‬ژيٗ يژه ٕ٘‪٘ٛ‬ژ‪ ٝ‬اص ٘ژ‪ٛ‬ع ‪ Image‬ثژب ٘ژبْ‬
‫‪ ٚ someImage‬دس ٘‪ٟ‬بيز يه ٔؼشٌيُ ثشاي سشػيٓ سل‪ٛ‬يش دس داخُ آٖ ايؼبد ‪ٔ ٚ‬مذاس د‪ٞ‬ي ا‪ِٚ‬ي‪ ٝ‬وشد‪ ٜ‬ايذ‪ .‬فشاخژ‪ٛ‬ا٘ي ٔشژذ ‪ base.OnPaint‬دس‬
‫ا٘ش‪ٟ‬بي ٔشذ ‪ OnPaint‬ثبػض خ‪ٛ‬ا‪ٞ‬ذ ؿذ و‪ ٝ‬آٖ چ‪ ٝ‬دس س‪ٚ‬يژذاد ‪ Paint‬اص دژيؾ اص ايژٗ طجژز ؿژذ‪ ٜ‬اػژز دژغ اص ٕ٘ژبيؾ ٔحش‪ٛ‬يژبر س‪ٛ‬ػژي ٔشژذ‬
‫‪ OnPaint‬ؿٕب‪ ،‬س‪ٚ‬ي آٖ ‪ٞ‬ب ٕ٘بيؾ داد‪ ٜ‬خ‪ٛ‬ا‪ٞ‬ذ ؿذ‪.‬‬
‫ثشاي اهبف‪ ٝ‬وشدٖ أىب٘بر ًشاحي ث‪ ٝ‬و‪ٙ‬ششَ ػفبسؿژي سژبٖ‪ ،‬ثبيژذ يژه فبيژُ ‪ - .xmta‬وژ‪٘ ٝ‬ژ‪ٛ‬ع خبكژي اص فبيژُ ‪ XML‬اػژز – ايؼژبد ٕ٘بييژذ‪.‬‬
‫‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2008 ٛ‬ثب اػشفبد‪ ٜ‬اص ‪$ IntelliSense‬سبيخ ‪ٛٞ‬ؿٕ‪ٙ‬ذ‪ #‬ايٗ أىژبٖ سا ثژ‪ ٝ‬ؿژٕب ٔژي د‪ٞ‬ژذ وژ‪ ٝ‬يژه فبيژُ ٔـخلژبر صٔژبٖ ًشاحژي‬
‫)‪ (Design-Time Attribute File‬ث‪ ٝ‬دش‪ٚ‬ط‪ ٜ‬ي سبٖ اص داخُ ػ‪ِٛٛ‬ؿٗ اوؼذّ‪ٛ‬سس اهبف‪ٕ٘ ٝ‬بييذ‪ .‬لٌؼ‪ ٝ‬وذ صيش يه ٕ٘‪ ٝ٘ٛ‬اص ايٗ ٘‪ٛ‬ع فبيُ سا ٘ـژبٖ‬
‫ٔي د‪ٞ‬ذ يه ٔـخل‪ ٝ‬ثشاي و‪ٙ‬ششَ ػفبسؿي ؿٕب ثب يه سد‪ ٜ‬ث‪ٙ‬ذي ٔ‪ٛ‬ه‪ٛ‬ػي ايؼبد ٔي و‪ٙ‬ذ ‪ ٚ‬دس د‪ٙ‬ؼش‪ ٜ‬ي ٔـخلبر ‪ٚ‬يظ‪ٚ‬اَ اػژش‪ٛ‬دي‪ٕٞ 2008 ٛ‬ژشا‪ٜ‬‬
‫ثب يه ٔشٗ سا‪ٕٙٞ‬ب ٘ـبٖ ٔي د‪ٞ‬ذ‪.‬‬
‫>?"‪<?xml version="1.0" encoding="utf-16‬‬
‫>"‪<classes xmlns="http://schemas.microsoft.com/VisualStudio/2004/03/SmartDevices/XMTA.xsd‬‬
‫>"‪<class name="Compass.Compass‬‬
‫>"‪<property name="Heading‬‬
‫>‪<category>CompassSpecific</category‬‬
‫>‪<description>Sets the travelling speed in mph</description‬‬
‫>‪</property‬‬
‫>‪</class‬‬
‫>‪</classes‬‬

‫‪43‬‬
‫‪http://m0911.wordpress.com‬‬

‫اػشفبد‪ ٜ‬اص و‪ٙ‬ششَ ػفبسؿي داخُ يه ثش٘بٔ‪ٝ‬‬


‫دغ اص ايؼبد يه و‪ٙ‬ششَ ػفبسؿي آٖ سا داخُ يه ثش٘بٔ‪ ٝ‬اػشفبد‪ٔ ٜ‬ي و‪ٙ‬يذ‪ .‬اٌش ؿٕب أىب٘بر ًشاحي سا ثشاي و‪ٙ‬ششَ ػفبسؿي سبٖ ث‪ ٝ‬دسػشي ايؼژبد‬
‫وشد‪ ٜ‬ثبؿيذ ‪ ٚ‬و‪ٙ‬ششَ ػفبسؿي سا ث‪ ٝ‬ػؼج‪ ٝ‬اثضاس ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ ٛ‬اهبف‪ ٝ‬وشد‪ ٜ‬ثبؿيذ‪ ،‬لشاس دادٖ آٖ دس ‪ٚ‬اػي وبسثشي ثش٘بٔ‪ ٝ‬سژبٖ ‪ٕٞ‬ب٘‪ٙ‬ژذ و‪ٙ‬شژشَ ‪ٞ‬ژبي‬
‫اػشب٘ذاسد خ‪ٛ‬ا‪ٞ‬ذ ث‪ٛ‬د‪ .‬دس ؿىُ ‪ٚ 4‬اػي وبسثش يه ثش٘بٔ‪ ٝ‬ي لٌت ٕ٘بي اِىشش‪٘ٚ‬يىي سا ٔي ثي‪ٙ‬يذ و‪ ٝ‬اص يه و‪ٙ‬ششَ ػفبسؿژي ‪Compass Control‬‬
‫اػشفبد‪ ٜ‬وشد‪ ٜ‬اػز‪ٕٞ .‬بٖ ً‪ٛ‬س و‪ٔ ٝ‬ي ثي‪ٙ‬يذ أىب٘بر وبُٔ ًشاحي ‪ٕٞ‬شا‪ ٜ‬ثب سؼذادي ٔـخل‪ ٝ‬ثشاي ايٗ و‪ٙ‬ششَ دس دػششع لشاس داسد‪ .‬ثژ‪ ٝ‬ػژال‪ٔ ٜٚ‬ژي‬
‫ثي‪ٙ‬يذ و‪ ٕٝٞ ٝ‬ي ٔـخل‪ٞ ٝ‬ب ٔمذاس ديؾ فش م ‪ٔ ٚ‬شٗ سا‪ٕٙٞ‬ب دس ثبس‪ ٜ‬ي ٘ح‪ ٜٛ‬ي اػشفبد‪ ٜ‬اص آٖ ٔـخل‪ ٝ‬داس٘ذ‪ .‬ثشاي ػبخشٗ ايٗ ‪ٚ‬اػژي وژبسثش ثبيژذ‬
‫يه «و‪ٙ‬ششَ لٌت ٕ٘ب» سا داخُ ‪ MainForm‬ثي‪ٙ‬ذاصيذ ‪ ٚ‬يه و‪ٙ‬ششَ ٔ‪ ٓٞ (Menu) ٛٙ‬ثشاي فؼبَ ‪ /‬غيش فؼبَ ػبصي دسيبفز داد‪ٞ ٜ‬ب اص ٌيش٘ژذ‪ ٜ‬ي‬
‫داخّي ‪ GPS‬ث‪ ٝ‬ثش٘بٔ‪ ٝ‬افض‪ٚ‬د‪ ٜ‬ؿذ‪ ٜ‬اػز‪.‬‬

‫ؿىُ ‪٘ :23‬شْ افضاس لٌت ٕ٘بي اِىشش‪٘ٚ‬يىي و‪ ٝ‬يه و‪ٙ‬ششَ ػفبسؿي سا اػشفبد‪ٔ ٜ‬ي و‪ٙ‬ذ‬

‫ثؼذ اص ايٗ و‪ ٝ‬ثش٘بٔ‪ ٝ‬اًالػبر ٔحُ ػغشافيبيي ‪ GPS‬سا دسيبفز وشد‪ ،‬ػ‪ٟ‬ز ‪ ٚ‬ػشػز حشوز وبسثش دس كفح‪ ٝ‬ي «و‪ٙ‬ششَ لٌت ٕ٘ب» ٕ٘بيؾ داد‪ٔ ٜ‬ي‬
‫ؿ‪ٛ‬د‪ .‬ثشاي ث‪ ٝ‬س‪ٚ‬ص سػب٘ي ايٗ داد‪ٞ ٜ‬ب «و‪ٙ‬ششَ لٌت ٕ٘ب» سؼذادي ٔـخل‪ ٝ‬دس اخشيبس ثش٘بٔ‪ٛ٘ ٝ‬يغ لشاس داد‪ ٜ‬اػز و‪ ٝ‬اص داخُ ثش٘بٔ‪ ٝ‬لبثُ ٔمذاس د‪ٞ‬ي‬
‫‪ٞ‬ؼش‪ٙ‬ذ ‪ٔ ٚ‬مبديشي سا و‪ ٝ‬اص ٌيش٘ذ‪ ٜ‬ي ‪ GPS‬خ‪ٛ‬ا٘ذ‪ٔ ٜ‬ي ؿ‪٘ٛ‬ذ‪٘ ،‬ـبٖ ٔي د‪ٙٞ‬ذ‪.‬‬

‫‪44‬‬
‫‪http://m0911.wordpress.com‬‬
‫افضد‪ ٖٚ‬اًالػبر ٔشث‪ٛ‬ى ث‪ٔ ٝ‬حُ ػغشافيبيي ث‪ ٝ‬ثش٘بٔ‪ٝ‬‬
‫دػشٍب‪ٞ ٜ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪ 6 ٚ 5‬داساي يه سا‪ ٜ‬ا٘ذاص ‪ٞ (GPS Intermediate Driver=GPSID) GPS‬ؼش‪ٙ‬ذ و‪ ٝ‬ثشاي ؿٕب ثژ‪ ٝ‬ػ‪ٙ‬ژ‪ٛ‬اٖ يژه‬
‫س‪ٛ‬ػؼ‪ ٝ‬د‪ٙٞ‬ذ‪ ،ٜ‬دسيبفز اًالػبر ٔىبٖ ػغشافيبيي اص ًشيك ‪ٕٞ ٚ GPS‬چ‪ٙ‬يٗ ث‪ ٝ‬اؿششان ٌزاسي ػخز افضاس آٖ ثيٗ ثش٘بٔ‪ٞ ٝ‬بي ٔخشّف ثؼيبس آػبٖ‬
‫خ‪ٛ‬ا‪ٞ‬ذ ث‪ٛ‬د‪ .‬ثب ٌؼششؽ دػشٍب‪ٞ ٜ‬بي ٔؼ‪ٟ‬ض ث‪ GPS ٝ‬الصْ اػز و‪ ٝ‬اًالػبسي ساػغ ث‪ ٝ‬س‪ِٛ‬يذ ٘شْ افضاس ثش ٔج‪ٙ‬بي آٖ داؿش‪ ٝ‬ثبؿيذ‪ .‬ثشاي ث‪ ٝ‬دػز آ‪ٚ‬سدٖ‬
‫اًالػبسي دس صٔي‪ ٝٙ‬سا‪ ٜ‬ا٘ذاص ‪ٔ GPS‬يىش‪ٚ‬ػبفز ث‪ ٝ‬آدسع صيش ٔشاػؼ‪ٕ٘ ٝ‬بييذ‪:‬‬
‫‪http://msdn.microsoft.com/en-us/library/ms850332.aspx‬‬
‫اثضاس ‪ٞ‬بي س‪ٛ‬ػؼ‪ ٝ‬ي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪ 6 ٚ 5‬سؼذاد صيبدي وذ ثش٘بٔ‪ ٝ‬ي ٕ٘‪ ٝ٘ٛ‬ثشاي ‪ GPS‬داس٘ذ‪ .‬يىي اص ايٗ وذ ‪ٞ‬ب كشفب اػشفبد‪ ٜ‬اص ‪٘ GPSID‬يؼز ثّىژ‪ٝ‬‬
‫يه والع ٔذيشيشي اص وبسوشد ‪ٞ‬بي ‪ GPSID‬سا دس اخشيبس سبٖ لشاس خ‪ٛ‬ا‪ٞ‬ذ داد‪ .‬ايٗ ٔظبَ ‪ٞ‬ب سا ٔي س‪ٛ‬ا٘يذ دس د‪ٛ‬ؿ‪ٞ ٝ‬بي صيش ديذا و‪ٙ‬يذ‪:‬‬
‫‪<Installation Folder>\<Windows Mobile SDK>\Samples\PocketPC\Cs\Gps‬‬
‫‪<Installation Folder>\<Windows Mobile SDK>\Samples\Smartphone\Cs\Gps‬‬
‫ديؾ اص اػشفبد‪ ٜ‬اص ايٗ ؿٕب ثبيذ اثشذا يه ػ‪ِٛٛ‬ؿٗ ‪ GPS‬دسػز و‪ٙ‬يذ و‪ ٝ‬دس يىي اص د‪ٛ‬ؿ‪ٞ ٝ‬بي ف‪ٛ‬ق‪ ،‬رخيش‪ ٜ‬ؿذ‪ ٜ‬اػز‪٘ .‬خؼژز ‪ٚ‬يژظ‪ٚ‬اَ اػژش‪ٛ‬دي‪ٛ‬‬
‫‪ 2008‬اص ؿٕب ساػغ ث‪ ٝ‬سجذيُ آٖ ث‪ٍ٘ ٝ‬بسؽ ػذيذ خ‪ٛ‬ا‪ٞ‬ذ دشػيذ چ‪ ٖٛ‬ايٗ وذ‪ٞ‬بي ٕ٘‪ ٝ٘ٛ‬دس ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ٛ٘ 2005 ٛ‬ؿش‪ ٝ‬ؿذ‪ ٜ‬ا٘ژذ ‪ ٚ‬ثژذ‪ ٖٚ‬سجژذيُ‬
‫ثژژژ‪ٍ٘ ٝ‬ژژژبسؽ ػذيژژژذ وژژژبس ٘خ‪ٛ‬ا‪ٙٞ‬ژژژذ وژژژشد‪ .‬دژژژغ اص سجژژژذيُ ٔژژژي س‪ٛ‬ا٘يژژژذ ػ‪ِٛٛ‬ؿژژژٗ سا دسػژژژز و‪ٙ‬يژژژذ ‪ ٚ‬اص أىب٘ژژژبر فبيژژژُ اػژژژٕجّي‬
‫‪ Microsoft.WindowsMobile.Samples.Location‬اػژژشفبد‪ٕ٘ ٜ‬بييژژذ‪ .‬ثژژذيٗ ٔ‪ٙ‬ظژژ‪ٛ‬س ثبيژژذ ايژژٗ اػژژٕجّي سا دس ػ‪ِٛٛ‬ؿژژٗ خ‪ٛ‬دسژژبٖ ‪ٚ‬اسد‬
‫)‪ (import‬و‪ٙ‬يذ‪ .‬يه ٔشػغ ث‪ ٝ‬والع ‪ GPSID‬سا ث‪ ٝ‬ػ‪ِٛٛ‬ؿٗ سبٖ ثيفضاييذ سب اػشفبد‪ ٜ‬اص آٖ دس ثش٘بٔ‪ ٝ‬سبٖ أىبٖ دژزيش ٌژشدد‪ .‬ديژبٌشاْ داد‪ٞ ٜ‬ژب ‪ٚ‬‬
‫ٔشذ ‪ٞ‬بي ٔشسجي ثب والع اػشفبد‪ ٜ‬ؿذ‪ ٜ‬دس ايٗ ٔمبِ‪ ٝ‬دس ؿىُ ‪ٕ٘ 5‬بيؾ داد‪ ٜ‬ؿذ‪ ٜ‬اػز‪.‬‬

‫ؿىُ ‪ :24‬ديبٌشاْ والع ‪GPSID‬‬

‫والع ‪٘ Gps‬مٌ‪ ٝ‬ي آغبص وبس ؿٕب ثب ػخز افضاس آٖ اػز‪ .‬دس ايٗ والع ٔشژذ‪ٞ‬بيي ثژشاي دسيبفژز اًالػژبر ٔىژبٖ ػغشافيژبيي ‪ GPS‬ثژ‪ ٝ‬كژ‪ٛ‬سر‬
‫ثالدسً٘ ‪ٕٞ ٚ‬ب‪ٚ ًٙٞ‬ػ‪ٛ‬د داسد ‪ ٚ‬دس هٕٗ يه س‪ٚ‬يذاد و‪ ٝ‬ث‪ٍٙ ٞ ٝ‬بْ سغييش اًالػبر ٔىبٖ‪ ،‬فشاخ‪ٛ‬ا٘ي ٔي ؿ‪ٛ‬د‪ٔ .‬شژذ‪ٞ‬بيي ٘يژض ثژشاي فؼژبَ‪/‬غيش فؼژبَ‬
‫ػبصي ػخز افضاس ‪ٞ GPS‬ؼز‪.‬‬

‫ديؾ اص دسيبفز اًالػبر ٔىب٘ي اص ٌيش٘ذ‪ ٜ‬ي ‪٘ GPS‬خؼز الصْ اػز و‪ ٝ‬يه ؿيء ػذيذ اص ٘‪ٛ‬ع ‪ Gps‬ايؼبد ‪ٔ ٚ‬شژذ ‪ Open‬سا ثژشاي آٖ فشاخژ‪ٛ‬ا٘ي‬
‫و‪ٙ‬يذ‪ .‬ايٗ وبس ثبػض ٔي ؿ‪ٛ‬د و‪ ٝ‬اٌش ثش٘بٔ‪ ٝ‬ي ؿٕب ا‪ِٚ‬يٗ اػشفبد‪ ٜ‬و‪ٙٙ‬ذ‪ ٜ‬ي ػخز افضاس ‪ GPS‬س‪ٚ‬ي ايٗ دػژشٍب‪ ٜ‬اػژز‪ ،‬ػژخز افژضاس ‪ GPS‬فؼژبَ‬
‫ٌشدد‪ .‬دغ اص دبيبٖ اػشفبد‪ ٜ‬اص آٖ‪ ،‬اٌش ثش٘بٔ‪ ٝ‬ي ؿٕب آخشيٗ اػشفبد‪ ٜ‬و‪ٙٙ‬ذ‪ ٜ‬ي ‪ GPS‬س‪ٚ‬ي دػژشٍب‪ ٜ‬اػژز ثبيژذ ٔشژذ ‪ Close‬سا ثژشاي ؿژيء ‪GPS‬‬
‫فشاخ‪ٛ‬ا٘ي و‪ٙ‬يٓ سب ػخز افضاس ‪ GPS‬سا غيشفؼبَ و‪ٙ‬ذ‪ .‬ايٗ وبس ثبػض ٔي ؿ‪ٛ‬د و‪ ٝ‬ث‪ٍٙٞ ٝ‬بْ ٘يژبص ٘ذاؿژشٗ ثژ‪ GPS ٝ‬ثژبسشي دػژشٍب‪ ٜ‬ثي‪ٟ‬ژ‪ٛ‬د‪ٔ ٜ‬لژشف‬
‫ٍ٘شدد‪.‬‬

‫‪45‬‬
http://m0911.wordpress.com
:‫د‬ٛ‫ اػشا ٔي ؿ‬ٝ٘‫بي ػذاٌب‬ٞ ‫يذاد‬ٚ‫ دس ٔذيش س‬ٚ ‫ذ‬ٞ‫ سا ٘ـبٖ ٔي د‬GPS ‫ ػخز افضاس‬ٝ‫ اسلبَ ث‬ٚ ‫غيش فؼبَ ػبصي‬/َ‫ٍ٘ي فؼب‬ٍٛ‫ وذ صيش چ‬ٝ‫لٌؼ‬

private void menuEnableGPS_Click(object sender, EventArgs e)


{
gps.Open();
gps.LocationChanged +=
new LocationChangedEventHandler(gps_LocationChanged);
menuDisableGPS.Enabled = true;
menuEnableGPS.Enabled = false;
}
private void menuDisableGPS_Click(object sender, EventArgs e)
{
gps.LocationChanged -= gps_LocationChanged;
gps.Close();
menuEnableGPS.Enabled = true;
menuDisableGPS.Enabled = false;
}
‫يذ‬ٙ‫ ثشسػي و‬#ٝٔ‫ثؼشٗ ثش٘ب‬$ Closing ‫يذاد‬ٚ‫ٕيٗ دِيُ ثبيذ دس ٔذيش س‬ٞ ٝ‫يذ ث‬ٙ‫ سا لٌغ و‬GPS َ‫ٓ ثبيذ اسلب‬ٞ ‫ذد ثبص‬ٙ‫ سا ثج‬ٝٔ‫ذ ثش٘ب‬ٞ‫ا‬ٛ‫اٌش وبسثش ثخ‬
‫ اص‬Close ‫ ٔشذ‬ٚ (unsubscribe) ‫يذ‬ٛ‫ خبسع ؿ‬LocationChanged ‫يذاد‬ٚ‫شػز س‬ٟ‫ اص ف‬ٚ ‫ فؼبَ اػز آٖ سا غيش فؼبَ ٕ٘بييذ‬GPS ‫ص‬ٛٙٞ ‫ اٌش‬ٝ‫و‬
ٝٔ‫ش ثش٘ب‬ٞ .‫د‬ٛ‫ ا٘ؼبْ ٔي ؿ‬gps_LocationChanged ‫يذاد‬ٚ‫٘يىي دس ٔذيش س‬ٚ‫ ي لٌت ٕ٘بي اِىشش‬ٝٔ‫ وبس اكّي ثش٘ب‬.‫يذ‬ٙ‫ا٘ي و‬ٛ‫ سا فشاخ‬Gps ‫ؿيء‬
‫ ثشاي‬ٝٔ‫يذاد ثش٘ب‬ٚ‫ ٔذيش س‬،‫ذ‬ٙ‫ سغييش و‬GPS ‫ اًالػبر ٔىب٘ي‬ٝ‫ش صٔبٖ و‬ٞ .‫ذ‬ٙ‫( و‬subscribe) ْ‫يذاد دس آٖ طجز ٘ب‬ٚ‫ اص ٔذيش س‬ٜ‫ا٘ذ ثب اػشفبد‬ٛ‫اي ٔي س‬
ٗ‫ آخشي‬ٝ‫ ث‬ٝ‫ش ِحظ‬ٞ ‫ ي ؿٕب دس‬ٝٔ‫ ثش٘ب‬ٝ‫ذ و‬ٙ‫ سوٕيٗ ٔي و‬LocationChanged ‫يذاد‬ٚ‫ طجز ٘بْ دس س‬.‫د‬ٛ‫ا٘ي ٔي ؿ‬ٛ‫ي ايٗ سغييشار فشاخ‬ٚ‫وبس س‬
.‫ذ‬ٙ‫ دسػشي دسيبفز ٔي و‬ٝ‫ اي سا ث‬ٜ‫اس‬ٛٞ‫ اًالػبر ٔب‬GPS ‫ ػخز افضاس‬ٝ‫ ثب ايٗ فشم و‬ٝ‫ اِجش‬،‫اًالػبر ٔىب٘ي دػششػي داسد‬

:‫ذ‬ٞ‫ ي اكّي آٖ سا ٘ـبٖ ٔي د‬ٝ‫ ٘ؼخ‬ٚ gps_LocationChanged ‫يذاد‬ٚ‫ وذ صيش ٔذيش س‬ٝ‫لٌؼ‬

void gps_LocationChanged(object sender, LocationChangedEventArgs args)


{
GpsPosition pos = args.Position;
compass1.HeadingValid = pos.HeadingValid;
if (pos.HeadingValid)
{
compass1.Heading = pos.Heading;
}
compass1.SpeedValid = pos.SpeedValid;
if (pos.SpeedValid)
{
compass1.Speed = pos.Speed * 1.152; // convert knots to MPH
}
if (pos.HeadingValid | pos.SpeedValid)
{
compass1.Invalidate();
}
}
‫ سا‬#‫ػژشػز‬$ Speed ٚ #‫ژز‬ٟ‫ػ‬$ Heading ‫ژبي‬ٞ ٝ‫يذاد فمي ٔـخل‬ٚ‫ ؿٕب دس ايٗ ٔذيش س‬،‫ؼز‬ٞ Gps ‫بي صيبدي ثشاي والع‬ٞ ٝ‫ ٔـخل‬ٝ‫ثب ايٗ و‬
ٚ #‫ػژشم ػغشافيژبيي‬$ Lattitude ‫ژذ‬ٙ٘‫ژبيي ٔب‬ٞ ٝ‫ٕژيٗ خژبًش ٔـخلژ‬ٞ ٝ‫ ثژ‬،‫٘يىژي اػژز‬ٚ‫ٖ ٘شْ افضاس كشفب يه لٌژت ٕ٘ژبي اِىشش‬ٛ‫ چ‬.‫يذ‬ٙ‫ٔي ثي‬
‫ دسػژز‬ٝ‫ الصْ اػز و‬،‫٘ذ‬ٛ‫ ٘ـ‬ٜ‫ا٘ذ‬ٛ‫ دسػشي خ‬ٝ‫ ٕٔىٗ اػز ث‬ٜ‫اس‬ٛٞ‫ اًالػبر دسيبفشي اص ٔب‬ٝ‫ اص آٖ ػب و‬.‫ذ‬ٙ‫ٓ ٘يؼش‬ٟٔ #‫َ ػغشافيبيي‬ًٛ$ Longitude

46
‫‪http://m0911.wordpress.com‬‬
‫ث‪ٛ‬دٖ ٔمبديش ٔـخل‪ٞ ٝ‬بي ٔ‪ٛ‬سد ٘ظش سبٖ سا ثشسػي و‪ٙ‬يذ‪ .‬دس ٘‪ٟ‬بيز ثبيذ ٔشذ ‪ Invalidate‬فشاخ‪ٛ‬ا٘ي و‪ٙ‬يذ سب اٌش حذالُ يىژي اص داد‪ٞ ٜ‬ژبي خ‪ٛ‬ا٘ژذ‪ٜ‬‬
‫ؿذ‪ ٜ‬سغييش وشد‪ ٜ‬ثبؿذ‪« ،‬و‪ٙ‬ششَ لٌت ٕ٘ب» سا ث‪ ٝ‬س‪ٚ‬ص ٕ٘بيذ‪.‬‬
‫اٌش ثب وذ ثبال –و‪ ٝ‬ثشاي ٔذيش س‪ٚ‬يذاد ‪ٛ٘ gps_LocationChanged‬ؿش‪ ٝ‬ايذ‪ -‬ثش٘بٔ‪ ٝ‬سبٖ سا وبٔذبيُ ‪ ٚ‬اػشا ٕ٘بييژذ ثژب خٌژبي صٔژبٖ اػژشا ٔ‪ٛ‬اػژ‪ٝ‬‬
‫خ‪ٛ‬ا‪ٞ‬يذ ؿذ‪ٔ .‬ف‪ ْٟٛ‬ديغبْ خٌب ايٗ اػز و‪ ٝ‬ؿٕب ٕ٘ي س‪ٛ‬ا٘يذ داد‪ٞ ٜ‬بي «و‪ٙ‬ششَ لٌت ٕ٘ب» سا ث‪ ٝ‬س‪ٚ‬ص و‪ٙ‬يذ‪ٔ .‬شٗ صيش سا دس ٔشٗ ديغبْ خ‪ٛ‬ا‪ٞ‬يذ ديذ‪:‬‬
‫‪Control.Invoke must be used to interact with controls created on a separate thread‬‬
‫‪ Control.Invoke‬ثبيذ ثب اؿيبيي دس اسسجبى ثبؿذ و‪ ٝ‬دس دشداصؽ ‪ٞ‬بي ٔؼضا ايؼبد ؿذ‪ ٜ‬ا٘ذ‪.‬‬
‫ثبصثي‪ٙ‬ي دـش‪ ،ٝ‬اًالػبر صيش سا ٘ـبٖ خ‪ٛ‬ا‪ٞ‬ذ داد‪:‬‬

‫‪StackTrace:‬‬
‫)‪at Microsoft.AGL.Common.MISC.HandleAr(PAL_ERROR ar‬‬
‫)(‪at System.Windows.Forms.Control.Invalidate‬‬
‫‪at ElectronicCompass.MainForm.gps_LocationChanged(Object sender,‬‬
‫)‪LocationChangedEventArgs args‬‬
‫)(‪at Microsoft.WindowsMobile.Samples.Location.Gps.WaitForGpsEvents‬‬
‫ٔشٗ ديغبْ خٌب اًالػبر ٔ‪ٕٟ‬ي ثشاي ؿ‪ٙ‬بػبيي ٔـىُ ث‪ٔ ٝ‬ب ٔي د‪ٞ‬ذ‪ .‬ث‪٘ ٝ‬ظش ٔي سػذ و‪ ٝ‬چ‪ٙ‬ذ دشداصؽ ‪ ٓٞ‬صٔبٖ دس ثش٘بٔ‪ ٝ‬ي ؿٕب اػشا ٔژي ؿژ‪٘ٛ‬ذ‪،‬‬
‫دس حبِي و‪ ٝ‬ؿٕب فمي يه دشداصؽ ايؼبد وشد‪ ٜ‬ايذ‪ .‬اٌش ث‪ Stack Trace ٝ‬دلز و‪ٙ‬يذ ٔش‪ٛ‬ػ‪ٔ ٝ‬ي ؿ‪ٛ‬يذ و‪ٔ ٝ‬شذ ‪– Invalidate‬و‪ ٝ‬خٌژب دس آٖ س‬
‫داد‪ ٜ‬اػز – اص داخُ ٔذيش س‪ٚ‬يذاد فشاخ‪ٛ‬ا٘ي ؿذ‪ ٜ‬اػز و‪ ٝ‬آٖ ‪ ٓٞ‬س‪ٛ‬ػي يه ٔشذ داخژُ وژالع ٔژذيشيز ‪ GPSID‬فشاخژ‪ٛ‬ا٘ي ؿژذ‪ ٜ‬اػژز‪ .‬ظژب‪ٞ‬شا‬
‫‪ GPSID‬يب والػي و‪ ٝ‬آٖ سا ٔذيشيز ٔي و‪ٙ‬ذ اص چ‪ٙ‬ذ دشداصؽ اػشفبد‪ٔ ٜ‬ي و‪ٙٙ‬ذ ‪ ٚ‬ايٗ ‪ٕٞ‬بٖ چيضي اػز و‪ ٝ‬ثبيذ ٔ‪ٛ‬اظجؾ ثبؿيذ‪.‬‬

‫ؿىُ ‪ :25‬سغييش ٔـخل‪ٞ ٝ‬بي و‪ٙ‬ششَ لٌت ٕ٘ب ‪ #Compass$‬ث‪ٍٙٞ ٝ‬بْ ثش‪ٚ‬ص خٌب‬

‫‪47‬‬
‫‪http://m0911.wordpress.com‬‬
‫ث‪ ٝ‬س‪ٚ‬ص سػب٘ي و‪ٙ‬ششَ ‪ٞ‬بي ‪ٚ‬اػي وبسثش دس يه ثش٘بٔ‪ ٝ‬ي چ‪ٙ‬ذ دشداصؿي‬
‫اؿشجب‪ٞ‬ي و‪ ٝ‬ثيـشش س‪ٛ‬ػؼ‪ ٝ‬د‪ٙٞ‬ذ‪ٌ ٜ‬بٖ ٘شْ افضاس ث‪ ٝ‬آٖ دچبس ٔي ؿ‪٘ٛ‬ذ ايٗ اػز و‪ ٝ‬ػؼي ٔي و‪ٙٙ‬ذ ث‪ًٛ ٝ‬س ٔؼشميٓ اص داخُ دشداصؽ فؼژبَ‪ ،‬و‪ٙ‬شژشَ‬
‫‪ٞ‬ژبي ‪ٚ‬اػژژي وژژبسثش سا سغييژش د‪ٙٞ‬ژژذ يژژب ثژ‪ ٝ‬آٖ ‪ٞ‬ژژب دػششػژژي ديژذا و‪ٙٙ‬ژژذ‪ .‬ايژژٗ وژبس ٔ‪ٙ‬ؼژژش ثژژ‪ٚ ٝ‬اوژ‪ٙ‬ؾ غيژژش ٔ‪ٙ‬شظژژش‪ٔ ٜ‬ژي ؿژژ‪ٛ‬د‪ .‬دس ٍ٘ژژبسؽ ‪1.0‬‬
‫‪ .NET Compact Framework‬ثش٘بٔ‪ ٝ‬دـز ػش ‪ ٓٞ‬لفُ ٔي ؿ‪ٛ‬د‪ .‬دس ٍ٘بسؽ ‪ 2.0‬يب ثبالسش ٘شيؼ‪ ٝ‬ا٘ذوي ث‪ٟ‬شش اػز‪ٍٙٞ .‬بٔي و‪ ٝ‬ثخ‪ٛ‬ا‪ٞ‬يژذ يژه‬
‫و‪ٙ‬ششَ ‪ٚ‬اػي وبسثش سا اص داخُ دشداصؽ ديٍشي ‪$‬غيش اص دشداصؿژي وژ‪ ٝ‬و‪ٙ‬شژشَ ٔژ‪ٛ‬سد ٘ظژش دس داخژُ آٖ ايؼژبد ؿژذ‪ ٜ‬اػژز‪ #‬سغييژش د‪ٞ‬يژذ خٌژبي‬
‫‪ NotSupportedException‬ايؼبد ٔي ٌشدد‪ .‬دس ؿىُ ‪ 6‬ؿٕب ايٗ ٔ‪ٛ‬سد سا دس ثش٘بٔ‪ ٝ‬ي لٌت ٕ٘بي اِىشش‪٘ٚ‬يىي ٔي ثي‪ٙ‬يذ‪.‬‬

‫ثشاي سفغ ايٗ ٔـىُ‪ ،‬ثبيذ خ‪ٛ‬دسبٖ سا ّٔضْ ث‪ ٝ‬سػبيز ايٗ لب٘‪ ٖٛ‬ثى‪ٙ‬يذ و‪« :ٝ‬فمي دشداصؿي ‪$‬يب ٔشذي‪ #‬و‪ ٝ‬و‪ٙ‬ششَ ‪ٚ‬اػي وبسثش سا ايؼبد ٔژي و‪ٙ‬ژذ ٔژي‬
‫س‪ٛ‬ا٘ذ آٖ سا سغييش د‪ٞ‬ذ» صٔب٘ي و‪ ٝ‬ثخ‪ٛ‬ا‪ٞ‬يذ يه و‪ٙ‬ششَ سا داخُ دشداصؽ فؼبَ سغييش د‪ٞ‬يذ ‪ٕٞ‬يـ‪ ٝ‬ثبيذ ٔشذ ‪ Control.Invoke‬سا فشاخژ‪ٛ‬ا٘ي و‪ٙ‬يژذ‪.‬‬
‫ايٗ ٔشذ يه ٕ٘بي‪ٙ‬ذ‪ ٜ‬ي ٔخل‪ٛ‬ف سا دس دشداصؿي و‪ ٝ‬ث‪ٍٟ٘ ٝ‬ذاس٘ذ‪ ٜ‬ي د‪ٙ‬ؼش‪ ٜ‬ي )‪ (window handle‬حب‪ٚ‬ي آٖ و‪ٙ‬ششَ دػششػژي داسد ‪ ٚ$‬دس ‪ٚ‬الژغ‬
‫آٖ سا ايؼبد وشد‪ ٜ‬اػز‪ ،#‬فشاخ‪ٛ‬ا٘ي ٔي و‪ٙ‬ذ‪ .‬حبَ ٔي س‪ٛ‬ا٘يذ ٔذيش س‪ٚ‬يذاد ‪ gps_LocationChanged‬سا سغييش د‪ٞ‬يذ‪ .‬ثذيٗ ٔ‪ٙ‬ظ‪ٛ‬س ٘خؼز ثبيذ يه‬
‫‪ٕ٘$ delegate‬بي‪ٙ‬ذ‪ #ٜ‬سؼشيف و‪ٙ‬يذ و‪ ٝ‬ثش‪ٛ‬ا٘ذ يه ٔشذ سا ث‪ ٝ‬ك‪ٛ‬سر آسٌ‪ٔٛ‬بٖ ث‪ٔ ٝ‬شذ ‪ Control.Invoke‬اسػبَ و‪ٙ‬ذ‪ .‬يه ‪ delegate‬يژه ٘ژ‪ٛ‬ع داد‪ٜ‬‬
‫ي ػبد‪ ٜ‬اػز و‪ ٝ‬يه ٘ـب٘‪$ ٝ‬اؿبس‪ٌ ٜ‬ش‪ #‬اص ٔشذ سا سؼشيف ٔي و‪ٙ‬ذ و‪ٔ ٝ‬ي س‪ٛ‬ا٘ذ س‪ٛ‬ػي ‪ٞ‬ش ٔشذ ثب اؿبس‪ٌ ٜ‬ش ػبصٌبس ثب آٖ ٔمذاس د‪ٞ‬ي ؿ‪ٛ‬د‪.‬‬

‫;)(‪private delegate void UpdateDelegate‬‬


‫)‪void gps_LocationChanged(object sender, LocationChangedEventArgs args‬‬
‫{‬
‫;‪GpsPosition pos = args.Position‬‬
‫;‪compass1.HeadingValid = pos.HeadingValid‬‬
‫)‪if (pos.HeadingValid‬‬
‫{‬
‫;‪compass1.Heading = pos.Heading‬‬
‫}‬
‫;‪compass1.SpeedValid = pos.SpeedValid‬‬
‫)‪if (pos.SpeedValid‬‬
‫{‬
‫;‪compass1.Speed = pos.Speed * 1.152‬‬
‫‪// convert knots to MPH before displaying‬‬
‫}‬
‫)‪if (pos.HeadingValid | pos.SpeedValid‬‬
‫{‬
‫)(‪compass1.Invoke((UpdateDelegate)delegate‬‬
‫{‬
‫;)(‪compass1.Invalidate‬‬
‫;)}‬
‫}‬
‫}‬
‫داخُ ٔذيش س‪ٚ‬يذاد ‪ٔ gps_LocationChanged‬ي ثي‪ٙ‬يذ و‪ compass1.Invalidate ٝ‬ث‪ًٛ ٝ‬س ٔؼشميٓ فشاخ‪ٛ‬ا٘ذ‪ٕ٘ ٜ‬ي ؿ‪ٛ‬د ثّى‪ ٝ‬اص داخُ ٔشژذ‬
‫ديٍشي ث‪٘ ٝ‬بْ ‪ compass1.Invoke‬فشاخ‪ٛ‬ا٘ي ٔي ؿ‪ٛ‬د‪ .‬اٌش ثب ثحض ٕ٘بي‪ٙ‬ذ‪ٞ ٜ‬بي ثي ٘ژبْ )‪ (anonymous delegates‬آؿژ‪ٙ‬ب ٘جبؿژيذ ايژٗ س‪ٚ‬ؽ‬
‫ثشاي سبٖ ٘ب ٔف‪ ْٟٛ‬خ‪ٛ‬ا‪ٞ‬ذ ث‪ٛ‬د‪ .‬دس ٔذيش س‪ٚ‬يذاد ‪ gps_LocationChanged‬ايٗ لبثّيژز ‪ C# 2.0‬ثژشاي فشاخژ‪ٛ‬ا٘ي ‪ compass1.Invalidate‬اص‬
‫داخُ ‪ compass1.Invoke‬اػشفبد‪ٔ ٜ‬ي ؿ‪ٛ‬د‪ .‬دس ػيٗ حبَ ايٗ أىبٖ ‪ٞ ٓٞ‬ؼز و‪ٔ ٝ‬شذ ػذاٌب٘‪ ٝ‬اي ثشاي فشاخژ‪ٛ‬ا٘ي ‪compass1.Invalidate‬‬
‫‪ ٚ‬فشاخ‪ٛ‬ا٘ي آٖ اص داخُ ‪ UpdateDelegate‬سؼشيف ؿ‪ٛ‬د‪ .‬چ‪ ٖٛ‬و‪ٙ‬ششَ ‪ Compass‬فمي اص يه ػب فشاخ‪ٛ‬ا٘ي ٔي ؿ‪ٛ‬د‪ ،‬اػشفبد‪ ٜ‬اص ٕ٘بي‪ٙ‬ژذ‪ ٜ‬ي ثژي‬
‫٘بْ ثبػض خ‪ٛ‬ا‪ٞ‬ذ ؿذ و‪ ٝ‬وذ٘‪ٛ‬يؼي و‪ٛ‬سب‪ ٜ‬سش ؿ‪ٛ‬د‪.‬‬

‫‪48‬‬
‫‪http://m0911.wordpress.com‬‬
‫ثب ايٗ سغييشار ٔي س‪ٛ‬ا٘يذ ثش٘بٔ‪ ٝ‬ي لٌت ٕ٘بي اِىشش‪٘ٚ‬يىي سا ثذ‪ ٖٚ‬خٌب اػشا ‪ ٚ‬اًالػبر ٔب‪ٛٞ‬اس‪ ٜ‬اي ‪ GPS‬سا اص ًشيك ‪ GPSID‬دسيبفز ٕ٘بييذ‪.‬‬

‫ؿىُ ‪ :26‬لٌت ٕ٘بي اِىشش‪٘ٚ‬يىي دس حبَ اػشا ‪ٕ٘ ٚ‬بيؾ داد‪ٞ ٜ‬بي ‪GPS‬‬

‫حبَ ايٗ ػؤاَ دس ر‪ ٗٞ‬سبٖ ‪ٞ‬ؼز و‪ ٝ‬ايٗ ٘شْ افضاس االٖ داخُ ؿجي‪ ٝ‬ػبص دػشٍب‪ ٜ‬اػشا ٔي ؿ‪ٛ‬د ‪ِٚ‬ي اًالػبر ٔب‪ٛٞ‬اس‪ ٜ‬اي ‪ GPS‬سا دسيبفز ٔي و‪ٙ‬ژذ‪.‬‬
‫دغ چٍ‪ ٝ٘ٛ‬وبس ٔي و‪ٙ‬ذ؟‬

‫آصٔبيؾ ثش٘بٔ‪ٞ ٝ‬بي حؼبع ث‪ٔ ٝ‬حُ ػغشافيبيي‬


‫اٌش ثش٘بٔ‪ ٝ‬اي ث‪ٛٙ‬يؼيذ و‪ ٝ‬اص ‪ GPS‬اػشفبد‪ٔ ٜ‬ي و‪ٙ‬ذ آصٔبيؾ آٖ ثش٘بٔ‪ ٓٞ ٝ‬داػشبٖ ديٍشي اػز‪ .‬اغّت ٌيش٘ذ‪ٞ ٜ‬ژبي ‪ GPS‬دس فوژبي ثؼژش‪ ٝ‬يؼ‪ٙ‬ژي‬
‫‪ٕٞ‬بٖ ػبيي و‪ ٝ‬ؿٕب اآلٖ ٘ـؼش‪ ٝ‬ايذ ‪ ٚ‬ثش٘بٔ‪ٔ ٝ‬ي ٘‪ٛ‬يؼيذ ػُٕ ٕ٘ي و‪ٙٙ‬ذ‪ .‬ث‪ ٝ‬ػال‪ ٜٚ‬اٌش ‪ ٓٞ‬وبس و‪ٙٙ‬ذ اًالػبر دسيژبفشي اص ٔژب‪ٛٞ‬اس‪ٔ ٜ‬شثژ‪ٛ‬ى ثژ‪ ٝ‬يژه‬
‫ٔحُ اػز ‪ ٚ‬ؿٕب ‪ٍٙٞ‬بْ س‪ٛ‬ػؼ‪ ٚ ٝ‬آصٔبيؾ ثش٘بٔ‪ٕ٘ ٝ‬ي س‪ٛ‬ا٘يذ حشوز و‪ٙ‬يذ سب اًالػبر ػذيذ سا دسيبفز ٕ٘بييذ‪ .‬ثشاي حُ ايٗ ٔـىُ‪ ،‬اثضاس س‪ٛ‬ػژؼ‪ ٝ‬ي‬
‫‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪ 6‬يه اثضاس ث‪٘ ٝ‬بْ ‪ FakeGPS‬داسد و‪ ٝ‬فبيُ ‪ٞ‬بي داد‪ ٜ‬ي ٔش‪ٙ‬ي حب‪ٚ‬ي اًالػبر ‪ GPS‬سا ثشاي ؿجي‪ ٝ‬ػژبصي وژبسوشد دػژشٍب‪GPS ٜ‬‬
‫اػشفبد‪ٔ ٜ‬ي ٕ٘بيذ‪ .‬ثش٘بٔ‪ٞ ٝ‬بيي و‪ ٝ‬اص ‪ GPSID‬اػشفبد‪ٔ ٜ‬ي و‪ٙٙ‬ذ ثذ‪٘ ٖٚ‬يبص ث‪ ٝ‬دػشىبسي ٔي س‪ٛ‬ا٘‪ٙ‬ژذ اص ثش٘بٔژ‪ ٝ‬ي ‪ FakeGPS‬ثژشاي ؿژجي‪ ٝ‬ػژبصي‬
‫حبِز ‪ٚ‬الؼي ػخز افضاس ‪ GPS‬اػشفبد‪ٕ٘ ٜ‬بي‪ٙ‬ذ‪ .‬اص آٖ ػب و‪ FakeGPS ٝ‬س‪ٚ‬ي ؿجي‪ ٝ‬ػبص دػشٍب‪ ٜ‬وبس ٔي و‪ٙ‬ذ ؿٕب ٔي س‪ٛ‬ا٘يذ ٘شْ افضاس ‪ٞ‬بي ديٍش سا‬
‫٘يض ثب اػشفبد‪ ٜ‬اص آٖ اػشا ‪ ٚ‬آصٔبيؾ و‪ٙ‬يذ‪.‬‬
‫ثشاي اػشفبد‪ ٜ‬اص ‪ FakeGPS‬وبفي اػز و‪ ٝ‬آٖ سا س‪ٚ‬ي دػشٍب‪ ٜ‬يب ؿجي‪ ٝ‬ػبص آٖ ٘لت ٕ٘بييذ‪ .‬ايٗ ثش٘بٔ‪ ٝ‬ث‪ ٝ‬ك‪ٛ‬سر يه فبيُ ‪ٔ CAB‬ي ثبؿذ‪ .‬ثژشاي‬
‫٘لت آٖ س‪ٚ‬ي ؿجي‪ ٝ‬ػبص دػشٍب‪ ٜ‬وبفي اػز و‪ ٝ‬د‪ٛ‬ؿ‪ ٝ‬ي حب‪ٚ‬ي فبيُ ‪ FakeGPS‬سا دس د‪ٙ‬ؼش‪ ٜ‬ي ‪ Emulator Properties‬ث‪ ٝ‬اؿششان ثٍزاسيذ سب‬
‫‪ٕٞ‬ب٘‪ٙ‬ذ وبسر حبفظ‪ ٝ‬ي ػب٘جي ػُٕ و‪ٙ‬ذ‪.‬‬

‫ؿىُ ‪ :27‬اؿششان د‪ٛ‬ؿ‪ ٝ‬ث‪ٍٙٞ ٝ‬بْ ٔىبٖ يبثي ؿجي‪ ٝ‬ػبصي ؿذ‪ ٜ‬ثب ‪FakeGPS‬‬

‫‪49‬‬
‫‪http://m0911.wordpress.com‬‬
‫داخُ ؿجي‪ ٝ‬ػبص دػشٍب‪ٔ ٜ‬ي س‪ٛ‬ا٘يذ ثب ‪ File Explorer‬ث‪ ٝ‬داخُ وبسر حبفظ‪ (Storage Card) ٝ‬ثش‪ٚ‬يذ و‪ ٝ‬ث‪ ٝ‬د‪ٛ‬ؿ‪ ٝ‬ي اؿششاوي اؿبس‪ٔ ٜ‬ي و‪ٙ‬ژذ‪.‬‬
‫فبيُ ‪ٔ CAB‬شث‪ٛ‬ى ث‪ FakeGPS ٝ‬سا ا٘شخبة ‪ ٚ‬اػشا و‪ٙ‬يذ سب ثش٘بٔ‪ ٝ‬اؽ دس ؿجي‪ ٝ‬ػبص ٘لت ٌشدد‪ .‬ثش٘بٔ‪ ٝ‬ي ‪ٕٞ FakeGPS‬ژشا‪ ٜ‬ثژب سؼژذادي فبيژُ‬
‫ٔش‪ٙ‬ي حب‪ٚ‬ي اًالػبر ‪٘ GPS‬لت خ‪ٛ‬ا‪ٞ‬ذ ؿذ‪ .‬ؿٕب ٔي س‪ٛ‬ا٘يذ فبيُ ‪ٞ‬بي ٔش‪ٙ‬ي خ‪ٛ‬دسبٖ سا –و‪ ٝ‬حب‪ٚ‬ي اًالػژبر ‪ٞ GPS‬ؼژش‪ٙ‬ذ‪ -‬ثژشاي حبِژز ‪ٞ‬ژبي‬
‫ٔخشّف سؼز ثش٘بٔ‪ ٝ‬سبٖ ث‪ ٝ‬ثش٘بٔ‪ ٝ‬اهبف‪ٕ٘ ٝ‬بييذ‪ .‬يه فبيُ ٔش‪ٙ‬ي ‪ٔ FakeGPS‬ي س‪ٛ‬ا٘ذ چيضي ؿجي‪ ٝ‬ث‪ ٝ‬ايٗ ثبؿذ‪:‬‬

‫‪$GPGLL,4738.0173,N,12211.1874,W,191934.767,A*21‬‬
‫‪$GPGSA,A,3,08,27,10,28,13,19,,,,,,,2.6,1.4,2.3*3E‬‬
‫‪$GPGSV,3,1,9,8,71,307,43,27,78,59,41,3,21,47,0,10,26,283,40*77‬‬
‫‪$GPGSV,3,2,9,29,13,317,0,28,37,226,37,13,32,155,36,19,37,79,42*42‬‬
‫‪$GPGSV,3,3,9,134,0,0,0*46‬‬
‫‪$GPRMC,191934.767,A,4738.0173,N,12211.1874,W,0.109623,12.14,291004,,*21‬‬
‫‪$GPGGA,191935.767,4738.0172,N,12211.1874,W,1,06,1.4,32.9,M,-17.2,M,0.0,0000*75‬‬
‫‪$GPGLL,4738.0172,N,12211.1874,W,191935.767,A*21‬‬
‫‪$GPGSA,A,3,08,27,10,28,13,19,,,,,,,2.6,1.4,2.3*3E‬‬
‫‪$GPRMC,191935.767,A,4738.0172,N,12211.1874,W,0.081611,15.81,291004,,*2A‬‬

‫ثشاي ؿش‪ٚ‬ع دسيبفز داد‪ٞ ٜ‬ب اص ‪ FakeGPS‬ثش٘بٔ‪ ٝ‬سا دس ؿجي‪ ٝ‬ػبص اػشا و‪ٙ‬يذ‪ ،‬ػذغ آٖ سا فؼبَ و‪ٙ‬يذ ‪ ٚ‬فبيُ داد‪ ٜ‬ي ‪ٛٔ GPS‬سد ٘ظش سبٖ سا ا٘شخبة‬
‫ٕ٘بييذ‪ .‬دس ٘‪ٟ‬بيز س‪ٚ‬ي دوٕ‪ ٝ‬ي ‪ Done‬وّيه و‪ٙ‬يذ سب اسػبَ داد‪ٞ ٜ‬ب ث‪ ٝ‬داخُ ‪ GPSID‬آغبص ٌشدد‪.‬‬

‫ؿىُ ‪ :9‬ا٘شخبة فبيُ داد‪ ٜ‬ي ‪ GPS‬داخُ ثش٘بٔ‪ ٝ‬ي ‪FakeGPS‬‬

‫ايٗ ‪ ٕٝٞ‬ي آٖ چيضي ث‪ٛ‬د و‪ ٝ‬ثشاي آصٔبيؾ ثش٘بٔ‪ٞ ٝ‬بي ٔجش‪ٙ‬ي ثش ‪ GPS‬ث‪ ٝ‬آٖ ٘يبص داؿشيذ‪ .‬حبَ س‪ٚ‬ي ؿجي‪ ٝ‬ػبص دػشٍب‪ ٓٞ ٚ ٜ‬س‪ٚ‬ي دػشٍب‪ ٜ‬فيضيىي‬
‫‪ٚ$‬الؼي‪ٚ #‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ٔي س‪ٛ‬ا٘يذ ثش٘بٔ‪ ٝ‬سبٖ سا آصٔبيؾ و‪ٙ‬يذ‪ .‬دغ اص ٘لت ‪ ٚ‬س‪ٙ‬ظيٓ ‪ٔ FakeGPS‬ي س‪ٛ‬ا٘يژذ ثش٘بٔژ‪ ٝ‬ي لٌژت ٕ٘ژبي اِىشش‪٘ٚ‬يىژي سا‬
‫اػشا و‪ٙ‬يذ‪.‬‬

‫‪50‬‬
www.SoftGozar.Com
http://m0911.wordpress.com

‫فصل پنجم‬

SQL Server CE ‫مقذمه اي تر‬

51
‫‪http://m0911.wordpress.com‬‬
‫ٔمذٔ‪ٝ‬‬

‫س‪ٛ‬ػؼ‪ ٝ‬ي ٘شْ افضاس ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ؿجب‪ٞ‬ز صيبدي ث‪ ٝ‬س‪ٛ‬ػؼ‪ ٝ‬ي ٘شْ افضاس دس دػىشبح داسد ث‪ٚ ٝ‬يظ‪ ٜ‬صٔب٘ي و‪ ٝ‬يىي اص د‪ ٚ‬صثبٖ ‪ٚ‬يظ‪ٚ‬اَ ثيؼيه يب ‪ٚ‬يژظ‪ٚ‬اَ‬
‫ػي ؿبسح دار ٘ز سا اػشفبد‪ٔ ٜ‬ي و‪ٙ‬يذ‪ .‬ؿٕب ‪ٕٞ‬بٖ اثضاس‪ٞ‬بي س‪ٛ‬ػؼ‪ ٝ‬ي ثش٘بٔ‪ٞ ٝ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص دػىشبح سا ثشاي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪ٞ‬ژٓ اػژشفبد‪ٔ ٜ‬ژي و‪ٙ‬يژذ‬
‫ِيىٗ سفب‪ٚ‬ر ‪ٞ‬بيي ٘يض ثيٗ ايٗ د‪ٔ ٚ‬حيي ‪ٞ‬ؼز‪ .‬ايٗ سفب‪ٚ‬ر ث‪ٍٙٞ ٝ‬بْ اػشفبد‪ ٜ‬اص ثب٘ه اًالػبسي ‪ٞ ٓٞ‬ؼز‪ .‬اغّت ثش٘بٔ‪ٞ ٝ‬ب اص ثب٘ه اًالػبسي اػژشفبد‪ٜ‬‬
‫ٔي و‪ٙٙ‬ذ‪ .‬ثشاي رخيش‪ ٜ‬ػبصي داد‪ ٜ‬دس دػشٍب‪ ٜ‬ؿٕب ث‪ ٝ‬ػ‪ٛٙ‬اٖ س‪ٛ‬ػؼ‪ ٝ‬د‪ٙٞ‬ذ‪ ٜ‬دػز سبٖ ثبص اػز و‪ ٝ‬اص چ‪ ٝ‬س‪ٚ‬ؿي اػشفبد‪ ٜ‬و‪ٙ‬يذ‪ .‬دس ايٗ ٔمبِژ‪ٌٔ ٝ‬ژبِجي‬
‫ساػغ ث‪ ٚ SQL Server 2005 Compact Edition ٝ‬س‪ٚ‬ؽ ‪ٞ‬بي ٔخشّف دػششػي ث‪ ٝ‬داد‪ٞ ٜ‬بي ٔحّي رخيش‪ ٜ‬ؿذ‪ ٜ‬س‪ٚ‬ي دػشٍب‪ ٜ‬خ‪ٛ‬ا‪ٞ‬يژذ ديژذ‪.‬‬
‫ٔب د‪ ٚ‬س‪ٚ‬ؽ ٔشفب‪ٚ‬ر دػششػي ث‪ ٝ‬داد‪ٞ ٜ‬ب سا اص ِحبٍ وبسآيي صٔبٖ الصْ ثشاي اػشا ‪ٔ ٚ‬يضاٖ وژذ ٘‪ٛ‬ؿژش‪ ٝ‬ؿژذ‪ٔ ٜ‬مبيؼژ‪ ٝ‬خژ‪ٛ‬ا‪ٞ‬يٓ وژشد‪ .‬دس ٔظژبَ ‪ٞ‬ژبي‬
‫وذ٘‪ٛ‬يؼي د‪ ٚ‬ػذ‪ Order_Details ٚ Orders َٚ‬اص ثب٘ه اًالػبسي ٕ٘‪ ٝ٘ٛ‬ي ‪ Northwind‬سا اػشفبد‪ ٜ‬وشد‪ ٜ‬ايٓ‪ٍ٘ .‬بسؽ ٔژ‪ٛ‬سد اػژشفبد‪ ٜ‬ي ثب٘ژه‬
‫اًالػبسي‪ٕٞ SQL Server 2005 Compact Edition 3.5 ،‬شا‪ ٜ‬ثب ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2008 ٛ‬اػز‪.‬‬

‫‪SQL Server Compact Edition‬‬


‫س‪ٛٙ‬ع ٘بْ ‪ٞ‬ب ‪ٍ٘ ٚ‬بسؽ ‪ٞ‬بي ‪ٞ SQL Server‬بيي و‪ ٝ‬س‪ٚ‬ي دػشٍب‪ٞ ٜ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ اػشا ٔي ؿ‪٘ٛ‬ذ‪ٕٔ ،‬ىٗ اػز ؿٕب سا ػش دس ٌٓ و‪ٙ‬ژذ‪ .‬دس صٔژبٖ‬
‫ٍ٘بسؽ ايٗ ٔمبِ‪ ٟٓٔ ٝ‬سشيٗ ٍ٘بسؽ ‪ٞ‬بي ‪ SQL Server 2005‬و‪ ٝ‬دس حبَ اػشفبد‪ ٜ‬ثش س‪ٚ‬ي دػشٍب‪ٞ ٜ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪ٞ‬ؼش‪ٙ‬ذ‪ ،‬ث‪ ٝ‬ؿشح صيش ا٘ذ‪:‬‬

‫‪ٕٞ :SQL Server Mobile 3.0‬شا‪ ٜ‬ثب ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ٙٔ SQL Server 2005 ٚ 2005 ٛ‬شـش ؿذ‪ .‬ايٗ ٍ٘ژبسؽ س‪ٚ‬ي وژبٔذي‪ٛ‬سش ‪ٞ‬ژبي‬ ‫‪‬‬
‫و‪ٛ‬چه ‪ #Tablet PC$‬اػشا ٔي ؿ‪ٛ‬د‪ .‬اص صٔب٘ي و‪ ٝ‬اثضاس‪ٞ‬بي س‪ٛ‬ػؼ‪ ٝ‬س‪ٚ‬ي وبٔذي‪ٛ‬سش ‪ٞ‬بي دػىشبح ٘لت ٔي ؿ‪٘ٛ‬ذ ايٗ ٍ٘بسؽ س‪ٚ‬ي ٔبؿژيٗ‬
‫‪ٞ‬بي خبكي اػشا ٔي ؿ‪ٛ‬د‪.‬‬
‫‪ :SQL Server 2005 Compact Edition 3.1‬دس ػبَ ‪ٙٔ 2006‬شـش ؿذ ‪ ٚ‬سب حذ صيژبدي ثژش دبيژ‪ ٝ‬ي ‪SQL Server Mobile‬‬ ‫‪‬‬
‫‪ 3.0‬ػبخش‪ ٝ‬ؿذ‪ ٜ‬اػز‪ .‬ايٗ ٍ٘بسؽ ‪ SQL Server CE‬س‪ٚ‬ي دػشٍب‪ٞ ٜ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪ ٚ‬دس ػيٗ حبَ س‪ٚ‬ي دػىشبح ‪ٞ‬ب ‪ِ ٚ‬خ سبح ‪ٞ‬ژب‬
‫‪ ٓٞ‬ثذ‪ٔ ٖٚ‬حذ‪ٚ‬ديز اػشا ٔي ٌشدد‪ SQL Server CE .‬ػبصٌبسي صيبدي ثب ‪ٚ‬يشايؾ ‪ٞ‬بي ٔخشّف ‪ SQL Server‬داسد ‪ ٚ‬أىب٘ژبر وبٔژُ‬
‫ثب٘ه اًالػبسي ساثٌ‪ ٝ‬اي سا دس ٔميبع و‪ٛ‬چه فشا‪ٔ ٓٞ‬ژي و‪ٙ‬ژذ‪ .‬ايژٗ ٍ٘ژبسؽ ‪ SQL Server CE‬س‪ٚ‬ي حبفظژ‪ ٝ‬ي اكژّي ساْ )‪(ROM‬‬
‫دػشٍب‪ٞ ٜ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪٘ 6‬لت ٔي ثبؿذ‪.‬‬
‫‪ :SQL Server 2005 Compact Edition 3.5 SP1‬دس ػبَ ‪ 2007‬ث‪ ٝ‬ك‪ٛ‬سر داّ٘‪ٛ‬د ٔؼشمُ ٔ‪ٙ‬شـش ؿژذ ‪ ٚ‬دس ػژيٗ حژبَ داخژُ‬ ‫‪‬‬
‫‪ٚ‬يژژژظ‪ٚ‬اَ اػژژژش‪ٛ‬دي‪٘ 2008 ٛ‬يژژژض ٔ‪ٛ‬ػژژژ‪ٛ‬د اػژژژز‪ .‬ثژژژش ٔج‪ٙ‬ژژژبي س‪ٛ‬ػژژژؼ‪ ٝ‬ي ‪ SQL Server CE 3.1‬س‪ِٛ‬يژژژذ ؿژژژذ‪ ٜ‬اػژژژز‪.‬‬
‫ايٗ ٍ٘بسؽ ‪ SQL Server CE‬أىبٖ ‪ٕٞ‬ؼبٖ ػبصي ثب ػش‪ٚ‬س ‪ٞ‬بي ٔيىش‪ٚ‬ػبفز سا اص ًشيك ػژش‪ٚ‬يغ ‪Microsoft Syncronization‬‬
‫ثشاي ‪ ADO.NET‬فشا‪ٔ ٓٞ‬ي ػبصد‪.‬‬

‫صيش ػبخز ‪SQL Server 2005 Compact Edition‬‬


‫‪ SQL Server CE‬يه ثب٘ه اًالػبسي ػجه اػز ‪ ٚ‬ثش خالف ٍ٘بسؽ ‪ٞ‬بي ديٍش ‪ ،SQL Server‬ث‪ ٝ‬ك‪ٛ‬سر يه دشداصؽ ‪ٕٞ‬شا‪ ٜ‬ثب ثش٘بٔ‪ ٝ‬اي و‪ٝ‬‬
‫اص آٖ اػشفبد‪ٔ ٜ‬ي و‪ٙ‬ذ‪ ،‬اػشا ٔي ؿ‪ٛ‬د‪ .‬ايٗ ثذاٖ ٔؼ‪ٙ‬ي اػز و‪ SQL Server CE ٝ‬ث‪ ٝ‬ك‪ٛ‬سر يه ػش‪ٚ‬س ٔؼضا ديبد‪ ٜ‬ػبصي ٘ـذ‪ ٜ‬اػز‪ .‬ثب٘ه‬
‫اًالػبسي آٖ دس يه فبيُ ٔ‪ٙ‬فشد ثب دؼ‪٘ٛ‬ذ ‪ sdf‬رخيش‪ٔ ٜ‬ي ؿ‪ٛ‬د ‪ٕٞ ٚ‬چ‪ٙ‬يٗ أىبٖ ‪ٕٞ‬ؼبٖ ػبصي ٔحش‪ٛ‬يبر آٖ ثيٗ يه وبٔذي‪ٛ‬سش دػىشبح ‪ ٚ‬دػشٍب‪ٜ‬‬
‫‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ اص ًشيك ثش٘بٔ‪ ٝ‬ي اوشي‪ ٛ‬ػي‪ٙ‬ه )‪ (ActiveSync‬دس ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ايىغ دي يب ثش٘بٔ‪ ٝ‬ي‬
‫‪ (Windows Mobile Device Center) WMDC‬دس ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ‪ٚ‬يؼشب يب ػ‪ٚ ٖٛ‬ػ‪ٛ‬د داسد‪ .‬أىب٘بر ديـشفش‪ ٝ‬سش ‪ٕٞ‬ؼبٖ ػبصي س‪ٛ‬ػي ‪RDA‬‬
‫دس دػششع اػز‪ٕٞ .‬چ‪ٙ‬يٗ ادغبْ‪ ،‬وذي وشدٖ ‪ ٚ‬ػش‪ٚ‬يغ ‪ٕٞ‬ؼبٖ ػبصي ‪ ADO.NET‬ثشاي ‪ٕٞ‬ؼبٖ ػبصي ثيٗ ػش‪ٚ‬س ‪ ٚ‬چ‪ٙ‬ذ دػشٍب‪ ٚ ٜ‬حشي‬
‫دـشيجب٘ي اص ػيؼشٓ سـخيق سذاخُ دس ٔ‪ٛ‬اسدي و‪ ٝ‬داد‪ٞ ٜ‬ب س‪ٛ‬ػي چ‪ٙ‬ذ وبسثش ث‪ ٝ‬ك‪ٛ‬سر ‪ ٓٞ‬صٔبٖ دس حبَ ث‪ ٝ‬س‪ٚ‬ص سػب٘ي ‪ٞ‬ؼش‪ٙ‬ذ‪ ،‬اص ػّٕ‪ ٝ‬أىب٘بر‬
‫‪ SQL Server CE‬اػز‪ .‬ايٗ ٍ٘بسؽ اص ‪ SQL Server‬داساي ػٌ‪ٛ‬ح ٔخشّف أ‪ٙ‬يشي اػز ‪ٕٞ ٚ‬ب٘‪ٙ‬ذ ثمي‪ ،ٝ‬ثب٘ه ‪ٞ‬بي اًالػبسي ٔي س‪ٛ‬ا٘‪ٙ‬ذ ثب وّٕ‪ٝ‬‬

‫‪52‬‬
‫‪http://m0911.wordpress.com‬‬
‫ي سٔض ٔحبفظز ؿذ‪ ،ٜ‬دا د‪ٞ ٜ‬بي داخُ آ٘‪ٟ‬ب ٘يض سٔض ٍ٘بسي ؿ‪٘ٛ‬ذ‪ .‬ايٗ ٔ‪ٛ‬ه‪ٛ‬ع ث‪ ٝ‬خل‪ٛ‬ف ثشاي دػشٍب‪ٞ ٜ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ و‪ ٝ‬دس ٔؼشم ٌٓ ؿذٖ‬
‫يب ػشلز ‪ٞ‬ؼش‪ٙ‬ذ‪ ٟٓٔ ،‬اػز‪ .‬ث‪ٚ ٝ‬يظ‪ ٜ‬صٔب٘ي و‪ ٝ‬ثب٘ه اًالػبسي س‪ٚ‬ي وبسر حبفظ‪ ٝ‬رخيش‪ٔ ٜ‬ي ؿ‪ٛ‬د ‪ ٚ‬وبسر حبفظ‪ ٝ‬ثيـشش دس ٔؼشم ػشلز اػز‪.‬‬

‫ايٗ ٔمبِ‪ ٝ‬س‪ٚ‬ي سشويت ‪ ٚ SQL Server 2005 Compact Edition 3.5‬يه ٘شْ افضاس ٔذيشيز ؿذ‪ ٜ‬ثحض ٔي و‪ٙ‬ذ‪ .‬ؿٕب چ‪ٙ‬ذ س‪ٚ‬ؽ ٔخشّف‬
‫دسع‪ ،‬سغييش ‪ ٚ‬ثبصيبثي داد‪ٞ ٜ‬ب سا اص داخُ يه ثش٘بٔ‪ ٝ‬ي ٔذيشيز ؿذ‪– ٜ‬و‪ٞ ٝ‬ش وذاْ ٔ‪ٛ‬افك ‪ٔ ٚ‬خبِف خ‪ٛ‬د سا داسد – خ‪ٛ‬ا‪ٞ‬يذ ديذ‪.‬‬

‫ثشاي ٔمبيؼ‪ ٝ‬ي س‪ٚ‬ؽ ‪ٞ‬ب ثب يىذيٍش ٔب اص ثب٘ه اًالػبسي ‪ Northwind‬ػذ‪ٞ َٚ‬بي ‪ Order Detail ٚ Orders‬سا ا٘شخبة وشد‪ ٜ‬ايٓ‪ .‬ثشاي اػشفبد‪ٜ‬‬
‫اص ايٗ ثب٘ه اًالػبسي ‪ -‬و‪ ٝ‬دس ٔؼيش ‪ٕٞ C:\Program Files\Microsoft SQL Server Compact Edition\v3.5\Samples‬بٖ ٔؼيش‬
‫ديؾ فشم ٘لت ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2008 ٛ‬لشاس داسد‪ -‬الصْ اػز و‪ٚ ٝ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2008 ٛ‬سا ثب ٔؼ‪ٛ‬ص ٔذيش ػيؼشٓ‬
‫)‪ (administrator elevations‬دس ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ‪ٚ‬يؼشب يب ػ‪ ٖٛ‬اػشا ٕ٘بييذ‪ .‬دس غيش ايٗ ك‪ٛ‬سر أىبٖ اسلبَ ‪ ٚ‬دػششػي ث‪ ٝ‬ثب٘ه اًالػبسي سا ٘خ‪ٛ‬ا‪ٞ‬يذ‬
‫داؿز‪.‬‬

‫اػشفبد‪ ٜ‬اص ديشبػز ‪ٞ‬بي داساي ٘‪ٛ‬ع‬


‫اػشفبد‪ ٜ‬اص ديشبػز ‪ٞ‬بي داساي ٘‪ٛ‬ع‪ ،‬يه س‪ٚ‬ؽ آػبٖ ثشاي دػششػي ث‪ ٝ‬ثب٘ه اًالػبسي ‪ SQL Server CE‬اػز‪ٔ .‬مژذاس صيژبدي اص وژذ ثژ‪ ٝ‬كژ‪ٛ‬سر‬
‫خ‪ٛ‬دوبس س‪ِٛ‬يذ ٔي ؿ‪ٛ‬د‪ِ .‬يىٗ ديشبػز دس ‪ٚ‬الغ يه وذي اص داد‪ٞ ٜ‬ب دس حبفظ‪ ٝ‬ي اكّي اػز و‪ ٝ‬اص ٔ‪ٙ‬جغ داد‪ٔ ٜ‬ب٘‪ٙ‬ژذ ‪ SQL Server CE‬اػژشخشاع‬
‫ؿذ‪ ٜ‬اػز‪ .‬ث‪ ٝ‬ػجبسر ديٍش ديشبػز يه وذي فيضيىي اص داد‪ٞ ٜ‬بيي اػز و‪ ٝ‬ؿٕب ثب آٖ ‪ٞ‬ب وبس ٔي و‪ٙ‬يذ‪ .‬ايٗ ثذاٖ ٔؼ‪ٙ‬ي اػز و‪ ٝ‬صٔبٖ الصْ اػز سژب‬
‫داد‪ٞ ٜ‬ب اص ثب٘ه اًالػبسي دس ديشبػز ثبسٌزاسي ؿ‪٘ٛ‬ذ ‪ ٚ‬سغييشار ك‪ٛ‬سر ٌشفش‪ ٝ‬س‪ٚ‬ي داد‪ٞ ٜ‬ب‪ ،‬ث‪ًٛ ٝ‬س خ‪ٛ‬دوبس س‪ٚ‬ي ثب٘ه اًالػبسي اػٕبَ ٕ٘ژي ؿژ‪٘ٛ‬ذ‪.‬‬
‫ث‪ٍٙٞ ٝ‬بْ ٔمذاسد‪ٞ‬ي ا‪ِٚ‬ي‪ ٝ‬ي ديشبػز‪ ،‬اص آٖ ػب و‪ ٝ‬ؿٕب س‪ٚ‬ي وذي داد‪ٞ ٜ‬ب دس حبفظ‪ ٝ‬ي اكّي وبس ٔي و‪ٙ‬يذ‪ ،‬وبس ثب داد‪ٞ ٜ‬ب ثؼيبس ػژشيغ ا٘ؼژبْ ٔژي‬
‫ؿ‪ٛ‬د‪ .‬ثشاي وبس ثب ثب٘ه ‪ٞ‬بي اًالػبسي حؼيٓ ٕٔىٗ اػز ثب ٔـىُ وٕج‪ٛ‬د حبفظ‪ ٝ‬ي اكّي ٔ‪ٛ‬اػ‪ ٝ‬ؿ‪ٛ‬يذ‪.‬‬

‫‪53‬‬
http://m0911.wordpress.com

ٜ‫ع داد‬ٛ٘ ‫بي ثب‬ٞ (DataSet) ‫ ديشبػز‬:28 ُ‫ؿى‬

54
‫‪http://m0911.wordpress.com‬‬
‫دس ؿىُ ‪ٚ 1‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2008 ٛ‬سا ٔي ثي‪ٙ‬يذ و‪ ٝ‬يه دش‪ٚ‬ط‪ ٜ‬اص ٘‪ٛ‬ع ‪ٕٞ Smart Device‬شا‪ ٜ‬ثب يژه ٔ‪ٙ‬جژغ داد‪ (Data Source) ٜ‬وژ‪ ٝ‬ثژ‪ ٝ‬ثب٘ژه‬
‫اًالػبسي ‪ٔ Northwind‬شلُ اػز‪ .‬داخُ ‪ Data Source Wizard‬د‪ ٚ‬ػذ‪ Order Detail ٚ Orders َٚ‬ا٘شخبة ؿذ‪ ٜ‬ا٘ذ و‪ ٝ‬ث‪ٙٔ ٝ‬جژغ داد‪ٜ‬‬
‫ي داساي ٘‪ٛ‬ع ٔشلُ ‪ٞ‬ؼش‪ٙ‬ذ‪ٕٞ .‬بٖ ً‪ٛ‬س و‪ ٝ‬دس د‪ٙ‬ؼش‪ ٜ‬ي ‪ٔ Data Sources‬ي ثي‪ٙ‬يذ‪ ،‬ساثٌ‪ ٝ‬ي ثيٗ ‪ Order Detail ٚ Orders‬ثژ‪ً ٝ‬ژ‪ٛ‬س خ‪ٛ‬دوژبس‬
‫ثشاي ؿٕب ايؼبد ؿذ‪ ٜ‬اػز‪ .‬اٌش ٔي خ‪ٛ‬ا‪ٞ‬يذ ٕ٘بيؾ د‪ ٚ‬ػذ‪ٔ َٚ‬شلُ )‪ (master-detail‬سا دس ‪ٚ‬اػي وبسثش داؿش‪ ٝ‬ثبؿيذ‪ ،‬ثبيذ و‪ٙ‬ششَ ‪ٞ‬بي ٔ‪ٛ‬سد ٘ظش‬
‫سبٖ سا اص د‪ٙ‬ؼش‪ ٜ‬ي ‪ Data Sources‬س‪ٚ‬ي فشْ ثىـيذ‪ .‬ثشاي ٍ٘‪ٟ‬ذاسي خ‪ٛ‬دوبس ساثٌ‪ ٝ‬ي ثژيٗ ػژذ‪ٞ َٚ‬ژب الصْ اػژز وژ‪ ٝ‬اًالػژبر ػژذ‪Order َٚ‬‬
‫‪ Detail‬سا ‪ٕٞ‬شا‪ ٜ‬ثب ػذ‪ Orders َٚ‬ا٘شخبة ٕ٘بييٓ‪.‬‬

‫ؿىُ ‪ :29‬فشْ ‪ٞ‬بي س‪ِٛ‬يذ ؿذ‪ ٜ‬ي خ‪ٛ‬دوبس دس ٔحيي ًشاحي ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ٛ‬‬

‫دس ؿىُ ‪ 2‬فشْ ‪ٞ‬بيي سا و‪ ٝ‬ث‪ًٛ ٝ‬س خ‪ٛ‬دوبس ايؼبد ؿذ‪ ٜ‬ا٘ذ ٔي ثي‪ٙ‬يذ‪ .‬ثذ‪٘ ٖٚ‬يبص ث‪ ٝ‬وذ٘‪ٛ‬يؼي ٔي س‪ٛ‬ا٘يذ اًالػبر ثب٘ه اًالػبسي ‪ Northwind‬سا‬
‫ثجي‪ٙ‬يذ‪ .‬س‪ٟٙ‬ب وبسي و‪ ٝ‬ا٘ؼبْ ؿذ‪ ٜ‬اػز‪ ،‬وذي داد‪ٞ ٜ‬ب داخُ ديشبػز دس حبفظ‪ ٝ‬ي اكّي اػز‪ .‬حبَ ٘يبص داسيذ ٌٕٔئٗ ؿ‪ٛ‬يذ و‪ ٝ‬سغييشار دس ثب٘ه‬
‫اًالػبسي ث‪ًٛ ٝ‬س دائٕي رخيش‪ ٜ‬ؿ‪٘ٛ‬ذ‪ .‬وذي و‪ ٝ‬س‪ٛ‬ػي ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2008 ٛ‬س‪ِٛ‬يذ ؿذ‪ ٜ‬اػز فمي ٔي س‪ٛ‬ا٘ذ داد‪ٞ ٜ‬ب سا دس ‪٘ MainForm‬ـبٖ‬
‫د‪ٞ‬ذ‪$ .‬وذ ‪ # 1‬وذ ‪ٞ‬بي ديٍشي ‪ ٓٞ‬ػ‪ٟ‬ز ٕ٘بيؾ اًالػبر خالك‪ ٚ ٝ‬د‪ٙ‬ؼش‪ ٜ‬ي ٔىبِٕ‪ ٝ‬ي ‪ٚ‬يشايؾ داد‪ٞ ٜ‬ب س‪ٛ‬ػي ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ ٛ‬س‪ِٛ‬يذ ؿذ‪ ٜ‬اػز‪.‬‬
‫ديؾ اص ٔمذاس د‪ٞ‬ي و‪ٙ‬ششَ ‪ٞ‬بي ‪ٚ‬اػي وبسثش س‪ٛ‬ػي داد‪ٞ ٜ‬بي ديشبػز احشٕبال ثبيذ سؿش‪ ٝ‬ي اسلبَ )‪ (connection string‬سا ثشاي ‪ٚ‬كُ ؿذٖ ث‪ٝ‬‬
‫ثب٘ه اًالػبسي ‪ SQL Server CE‬سغييش د‪ٞ‬يذ‪ .‬ث‪ٚ ٝ‬يظ‪ ٜ‬ثشاي ثب٘ه اًالػبسي ٔحبفظز ؿذ‪ ٜ‬س‪ٛ‬ػي ٌزس‪ٚ‬اط‪ ،ٜ‬اٌش افؼبس ثش٘بٔ‪ ٝ‬سا ث‪ ٝ‬دػز ‪ٚ‬يظ‪ٚ‬اَ‬
‫اػش‪ٛ‬دي‪ ٛ‬ثذ‪ٞ‬يذ‪ ،‬سؿش‪ ٝ‬ي اسلبَ حب‪ٚ‬ي ٌزس‪ٚ‬اط‪ ٜ‬خ‪ٛ‬ا‪ٞ‬ذ ث‪ٛ‬د و‪ ٝ‬ايٗ خ‪ٛ‬د يه ايشاد أ‪ٙ‬يشي اػز‪.‬‬

‫‪public partial class MainForm : Form‬‬


‫{‬
‫)(‪public MainForm‬‬
‫{‬
‫;)(‪InitializeComponent‬‬
‫}‬
‫)‪private void MainForm_Load(object sender, EventArgs e‬‬
‫{‬
‫))(‪if (NorthwindDataSetUtil.DesignerUtil.IsRunTime‬‬
‫{‬
‫;)‪this.order_DetailsTableAdapter.Fill(this.northwindDataSet.Order_Details‬‬
‫}‬
‫))(‪if (NorthwindDataSetUtil.DesignerUtil.IsRunTime‬‬

‫‪55‬‬
‫‪http://m0911.wordpress.com‬‬
‫{‬
‫;)‪this.ordersTableAdapter.Fill(this.northwindDataSet.Orders‬‬
‫}‬
‫}‬
‫)‪private void newMenuItemMenuItem_Click(object sender, EventArgs e‬‬
‫{‬
‫;)(‪ordersBindingSource.AddNew‬‬
‫= ‪SqlCE35WithDataSets.OrdersEditViewDialog ordersEditViewDialog‬‬

‫;)‪SqlCE35WithDataSets.OrdersEditViewDialog.Instance(this.ordersBindingSource‬‬
‫;)(‪ordersEditViewDialog.ShowDialog‬‬
‫}‬
‫)‪private void ordersDataGrid_Click(object sender, EventArgs e‬‬
‫{‬
‫= ‪SqlCE35WithDataSets.OrdersSummaryViewDialog ordersSummaryViewDialog‬‬

‫;)‪SqlCE35WithDataSets.OrdersSummaryViewDialog.Instance(this.ordersBindingSource‬‬
‫;)(‪ordersSummaryViewDialog.ShowDialog‬‬
‫}‬
‫}‬
‫وذ ‪ : 1‬وذ س‪ِٛ‬يذ ؿذ‪ ٜ‬ي خ‪ٛ‬دوبس ثشاي ٔمذاس د‪ٞ‬ي ا‪ِٚ‬ي‪ ٝ‬ي و‪ٙ‬ششَ ‪ٞ‬بي ‪ٚ‬اػي وبسثش س‪ٛ‬ػي داد‪ٞ ٜ‬بي ديشبػز‬

‫دس ٔذيش س‪ٚ‬يذاد ‪ MainForm_Load‬داد‪ٞ ٜ‬ب اص ثب٘ه اًالػبسي ‪ Northwind‬ث‪ ٝ‬ديشبػز ‪ -‬و‪ ٝ‬داد‪ٞ ٜ‬ب سا س‪ٛ‬ػي اسلبَ داد‪(data binding) ٜ‬‬
‫ثشاي وبسثش ٘ـبٖ ٔي د‪ٞ‬ذ‪ -‬وذي ٔي ؿ‪٘ٛ‬ذ ‪ .‬وذ اهبف‪ ٓٞ ٝ‬ثشاي ٕ٘بيؾ ػضئيبر ‪ ٚ‬افضد‪ ٖٚ‬ػفبسؽ ‪$‬سو‪ٛ‬سد‪ #‬ػذيذ ٘‪ٛ‬ؿش‪ ٝ‬ؿذ‪ ٜ‬اػز‪ .‬ثشاي ثشسػي‬
‫وبسآيي ايٗ س‪ٚ‬ؽ دس ثبصيبثي داد‪ٞ ٜ‬ب اص ثب٘ه اًالػبسي ٔي س‪ٛ‬ا٘يذ دس اثشذاي ٔذيش س‪ٚ‬يذاد ‪ MainForm_Load‬صٔبٖ سا ثب اػشفبد‪ ٜ‬اص ؿيء وش٘‪ٔٛ‬شش‬
‫)‪ (Stopwatch‬طجز و‪ٙ‬يذ ‪ ٚ‬دس دػش‪ٛ‬س دبيب٘ي س‪ٚ‬يذاد ٔزو‪ٛ‬س ٘يض وش٘‪ٔٛ‬شش سا ٔش‪ٛ‬لف ‪ ٚ‬صٔبٖ سا د‪ٚ‬ثبس‪ ٜ‬طجز و‪ٙ‬يذ‪ .‬حبَ ٔي س‪ٛ‬ا٘يذ صٔبٖ كشف ؿذ‪ٜ‬‬
‫ثشاي ثبصيبثي داد‪ٞ ٜ‬ب سا دس ٘‪ٛ‬اس ‪ٚ‬هؼيز )‪ٕ٘ (status bar‬بيؾ د‪ٞ‬يذ‪ .‬ث‪ ٝ‬س‪ٚ‬ؽ ٔـبث‪ٔ ٝ‬ي س‪ٛ‬ا٘يذ صٔبٖ الصْ ثشاي ٕ٘بيؾ ػضئيبر سا ٘يض ث‪ٍٙٞ ٝ‬بْ‬
‫ح شوز ثيٗ سو‪ٛ‬سد ‪ٞ‬ب ٔحبػج‪ ٝ‬و‪ٙ‬يذ‪ .‬ثذيٗ ٔ‪ٙ‬ظ‪ٛ‬س صٔبٖ سا ث‪ٍٙٞ ٝ‬بْ فـبس دادٖ وّيذ ٔشث‪ٛ‬ى ث‪ ٝ‬حشوز ثيٗ سو‪ٛ‬سد ‪ٞ‬ب س‪ٛ‬ػي وبسثش‪ ،‬طجز وشد‪ ،ٜ‬ث‪ٝ‬‬
‫ٔحن ٘خؼشيٗ سغييش ٔمذاس ػؼج‪ٔ ٝ‬شٗ دس ‪ MainForm‬د‪ٚ‬ثبس‪ ٜ‬صٔبٖ سا طجز ‪ ٚ‬فبكّ‪ ٝ‬ي صٔب٘ي سا ٔحبػج‪ٕ٘ ٝ‬بييذ‪ .‬ؿىُ ‪ 3‬ايٗ صٔبٖ ‪ٞ‬ب سا ث‪ٍٙٞ ٝ‬بْ‬
‫اػفب د‪ ٜ‬اص ديشب ػز داساي ٘‪ٛ‬ع داد‪ ، ٜ‬ث‪ ٝ‬ؿٕب ٘ـبٖ ٔي د‪ٞ‬ذ‪ٕٞ .‬بٖ ً‪ٛ‬س و‪ٔ ٝ‬ي ثي‪ٙ‬يذ صٔبٖ الصْ اص آغبص اػشاي ثش٘بٔ‪ ٝ‬سب ٕ٘بيؾ داد‪ٞ ٜ‬ب س‪ٚ‬ي فشْ‬
‫اكّي دس ؿجي‪ ٝ‬ػبص ‪ 13‬طب٘ي‪ ٝ‬ث‪ٛ‬د‪ ٜ‬اػز‪ .‬حشوز ثيٗ سو‪ٛ‬سد ‪ٞ‬ب ‪ ٚ‬ث‪ٚ ٝ‬يظ‪ٚ ٜ‬يشايؾ اًالػبر ٔشث‪ٛ‬ى ث‪ ٝ‬ػضئيبر ػفبسؽ ث‪ًٛ ٝ‬س ٔيبٍ٘يٗ ‪ٔ 300‬يّي‬
‫طب٘ ي‪ ٝ‬صٔبٖ ثشد‪ ٜ‬اػز‪ .‬دس ػيٗ حبَ ؿٕب ٔي ثي‪ٙ‬يذ و‪ ٝ‬حشوز اص سو‪ٛ‬سد ا‪ َٚ‬ث‪ ٝ‬سو‪ٛ‬سد آخش ث‪ٕٞ ٝ‬بٖ ٔيضاٖ حشوز اص يه سو‪ٛ‬سد ث‪ ٝ‬سو‪ٛ‬سد ثؼذي اؽ‬
‫صٔبٖ ثشد‪ ٜ‬اػز ‪ ٚ‬ايٗ دس ‪ٚ‬الغ ٘ـبٖ ٔي د‪ٞ‬ذ و‪ ٝ‬ديشبػز وبٔال دس حبفظ‪ ٝ‬ي اكّي وبس ٔي و‪ٙ‬ذ‪ .‬ا٘ذاص‪ٌ ٜ‬يشي صٔبٖ حشوز اص سو‪ٛ‬سد ا‪ َٚ‬ث‪ ٝ‬آخش دس‬
‫وذ ‪٘ 2‬ـبٖ داد‪ ٜ‬ؿذ‪ ٜ‬اػز‪.‬‬

‫)‪private void menuGotoLast_Click(object sender, EventArgs e‬‬


‫{‬
‫;)(‪ordersBindingSource.MoveFirst‬‬
‫;)(‪sw.Reset‬‬
‫;)(‪sw.Start‬‬
‫;)(‪ordersBindingSource.MoveLast‬‬
‫;)(‪sw.Stop‬‬
‫‪statusBar1.Text = "Goto last row: " +‬‬
‫;"‪sw.ElapsedMilliseconds + " msec.‬‬
‫}‬
‫وذ ‪ : 2‬ا٘ذاص‪ٌ ٜ‬يشي صٔبٖ الصْ ثشاي حشوز اص سو‪ٛ‬سد ا‪ َٚ‬ث‪ ٝ‬آخش‬

‫‪56‬‬
‫‪http://m0911.wordpress.com‬‬

‫ؿىُ ‪ :30‬صٔبٖ الصْ ثشاي ثبسٌضاسي ‪ٕ٘ ٚ‬بيؾ داد‪ٞ ٜ‬ب ‪ ٚ‬ػب ث‪ ٝ‬ػبيي ثيٗ سو‪ٛ‬سد ‪ٞ‬ب‬

‫اص آٖ ػب و‪ ٝ‬ديشبػز ‪ ٕٝٞ‬ي داد‪ٞ ٜ‬ب سا دس حبفظ‪ ٝ‬ي اكّي ٍ٘‪ٔ ٝ‬ي داسد دس صٔبٖ ‪ٞ‬بي ٔـخلي الصْ اػز و‪ ٝ‬سغييشار سا دس ثب٘ه اًالػبسي طجز‬
‫لٌؼي )‪ (commit‬و‪ٙ‬يذ ‪ ٚ‬صٔبٖ آٖ ثؼش‪ ٝ‬ث‪٘ ٝ‬ظش خ‪ٛ‬د سبٖ داسد‪ .‬يه س‪ٚ‬ؽ ايٗ اػز و‪ ٝ‬سب ػبيي و‪ٕٔ ٝ‬ىٗ اػز س‪ٚ‬ي ديشبػز وبس و‪ٙ‬يذ ‪ ٚ‬صٔب٘ي‬
‫و‪ ٝ‬وبسثش ٔي خ‪ٛ‬ا‪ٞ‬ذ ثش٘بٔ‪ ٝ‬سا ثج‪ٙ‬ذد سغييشار سا س‪ٚ‬ي ثب٘ه اًالػبسي طجز لٌؼي ٕ٘بييذ‪ .‬اِجش‪ ٝ‬اٌش لشاس اػز داد‪ٞ ٜ‬ب سا ثب يه ػش‪ٚ‬س اكّي ‪ٕٞ‬ؼبٖ‬
‫ػبصي و‪ٙ‬يذ‪ ،‬ث‪ٟ‬شش اػز و‪ ٝ‬ديؾ اص ‪ٕٞ‬ؼبٖ ػبصي ثب آٖ‪ ،‬داد‪ٞ ٜ‬ب سا طجز لٌؼي ٕ٘بييذ‪ .‬ث‪ٞ ٝ‬ش حبَ اٌش ‪ ٕٝٞ‬ي داد‪ٞ ٜ‬ب دس ديشبػز ‪$‬حبفظ‪ ٝ‬ي سْ‪#‬‬
‫ثٕب٘‪ٙ‬ذ ث‪ٍٙٞ ٝ‬بْ اص وبس افشبدٖ ثش٘بٔ‪ ،ٝ‬داد‪ٞ ٜ‬بي ؿٕب اص ثيٗ خ‪ٛ‬ا‪ٙٞ‬ذ سفز‪ .‬دس يه ثش٘بٔ‪ ٝ‬ي ٔؼٕ‪ِٛ‬ي ٕٔىٗ اػز ؿٕب دس صٔبٖ ‪ٞ‬بي خبكي اص ػّٕ‪ٝ‬‬
‫ثؼش‪ ٝ‬ؿذٖ ثش٘بٔ‪ٕٞ ،ٝ‬ؼبٖ ػبصي ثب ػش‪ٚ‬س خبسػي ‪ ٚ‬صٔب٘ي و‪ ٝ‬ثش٘ب‪ ٜ‬دس دغ صٔي‪ ٝٙ‬لشاس ٔي ٌيشد‪ ،‬داد‪ٞ ٜ‬ب سا طجز لٌؼي ٕ٘بييذ‪ .‬دس ػيٗ حبَ ٕٔٗ‬
‫اػز ثخ‪ٛ‬ا‪ٞ‬يذ داد‪ٞ ٜ‬ب سا ث‪ٔ ٝ‬حن ايؼبد سو‪ٛ‬سد ػذيذ ٘يض طجز لٌؼي و‪ٙ‬يذ و‪ ٝ‬دس ايٗ حبِز‪ ،‬ديشبػز سمشيجب ث‪ ٝ‬ك‪ٛ‬سر يه وذي سىشاسي ثي ٔلشف‬
‫اص داد‪ٞ ٜ‬ب خ‪ٛ‬ا‪ٞ‬ذ ث‪ٛ‬د‪ .‬وذ ‪٘ 3‬ح‪ ٜٛ‬ي طجز لٌؼي سا ث‪ ٝ‬ؿٕب ٘ـبٖ ٔي د‪ٞ‬ذ‪ .‬دس ايٗ ٔظبَ دس ٔذيش س‪ٚ‬يذاد ‪$ Closing‬يؼشٗ ثش٘بٔ‪ #ٝ‬داد‪ٞ ٜ‬ب طجز‬
‫لٌؼي ٔي ؿ‪٘ٛ‬ذ اِجش‪ ٝ‬ث‪ ٝ‬ؿشًي و‪ٔ ٝ‬حش‪ٛ‬اي ديشبػز سغييش وشد‪ ٜ‬ثبؿذ‪.‬‬

‫)‪private void MainForm_Closing(object sender, CancelEventArgs e‬‬


‫{‬
‫))(‪if (northwindDataSet.HasChanges‬‬
‫{‬
‫;)‪ordersTableAdapter.Update(northwindDataSet‬‬
‫;)‪order_DetailsTableAdapter.Update(northwindDataSet‬‬
‫}‬
‫}‬
‫وذ ‪ :3‬طجز لٌؼي داد‪ٞ ٜ‬ب ث‪ٍٙٞ ٝ‬بْ ثؼشٗ ثش٘بٔ‪ٝ‬‬

‫صٔب٘ي و‪ ٝ‬اص ديشبػز اػشفبد‪ٔ ٜ‬ي ٕ٘بييذ‪ ،‬ثخؾ اػظٓ وذ س‪ٛ‬ػي ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ ٛ‬ايؼبد ٔي ؿ‪ٛ‬د ‪ ٚ‬دغ اص ٔمذاس د‪ٞ‬ي ا‪ِٚ‬ي‪ ٝ‬ي ديشبػز وبس ثب داد‪ٞ ٜ‬ب‬
‫ثب ػشػز ا٘ؼبْ ٔي ؿ‪ٛ‬د‪ .‬دس ‪ٚ‬الغ س‪ٟٙ‬ب وذي و‪ ٝ‬الصْ اػز ؿٕب ث‪ٛٙ‬يؼيذ طجز ل ٌؼي داد‪ٞ ٜ‬ب دس ثب٘ه اًالػبسي اػز‪ .‬ث‪ ٝ‬ػال‪ٕٔ ٜٚ‬ىٗ اػز ؿٕب ثشاي‬
‫حشوز ثيٗ داد‪ٞ ٜ‬ب وذ٘‪ٛ‬يؼي و‪ٙ‬يذ ‪ ٚ‬سا‪ ٜ‬حُ غيش اص ديؾ فشم سا ثشاي ٔمذاس د‪ٞ‬ي ديشبػز اػشفبد‪ٕ٘ ٜ‬بييذ‪ٔ ،‬ظال صٔب٘ي و‪ ٝ‬ثخ‪ٛ‬ا‪ٞ‬يذ داد‪ٞ ٜ‬ب سا‬
‫فيّشش وشد‪ ،ٜ‬ػذغ دس حبفظ‪ ٝ‬لشاس د‪ٞ‬يذ‪ .‬دس ايٗ ٔمبِ‪ٔ ٝ‬ب ثشخي أىب٘بر ديـشفش‪ٔ ٝ‬ب٘‪ٙ‬ذ ثبسٌزاسي داد‪ٞ ٜ‬ب ثب سأخيش سا كشف ٘ظش وشد‪ ٜ‬ايٓ‪.‬‬

‫‪57‬‬
‫‪http://m0911.wordpress.com‬‬
‫اػشفبد‪ ٜ‬اص ‪ SqlCeResultSets‬ثب ٘‪ٛ‬ع داد‪ٜ‬‬
‫ثب اػشفبد‪ ٜ‬اص ‪ SqlCeResultSets‬ث‪ ٝ‬داد‪ٞ ٜ‬بي ثب٘ه اًالػبسي ‪ SQL CE‬ساحز سش دػششػي خ‪ٛ‬ا‪ٞ‬يذ داؿز‪ .‬ثخـي اص وذ ثشاي ؿٕب ث‪ًٛ ٝ‬س‬
‫خ‪ٛ‬دوبس ايؼبد ٔي ؿ‪ٛ‬د ‪ِٚ‬ي ٘‪ ٝ‬ث‪ ٝ‬ا٘ذاص‪ ٜ‬اي و‪ ٝ‬دس ديشبػز ديذيذ‪ .‬يىي اص ‪ٚ‬يظٌي ‪ٞ‬بي ٔ‪ SqlCeResultSets ٟٓ‬وبس وشدٖ ٔؼشميٓ ثب ثب٘ه‬
‫اًالػبسي اػز‪ .‬ث‪ ٝ‬ػجبسر ديٍش داد‪ٞ ٜ‬ب دس حبفظ‪ ٝ‬ي سْ ٔحذ‪ٚ‬د ‪ٌ ٚ‬شاٖ ليٕز دػشٍب‪ٚ ٜ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ وذي ٕ٘ي ؿ‪٘ٛ‬ذ‪ .‬يه ‪ SqlCeResultSets‬ثب‬
‫٘‪ٛ‬ع داد‪ ،ٜ‬دس ‪ٚ‬الغ ساحشي وبس ديشبػز )‪ (DataSet‬سا ثب وبسآيي ديشبسيذس )‪ (DataReader‬سشويت وشد‪ ٜ‬اػز‪ .‬ثشاي ٔمبيؼ‪ ٝ‬ي وبسآيي ديشبػز ‪ٚ‬‬
‫‪ SqlCeResultSets‬اص ثش٘بٔ‪ ٝ‬اي ٔـبث‪ - ٝ‬و‪ ٝ‬س‪ٚ‬ي ‪ٕٞ‬بٖ ػذا‪ٔ َٚ‬ظبَ لجّي ثب ‪ٕٞ‬بٖ ػّٕيبر وبس و‪ٙ‬ذ‪ -‬اػشفبد‪ ٜ‬خ‪ٛ‬ا‪ٞ‬يٓ وشد‪ .‬وبسآيي سا ثب ‪ٕٞ‬بٖ‬
‫ؿيء وش٘‪ٔٛ‬شش )‪ (Stopwatch‬ا٘ذاص‪ ٜ‬خ‪ٛ‬ا‪ٞ‬يٓ ٌشفز‪ .‬دس ؿىُ ‪ 4‬ؿٕب دس د‪ٙ‬ؼش‪ ٜ‬ي ٔـخلبر‪ ،‬يه اثضاس ػفبسؿي ثشاي ايؼبد ‪SqlCeResultSets‬‬
‫ث‪ ٝ‬ػبي ديشبػز ٔي ثي‪ٙ‬يذ‪ٔ .‬شحّ‪ ٝ‬ي ٘خؼز ٔـبث‪ ٝ‬لجُ اػز‪ .‬ؿٕب يه ٔ‪ٙ‬جغ داد‪ٔ (DataSource) ٜ‬شلُ ث‪ ٝ‬ثب٘ه اًالػبسي ‪ Northwind‬سا ث‪ٝ‬‬
‫دش‪ٚ‬ط‪ ٜ‬سبٖ ٔي افضاييذ‪ٍٙٞ .‬بْ افض‪ٚ‬دٖ ٔ‪ٙ‬جغ داد‪ ،ٜ‬يه ديشبػز داساي ٘‪ٛ‬ع‪ ،‬ث‪ًٛ ٝ‬س خ‪ٛ‬دوبس س‪ٛ‬ػي ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2008 ٛ‬ايؼبد ٔي ٌشدد‪ .‬ػذغ ؿٕب‬
‫اثضاس ػفبسؿي سا دس د‪ٙ‬ؼش‪ ٜ‬ي ٔـخلبر سغييش ٔي د‪ٞ‬يذ سب ‪ٞ SqlCeResultSets‬ب سا ايؼبد ٕ٘بيذ‪ .‬آٖ چ‪ ٝ‬دس ؿىُ ‪ٔ 4‬ي ثي‪ٙ‬يذ ايٗ اػز و‪ٝ‬‬
‫‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ ٛ‬د‪ SqlCeResultSets ٚ‬ثشاي سبٖ ايؼبد وشد‪ ٜ‬اػز ‪ِٚ‬ي اسسجبًي ثيٗ آٖ د‪ٚ ٚ‬ػ‪ٛ‬د ٘ذاسد‪ .‬ثشاي داؿشٗ يه ٕ٘بيؾ اكّي‪ -‬فشػي‬
‫)‪ (Master-Detail‬دس ‪ MainForm‬ثبيذ خ‪ٛ‬دسبٖ وذ ٔشث‪ٛ‬ى ث‪ ٝ‬اسلبَ ثيٗ د‪ٕ٘ ٚ‬بي اكّي ‪ ٚ‬فشػي سا ث‪ٛٙ‬يؼيذ‪.‬‬

‫وذي و‪ٚ ٝ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ ٛ‬ثشاي ٕ٘بيؾ داد‪ٞ ٜ‬ب دس ‪ MainForm‬ثشاي سبٖ ايؼبد ٔي ٕ٘بيذ دس وذ ‪٘ 1‬ـبٖ داد‪ ٜ‬ؿذ‪ ٜ‬اػز‪ .‬س‪ٛ‬ػ‪ ٝ‬داؿش‪ ٝ‬ثبؿيذ و‪ٝ‬‬
‫فمي ديشبٌشيذ )‪ (DataGrid‬حب‪ٚ‬ي داد‪ٞ ٜ‬بي ػذ‪ Orders َٚ‬ث‪ًٛ ٝ‬س خ‪ٛ‬دوبس س‪ٛ‬ػي ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ ٛ‬ثب داد‪ٞ ٜ‬بي ػذ‪ِٚ‬ؾ دش خ‪ٛ‬ا‪ٞ‬ذ ؿذ‪.‬‬
‫‪ٕٞ‬چ‪ٙ‬يٗ ‪ٞ‬يچ فشْ اهبف‪ ٝ‬ثش ايٗ ‪ٞ‬ب ثشاي ٕ٘بيؾ خالك‪ ٝ‬ي داد‪ٞ ٜ‬ب يب د‪ٙ‬ؼش‪ ٜ‬ي ٔىبِٕ‪ٚ ٝ‬يشايؾ سو‪ٛ‬سد ‪ٞ‬ب ايؼبد ٕ٘ي ؿ‪ٛ‬د‪.‬‬

‫‪public partial class MainForm : Form‬‬


‫{‬
‫‪private SqlCe35WithResultSets.NorthwindResultSets.OrdersResultSet‬‬
‫;‪ordersResultSet‬‬
‫)(‪public MainForm‬‬
‫{‬
‫;)(‪InitializeComponent‬‬
‫}‬
‫)‪private void MainForm_Load(object sender, EventArgs e‬‬
‫{‬
‫;)(‪ordersResultSet = new SqlCe35WithResultSets.NorthwindResultSets.OrdersResultSet‬‬
‫;)‪ordersResultSet.Bind(this.ordersResultSetBindingSource‬‬
‫}‬
‫}‬
‫وذ ‪ : 4‬وذ س‪ِٛ‬يذ ؿذ‪ ٜ‬ي خ‪ٛ‬دوبس ثشاي ٔمذاس د‪ٞ‬ي ا‪ِٚ‬ي‪ ٝ‬ي و‪ٙ‬ششَ ‪ٞ‬بي ‪ٚ‬اػي وبسثش س‪ٛ‬ػي ‪SqlCeResultSet‬‬

‫‪58‬‬
‫‪http://m0911.wordpress.com‬‬

‫ؿىُ ‪ٞ SqlCeResultSet :31‬بي ثب ٘‪ٛ‬ع داد‪ٜ‬‬

‫ثشاي ٕ٘بيؾ داد‪ٞ ٜ‬بي ػذ‪ ٓٞ Order_Details َٚ‬صٔبٖ ثب سو‪ٛ‬سد ا٘شخبة ؿذ‪ ٜ‬اص ػذ‪ Order َٚ‬ؿٕب ثبيذ ا٘ذوي ث‪ ٝ‬خ‪ٛ‬دسبٖ صحٕز داد‪ ،ٜ‬چ‪ٙ‬ذ‬
‫خي وذ ٘‪ٛ‬يؼي و‪ٙ‬يذ‪ .‬يه ٘مٌ‪ ٝ‬ي ؿش‪ٚ‬ع خ‪ٛ‬ة ثشاي ايٗ وبس ٘‪ٛ‬ؿشٗ وذ ‪ ٚ‬ث‪ٟ‬ج‪ٛ‬د وبسوشد ‪ Order_DetailsResultSet‬اػز‪ .‬س‪ٚ‬ي‬
‫‪ Northwind.xsd‬دس ػ‪ِٛٛ‬ؿٗ اوؼذّ‪ٛ‬سس ساػز وّيه و‪ٙ‬يذ‪ٚ .‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ ٛ‬يه فبيُ وذ ػي ؿبسح ث‪٘ ٝ‬بْ ‪ Northwind.cs‬ثشاي سبٖ ايؼبد‬
‫ٔي ٕ٘بيذ و‪ ٝ‬س‪ٚ‬ي ‪ Order_DetailsResultSet‬وبس و‪ٙ‬يذ‪ .‬وذ س‪ِٛ‬يذ ؿذ‪ ٜ‬س‪ٛ‬ػي ٔحيي ًشاحي ث‪ ٝ‬ك‪ٛ‬سر يه والع ػضئي )‪ (partial‬ديبد‪ٜ‬‬
‫ػبصي ٔي ؿ‪ٛ‬د‪ .‬دس وذ ‪ 5‬ؿٕب أىب٘بسي سا و‪ ٝ‬ث‪ Order_DetailsResultSet ٝ‬افض‪ٚ‬د‪ ٜ‬ايذ ٔي ثي‪ٙ‬يذ‪ .‬يه ػبص٘ذ‪ ٜ‬ي )‪ (Constructor‬ػذيذ ثب‬
‫دبسأشش ٔ‪ٌٙ‬مي )‪ (boolean‬ايؼبد ؿذ‪ ٜ‬اػز و‪ ٝ‬ايٗ ٔشغيش ٔ‪ٌٙ‬مي ٘ـبٖ ٔي د‪ٞ‬ذ و‪ ٝ‬آيب ػذ‪٘ Order Details َٚ‬يبص ث‪ ٝ‬ثبص ؿذٖ داسد يب ٘‪ .ٝ‬اٌش‬
‫ؿٕب ايٗ ػبص٘ذ‪ ٜ‬سا ً‪ٛ‬سي فشاخ‪ٛ‬ا٘ي و‪ٙ‬يذ و‪ ٝ‬ػذ‪ َٚ‬سا ثبص ٘ى‪ٙ‬ذ ٔي س‪ٛ‬ا٘يذ س‪ٛ‬ػي يه س‪ٚ‬اَ ‪ Open‬ث‪ًٛ ٝ‬س ٔؼضا ‪ -‬و‪ ٝ‬دس وذ ‪ 5‬ثشاي اػشاي دشع ‪ٚ‬‬
‫ػ‪ ٛ‬س‪ٚ‬ي ػذ‪ Order Details َٚ‬ديذ‪ٔ ٜ‬ي ؿ‪ٛ‬د – ػذ‪ َٚ‬سا ثبص و‪ٙ‬يذ‪ .‬ثذيٗ سشسيت ؿٕب يه ‪ Order_DetailsResultSet‬ايؼبد وشد‪ ٜ‬ايذ و‪ٝ‬‬
‫فمي سو‪ٛ‬سد‪ٞ‬بي ٔ‪ٛ‬سد ٘ظش سبٖ سا ثبسٌزاسي وشد‪ ٜ‬اػز‪ .‬دس ايٗ ٔمبِ‪ٔ ٝ‬ب اص ؿبخق )‪ٌ (index‬زاسي ثشاي ثبالسش ثشدٖ وبسآيي ‪ ٚ‬ث‪ٟ‬ي‪ ٝٙ‬ػبصي ثب٘ه‬
‫اًالػبسي اػشفبد‪٘ ٜ‬ىشد‪ ٜ‬ايٓ‪.‬دِيُ ايٗ وبس ٔمبيؼ‪ ٝ‬ي كحيح وبسآيي ثيٗ ديشبػز ‪ SqlCeResultSet ٚ‬اػز‪ِ .‬زا ثب افض‪ٚ‬دٖ ؿبخق ٔي س‪ٛ‬ا٘يذ‬
‫٘شبيغ ث‪ٟ‬ششي ث‪ ٝ‬دػز آ‪ٚ‬سيذ‪.‬‬

‫‪59‬‬
http://m0911.wordpress.com
public partial class Order_DetailsResultSet
{
public Order_DetailsResultSet(bool openTable)
{
// Create default options
//
resultSetOptions = System.Data.SqlServerCe.ResultSetOptions.Scrollable |
System.Data.SqlServerCe.ResultSetOptions.Sensitive |

System.Data.SqlServerCe.ResultSetOptions.Updatable;
if (NorthwindUtil.DesignerUtil.IsDesignTime())
{
// Designtime Connection String
resultSetConnectionString =
"Data Source=C:\\Users\\Maarten\\Documents\\Visual Studio " +
"2008\\Projects\\SqlCE35Demo\\SqlCE35WithDataSets\\Northwind.sdf";
}
else
{
// Runtime Connection String
resultSetConnectionString = ("Data Source =" +
(System.IO.Path.GetDirectoryName(
System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) +
"\\Northwind.sdf;"));
}
if (openTable)
this.Open();
}
public void Open(string query)
{
System.Data.SqlServerCe.SqlCeCommand sqlCeSelectCommand = null;
try
{
// Open a connection to the database
//
sqlCeConnection = new
System.Data.SqlServerCe.SqlCeConnection(this.resultSetConnectionString);
sqlCeConnection.Open();
// Create the command
//
sqlCeSelectCommand = sqlCeConnection.CreateCommand();
sqlCeSelectCommand.CommandText = query;
sqlCeSelectCommand.CommandType = System.Data.CommandType.Text;
// Generate the ResultSet

//
sqlCeSelectCommand.ExecuteResultSet(
System.Data.SqlServerCe.ResultSetOptions.Scrollable, this);
}
finally
{

60
‫‪http://m0911.wordpress.com‬‬
‫))‪if ((sqlCeSelectCommand != null‬‬
‫{‬
‫;)(‪sqlCeSelectCommand.Dispose‬‬
‫}‬
‫}‬
‫}‬
‫}‬
‫وذ ‪ :5‬س‪ٛ‬ػؼ‪ ٝ‬ي ‪Order_DetailsResultSet‬‬

‫دغ اص س‪ٛ‬ػؼ‪ ٝ‬ي ‪٘ Order_DetailsResultSet‬يبص ث‪ ٝ‬ا٘ذوي وب س ثيـشش داسيذ‪٘ .‬خؼز ايٗ و‪ٌٕٔ ٝ‬ئٗ ؿ‪ٛ‬يذ و‪ٙ‬ششَ ‪ٞ‬بي ‪ٚ‬اػي وبسثش سا ث‪ ٝ‬يه‬
‫ٔ‪ٙ‬جغ اسلبَ )‪ (BindingSource‬ػذيذ ٔشلُ وشد‪ ٜ‬ايذ‪ .‬صٔب٘ي و‪ ٝ‬و‪ٙ‬ششَ ‪ٞ‬بي ‪ Order_DetailsResultSet‬سا ثب وـيذٖ س‪ٚ‬ي فشْ لشاس ٔي‬
‫د‪ٞ‬يذ‪ ،‬آٖ ‪ٞ‬ب ث‪ٙٔ ٝ‬جغ اسلبِي و‪ ٝ‬ث‪ٍٙٞ ٝ‬بْ وـيذٖ ‪ ٚ‬لشاس دادٖ ديشبٌشيذ ‪ OrderResultSet‬س‪ٚ‬ي فشْ ايؼبد ؿذ‪ ٜ‬اػز‪ٔ ،‬شلُ خ‪ٛ‬ا‪ٙٞ‬ذ ؿذ‬
‫‪$‬ؿىُ ‪ .#5‬ايٗ ٔ‪ٛ‬سد ثشاي فيّذ ‪ - Order ID‬و‪ ٝ‬يه فيّذ وّيذي ٔـششن ثيٗ د‪ ٚ‬ػذ‪ َٚ‬اػز‪ٔ -‬ـىّي دسػز ٕ٘ي و‪ٙ‬ذ‪ِٚ .‬ي اسلبَ ٘بدسػز فيّذ‬
‫‪ٞ‬بي ‪ Order_DetailsResultSet‬ث‪ٛٔ OrderResultSetBindingSource ٝ‬ػت ثش‪ٚ‬ص خٌبي صٔبٖ اػشا خ‪ٛ‬ا‪ٙٞ‬ذ ؿذ‪ ،‬چ‪ ٖٛ‬دس ايٗ ٔ‪ٙ‬جغ‬
‫داد‪ ٜ‬سؼشيف ٘ـذ‪ ٜ‬ا٘ذ‪.‬‬

‫ؿىُ ‪ :32‬اسلبَ ػؼج‪ٔ ٝ‬شٗ ‪ Product ID‬ث‪ٙٔ ٝ‬جغ داد‪ ٜ‬ي ٘بدسػز‬

‫ساحز سشيٗ سا‪ ٜ‬سفغ ايٗ ٔـىُ افض‪ٚ‬دٖ يه ٔ‪ٙ‬جغ اسلبَ )‪ (binding source‬ث‪ ٝ‬ػ‪ِٛٛ‬ؿٗ اػژز وژ‪ٔ ٝ‬ـخلژ‪ ٝ‬ي ‪ DataSource‬آٖ سا ثشاثژش ثژب‬
‫‪ Order_DetailsResultSet‬لژژشاس د‪ٞ‬ژژيٓ ‪$‬ؿژژىُ ‪ .#6‬دژژغ اص ايژژٗ وژژبس ثژژ‪ٍٙٞ ٝ‬ژژبْ وـژژيذٖ ‪ ٚ‬ا٘ژژذاخشٗ و‪ٙ‬شژژشَ ‪ٞ‬ژژبي ‪ٚ‬اػژژي وژژبسثش اص‬
‫‪ Order_DetailsResultSet‬ث‪ ٝ‬س‪ٚ‬ي ‪ٚ MainForm‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ ٛ‬اص ؿٕب خ‪ٛ‬ا‪ٞ‬ذ دشػيذ و‪ ٝ‬وذاْ ٔ‪ٙ‬جغ اسلبَ سا ٔي خ‪ٛ‬ا‪ٞ‬يذ اػشفبد‪ٕ٘ ٜ‬بييذ‪ .‬ثب‬
‫ٔـخق وشدٖ ٔ‪ٙ‬جغ اسلبِي و‪ ٝ‬خ‪ٛ‬د سبٖ اهبف‪ٕٛ٘ ٝ‬د‪ ٜ‬ايذ‪ ،‬ايٗ ايشاد ثشًشف خ‪ٛ‬ا‪ٞ‬ذ ؿذ‪ٛٔ .‬سد ثؼذي‪ٛ٘ ،‬ؿژشٗ وژذ ثژشاي ٕ٘ژبيؾ ػضئيژبر اًالػژبر‬
‫سو‪ٛ‬سد ا٘شخبة ؿذ‪ ٜ‬ي فؼّي اص ديشبٌشيذ اػز‪ .‬ثب چ‪ٙ‬ذ خي وذ ٘‪ٛ‬يؼي دس ‪ٔ MainForm‬ي س‪ٛ‬ا٘يذ ايٗ وبس سا سٕبْ و‪ٙ‬يذ‪ .‬اص ‪ٕٞ‬بٖ ثخژؾ س‪ٛ‬ػژؼ‪ ٝ‬ي‬
‫‪ٛ٘ Order_DetailsResultSet‬ؿش‪ ٝ‬ؿذ‪ ٜ‬دس وذ ‪ 5‬اػشفبد‪ ٜ‬و‪ٙ‬يذ‪.‬‬

‫‪61‬‬
www.SoftGozar.Com
http://m0911.wordpress.com

Order_DetailsResultSet ٝ‫ ا٘شؼبة آٖ ث‬ٚ (binding source) َ‫جغ اسلب‬ٙٔ ‫دٖ دػشي‬ٚ‫ افض‬:33 ُ‫ؿى‬

.‫سيژذ‬ٚ‫ دػژز آ‬ٝ‫ سا ثژ‬Order ID #ٝ‫ِيژ‬ٚ‫وّيذ ا‬$ ‫ اثشذا ثبيذ ٔمذاس فيّذ‬،#6 ُ‫ؿى‬$ ‫ذ‬ٙ‫ سا اص ديشبٌشيذ ا٘شخبة ٔي و‬#‫ػفبسؽ‬$ ‫سد‬ٛ‫ وبسثش يه سو‬ٝ‫ش ثبس و‬ٞ
ٝ‫ سا ثژ‬ٜ‫ ػضئيبر ػفبسؽ ا٘شخبة ؿژذ‬ٝ‫ى ث‬ٛ‫ اًالػبر ٔشث‬Order Details َٚ‫ اص ػذ‬ٝ‫يذ و‬ٙ‫ دسػز و‬ٛ‫ ػ‬ٚ ‫ اص آٖ يه ػجبسر دشع‬ٜ‫ػذغ ثب اػشفبد‬
َ‫جژغ اسلژب‬ٙٔ ‫ ثبيژذ‬،‫ ؿژذ‬ٜ‫ دس آٖ رخيش‬،ٛ‫ ػ‬ٚ ‫ٌجك ثب ؿشايي دشع‬ٙٔ ‫سد‬ٛ‫ سو‬ٚ ‫ ايؼبد‬Order_DetailsResultSet ‫ يه‬ٝ‫ دغ اص ايٗ و‬.‫سد‬ٚ‫دػز آ‬
ٚ Orders َٚ‫ ػژذ‬ٚ‫ؽ اسلژبَ د‬ٚ‫ س‬،6 ‫ دس وژذ‬.ٓ‫ژي‬ٙ‫ خژبسع و‬ٝ‫ اكّي سا اص حبفظ‬ResultSet ‫ ػذغ‬ٚ ٓ‫ي‬ٙ‫ آٖ ٔشلُ و‬ٝ‫( سا ث‬BindingSource)
.‫د‬ٛ‫ا٘ي ٔي ؿ‬ٛ‫ داخُ ديشبٌشيذ فشاخ‬#‫فؼّي‬$ ‫سد‬ٛ‫ ٌش سو‬ٜ‫ش ثبس سغييش اؿبس‬ٞ ‫ ايٗ وذ دس‬.‫يذ‬ٙ‫يؼي ٔي ثي‬ٛ٘ ‫ سا اص ًشيك وذ‬OrderDetails

private void ordersResultSetBindingSource_PositionChanged(object sender, EventArgs e)


{
SqlCE35WithResultSets.NorthwindResultSets.Order_DetailsResultSet orgDetailsRS=

order_DetailsResultSet;
GetOrderDetails();
if (orgDetailsRS != null)
orgDetailsRS.Dispose();
}
private void GetOrderDetails()
{
int orderID =
(int)((RowView)this.ordersResultSetBindingSource.Current).UpdatableRecord["Order ID"];
string query = "SELECT * FROM [Order Details] WHERE [Order ID] = '" + orderID +"'";

62
‫‪http://m0911.wordpress.com‬‬
‫= ‪order_DetailsResultSet‬‬
‫;)‪new SqlCE35WithResultSets.NorthwindResultSets.Order_DetailsResultSet(false‬‬
‫;)‪order_DetailsResultSet.Open(query‬‬
‫;)‪order_DetailsResultSet.Bind(order_DetailsResultSetBindingSource‬‬
‫}‬
‫وذ ‪ :6‬اسلبَ ٕ٘بي فشػي )‪ (details‬ث‪ ٝ‬اكّي )‪(master‬‬

‫صٔب٘ي و‪ ٝ‬وبسثش يه سو‪ٛ‬سد ػذيذ سا ‪$‬دس ديشبٌشيذ ػذ‪ #Orders َٚ‬ا٘شخبة ٔي و‪ٙ‬ذ س‪ٚ‬يذاد ‪ PositionChanged‬س‪ٚ‬ي ٔ‪ٙ‬جغ اسلبَ‬
‫‪ ordersResultSetBindingSource‬فشا خ‪ٛ‬ا٘ذ‪ٔ ٜ‬ي ؿ‪ٛ‬د‪ .‬ايٗ س‪ٚ‬يذاد ٔي س‪ٛ‬ا٘ذ ثشاي ث‪ ٝ‬دػز آ‪ٚ‬سدٖ ٔمذاس فيّذ ‪ Order ID‬سو‪ٛ‬سد فؼّي‬
‫اػشفبد‪ ٜ‬ؿ‪ٛ‬د‪ .‬حبفظ‪ ٝ‬ي ‪ order_DetailsResultSet‬فؼّي آصاد ؿذ‪ ،ٜ‬يىي ديٍش اص آٖ ثب اػشفبد‪ ٜ‬اص يه دشع ‪ ٚ‬ػ‪ٛ‬ي ػذيذ ثش ٔج‪ٙ‬بي‬
‫‪ Order ID‬ػبخش‪ٔ ٝ‬ي ؿ‪ٛ‬د و‪ ٝ‬اًالػبر ٔشث‪ٛ‬ى ث‪ ٝ‬ػضئيبر ػفبسؿي سا و‪ ٝ‬ؿٕبس‪ ٜ‬ي آٖ ثشاثش ثب ‪ Order ID‬فؼّي اػز‪ ،‬اص ػذ‪Order َٚ‬‬
‫‪ Details‬ثش ٔي ٌشدا٘ذ‪.‬‬
‫دس ثخؾ ديشبػز ديذيذ و‪ ٝ‬فشْ ٕ٘بيؾ خالك‪ ٝ‬ي داد‪ٞ ٜ‬ب ‪ٚ ٚ‬يشايؾ سو‪ٛ‬سد ث‪ًٛ ٝ‬س خ‪ٛ‬دوبس ثشاي سبٖ ايؼبد ٔي ؿ‪ٛ‬د‪ِ .‬يىٗ دس ٔ‪ٛ‬سد‬
‫‪ٚ SqlCeResultSet‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ ٛ‬چ‪ٙ‬يٗ وبسي ٕ٘ي و‪ٙ‬ذ ‪ ٚ‬ؿٕب خ‪ٛ‬دسبٖ ثبيذ فشْ ‪ٞ‬ب ‪ ٚ‬وذ ‪ٞ‬بي ٔشث‪ٛ‬ى ث‪ ٝ‬آٖ سا ايؼبد و‪ٙ‬يذ‪ .‬دس ايٗ ٔمبِ‪ ٝ‬ث‪ ٝ‬دِيُ‬
‫ايٗ و‪ٔ ٝ‬ب دس ثبس‪ ٜ‬ي ٔمبيؼ‪ ٝ‬ي وبسآيي د‪ ٚ‬س‪ٚ‬ؽ كحجز ٔي وشديٓ ايٗ ثخؾ سا ا٘ؼبْ ٘ذاديٓ‪ٛٔ .‬سد ديٍش ايٗ و‪ ٝ‬چ‪ SqlCeResultSet ٖٛ‬ث‪ٝ‬‬
‫ً‪ٛ‬س ٔؼشميٓ داد‪ٞ ٜ‬ب سا س‪ٚ‬ي ثب٘ه اًالػبسي رخيش‪ٔ ٜ‬ي و‪ٙ‬ذ‪ ،‬ث‪ٍٙٞ ٝ‬بْ سغييش داد‪ٞ ٜ‬ب ٘يبصي ث‪ ٝ‬وذ٘‪ٛ‬يؼي ثشاي طجز لٌؼي داد‪ٞ ٜ‬ب ‪ٕٞ$‬ب٘‪ٙ‬ذ ديشبػز‪#‬‬
‫٘يؼز‪.‬‬
‫ٔـبث‪ ٝ‬ثب س‪ٚ‬ؽ ديشبػز دس ايٗ ػب ‪ ٓٞ‬ثشاي ا٘ذاص‪ٌ ٜ‬يشي وبس آيي صٔب٘ي‪ ،‬اص ؿيء وش٘‪ٔٛ‬شش اػشفبد‪ٔ ٜ‬ي و‪ٙ‬يٓ‪ .‬دس ٔذيش س‪ٚ‬يذاد ‪MainForm_Load‬‬
‫ٔي س‪ٛ‬ا٘يٓ صٔبٖ ثبسٌزاسي داد‪ٞ ٜ‬ب سا ا٘ذاص‪ٌ ٜ‬شفش‪ ٝ‬دس ٘‪ٛ‬اس ‪ٚ‬هؼيز ٕ٘بيؾ د‪ٞ‬يٓ‪ .‬ث‪ٕٞ ٝ‬يٗ سشسيت صٔبٖ الصْ ثشاي ث‪ ٝ‬دػز آ‪ٚ‬سدٖ اًالػبر ٔشث‪ٛ‬ى ث‪ٝ‬‬
‫ػضئيبر ػفبسؽ سا ‪ٍٙٞ‬بْ حشوز اص يه سو‪ٛ‬سد ث‪ ٝ‬سو‪ٛ‬سد ديٍش ث‪ ٝ‬دػز ٔي آ‪ٚ‬سيٓ‪ .‬ؿىُ ‪٘ 7‬شبيغ ايٗ ا٘ذاص‪ٌ ٜ‬يشي وبسآيي سا ثشاي‬
‫‪٘ SqlCeResultSet‬ـبٖ ٔي د‪ٞ‬ذ‪ٕٞ .‬بٖ ً‪ٛ‬س و‪ٔ ٝ‬ي ثي‪ٙ‬يذ اص ِحظ‪ ٝ‬ي ثبسٌزاسي ثش٘بٔ‪ ٝ‬دس ؿجي‪ ٝ‬ػبص دػشٍب‪ ٜ‬سب ثبصيبثي داد‪ٞ ٜ‬ب اص ثب٘ه اًالػبسي‬
‫‪ٔ 300‬يّي طب٘ي‪ ٝ‬صٔبٖ الصْ اػز‪ .‬حشوز ثيٗ سو‪ٛ‬سد ‪ٞ‬ب‪ ،‬ث‪ ٝ‬س‪ٚ‬ص سػب٘ي آ٘‪ٟ‬ب ث‪ٚ ٝ‬يظ‪ ٜ‬ػضئيبر ػفبسؽ )‪ٔ 50 (Order details‬يّي طب٘ي‪ ٝ‬صٔبٖ الصْ‬
‫داسد‪ .‬حشوز اص ا‪ِٚ‬يٗ سو‪ٛ‬سد ث‪ ٝ‬آخشيٗ سو‪ٛ‬سد ا٘ذوي ثيـشش اص حبِز ديشبػز صٔبٖ الصْ داسد چ‪ ٖٛ‬سؼذاد سو‪ٛ‬سد‪ٞ‬بي ثيـششي ثبيذ خ‪ٛ‬ا٘ذ‪ ٜ‬ؿ‪٘ٛ‬ذ‪.‬‬

‫ؿىُ ‪ :34‬صٔبٖ الصْ ثشاي ثبسٌضاسي ‪ٕ٘ ٚ‬بيؾ داد‪ٞ ٜ‬ب ‪ ٚ‬ػب ث‪ ٝ‬ػبيي ثيٗ سو‪ٛ‬سد ‪ٞ‬ب ‪ٔ$‬مبيؼ‪ ٝ‬و‪ٙ‬يذ ثب ؿىُ ‪#3‬‬

‫‪63‬‬
‫‪http://m0911.wordpress.com‬‬
‫٘شيؼ‪ٌ ٝ‬يشي‬
‫اػشفبد‪ ٜ‬اص ديشبػز ثؼيبس آػبٖ اػز‪ .‬اص آٖ ػب و‪ٚ ٝ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2008 ٛ‬خ‪ٛ‬دؽ وذ سا س‪ِٛ‬يذ ٔي و‪ٙ‬ذ ؿٕب وذ ٘‪ٛ‬يؼي چ‪ٙ‬ذا٘ي الصْ ٘ذاسيذ‪ .‬ث‪ٚ ٝ‬يظ‪ٜ‬‬
‫دس حبِز ٕ٘بيؾ ‪ ٓٞ‬صٔبٖ ػذ‪ٞ َٚ‬بي اكّي‪ -‬فشػي ٔ‪ٙ‬بػت اػز‪ .‬ث ‪ ٝ‬دِيُ ثبسٌزاسي ‪ ٕٝٞ‬ي داد‪ٞ ٜ‬ب ث‪ ٝ‬حبفظ‪ ٝ‬اكّي‪ ،‬صٔبٖ ثيـششي ثشاي ٕ٘بيؾ‬
‫ا‪ِٚ‬ي‪ ٝ‬ي سو‪ٛ‬سد ‪ٞ‬ب دس فشْ ثش٘بٔ‪ ٝ‬ي ؿٕب الصْ داسد ‪ٕٞ ٚ‬چ‪ٙ‬يٗ حبفظ‪ ٝ‬ي اكّي ٘بص٘يٗ ‪ٌ ٚ‬شاٖ ليٕز دػشٍب‪ٚ ٜ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ سبٖ سا ‪ ٓٞ‬ثبيذ ٔلشف‬
‫و‪ٙ‬يذ‪.‬‬
‫‪ SqlCeResultSet‬وبسآيي ثيـششي داسد ث‪ٚ ٝ‬يظ‪ٍٙٞ ٜ‬بْ ثبسٌ زاسي ا‪ِٚ‬ي‪ ٝ‬ي داد‪ٞ ٜ‬ب‪ .‬چ‪ ٖٛ‬ث‪ًٛ ٝ‬س ٔؼشميٓ س‪ٚ‬ي ثب٘ه اًالػبسي وبس ٔي و‪ٙ‬ذ ‪ ٚ‬فمي‬
‫سو‪ٛ‬سد ‪ٞ‬بيي سا و‪ ٝ‬دس ديشبٌشيذ ٘ـبٖ ٔي د‪ٞ‬ذ‪ ،‬ث‪ ٝ‬حبفظ‪ ٝ‬ي اكّي ثبسٌزاسي ٔي و‪ٙ‬ذ‪ .‬دس حبِز ٕ٘بيؾ ‪ ٓٞ‬صٔبٖ د‪ ٚ‬ػذ‪ َٚ‬اكّي‪ -‬فشػي ٘يبص ث‪ ٝ‬وذ‬
‫٘‪ٛ‬يؼي داسيذ‪ .‬ػشػز ‪ SqlCeResultSet‬ثب ايؼبد ؿبخق )‪ (index‬دس ثب٘ه اًالػبسي ٔي س‪ٛ‬ا٘ذ ثيـشش ؿ‪ٛ‬د‪ .‬اٌش فشْ ٕ٘بيؾ ‪ٚ‬يشايؾ ‪ ٚ‬خالك‪ ٝ‬ي‬
‫داد‪ٞ ٜ‬ب سا ٔي خ‪ٛ‬ا‪ٞ‬يذ ثبيذ خ‪ٛ‬دسبٖ وذ ٘‪ٛ‬يؼي و‪ٙ‬يذ‪ .‬دس ٘‪ٟ‬بيز وبسآيي ثبالسش ايٗ س‪ٚ‬ؽ ث‪ ٝ‬صحٕشؾ ٔي اسصد و‪ ٝ‬چ‪ٙ‬ذ خي وذ سا ث‪ٛٙ‬يؼيذ ‪ ٚ‬ؿبيذ ‪ٓٞ‬‬
‫اص يه ٔمبِ‪ ٝ‬وذي و‪ٙ‬يذ‪; ) .‬‬

‫‪64‬‬
www.SoftGozar.Com
http://m0911.wordpress.com

‫فصل ششم‬

‫امنيت دستگاه و نصة نرم افسار‬

65
‫‪http://m0911.wordpress.com‬‬
‫ٔمذٔ‪ٝ‬‬
‫س‪ٛ‬ػؼ‪ ٝ‬ي ٘شْ افضاس ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ؿجب‪ٞ‬ز صيبدي ث‪ ٝ‬س‪ٛ‬ػؼ‪ ٝ‬ي ٘شْ افضاس دس دػىشبح داسد ث‪ٚ ٝ‬يظ‪ ٜ‬صٔب٘ي و‪ ٝ‬يىي اص د‪ ٚ‬صثبٖ ‪ٚ‬يظ‪ٚ‬اَ ثيؼيه يب ‪ٚ‬يژظ‪ٚ‬اَ‬
‫ػي ؿبسح دار ٘ز سا اػشفبد‪ٔ ٜ‬ي و‪ٙ‬يذ‪ .‬ؿٕب ‪ٕٞ‬بٖ اثضاس‪ٞ‬بي س‪ٛ‬ػؼ‪ ٝ‬ي ثش٘بٔ‪ٞ ٝ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص دػىشبح سا ثشاي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪ٞ‬ژٓ اػژشفبد‪ٔ ٜ‬ژي و‪ٙ‬يژذ‬
‫ِيىٗ سفب‪ٚ‬ر ‪ٞ‬بيي ٘يض ثيٗ ايٗ د‪ٔ ٚ‬حيي ‪ٞ‬ؼز‪ .‬ثؼش‪ ٝ‬ث‪ ٝ‬ؿشوز ػبص٘ذ‪ ٜ‬يب ادشاس‪ٛ‬س سّفٗ ‪ٕٞ‬شا‪ ٜ‬و‪ ٝ‬دػشٍب‪ٚ ٜ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ سا ػشهژ‪ٔ ٝ‬ژي و‪ٙٙ‬ژذ‪ ،‬ايژٗ‬
‫دػشٍب‪ٞ ٜ‬ب داساي س‪ٙ‬ظيٕبر أ‪ٙ‬يشي ٔش‪ٛٙ‬ػي ‪ٞ‬ؼش‪ٙ‬ذ‪ .‬اص ديذٌب‪ ٜ‬يه س‪ٛ‬ػؼ‪ ٝ‬د‪ٙٞ‬ذ‪ ٜ‬أ‪ٙ‬يز دػشٍب‪ ٜ‬سؼييٗ و‪ٙٙ‬ذ‪ ٜ‬ي اػشا ؿژذٖ يژب ٘ـژذٖ يژه ثش٘بٔژ‪ٝ‬‬
‫س‪ٚ‬ي آٖ ‪ٕٞ ٚ‬چ‪ٙ‬يٗ ٔ‪ٙ‬بثؼي اص ػيؼشٓ اػز و‪ ٝ‬ثش٘بٔ‪ ٝ‬ث‪ ٝ‬آٖ ‪ٞ‬ب دػششػي داسد‪ .‬ايٗ ٔؼأِ‪ ٝ‬دس چٍ‪ٍ٘ٛ‬ي س‪ٛ‬صيغ يب ٘لت ٘شْ افضاس ث‪ٚ ٝ‬يظ‪ ٜ‬صٔب٘ي وژ‪ ٝ‬ثژب‬
‫دػشٍب‪ٌٛ$ ٜ‬ؿي‪ٞ #‬بي ٔش‪ٛٙ‬ػي اص ػبص٘ذ‪ٌ ٜ‬بٖ ٔخشّف ػش ‪ ٚ‬وبس داسيذ‪ ،‬ا‪ٕٞ‬يز ثيـششي ديذا ٔي و‪ٙ‬ذ‪.‬‬
‫ايٗ ٔمبِ‪ ٝ‬اًالػب ر ٔفيذي سا دس صٔي‪ ٝٙ‬ي أ‪ٙ‬يز دػشٍب‪ٞ ٜ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ‪ ،‬چٍ‪ٍ٘ٛ‬ي آصٔبيؾ س‪ٙ‬ظيٕبر ٔخشّف أ‪ٙ‬يشي ثب اػژشفبد‪ ٜ‬اص اثژضاس ٔژذيش‬
‫أ‪ٙ‬يز )‪ٚ (security manager‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ ٚ 2008 ٛ‬دس ٘‪ٟ‬بيز ٘ح‪ ٜٛ‬ي ٘لت دسػز ثش٘بٔ‪ٞ ٝ‬ب س‪ٚ‬ي دػشٍب‪ٞ ٜ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ثژ‪ ٝ‬ؿژٕب اسايژ‪ٝ‬‬
‫ٔي د‪ٞ‬ذ‪.‬‬

‫أ‪ٙ‬يز دس دػشٍب‪ٞ ٜ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ‬


‫دػشٍب‪ٞ ٜ‬بي ٔخشّف ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ثؼش‪ ٝ‬ث‪ ٝ‬ؿشوز ػبص٘ذ‪ ٜ‬ؿبٖ س‪ٙ‬ظيٕبر أ‪ٙ‬يشي ٔش‪ٛٙ‬ػي داس٘ذ‪ .‬يه دػشٍب‪ٕٔ ٜ‬ىٗ اػز ث‪ًٛ ٝ‬س وبُٔ ٘لت ‪ٞ‬ش‬
‫ثش٘بٔ‪ ٝ‬اي سا ثذزيشد ‪ ٚ‬دػشٍب‪ ٜ‬ديٍش ٕٔىٗ اػز ث‪ٍٙٞ ٝ‬بْ ا‪ِٚ‬يٗ ٘لت يب اػشاي يه ثش٘بٔ‪ ٝ‬اص وبسثش سأييذي‪ ٝ‬ثٍيشد‪ .‬يب ايٗ و‪ ٝ‬دػشٍب‪ ٜ‬ث‪ ٝ‬وّي دس ثشاثش‬
‫٘لت ثش٘بٔ‪ٞ ٝ‬بيي و‪ ٝ‬سأييذي‪ ٝ‬ي أ‪ٙ‬يشي اص ػبص٘ذ‪ ٜ‬ي آٖ ٘ذاسد‪ٔ ،‬ؼذ‪ٚ‬د ثبؿذ‪.‬‬

‫يه دِيُ ‪ٚ‬ػ‪ٛ‬د س‪ٙ‬ظيٕبر أ‪ٙ‬يشي ٔخشّف ايٗ اػز و‪ ٝ‬اغّت دػشٍب‪ٞ ٜ‬بي ديـشفش‪ ٝ‬ي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ داساي أىب٘بر سّفٗ ‪ٕٞ‬شا‪ٞ ٜ‬ؼش‪ٙ‬ذ ‪ ٚ‬ثشاي‬
‫اسسجبى دس يه ؿجى‪ ٝ‬اي و‪ ٝ‬دس اخشيبس ادشاس‪ٛ‬س سّفٗ ‪ٕٞ‬شا‪ ٜ‬اػز‪ ،‬ث‪ ٝ‬وبس ٔي س‪٘ٚ‬ذ‪ِ .‬زا يىي اص داليُ دػشٍب‪ٚ ٜ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ أ‪ٙ‬يز خ‪ٛ‬د ؿجى‪ ٝ‬اػز‪ .‬دس‬
‫‪ٚ‬الغ ادشاس‪ٛ‬س ‪ٞ‬بي سّفٗ ‪ٕٞ‬شا‪ٔ ٜ‬ي خ‪ٛ‬ا‪ٙٞ‬ذ ؿجى‪ ٝ‬ؿبٖ سا دس ثشاثش ٘شْ افضاس ‪ٞ‬بيي و‪ ٝ‬ث‪ ٝ‬ساحشي س‪ٛ‬ػي وبسثشاٖ ٘لت ٔي ؿ‪٘ٛ‬ذ‪ٔ ،‬حبفظز و‪ٙٙ‬ذ‪ .‬ث‪ٝ‬‬
‫‪ٕٞ‬يٗ دِيُ ٕ٘ي س‪ٛ‬اٖ ‪ٞ‬ش ثش٘بٔ‪ ٝ‬اي سا ‪ -‬حشي اٌش ٔخل‪ٛ‬ف ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ٘‪ٛ‬ؿش‪ ٝ‬ؿذ‪ ٜ‬ثبؿذ‪ -‬س‪ٚ‬ي يه دػشٍب‪ٚ ٜ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ٘لت وشد‪.‬‬

‫ثذيٗ سشسيت ثشاي سأٔيٗ أ‪ٙ‬يز ٔ‪ٛ‬سد دسخ‪ٛ‬اػز ادشاس‪ٛ‬س ‪ٞ‬بي سّفٗ ‪ٕٞ‬شا‪ ،ٜ‬دػشٍب‪ٞ ٜ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ داساي س‪ٙ‬ظيٕبر أ‪ٙ‬يشي ٔخشّفي ‪ٞ‬ؼش‪ٙ‬ذ‪.‬‬
‫ِيىٗ أ‪ٙ‬يز اػٕبَ ؿذ‪ ٜ‬دس يه دػشٍب‪ٚ ٜ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ كشفب ث‪ ٝ‬دِيُ ادشاس‪ٛ‬س سّفٗ ‪ٕٞ‬شا‪ ٜ‬يب ؿشوز اػشفبد‪ ٜ‬و‪ٙٙ‬ذ‪ ٜ‬ي آٖ ٘يؼز‪ ،‬ثّى‪ ٝ‬ث‪ٛ٘ ٝ‬ع اػشفبد‪ٜ‬‬
‫ي آٖ ٘يض ثؼشٍي داسد‪ .‬أ‪ٙ‬يز دػشٍب‪ٞ ٜ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ هش‪ٚ‬سي ‪ ٚ‬ث‪ًٛ ٝ‬س وبُٔ داخُ ػيؼشٓ ػبُٔ سؼجي‪ ٝ‬ؿذ‪ ٜ‬اػز‪ .‬الي‪ٞ ٝ‬بي ٔخشّف أ‪ٙ‬يشي‬
‫ثب ‪ ٓٞ‬سشويت ؿذ‪ ٜ‬ا٘ذ سب دس ٘‪ٟ‬بيز ثش ٔج‪ ٙ‬بي يه س‪ٙ‬ظيٓ أ‪ٙ‬يشي ٔـخق سؼييٗ و‪ٙٙ‬ذ و‪ ٝ‬آيب ثش٘بٔ‪ٞ ٝ‬ب ٔي س‪ٛ‬ا٘‪ٙ‬ذ س‪ٚ‬ي دػشٍب‪٘ ٜ‬لت ‪ ٚ‬اػش ؿ‪٘ٛ‬ذ يب ٘‪ٝ‬‬
‫‪ ٚ‬اٌش دبػخ ث‪ ٝ‬ايٗ دشػؾ ٔظجز اػز‪ ،‬چٍ‪ٝ٘ٛ‬؟‬

‫ٔؼ‪ٛ‬ص‪ٞ‬بي ٘لت ٘شْ افضاس‬


‫ثؼش‪ ٝ‬ث‪ ٝ‬س‪ٙ‬ظيٕبر أ‪ٙ‬يشي يه دػشٍب‪ ٜ‬خبف ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ثش٘بٔ‪ٞ ٝ‬ب ٕٔىٗ اػز س‪ٚ‬ي آٖ اػشا ؿ‪٘ٛ‬ذ يب ايٗ و‪ ٝ‬ث‪ ٝ‬وّي اػشاي آٖ ‪ٞ‬ب ٕٔ‪ٛٙ‬ع ثبؿذ‪.‬‬
‫ٔؼ‪ٛ‬ص ‪ٞ‬بي صيش ثشاي اػشاي ثش٘بٔ‪ٞ ٝ‬ب س‪ٚ‬ي يه دػشٍب‪ٚ ٜ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ سؼشيف ؿذ‪ ٜ‬ا٘ذ‪:‬‬

‫‪ٚ‬يظ‪٘ : (Privileged) ٜ‬شْ افضاس ‪ٞ‬ش وبسي س‪ٚ‬ي دػشٍب‪ٔ ٜ‬ي س‪ٛ‬ا٘ذ ا٘ؼبْ د‪ٞ‬ذ‪ ،‬دػششػي وبُٔ ث‪ ٝ‬ػيؼشٓ فبيُ ‪ ٚ‬سػيؼششي ػيؼشٓ داسد ‪ٕٞ ٚ‬چ‪ٙ‬يٗ‬
‫ٔي س‪ٛ‬ا٘ذ سأييذي‪ ٝ‬ثشاي اػشاي ٘شْ افضاس ‪ٞ‬بي ديٍش س‪ٚ‬ي دػشٍب‪٘ ٜ‬لت و‪ٙ‬ذ‪.‬‬

‫ػبدي )‪٘ :(Normal‬شْ افضاس ٔحذ‪ٚ‬ديز ‪ٞ‬بيي ثشاي اػشا داسد‪ .‬س‪ٛ‬اثغ ‪ Win32 API‬سا ٕ٘ي س‪ٛ‬ا٘ذ فشاخ‪ٛ‬ا٘ي و‪ٙ‬ذ‪ٕ٘ ،‬ي س‪ٛ‬ا٘ذ دس ثخؾ ‪ٞ‬بي ٔحبفظز‬
‫ؿذ‪ ٜ‬ي سػيؼششي سغييش د‪ٞ‬ذ يب س‪ٚ‬ي فبيُ ‪ٞ‬بي ػيؼشٓ ث‪ٛٙ‬يؼذ يب سأييذي‪٘ ٝ‬لت و‪ٙ‬ذ‪.‬‬

‫ٔؼذ‪ٚ‬د )‪٘ :(Blocked‬شْ افضاس ث‪ٞ ٝ‬يچ ‪ٚ‬ػ‪ٔ ٝ‬ؼ‪ٛ‬ص اػشا ٘ذاسد‪.‬‬

‫‪66‬‬
‫‪http://m0911.wordpress.com‬‬

‫سأييذي‪ٞ ٝ‬بي ٘شْ افضاس‬


‫ثشاي ث‪ ٝ‬دػز آ‪ٚ‬سدٖ ٔؼ‪ٛ‬ص اػشا ثشاي ٘شْ افضاس سبٖ ٔي س‪ٛ‬ا٘يذ ثشاي آٖ ٘ـبٖ سأييذي‪ ٝ‬ثٍيشيذ‪ .‬دػشٍب‪ٞ ٜ‬ژبي ‪ٚ‬ي‪ٙ‬ژذ‪ٚ‬ص ٔ‪ٛ‬ثبيژُ د‪٘ ٚ‬ژ‪ٛ‬ع سأييذيژ‪ ٝ‬داس٘ژذ‪.‬‬
‫سأييذي‪ ٝ‬ي ‪ٚ‬يظ‪ ٚ ٜ‬سأييذي‪ ٝ‬ي ػبدي و‪ٌٔ ٝ‬بثك ثب ٘‪ٛ‬ع سأييذي‪ ٝ‬ػٌح دػ ششػي آٖ ‪ ٓٞ‬سؼييٗ ٔي ؿ‪ٛ‬د‪ .‬اص آٖ ػب و‪ ٝ‬يه ٌژش‪ ٜٚ‬خژبف ‪ٔ$‬ب٘‪ٙ‬ژذ ؿژشوز‬
‫ػبص٘ذ‪ ٜ‬يب ادشاس‪ٛ‬س سّفٗ ‪ٕٞ‬شا‪ #ٜ‬ايٗ سأييذي‪ٞ ٝ‬ب سا اساي‪ٔ ٝ‬ي د‪ٙٞ‬ذ‪ ،‬ؿٕب ثبيذ ثب ايٗ ٔشاوض ثشاي دسيبفز سأييذي‪ ٝ‬ي ٘شْ افضاس سبٖ دس اسسجبى ثبؿيذ‪ .‬اٌش چ‪ٝ‬‬
‫‪ٕٞ‬ب٘‪ٙ‬ذ يه ‪$ ISV‬فش‪ٚ‬ؿ‪ٙ‬ذ‪ ٜ‬ي ٔؼشمُ ٘شْ افضاس ; ‪ٕٔ #Independent Software Vendor‬ىٗ اػز ثخ‪ٛ‬ا‪ٞ‬يذ و‪٘ ٝ‬شْ افژضاس سژبٖ س‪ٚ‬ي دػژشٍب‪ٜ‬‬
‫‪ٞ‬بي ٔش‪ٛٙ‬ػي وبس و‪ٙ‬ذ‪ .‬ؿشوز ‪ Mobile2Market‬چ‪ٙ‬يٗ وبسي سا آغبص وشد‪ ٜ‬اػز ‪ٞ ٚ‬ش س‪ِٛ‬يذ و‪ٙٙ‬ذ‪ ٜ‬ي ٘ژشْ افژضاس ٔژي س‪ٛ‬ا٘ژذ ٔحلژ‪ِٛ‬ؾ سا ثژشاي‬
‫دسيبفز سأييذي‪ ٝ‬ث‪ ٝ‬آٖ ‪ٞ‬ب اساي‪ٕ٘ ٝ‬بيذ‪ .‬دسيبفز سأييذي‪ ٝ‬اص ‪ Mobile2Market‬ث ‪ ٝ‬ايٗ ٔؼ‪ٙ‬ب اػز و‪ ٝ‬ؿٕب يب ػبصٔبٖ ؿٕب ث‪ ٝ‬ػ‪ٛٙ‬اٖ يه س‪ِٛ‬يذ ‪ ٚ‬س‪ٛ‬صيژغ‬
‫و‪ٙٙ‬ذ‪ ٜ‬ي ٘شْ افضاس ث‪ ٝ‬سػٕيز ؿ‪ٙ‬بخش‪ٔ ٝ‬ي ؿ‪ٛ‬يذ‪.‬‬

‫ػٌ‪ٛ‬ح دػششػي ٘شْ افضاس‬


‫ػٌ‪ٛ‬ح دػششػي ٔخشّف ٔـخق ٔي و‪ٙٙ‬ذ و‪ ٝ‬يه ٘شْ افضاس ثذ‪ ٖٚ‬سأييذي‪ ٝ‬چ‪ ٝ‬وبس‪ٞ‬بيي ٔي س‪ٛ‬ا٘ژذ س‪ٚ‬ي دػژشٍب‪ٚ ٜ‬ي‪ٙ‬ژذ‪ٚ‬ص ٔ‪ٛ‬ثبيژُ ا٘ؼژبْ د‪ٞ‬ژذ‪ .‬ايژٗ‬
‫ػٌ‪ٛ‬ح دػششػي ٔخشّف‪ ،‬الي‪٘ (tier) ٝ‬بٔيذ‪ٔ ٜ‬ي ؿ‪٘ٛ‬ذ‪ٚ .‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ د‪ ٚ‬ػٌح دػششػي ث‪ ٝ‬ؿشح صيش داسد‪:‬‬
‫أ‪ٙ‬يز يه الي‪٘ : (One-tier security) ٝ‬شْ افضاس داساي سأييذي‪ ٝ‬ثب ٔؼ‪ٛ‬ص ‪ٚ‬يظ‪ ٜ‬س‪ٚ‬ي دػشٍب‪ ٜ‬اػشا ٔي ؿ‪ٛ‬د ‪ ٚ‬دػششػي وبُٔ ث‪ ٕٝٞ ٝ‬ي ثخؾ ‪ٞ‬ژبي‬
‫دػشٍب‪ ٜ‬داسد‪٘ .‬شْ افضاس ثذ‪ ٖٚ‬سأييذي‪ٕٔ ٝ‬ىٗ اػز ثؼش‪ ٝ‬ث‪ ٝ‬س‪ٙ‬ظيٕبر أ‪ٙ‬يشي دػشٍب‪ ٜ‬ثش‪ٛ‬ا٘ذ س‪ٚ‬ي آٖ اػشا ؿ‪ٛ‬د‪ .‬دس ايٗ ك‪ٛ‬سر ثب ‪ٕٞ‬بٖ ٔؼ‪ٛ‬ص ‪ٚ‬يظ‪ ٜ‬اػشا‬
‫خ‪ٛ‬ا‪ٞ‬ذ ؿذ‪.‬‬
‫أ‪ٙ‬يز د‪ ٚ‬الي‪٘ :(Two-tier security) ٝ‬شْ افضاس داساي سأييذي‪ٔ ٝ‬ي س‪ٛ‬ا٘ذ س‪ٚ‬ي دػشٍب‪ ٜ‬اػشا ؿ‪ٛ‬د ‪ ٚ‬ثؼش‪ ٝ‬ث‪٘ ٝ‬ژ‪ٛ‬ع سأييذيژ‪ ٝ‬اؽ ٔژي س‪ٛ‬ا٘ژذ ثژب ٔؼژ‪ٛ‬ص‬
‫ػبدي يب ‪ٚ‬يظ‪ ٜ‬اػشا ؿ‪ٛ‬د‪٘ .‬شْ افضاس ثذ‪ ٖٚ‬سأييذي‪ ٝ‬ثؼش‪ ٝ‬ث‪ ٝ‬س‪ٙ‬ظيٕبر أ‪ٙ‬يشي دػشٍب‪ٕٔ ٜ‬ىٗ اػز اػشا ؿ‪ٛ‬د‪ِ ،‬يىٗ دس ك‪ٛ‬سر اػشا ثب ٔؼژ‪ٛ‬ص ػژبدي اػژشا‬
‫خ‪ٛ‬ا‪ٞ‬ذ ؿذ‪.‬‬

‫س‪ٙ‬ظيٕبر أ‪ٙ‬يشي دػشٍب‪ٜ‬‬


‫حبَ و‪ ٝ‬سفب‪ٚ‬ر ٔؼ‪ٛ‬ص اػشاي ٘شْ افضاس ثب ٘ـبٖ سأييذي‪ ٝ‬ي ٘شْ افضاس سا ٔش‪ٛ‬ػ‪ ٝ‬ؿذيذ‪ ،‬يه دشػؾ ٔ‪ٔ ٟٓ‬ي ٔب٘ذ‪ .‬آيب ٘شْ افژضاس ؿژٕب ثژب ‪ٚ‬ػژ‪ٛ‬د ٘ذاؿژشٗ‬
‫سأييذي‪ٔ ٝ‬ي س‪ٛ‬ا٘ذ س‪ٚ‬ي يه دػشٍب‪ ٜ‬خبف ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ٘لت ‪ ٚ‬اػشا ؿ‪ٛ‬د؟ چ‪ٙ‬ذ س‪ٙ‬ظيٓ أ‪ٙ‬يشي اػشب٘ذاس ثشاي دػشٍب‪ٞ ٜ‬ژبي ‪ٚ‬ي‪ٙ‬ژذ‪ٚ‬ص ٔ‪ٛ‬ثبيژُ سؼشيژف‬
‫ؿذ‪ ٜ‬اػز و‪ ٝ‬ثشخي ث‪ ٝ‬ؿٕب ايٗ ٔؼ‪ٛ‬ص سا خ‪ٛ‬ا‪ٙٞ‬ذ داد و‪ ٝ‬ثش٘بٔ‪ ٝ‬ي ثذ‪ ٖٚ‬سأييذي‪ ٝ‬سا اػشا ٕ٘بييذ‪:‬‬
‫ثذ‪ ٖٚ‬أ‪ٙ‬يز )‪ ٕٝٞ :(Security Off‬ي ٘شْ افضاس ‪ٞ‬ب كشف ٘ظش اص داؿشٗ يب ٘ذاؿشٗ سأييذي‪ٔ ٝ‬ي س‪ٛ‬ا٘‪ٙ‬ذ ثب ٔؼ‪ٛ‬ص ‪ٚ‬يظ‪ ٜ‬س‪ٚ‬ي دػشٍب‪ ٜ‬اػشا‬ ‫‪‬‬
‫ؿ‪٘ٛ‬ذ‪.‬‬
‫سأييذ يه الي‪ ٝ‬اي س‪ٛ‬ػي وبسثش )‪ ٕٝٞ : (One-Tier Prompt‬ي ٘شْ افضاس ‪ٞ‬بي داساي ٘ـبٖ سأييذي‪ ٝ‬ي أ‪ٙ‬يشي‪ ،‬ثب ٔؼ‪ٛ‬ص ‪ٚ‬يظ‪ ٜ‬س‪ٚ‬ي‬ ‫‪‬‬
‫دػشٍب‪ ٜ‬اػشا ٔي ؿ‪٘ٛ‬ذ‪ .‬اػشاي ٘شْ افضاس ‪ٞ‬بي ثذ‪ ٖٚ‬س أييذي‪ ٝ‬ثب سلٕيٓ وبسثش ك‪ٛ‬سر ٔي ٌيشد‪ .‬اٌش وبسثش اػشاي ٘شْ افضاس ثذ‪ ٖٚ‬سأييذي‪ ٝ‬سا‬
‫ثذزيشد‪٘ ،‬شْ افضاس ثب ٔؼ‪ٛ‬ص ‪ٚ‬يظ‪ ٜ‬اػشا خ‪ٛ‬ا‪ٞ‬ذ ؿذ‪.‬‬
‫سأييذ د‪ ٚ‬الي‪ ٝ‬اي س‪ٛ‬ػي وبسثش )‪ ٕٝٞ :(Two-Tier Prompt‬ي ٘شْ افضاس ‪ٞ‬بي داساي سأييذي‪ ٝ‬س‪ٚ‬ي دػشٍب‪ ٜ‬اػشا خ‪ٛ‬ا‪ٙٞ‬ذ ؿذ ِيىٗ ٔؼ‪ٛ‬ص‬ ‫‪‬‬
‫اػشاي ‪ٚ‬يظ‪ ٜ‬يب ػ بدي ثؼش‪ ٝ‬ث‪ٛ٘ ٝ‬ع سأييذي‪ ٝ‬ي أ‪ٙ‬يشي سؼييٗ ٔي ؿ‪ٛ‬د‪٘ .‬شْ افضاس ‪ٞ‬بي ثذ‪ ٖٚ‬سأييذي‪ ،ٝ‬ثب اػبص‪ ٜ‬ي وبسثش ٔي س‪ٛ‬ا٘‪ٙ‬ذ اػشا ؿ‪٘ٛ‬ذ‬
‫ِيىٗ دس ك‪ٛ‬سر اػشا‪ ،‬فمي ثب ٔؼ‪ٛ‬ص ػبدي اػشا خ‪ٛ‬ا‪ٙٞ‬ذ ؿذ‪.‬‬
‫سأييذي‪ ٝ‬ؿخق طبِض )‪ :(Third-Party Signed‬فمي ٘شْ افضاس ‪ٞ‬بي داساي سأييذي‪ ٝ‬ي أ‪ٙ‬يشي ٔي س‪ٛ‬ا٘‪ٙ‬ذ س‪ٚ‬ي دػشٍب‪ ٜ‬اػشا ؿ‪٘ٛ‬ذ‪ٔ .‬ؼ‪ٛ‬ص‬ ‫‪‬‬
‫اػشاي ‪ٚ‬يظ‪ ٜ‬يب ػبدي ثؼش‪ ٝ‬ث‪ٛ٘ ٝ‬ع سأييذي‪ ٝ‬ي ٘شْ افضاس خ‪ٛ‬ا‪ٞ‬ذ ث‪ٛ‬د‪ .‬ثشاي دسيبفز سأييذي‪ ٝ‬ثبيذ دس يه ػيؼشٓ س‪ٛ‬ػؼ‪ ٝ‬ي ٘شْ افضاس ٔب٘‪ٙ‬ذ‬
‫‪ Mobile2Market‬طجز ٘بْ و‪ٙ‬يذ‪ .‬اغّت دػشٍب‪ٞ ٜ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ و‪ ٝ‬س‪ٛ‬ػي ادشاس‪ٛ‬س ‪ٞ‬بي سّفٗ ‪ٕٞ‬شا‪ ٜ‬خشيذاسي ‪ ٚ‬اساي‪ٔ ٝ‬ي ؿ‪٘ٛ‬ذ‬
‫سأييذي‪ ٝ‬ي ‪ Mobile2Market‬سا ثب خ‪ٛ‬د داس٘ذ‪.‬‬
‫ٔؼذ‪ٚ‬د )‪ :(Locked‬فمي ٘شْ افضاس ‪ٞ‬بي داساي سأييذي‪ ٝ‬ي أ‪ٙ‬يشي ٔي س‪ٛ‬ا٘‪ٙ‬ذ س‪ٚ‬ي دػشٍب‪ ٜ‬اػشا ؿ‪٘ٛ‬ذ‪ٔ .‬ؼ‪ٛ‬ص اػشاي ‪ٚ‬يظ‪ ٜ‬يب ػبدي ثش حؼت‬ ‫‪‬‬
‫٘‪ٛ‬ع سأييذي‪ٔ ٝ‬ـخق ٔي ؿ‪ٛ‬د‪.‬‬

‫‪67‬‬
‫‪http://m0911.wordpress.com‬‬

‫ٔؼ‪ٛ‬ص اػشا ‪ ٚ‬فبيُ ‪ٞ‬بي وشبثخب٘‪ ٝ‬ي ‪DLL‬‬


‫يه ٔ‪ٛ‬سد ديٍش ‪ٞ ٓٞ‬ؼز و‪ ٝ‬ثبيذ فىشي ث‪ ٝ‬حبَ آٖ ثى‪ٙ‬يٓ ‪ ٚ‬آٖ ‪ ٓٞ‬فبيُ ‪ٞ‬بي وشبثخب٘‪ ٝ‬ي دي‪ٙ‬بٔيىي اػز و‪ ٝ‬اص ايٗ دغ اص ‪ٕٞ‬بٖ اكژٌالح آؿژ‪ٙ‬بي‬
‫‪ DLL‬سا اػشفبد‪ٔ ٜ‬ي و‪ٙ‬يٓ‪ٕٞ .‬ب٘‪ٙ‬ذ ثش٘بٔ‪ٞ ٝ‬ب ‪ٞ DLL‬ب ‪ٔ ٓٞ‬ي س‪ٛ‬ا٘‪ٙ‬ذ ثذ‪ ٖٚ‬سأييذي‪ ٝ‬ثبؿ‪ٙ‬ذ يب ايٗ و‪ ٝ‬سأييذي‪ ٝ‬ثب ٔؼ‪ٛ‬ص اػشاي ‪ٚ‬يژظ‪ ٜ‬يژب ػژبدي داؿژش‪ٝ‬‬
‫ثبؿ‪ٙ‬ذ‪ .‬اص آٖ ػب و‪ٞ DLL ٝ‬ب اص داخُ ثش٘بٔ‪ٞ ٝ‬ب اػشفبد‪ٔ ٜ‬ي ؿ‪٘ٛ‬ذ يه ػؤاَ ػبِت ديؾ ٔي آيذ‪ .‬اٌش ٔظال يه ثش٘بٔ‪ ٝ‬ثب ٔؼ‪ٛ‬ص دػششػژي ‪ٚ‬يژظ‪ ٜ‬يژه‬
‫‪ DLL‬ثذ‪ ٖٚ‬سأييذي‪ ٝ‬سا و‪ ٝ‬آٖ ‪ ٓٞ‬اص داخُ خ‪ٛ‬د يه سبثغ ٔ‪ٛ‬سد إًي‪ٙ‬بٖ ‪ Win32 API‬سا فشا ٔي خ‪ٛ‬ا٘ذ‪ ،‬اػشفبد‪ ٜ‬و‪ٙ‬ذ چژ‪ ٝ‬اسفژبلي ٔژي افشژذ؟ اٌژش‬
‫فبيُ ‪ ٓٞ DLL‬ث‪ٕٞ ٝ‬بٖ ػٌح دػششػي ثش٘بٔ‪ ٝ‬اسسمب داد‪ ٜ‬ؿ‪ٛ‬د و‪ ٝ‬ايٗ يه ٘مق أ‪ٙ‬يشي خ‪ٛ‬ا‪ٞ‬ذ ث‪ٛ‬د‪.‬‬

‫‪68‬‬
‫‪http://m0911.wordpress.com‬‬

‫اص ايٗ س‪ ٚ‬ل‪ٛ‬ا٘يٗ صيش ثشاي ثش٘بٔ‪ٞ ٝ‬ب ايؼبد ؿذ‪ ٜ‬اػز سب ٌٔبثك آٖ ث‪ٞ DLL ٝ‬ب دػششػي ديذا و‪ٙٙ‬ذ‪:‬‬

‫سأييذي‪ ٝ‬ي د‪ ٚ‬الي‪ ٝ‬اي‬ ‫سأييذي‪ ٝ‬ي يه الي‪ ٝ‬اي‬ ‫ثذ‪ ٖٚ‬أ‪ٙ‬يز‬ ‫سشويت ثش٘بٔ‪DLL ٚ ٝ‬‬
‫ثش٘بٔ‪ ٝ‬ي ثذ‪ٔ ٖٚ‬ؼ‪ٛ‬ص‬
‫ػبدي ثب اػبص‪ ٜ‬ي وبسثش‬ ‫‪ٚ‬يظ‪ ٜ‬ثب اػبص‪ ٜ‬ي وبسثش‬ ‫‪ٚ‬يظ‪ٜ‬‬ ‫‪ DLL‬ثذ‪ٔ ٖٚ‬ؼ‪ٛ‬ص‬
‫ػبدي ثب اػبص‪ ٜ‬ي وبسثش‬ ‫‪ٚ‬يظ‪ ٜ‬ثب اػبص‪ ٜ‬ي وبسثش‬ ‫‪ٚ‬يظ‪ٜ‬‬ ‫‪ DLL‬ثب دػششػي ػبدي‬
‫ػبدي ثب اػبص‪ ٜ‬ي وبسثش‬ ‫‪ٚ‬يظ‪ ٜ‬ثب اػبص‪ ٜ‬ي وبسثش‬ ‫‪ٚ‬يظ‪ٜ‬‬ ‫‪ DLL‬ثب دػششػي ‪ٚ‬يظ‪ٜ‬‬
‫ثش٘بٔ‪ ٝ‬ي ثب ٔؼ‪ٛ‬ص ػبدي‬
‫ػبدي ثب اػبص‪ ٜ‬ي وبسثش‬ ‫‪ٚ‬يظ‪ٜ‬‬ ‫‪ٚ‬يظ‪ٜ‬‬ ‫‪ DLL‬ثذ‪ٔ ٖٚ‬ؼ‪ٛ‬ص‬
‫ػبدي‬ ‫‪ٚ‬يظ‪ٜ‬‬ ‫‪ٚ‬يظ‪ٜ‬‬ ‫‪ DLL‬ثب دػششػي ػبدي‬
‫ػبدي‬ ‫‪ٚ‬يظ‪ٜ‬‬ ‫‪ٚ‬يظ‪ٜ‬‬ ‫‪ DLL‬ثب دػششػي ‪ٚ‬يظ‪ٜ‬‬
‫ثش٘بٔ‪ ٝ‬ي ثب ٔؼ‪ٛ‬ص ‪ٚ‬يظ‪ٜ‬‬
‫غيش ٔؼبص‬ ‫‪ٚ‬يظ‪ٜ‬‬ ‫‪ٚ‬يظ‪ٜ‬‬ ‫‪ DLL‬ثذ‪ٔ ٖٚ‬ؼ‪ٛ‬ص‬
‫غيش ٔؼبص‬ ‫‪ٚ‬يظ‪ٜ‬‬ ‫‪ٚ‬يظ‪ٜ‬‬ ‫‪ DLL‬ثب دػششػي ػبدي‬
‫‪ٚ‬يظ‪ٜ‬‬ ‫‪ٚ‬يظ‪ٜ‬‬ ‫‪ٚ‬يظ‪ٜ‬‬ ‫‪ DLL‬ثب دػششػي ‪ٚ‬يظ‪ٜ‬‬

‫آصٔبيؾ ثش٘بٔ‪ ٝ‬دس حبِز ‪ٞ‬بي ٔخشّف س‪ٙ‬ظيٕبر أ‪ٙ‬يشي‬


‫يىي اص اثضاس ‪ٞ‬بي ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ٔ« 2008 ٛ‬ذيش أ‪ٙ‬يز دػشٍب‪ »ٜ‬يب ‪ٕٞ‬بٖ ‪ Device Security Manager‬اػز و‪ ٝ‬ث‪ ٝ‬ؿٕب أىژبٖ ٔژي د‪ٞ‬ژذ وژ‪ٝ‬‬
‫سظيٕبر أ‪ٙ‬يشي فؼبَ س‪ٚ‬ي يه دػشٍب‪ٚ ٜ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ؿجي‪ ٝ‬ػبصي ؿذ‪ ٜ‬سا ث‪ ٝ‬دػز آ‪ٚ‬سيذ‪.‬‬
‫٘ىش‪ :ٝ‬ؿٕب صٔب٘ي ٔي س‪ٛ‬ا٘يذ س‪ٙ‬ظيٕبر أ‪ٙ‬يشي سا س‪ٚ‬ي يه دػشٍب‪ ٜ‬فيضيىي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ سغييش د‪ٞ‬يذ و‪ ٝ‬س‪ٙ‬ظيٕبر أ‪ٙ‬يشي فؼّي آٖ‪ ،‬ثژ‪ ٝ‬ؿژٕب اػژبص‪ٜ‬‬
‫ي ايٗ وبس سا ثذ‪ٞ‬ذ‪ .‬دلز و‪ٙ‬يذ و‪ ٝ‬اٌش س‪ٙ‬ظيٕبر أ‪ٙ‬يشي يه دػشٍب‪ ٜ‬سا ث‪ ٝ‬حبِز ٔؼذ‪ٚ‬د )‪ (Locked‬سغييش د‪ٞ‬يذ‪ ،‬ايٗ حبِز لبثُ ثبصٌـژز ٘يؼژز‪.‬‬
‫دغ دس ايٗ ٔ‪ٛ‬سد احشيبى و‪ٙ‬يذ‪ .‬اِجش‪ٔ ٝ‬ذيش أ‪ٙ‬يز دػشٍب‪ ٜ‬دس ايٗ حبِز ث‪ ٝ‬ؿٕب ‪ٞ‬ـذاس خ‪ٛ‬ا‪ٞ‬ذ داد‪ .‬ثب اػشفبد‪ ٜ‬اص ؿجي‪ ٝ‬ػبص دػژشٍب‪ ٜ‬ثژ‪ ٝ‬ساحشژي ٔژي‬
‫س‪ٛ‬ا٘يذ سٕبٔي حبِز ‪ٞ‬بي أ‪ٙ‬يشي سا آصٔبيؾ ٕ٘بييذ‪.‬‬
‫ثب اػشفبد‪ ٜ‬اص ثش٘بٔ‪ ٝ‬ي ‪ٔ Device Security Manager‬ي س‪ٛ‬ا٘يذ ‪ٞ‬ش س‪ٙ‬ظيٓ أ‪ٙ‬يشي سا و‪ ٝ‬اص ديؾ سؼشيف ؿذ‪ ٜ‬اػز‪ ،‬فؼبَ و‪ٙ‬يذ يب س‪ٙ‬ظيٓ أ‪ٙ‬يشژي‬
‫ػذيذ سا ‪ٚ‬اسد )‪ (import‬ثش٘بٔ‪ ٝ‬و‪ٙ‬يذ‪ .‬ث‪ ٝ‬ػال‪ٔ ٜٚ‬ي س‪ٛ‬ا٘يذ ف‪ٟ‬شػز سٕبٔي سأييذي‪ٞ ٝ‬بي أ‪ٙ‬يشي ٘لت ؿذ‪ ٜ‬س‪ٚ‬ي دػشٍب‪ٚ ٜ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ يب ؿژجي‪ ٝ‬ػژبص‬
‫دػشٍب‪ ٜ‬سا ث‪ ٝ‬دػز آ‪ٚ‬سيذ‪.‬‬

‫‪69‬‬
‫‪http://m0911.wordpress.com‬‬

‫ؿىُ ‪ :35‬ثش٘بٔ‪ ٝ‬ي ‪Device Security Manager‬‬

‫س‪ٙ‬ظيٕبر أ‪ٙ‬يشي دػشٍب‪ٞ ٜ‬ب ٔي س‪ٛ‬ا٘ذ داخُ دش‪٘ٚ‬ذ‪ٞ ٜ‬بي ‪ XML‬سؼشيف ؿ‪٘ٛ‬ذ‪ٔ .‬ظبَ صيش سا داخُ ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ٔ 2008 ٛ‬ي س‪ٛ‬ا٘يذ ثجي‪ٙ‬يذ‪:‬‬

‫>‪<wap-provisioningdoc /‬‬
‫>‪<characteristic type="SecurityPolicy" /‬‬
‫>‪<parm name="4102" value="1" /‬‬
‫>‪<parm name="4122" value="0" /‬‬
‫>‪<parm name="4123" value="0" /‬‬
‫>‪</characteristic /‬‬
‫>‪</wap-provisioningdoc /‬‬

‫آصٔبيؾ ػٌ‪ٛ‬ح ٔخشّف دػششػي دس س‪ٙ‬ظيٕبر أ‪ٙ‬يشي ٔخشّف‬


‫حبَ و‪ ٝ‬يبد ٌشفشيذ چٌ‪ٛ‬س س‪ٙ‬ظيٕبر أ‪ٙ‬يشي ٔخشّف سا اػٕبَ و‪ٙ‬يذ‪ ،‬چ‪ٙ‬ذ آصٔبيؾ سا ا٘ؼبْ ٔي د‪ٞ‬يٓ‪ .‬لٌؼ‪ ٝ‬وذ صيش ث‪ ٝ‬ػ‪ٛٙ‬اٖ يه ٔظبَ ػبد‪ٔ ٜ‬ي‬
‫س‪ٛ‬ا٘ذ ٘مٌ‪ ٝ‬ي آغبص ثبؿذ‪ .‬ايٗ لٌؼ‪ ٝ‬وذ اص يه سبثغ سأييذ ؿذ‪ ٜ‬ي ‪ Win32 API‬اػشفبد‪ٔ ٜ‬ي و‪ٙ‬ذ‪ .‬اٌش ؿٕب ايٗ لٌؼ‪ ٝ‬وذ سا دس يه ثش٘بٔ‪ ٝ‬يب ‪DLL‬‬
‫لشاس د‪ٞ‬يذ ‪ ٚ‬ثشاي ‪ٞ‬ش وذاْ سأييذي‪ٞ (certificate) ٝ‬بي ٔخشّف ثٍيشيذ‪ ،‬يب حشي ثذ‪ ٖٚ‬سأييذي‪ ٝ‬اػشا و‪ٙ‬يذ دس ٘‪ٟ‬بيز خ‪ٛ‬ا‪ٞ‬يذ س‪ٛ‬ا٘ؼز وبسوشد ثش٘بٔ‪ٝ‬‬
‫سا دس س‪ٙ‬ظيٕبر ٔخشّف أ‪ٙ‬يشي آصٔبيؾ و‪ٙ‬يذ‪.‬‬
‫])"‪[DllImport("coredll.dll‬‬
‫;)(‪public extern static void PowerOffSystem‬‬
‫)‪private void btnInstructions_Click(object sender, EventArgs e‬‬
‫{‬
‫;)(‪PowerOffSystem‬‬
‫}‬

‫‪70‬‬
‫‪http://m0911.wordpress.com‬‬
‫اٌش ثش٘بٔ‪ٔ ٝ‬ؼبص ث‪ ٝ‬فشاخ‪ٛ‬ا٘ي ‪ٞ API‬بي سأييذ ؿذ‪ ٜ‬ثبؿذ‪ ،‬ثب اػشاي آٖ ٔي ثي‪ٙ‬يذ و‪ ٝ‬ثالفبكّ‪ ٝ‬ؿجي‪ ٝ‬ػبص دػشٍب‪ ٜ‬ثؼش‪ٔ ٝ‬ي ؿ‪ٛ‬د چ‪ ٖٛ‬خبٔ‪ٛ‬ؽ ؿذ‪ٜ‬‬
‫اػز ‪ ٚ‬اٌش ثش٘بٔ‪ٔ ٝ‬ؼبص ث‪ ٝ‬ايٗ فشاخ‪ٛ‬ا٘ي ٘جبؿذ ‪ٞ‬يچ اسفبلي ٕ٘ي افشذ ‪٘ API ٚ‬بديذ‪ٌ ٜ‬شفش‪ٔ ٝ‬ي ؿ‪ٛ‬د‪ .‬اٌش ؿٕب ثخ‪ٛ‬ا‪ٞ‬يذ دس ٘‪ٛ‬احي ٔحبفظز ؿذ‪ ٜ‬ي‬
‫ػيؼشٓ فبيّي يب سػيؼششي دػشٍب‪ ٜ‬ث‪ٛٙ‬يؼيذ ثب خٌبي دػششػي غيش ٔؼبص )‪ٛٔ (UnauthorizedAccessException‬اػ‪ ٝ‬خ‪ٛ‬ا‪ٞ‬يذ ؿذ‪.‬‬

‫٘لت ثش٘بٔ‪ٝ‬‬
‫سظيٕبر أ‪ٙ‬يشي دػشٍب‪ ٜ‬س‪ٚ‬ي ٘لت ثش٘بٔ‪ٞ ٝ‬ب ‪ ٓٞ‬اطش ٔي ٌزاسد‪ .‬سب اي‪ٙ‬ؼبي ٔمبِ‪ ،ٝ‬فشم ثش ايٗ ث‪ٛ‬د‪ ٜ‬اػز و‪٘ ٝ‬لت ٘شْ افضاس ‪ٞ‬ب اص داخُ ‪ٚ‬يظ‪ٚ‬اَ‬
‫اػش‪ٛ‬دي‪٘ 2008 ٛ‬لت ٔي ؿ‪٘ٛ‬ذ ‪ ٚ‬س‪ٙ‬ظيٕبر أ‪ٙ‬يشي ٘يض اص ًشيك ‪ Device Security Manager‬ك‪ٛ‬سر ٔي ٌيشد‪ .‬كذ اِجش‪ٍٙٞ ٝ‬بٔي و‪ ٝ‬دس حبَ‬
‫ثش٘بٔ‪ٛ٘ ٝ‬يؼي ‪ٞ‬ؼشيذ ايٗ أىبٖ‪ ،‬وبس ؿٕب سا خيّي آػبٖ ٔي و‪ٙ‬ذ‪ِ ،‬يىٗ دس ٘‪ٟ‬بيز ؿٕب ثش٘بٔ‪٘ ٝ‬بٖ سا ٔ‪ٙ‬شـش خ‪ٛ‬ا‪ٞ‬يذ وشد ‪ ٚ‬ث‪ٕٞ ٝ‬يٗ دِيُ ثبيذ‬
‫سؼشث‪ٌّٛٔ ٝ‬ثي دس صٔي‪ ٝٙ‬ي ٘لت ثش٘بٔ‪ ٝ‬ثشاي وبسثشاٖ ٘‪ٟ‬بيي )‪ (end users‬داؿش‪ ٝ‬ثبؿيذ ‪ ٚ‬ايٗ يؼ‪ٙ‬ي ثش٘بٔ‪ ٝ‬ي ؿٕب ث‪ ٝ‬ك‪ٛ‬سر يه فبيُ ‪ CAB‬يب‬
‫‪ٙٔ MSI‬شـش ٌشدد‪ .‬اٌش ثش٘بٔ‪ ٝ‬سبٖ ث‪ ٝ‬ك‪ٛ‬سر فبيُ ‪ٙٔ CAB‬شـش ؿ‪ٛ‬د‪ ،‬وبسثش ثبيذ فبيُ سا ث‪ ٝ‬داخُ دػشٍب‪ٚ ٜ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ خ‪ٛ‬دؽ وذي و‪ٙ‬ذ ‪ ٚ‬س‪ٛ‬ػي‬
‫ثش٘بٔ‪ ٝ‬ي اوؼذّ‪ٛ‬سس آٖ سا ثبص ‪ ٚ‬اػشا ٕ٘بيذ‪ .‬اٌش ‪ ٓٞ‬ثخ‪ٛ‬ا‪ٞ‬يذ فبيُ ‪ CAB‬سا داخُ يه فبيُ ‪$ Microsoft Installer‬يب ‪ٕٞ‬بٖ ‪ #MSI‬لشاس د‪ٞ‬يذ‬
‫وبسثشاٖ ٔي س‪ٛ‬ا٘‪ٙ‬ذ اص ًشيك ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص وبٔذي‪ٛ‬سش دػىشبح خ‪ٛ‬دؿبٖ صٔب٘ي و‪ ٝ‬دػشٍب‪ٚ ٜ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ؿبٖ اص ًشيك ثش٘بٔ‪ ٝ‬ي ‪ ActiveSync‬دس ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص‬
‫ايىغ دي يب ثش٘بٔ‪ ٝ‬ي ‪ Windows Mobile Device Center‬دس ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ‪ٚ‬يؼشب يب ػ‪ ٖٛ‬ث‪ ٝ‬وبٔذي‪ٛ‬سش ٔشلُ اػز‪ ،‬ثش٘بٔ‪ ٝ‬سا ٘لت و‪ٙٙ‬ذ‪.‬‬
‫اٌش س‪ٙ‬ظيٕبر أ‪ٙ‬يشي دػشٍب‪ ٜ‬ػخشٍيشا٘‪ ٝ‬ثبؿذ ٕٔىٗ اػز اػبص‪٘ ٜ‬ذ‪ٞ‬ذ و‪ ٝ‬فبيُ ‪ CAB‬ثذ‪ ٖٚ‬أوب س‪ٚ‬ي آٖ ٘لت ؿ‪ٛ‬د‪ .‬دس ‪ٚ‬الغ كشف سأييذي‪ٝ‬‬
‫داؿشٗ ثش٘بٔ‪ ٝ‬سبٖ وبفي ٘يؼز ثّى‪ ٝ‬ثبيذ ثشاي فبيُ ‪ ٓٞ CAB‬أوبي سأييذي‪ ٝ‬ثٍيشيذ‪ .‬اثضاس س‪ٛ‬ػؼ‪ ٝ‬ي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪ 6‬يه ثش٘بٔ‪ ٝ‬ي خي فشٔب٘ي ث‪ٝ‬‬
‫٘بْ ‪ cabsigntool.exe‬ثشاي ايٗ وبس داسد و‪ ٝ‬اص ‪ signtool.exe‬ي ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2008 ٛ‬اػشفبد‪ٔ ٜ‬ي و‪ٙ‬ذ‪ .‬ثشاي ساحشي وبس ث‪ٟ‬شش اػز اص خي‬
‫فشٔبٖ ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2008 ٛ‬اػشفبد‪ ٜ‬و‪ٙ‬يذ و‪ٔ ٝ‬ؼج‪ٛ‬س ٘جبؿيذ ٔشغيش ٔحيٌي ‪ path‬سا ثشاي يبفشٗ ايٗ ثش٘بٔ‪ٔ ٝ‬مذاس د‪ٞ‬ي و‪ٙ‬يذ‪ٔ .‬ظبَ صيش ٘ح‪ ٜٛ‬ي‬
‫اػشفبد‪ ٜ‬ي ‪ cabsigntool.exe‬سا اص ًشيك خي فشٔبٖ ث‪ ٝ‬ؿٕب ٘ـبٖ ٔي د‪ٞ‬ذ‪:‬‬
‫‪cabsigntool "C:\Users\UserVS2008\Documents\Visual Studio‬‬
‫"‪2008\Projects\HOL6SampleApp\DVDsMobileCAB\Debug\DVDsMobileCAB.cab‬‬
‫‪"C:\Users\UserVS2008\Documents\Visual Studio‬‬
‫"‪2008\Projects\HOL6SampleApp\DVDsMobileCAB\Debug\DVDsMobileCAB.cab‬‬
‫‪-f "C:\Program Files\Windows Mobile 6 SDK\Tools\Security\SDK Development‬‬
‫"‪Certificates\SampleUnPrivDeveloper.pfx‬‬
‫دس ايٗ ٔظبَ فبيُ ‪ CAB‬ثب ٘بْ ‪ ٚ DVDsMobileCab.cab‬سٕبْ ثش٘بٔ‪ٞ ٝ‬بي اػشايي داخُ آٖ‪ ،‬ثب يه سأييذي‪ ٝ‬ي آصٔبيـي ‪ -‬و‪ ٝ‬داخُ‬
‫‪ Windows Mobile 6 SDK‬اػز – أوب ٔي ؿ‪٘ٛ‬ذ‪ .‬ثش٘بٔ‪ ٝ‬ي ‪ cabsigntool.exe‬سا دس ايٗ ٔؼيش ‪ٔ ٓٞ‬ي س‪ٛ‬ا٘يذ ديذا و‪ٙ‬يذ‪:‬‬
‫‪\program files\Windows Mobile 6 SDK\Tools\Security‬‬
‫ثب يه ٍ٘ب‪ ٜ‬ث‪ ٝ‬دػش‪ٛ‬س ‪ٞ‬بي خي فشٔب٘ي ثبال ٔش‪ٛ‬ػ‪ٔ ٝ‬ي ؿ‪ٛ‬يذ و‪ ٝ‬ثب ايٗ ‪ ٕٝٞ‬دً٘ ‪ ٚ‬ف‪ ًٙ‬اٌش لشاس ثبؿذ ‪ٞ‬ش ثبس ٔ‪ٛ‬لغ اػشفبد‪ ٜ‬اص ‪cabsigntool.exe‬‬
‫ايٗ دبسأشش ‪ٞ‬ب سا ‪ٚ‬اسد ٕ٘بييذ احشٕبَ ثش‪ٚ‬ص خٌبي دػش‪ٛ‬سي ‪ٞ‬ؼز‪ .‬دغ ث‪ٟ‬شش آٖ اػز و‪ ٝ‬دس يه فبيُ دػش‪ ٝ‬اي ‪ bat‬ايٗ دػش‪ٛ‬س ‪ٞ‬ب سا لشاس د‪ٞ‬يذ ‪ٞ ٚ‬ش‬
‫ثبس آٖ سا فشاخ‪ٛ‬ا٘ي و‪ٙ‬يذ‪.‬‬

‫‪71‬‬
‫‪http://m0911.wordpress.com‬‬
‫ث‪ ٝ‬س‪ٚ‬ص سػب٘ي ثش٘بٔ‪ٞ ٝ‬ب‬
‫ثش خالف ثش٘بٔ‪ٞ ٝ‬بي دػىشبح و‪ ٝ‬دس ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2008 ٛ‬س‪ِٛ‬يذ ٔي ؿ‪٘ٛ‬ذ دس ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ أىبٖ ٘لت ث‪ ٝ‬س‪ٚ‬ؽ ‪ – ClickOnce‬و‪ ٝ‬أىبٖ ث‪ٝ‬‬
‫س‪ٚ‬ص سػب٘ي فبيُ ‪ٞ‬بي اص لجُ ٘لت ؿذ‪ ٜ‬سا دس ك‪ٛ‬سر سغييش آٖ دس ٘ؼخ‪ ٝ‬ي ػذيذ ٔي د‪ٞ‬ذ – ‪ٚ‬ػ‪ٛ‬د ٘ذاسد‪ِ .‬يىٗ ؿٕب ٔي س‪ٛ‬ا٘يذ وبسوشد ٔـبث‪ ٝ‬ايٗ سا‬
‫ٔظال ث‪ٚ ٝ‬ػيّ‪ ٝ‬ي ‪ٚ‬ة ػش‪ٚ‬يغ ايؼبد ٕ٘بييذ‪ .‬دس ايٗ ٔمبِ‪ ٝ‬س‪ٚ‬ؿي ٔـبث‪ ClickOnce ٝ‬ثشاي ث‪ ٝ‬س‪ٚ‬ص سػب٘ي ثش٘بٔ‪ٞ ٝ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ خ‪ٛ‬ا‪ٞ‬يذ ديذ‪.‬‬
‫ايٗ ٔظبَ كشفب يه ٘مٌ‪ ٝ‬ي آغبص خ‪ٛ‬ا‪ٞ‬ذ ث‪ٛ‬د ‪ ٚ‬ث‪ ٝ‬ؿٕب اًالػبر وبفي خ‪ٛ‬ا‪ٞ‬ذ داد و‪ ٝ‬خ‪ٛ‬دسبٖ ثش‪ٛ‬ا٘يذ ث‪ ٝ‬ايٗ س‪ٚ‬ؽ ثش٘بٔ‪ٞ ٝ‬بي سبٖ سا ث‪ ٝ‬س‪ٚ‬ص و‪ٙ‬يذ‪.‬‬
‫ثشاي ث‪ ٝ‬س‪ٚ‬ص سػب٘ي خ‪ٛ‬دوبس ثش٘بٔ‪ٞ ٝ‬بي سبٖ ٔي س‪ٛ‬ا٘يذ اص ‪ٚ‬ة ػش‪ٚ‬يؼي اػشفبد‪ ٜ‬و‪ٙ‬يذ و‪ ٝ‬آخشيٗ ٍ٘بسؽ ٔ‪ٙ‬شـش ؿذ‪ ٜ‬ي ثش٘بٔ‪ ٝ‬سا اػالْ ‪ ٚ‬ثب ٍ٘بسؽ‬
‫ثش٘بٔ‪ ٝ‬ي ٔ‪ٛ‬سد اػشفبد‪ ٜ‬ي فؼّي ٔمبيؼ‪ ٝ‬و‪ٙ‬ذ‪ .‬اص آٖ ػب و‪ ٝ‬ؿٕب ثبيذ يه ثش٘بٔ‪ ٝ‬ي دس حبَ اػشا سا ث‪ ٝ‬س‪ٚ‬ص سػب٘ي و‪ٙ‬يذ ثبيذ يه ثش٘بٔ‪ ٝ‬ي ٘لت و‪ٙٙ‬ذ‪ٜ‬‬
‫ي ٔؼضا ‪ٕٞ -‬ب٘‪ٙ‬ذ ٘لت و‪ٙٙ‬ذ‪ ٜ‬اي و‪ ٝ‬اص اثشذا ثش٘بٔ‪ ٝ‬سبٖ سا س‪ٚ‬ي دػشٍب‪٘ ٜ‬لت وشد‪ ٜ‬اػز‪ -‬ث‪ٛٙ‬يؼيذ‪.‬‬

‫٘لت يه ثش٘بٔ‪ ٝ‬ي ػذيذ‬


‫ثشاي ٘لت يه ثش٘بٔ‪ ٝ‬ثب لبثّيز ث‪ ٝ‬س‪ٚ‬ص سػب٘ي خ‪ٛ‬دوبس ثبيذ ثش٘بٔ‪ ٝ‬سبٖ سا اص ًشيك يه ‪ٚ‬ة ػبيز ‪٘ ASP.NET‬لت و‪ٙ‬يذ‪ .‬ثشاي داّ٘‪ٛ‬د ثش٘بٔ‪ ،ٝ‬وبسثش‬
‫ثبيذ ػبيز سا ثشاي ديذا وشدٖ ٔحُ داّ٘‪ٛ‬د آٖ ػؼشؼ‪ ٛ‬و‪ٙ‬ذ‪.‬‬

‫ؿىُ ‪ٚ :36‬ة ػبيز حب‪ٚ‬ي ثش٘بٔ‪ ٚ ٝ‬داّ٘‪ٛ‬د ث‪ ٝ‬س‪ٚ‬ص سػب٘ي آٖ‬

‫دس ؿىُ ‪ 2‬ؿٕب يه ‪ٚ‬ة ػبيز ٔي ثي‪ٙ‬يذ و‪ ٝ‬يه ثش٘بٔ‪ ٝ‬ي ػذيذ ثشاي داّ٘‪ٛ‬د ث‪ ٝ‬ك‪ٛ‬سر آٔبد‪ ٜ‬داسد‪ .‬ثب وّيه س‪ٚ‬ي آٖ ثش٘بٔ‪٘ ٝ‬لت ٘خ‪ٛ‬ا‪ٞ‬ذ ؿذ ثّى‪ٝ‬‬
‫ث‪ ٝ‬ػبي آٖ يه ثش٘بٔ‪ ٝ‬ي ٘لت و‪ٙٙ‬ذ‪ ٜ‬س‪ٚ‬ي دػشٍب‪٘ ٜ‬لت ٔي ؿ‪ٛ‬د‪ .‬ثش٘بٔ‪ ٝ‬ي ٘لت و‪ٙٙ‬ذ‪ ٜ‬دس ‪ٕٞ‬بٖ د‪ٛ‬ؿ‪ ٝ‬اي و‪ ٝ‬ثش٘بٔ‪ ٝ‬ي اكّي دس آٖ ٘لت خ‪ٛ‬ا‪ٞ‬ذ‬
‫ؿذ لشاس ٔي ٌيشد‪ .‬ثش٘بٔ‪ ٝ‬ي ٘لت و‪ٙٙ‬ذ‪ ٜ‬دس ػيٗ حبَ يه ٔيب٘جش ‪٘ ٓٞ‬بْ ثب ثش٘بٔ‪ ٝ‬ي اكّي دس د‪ٛ‬ؿ‪ ٝ‬ي ‪ Program Files‬ايؼبد خ‪ٛ‬ا‪ٞ‬ذ وشد‪.‬‬

‫‪72‬‬
‫‪http://m0911.wordpress.com‬‬
‫دغ اص داّ٘‪ٛ‬د ثش٘بٔ‪ ٝ‬ي ث‪ ٝ‬س‪ٚ‬ص سػب٘ي‪ ،‬وبسثش ٔي س‪ٛ‬ا٘ذ دس د‪ٛ‬ؿ‪ ٝ‬ي ‪ Programs‬س‪ٚ‬ي آٖ وّيه ‪ ٚ‬ثش٘بٔ‪ ٝ‬ي ث‪ ٝ‬س‪ٚ‬ص سػب٘ي سا اػشا ٕ٘بيذ‪ .‬اص آ٘ؼب و‪ٝ‬‬
‫ثش٘بٔ‪ ٝ‬ي اكّي ‪ٛٙٞ‬ص لبثُ دػششػي ٘يؼز ثش٘بٔ‪ ٝ‬ي ث‪ ٝ‬س‪ٚ‬ص سػب٘ي ث‪ ٝ‬ػبي آٖ اػشا ٔي ؿ‪ٛ‬د ‪$‬ؿىُ ‪#3‬‬

‫ؿىُ ‪ :37‬ا‪ِٚ‬يٗ اػشاي ثش٘بٔ‪ٝ‬‬

‫ثش٘بٔ‪ ٝ‬ي ث‪ ٝ‬س‪ٚ‬ص سػب ٘ي اص ًشيك دبسأشش خي فشٔبٖ ٔش‪ٛ‬ػ‪ٔ ٝ‬ي ؿ‪ٛ‬د و‪ ٝ‬آيب س‪ٛ‬ػي وبسثش اػشا ؿذ‪ ٜ‬اػز يب اص داخُ ثش٘بٔ‪ ٝ‬ي اكّي‪ .‬حبِز د‪ ْٚ‬صٔب٘ي‬
‫ديؾ ٔي ايذ و‪ ٝ‬ث‪ ٝ‬س‪ٚ‬ص سػب٘ي ػذيذي داخُ ‪ٚ‬ة ػبيز ٔ‪ٙ‬شـش ؿذ‪ ٜ‬ثبؿذ‪ .‬وذ صيش – و‪ ٝ‬ث‪ ٝ‬ػ‪ٛٙ‬اٖ ثخـي اص ثش٘بٔ‪ ٝ‬ي ث‪ ٝ‬س‪ٚ‬ص سػب٘ي داخُ س‪ٚ‬يذاد‬
‫‪ Form_Load‬اػشا ٔي ؿ‪ٛ‬د‪٘ -‬ـبٖ ٔي د‪ٞ‬ذ و‪ ٝ‬چٌ‪ٛ‬س اػشاي ثبس ا‪ َٚ‬سا اص اػشاي حبِز ث‪ ٝ‬س‪ٚ‬ص سػب٘ي سـخيق د‪ٞ‬يٓ‪.‬‬

‫)‪private void MainForm_Load(object sender, EventArgs e‬‬


‫{‬
‫)‪if (_args == null || _args.Length == 0 || _args[0].Length == 0‬‬
‫{‬
‫;]‪_args = new string[1‬‬
‫;‪_args[0] = initialURL‬‬
‫;‪label1.Text = Properties.Resources.InstallString‬‬
‫}‬
‫‪else‬‬
‫{‬
‫;‪label1.Text = Properties.Resources.UpgradeString‬‬
‫}‬
‫}‬

‫صٔب٘ي و‪ ٝ‬ثش٘بٔ‪٘ ٝ‬لت ٔي ؿ‪ٛ‬د ٔيب٘جش داخُ د‪ٛ‬ؿ‪ ٝ‬ي ‪ Program Files‬سا ً‪ٛ‬سي سغييش ٔي د‪ٞ‬ذ و‪ ٝ‬دس اػشاي ثؼذي و‪ ٝ‬وبسثش ثش٘بٔ‪ ٝ‬سا اص داخُ‬
‫د‪ٛ‬ؿ‪ ٝ‬ي ‪ Program Files‬اػشا ٔي و‪ٙ‬ذ ثش٘بٔ‪ ٝ‬ي اكّي اػشا ؿ‪ٛ‬د ٘‪ ٝ‬ثش٘بٔ‪ ٝ‬ي ث‪ ٝ‬س‪ٚ‬ص سػب٘ي‪.‬‬

‫‪73‬‬
http://m0911.wordpress.com

(application updater) ‫ص سػب٘ي‬ٚ‫ س‬ٝ‫ ي ث‬ٝٔ‫ اػشاي آٖ اص ًشيك ثش٘ب‬ٚ ٝٔ‫ ٘لت ثش٘ب‬:38 ُ‫ؿى‬

ٖ‫ ٔحن دبيب‬ٝ‫ ايٗ وبس ث‬.‫د‬ٛ‫ اؽ اػشا ٔي ؿ‬ٜ‫ذ‬ٙٙ‫ػي ٘لت و‬ٛ‫دوبس س‬ٛ‫س خ‬ًٛ ٝ‫ ي اكّي ث‬ٝٔ‫ ثش٘ب‬،ٜ‫ذ‬ٙٙ‫ ي ٘ لت و‬ٝٔ‫ػي ثش٘ب‬ٛ‫ س‬ٝٔ‫دغ اص ٘لت ثش٘ب‬
‫ ي‬ٝٔ‫ ي اكّي سا اص داخُ ثش٘ب‬ٝٔ‫س ثش٘ب‬ٌٛ‫ چ‬ٝ‫ذ و‬ٞ‫ وذ صيش ٘ـبٖ ٔي د‬.‫د‬ٛ‫ ا٘ؼبْ ٔي ؿ‬Menu | Exit ‫ ي‬ٝٙ‫ػي وبسثش اص ًشيك ٌضي‬ٛ‫ ي ٘لت س‬ٝٔ‫ثش٘ب‬
ٖ‫ ٘يبص سب‬ٝ‫ ث‬ٝ‫ ثؼش‬ٚ ‫يذ‬ٙ‫ ساحشي آٖ سا دػشىبسي و‬ٝ‫ا٘يذ ث‬ٛ‫ِي ٔي س‬ٚ ‫ ٘يؼز‬،‫ؼشيذ‬ٞ ‫ د٘جبِؾ‬ٝ‫ ؿٕب ث‬ٝ‫ ي آ٘چ‬ٕٝٞ ‫ وذ صيش‬ٝ‫ اِجش‬.ٓ‫ي‬ٙ‫ اػشا و‬ٜ‫ذ‬ٙٙ‫٘لت و‬
:‫يذ‬ٙ‫ صيبدؽ و‬ٚ ٓ‫و‬

private void menuExit_Click(object sender, EventArgs e)


{
if (label1.Text.Equals(Properties.Resources.InstallString) && ! appInstalled)
{
Close();
}
else
{
StartDVDsMobile();
}
}

private void StartDVDsMobile()


{
Process theApp = null;
try
{
theApp = Process.Start(@"\Program Files\DVDsMobile\DVDsMobile.exe",
Process.GetCurrentProcess().Id.ToString());
}
catch (Win32Exception exc)
{
if (exc.NativeErrorCode == ERROR_FILE_NOT_FOUND)
{

74
‫‪http://m0911.wordpress.com‬‬
‫;)"‪MessageBox.Show("DVDsMobile.exe not found.‬‬
‫}‬
‫)‪else if (exc.NativeErrorCode == ERROR_ACCESS_DENIED‬‬
‫{‬
‫;)"‪MessageBox.Show("No permissions to start DVDsMobile.exe.‬‬
‫}‬
‫}‬
‫}‬

‫دس لٌؼ‪ ٝ‬وذ ثبال ٔذيش س‪ٚ‬يذاد ‪ menuExit_Click‬سا ٔي ثي‪ٙ‬يذ و‪ ٝ‬سؼييٗ ٔي و‪ٙ‬ذ آيب ثش٘بٔ‪ ٝ‬ي اكّي سا اػشا ٕ٘بيذ يب فمي اص ثش٘بٔ‪ ٝ‬ي ٘لت و‪ٙٙ‬ذ‪ٜ‬‬
‫خبسع ؿ‪ٛ‬د‪ .‬اٌش ٍ٘بسؽ ػذيذسش ثش٘بٔ‪٘ ٝ‬لت ؿذ‪ ٜ‬ثبؿذ‪ ،‬ثش٘بٔ‪ ٝ‬ي ث‪ ٝ‬س‪ٚ‬ص سػب٘ي‪ٍ٘ ،‬بسؽ ػذيذ سا اػشا ٔي و‪ٙ‬ذ ‪ ٚ‬ؿ‪ٙ‬بػ‪ ٝ‬ي دشداصؽ يب ‪ٕٞ‬بٖ‬
‫‪ process identification‬خ‪ٛ‬د سا ث‪ ٝ‬داخُ آٖ اسػبَ ٔي و‪ٙ‬ذ و‪ ٝ‬ثش٘بٔ‪ ٝ‬ي اكّي ثش‪ٛ‬ا٘ذ ثش٘بٔ‪ ٝ‬ي ث‪ ٝ‬س‪ٚ‬ص سػب٘ي سا اص حبفظ‪ ٝ‬خبسع و‪ٙ‬ذ‪ .‬ثب ايٗ و‪ٝ‬‬
‫دس ظب‪ٞ‬ش ايٗ وبس هش‪ٚ‬سي ث‪٘ ٝ‬ظش ٕ٘ي سػذ أب اص ٘ظش ايٗ و‪ ٝ‬س‪ٛ‬ػ ‪ ٝ‬وبسثش سا ث‪ ٝ‬اػشاي ثش٘بٔ‪ ٝ‬ي ػذيذ ديؾ اص اسٕبْ ثش٘بٔ‪ ٝ‬ي فؼّي ػّت ٔي و‪ٙ‬ذ‬
‫ٔفيذ اػز‪.‬‬

‫‪75‬‬
‫‪http://m0911.wordpress.com‬‬
‫ث‪ ٝ‬س‪ٚ‬ص سػب٘ي ثش٘بٔ‪ٝ‬‬
‫‪ٞ‬ش ثبس و‪ ٝ‬ثش٘بٔ‪ ٝ‬س‪ٛ‬ػي وبسثش اػشا ٔي ؿ‪ٛ‬د‪ٔ ،‬ي س‪ٛ‬ا٘ذ يه ‪ٚ‬ة ػش‪ٚ‬يغ اص ‪ٕٞ‬بٖ ‪ٚ‬ة ػبيشي و‪ ٝ‬ثش٘بٔ‪ ٝ‬ي ٘لت و‪ٙٙ‬ذ‪ ٜ‬سا اص آٖ داّ٘‪ٛ‬د وشديٓ‪،‬‬
‫فشاخ‪ٛ‬ا٘ي ٕ٘بيذ‪ٚ .‬ة ػش‪ٚ‬يغ ٔي س‪ٛ‬ا٘ذ ؿٕبس‪ ٜ‬ي آخشيٗ ٍ٘بسؽ سٕبٔي اػٕجّي ‪ٞ‬ب ٔ‪ٛ‬سد اػشفبد‪ ٜ‬ثش٘بٔ‪ ٝ‬سا اػالْ ٕ٘بيذ سب ثش٘بٔ‪ ٝ‬ي اكّي آٖ ‪ٞ‬ب سا ثب‬
‫ؿٕبس‪ ٜ‬ي ٍ٘بسؽ ‪ٞ‬بي خ‪ٛ‬دؽ ٔمبيؼ‪ ٝ‬و‪ٙ‬ذ‪ .‬اٌش ٍ٘بسؽ ‪ٞ‬بي ػذيذ دس ‪ٚ‬ة ػبيز ٔ‪ٙ‬شـش ؿذ‪ ٜ‬ثبؿذ ثش٘ب‪ ٜ‬يه اػالٖ ث‪ ٝ‬وبسثش ٘ـبٖ ٔي د‪ٞ‬ذ و‪ ٝ‬آيب‬
‫ٔي خ‪ٛ‬ا‪ٞ‬ذ ثش٘بٔ‪ ٝ‬سا ث‪ ٝ‬س‪ٚ‬ص ٘ ٕبيذ يب ايٗ و‪ٍ٘ ٝ‬بسؽ فؼّي سا اػشا ٕ٘بيذ‪ .‬ايٗ وبس ثبػض ٔي ؿ‪ٛ‬د و‪ ٝ‬آغبص اػشاي ثش٘بٔ‪ ٝ‬وٕي ً‪ٛ‬ال٘ي سش ؿ‪ٛ‬د ‪ِٚ‬ي ٔضيز‬
‫ايٗ سا ‪ ٓٞ‬داسد و‪ ٝ‬وبسثش ‪ٕٞ‬يـ‪ ٝ‬اص آخشيٗ ٍ٘بسؽ اػشفبد‪ٔ ٜ‬ي و‪ٙ‬ذ‪ .‬ثشاي ػبد‪ ٜ‬سش ؿذٖ وبس‪ ،‬ثش٘بٔ‪ ٝ‬ي ٔب ‪ٚ‬كُ ث‪ٛ‬دٖ يب ٘ج‪ٛ‬دٖ ؿجى‪ ٝ‬سا ثشسػي ٕ٘ي‬
‫و‪ٙ‬ذ‪ .‬اِجش‪ ٝ‬دس ثش٘بٔ‪ ٝ‬ي ‪ٚ‬الؼي ٔي س‪ٛ‬ا٘يذ ثب اػشفبد‪ ٜ‬اص أىب٘بر ‪ Stat & Notification Broker‬ايٗ أىبٖ سا فشا‪ٕ٘ ٓٞ‬بييذ‪.‬‬

‫ؿىُ ‪ :39‬ث‪ ٝ‬س‪ٚ‬ص سػب٘ي خ‪ٛ‬دوبس دس ػُٕ‬

‫ثشاي داّ٘‪ٛ‬د ٍ٘بسؽ ػذيذ ثش٘بٔ‪ ،ٝ‬ثش٘بٔ‪ ٝ‬ي ث‪ ٝ‬س‪ٚ‬ص سػب٘ي اص ًشيك يه و‪ٙ‬ششَ ٔش‪ٚ‬سٌش ‪ٚ‬ة )‪ٔ (Web Browser‬خفي ‪ٚ‬اسد ػبيز ٔي ؿ‪ٛ‬د ‪ ٚ‬ثش٘بٔ‪ٝ‬‬
‫سا داّ٘‪ٛ‬د ٔي و‪ٙ‬ذ‪ .‬اػشفبد‪ ٜ‬اص و‪ٙ‬ششَ ٔش‪ٚ‬سٌش ‪ٚ‬ة‪ ،‬وبس داّ٘‪ٛ‬د ثش٘بٔ‪ ٝ‬سا ثذ‪٘ ٖٚ‬يبص ث‪ ٝ‬وبس اهبفي ثب ‪ٚ‬ة ػش‪ٚ‬يغ أىبٖ دزيش ٔي ٕ٘بيذ‪ .‬وذ ٔشث‪ٛ‬ى ث‪ٚ ٝ‬ة‬
‫ػبيز سا دس ايٗ ٔمبِ‪ ٝ‬اؿبس‪ ٜ‬اي ٘ىشد‪ ٜ‬اْ ‪ِٚ‬ي ؿٕب ٔي س‪ٛ‬ا٘يذ يه س‪٘ٚ‬ذ وبُٔ اص ايٗ وبس سا دس ثخؾ ‪ٞ‬فشٓ ‪ٕٞ‬يٗ ػشي ٔمبِ‪ ٝ‬ثجي‪ٙ‬يذ‪ .‬دس وذ صيش ٔي‬
‫ثي‪ٙ‬يذ و‪ ٝ‬چٌ‪ٛ‬س ثش٘بٔ‪ ٝ‬ي اكّي ثشسػي ٔي و‪ٙ‬ذ و‪ ٝ‬آيب ٍ٘بسؽ ػذيذسشؽ ٔ‪ٙ‬شـش ؿذ‪ ٜ‬اػز يب ٘‪:ٝ‬‬

‫‪76‬‬
www.SoftGozar.Com
http://m0911.wordpress.com
private void MainFormNoTouch_Load(object sender, EventArgs e)
{
this.Text = Properties.ResourcesNoTouch.MainFormNoTouchTitle;
this.menuItemExit.Text = Properties.ResourcesNoTouch.MenuItemExitText;
if (_processID != -1)
{
// We have just been updated, so kill our update process.
Process.GetProcessById(_processID).CloseMainWindow();
}
else
{
DVDsMobileUpdateService.DVDsMobileUpdateService updateService =
new DVDsMobileNoTouch.DVDsMobileUpdateService.DVDsMobileUpdateService();
string[] latestDVDsMobileVersion = updateService.DVDsMobileVersion().Split(
new char[] { '.' });
string[] latestDVDsMobileVersionNoTouch =
updateService.DVDsMobileVersionNoTouch().Split(
new char[] {'.'});
string[] currentDVDsMobileVersion = _callingAssembly.Split(
new char[] { '.' });
Version currentDVDsMobileVersionNoTouch =
Assembly.GetExecutingAssembly().GetName().Version;
bool update = false;
update = (Convert.ToInt32(latestDVDsMobileVersion[0]) >
Convert.ToInt32(currentDVDsMobileVersion[0])) ||
(Convert.ToInt32(latestDVDsMobileVersion[1]) >
Convert.ToInt32(currentDVDsMobileVersion[1])) ||
(Convert.ToInt32(latestDVDsMobileVersionNoTouch[0]) >
currentDVDsMobileVersionNoTouch.Major) ||
(Convert.ToInt32(latestDVDsMobileVersionNoTouch[1]) >
currentDVDsMobileVersionNoTouch.Minor);
if (update)
{
if (MessageBox.Show(
"A new version of DVDsUpdate is found! " +
"Do you want to install the new version?",
"New version available",
MessageBoxButtons.YesNo,
MessageBoxIcon.Question,
MessageBoxDefaultButton.Button2) == DialogResult.Yes)
{
Process.Start(@"\Program Files\DVDsMobile\DVDsMobileAutoUpdater.exe",
@"http://192.168.2.102:5746/DownloadForm.aspx");
Application.Exit();
}
}
}
}

77
‫‪http://m0911.wordpress.com‬‬
‫دس ايٗ لٌؼ‪ ٝ‬وذ ٔذيش س‪ٚ‬يذاد ‪ Form_Load‬سا ثشاي ثشسػي ايٗ و‪ٍ٘ ٝ‬بسؽ ػذيذسش ٔ‪ٙ‬شـش ؿذ‪ ٜ‬اػز يب ٘‪ ،ٝ‬اػشفبد‪ٔ ٜ‬ي و‪ٙ‬يٓ‪ .‬ثذيٗ ٔ‪ٙ‬ظ‪ٛ‬س د‪ٚ‬‬
‫ٔشذ ٔشث‪ٛ‬ى ث‪ٚ ٝ‬ة ػش‪ٚ‬يغ ‪ DVDsMocileUpdateService‬فشا خ‪ٛ‬ا٘ي ٔي ؿ‪٘ٛ‬ذ‪ .‬دس ػيٗ حبَ ثش٘بٔ‪ ٝ‬ؿٕبس‪ ٜ‬ي ٍ٘بسؽ خ‪ٛ‬دؽ سا ‪ٔ ٓٞ‬ي‬
‫خ‪ٛ‬ا٘ذ ‪ ٚ‬اٌش ٍ٘بسؽ ٔ‪ٛ‬ػ‪ٛ‬د دس ػبيز ػذيذسش ثبؿذ‪ ،‬يه د‪ٙ‬ؼش‪ ٜ‬ي ديغبْ ثشاي وبسثش ٕ٘بيؾ داد‪ٔ ٜ‬ي ؿ‪ٛ‬د و‪ ٝ‬اص ٔيبٖ د‪ٌ ٚ‬ضي‪ ٝٙ‬ي ث‪ ٝ‬س‪ٚ‬ص سػب٘ي ‪ٚ‬‬
‫اػشاي ٍ٘بسؽ فؼّي يىي ا٘شخبة ٕ٘بيذ‪ .‬اٌش وبسثش ٌضي‪ ٝٙ‬ي ث‪ ٝ‬س‪ٚ‬ص سػب٘ي سا ا٘شخبة ٕ٘بيذ‪ ،‬ثش٘بٔ‪ ٝ‬ي ث‪ ٝ‬س‪ٚ‬ص سػب٘ي اػشا ٔي ؿ‪ٛ‬د ‪ ٚ‬ثش٘بٔ‪ ٝ‬ي اكّي‪،‬‬
‫خ‪ٛ‬دؽ سا اص حبفظ‪ ٝ‬خبسع ٔي و‪ٙ‬ذ‪ .‬دغ اص ٘لت ٍ٘بسؽ ػذيذ س‪ٚ‬ي دػشٍب‪ ،ٜ‬ثش٘بٔ‪ ٝ‬ي ث‪ ٝ‬س‪ٚ‬ص سػب٘ي‪ٍ٘ ،‬بسؽ ػذيذ ثش٘بٔ‪ ٝ‬ي اكّي سا اػشا ٔي‬
‫ٕ٘بيذ‪.‬‬

‫‪78‬‬
‫‪http://m0911.wordpress.com‬‬

‫فصل هفتم‬

‫توسعه تراي وب موتايل‬

‫‪79‬‬
‫‪http://m0911.wordpress.com‬‬
‫ٔمذٔ‪ٝ‬‬

‫صٔب٘ي و‪ ٝ‬ثشاي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ثش٘بٔ‪ٔ ٝ‬ي ٘‪ٛ‬يؼيذ يه دشػؾ سا ‪ٕٞ‬بٖ ا‪ َٚ‬ثبيذ دبػخ د‪ٞ‬يذ‪ .‬آيب ثش٘بٔ‪ ٝ‬ث‪ ٝ‬ك‪ٛ‬سر ٔحّي س‪ٚ‬ي دػشٍب‪ ٜ‬اػشا خ‪ٛ‬ا‪ٞ‬ذ ؿذ؟‬
‫ثب دبػخ ث‪ ٝ‬ايٗ دشػؾ ٔـخق خ‪ٛ‬ا‪ٞ‬ذ ؿذ و‪ ٝ‬آيب ٘شْ افضاس سحز ‪ٚ‬ة ٔ‪ٙ‬بػت سش ‪ٞ‬ؼز يب ٘‪ .ٝ‬اٌش دػشٍب‪ٛٔ ٜ‬سد ٘ظش فبلذ اسلبَ ٌٕٔئٗ ث‪ ٝ‬اي‪ٙ‬شش٘ز‬
‫اػز‪٘ ،‬شْ افضاس سحز ‪ٚ‬ة اكال ث‪ ٝ‬دسد ٘خ‪ٛ‬ا‪ٞ‬ذ خ‪ٛ‬سد‪ .‬ث‪ ٝ‬ػجبسر ث‪ٟ‬شش اٌش دػشٍب‪ٛٔ ٜ‬سد ٘ظش ‪ٕٞ‬يـ‪ٔ ٝ‬ي س‪ٛ‬ا٘ذ ث‪ ٝ‬ؿجى‪ ٝ‬ي اي‪ٙ‬شش٘ز ٔشلُ ؿ‪ٛ‬د‪٘ ،‬شْ‬
‫افضاس سحز ‪ٚ‬ة‪ ،‬ا٘شخبة ث‪ٟ‬ششي اػز‪ .‬يه أشيبص ٘شْ افضاس سحز ‪ٚ‬ة اي ٗ اػز و‪٘ ٝ‬يبصي ٘ذاسد حشٕب س‪ٚ‬ي دػشٍب‪ٚ ٜ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ اػشا ؿ‪ٛ‬د ‪ ٚ‬اص ًشفي‬
‫‪ ٓٞ‬س‪ٚ‬ي ًيف ‪ٚ‬ػيؼي اص دػشٍب‪ٞ ٜ‬ب لبثُ اػشا اػز‪ .‬دػشٍب‪ٞ ٜ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ػذيذ ‪ٍٕٞ‬ي اص ٘شْ افضاس ‪ٞ‬بي سحز ‪ٚ‬ة دـشيجب٘ي ٔي و‪ٙٙ‬ذ ‪ ٚ‬ايٗ‬
‫سا ٔذي‪ٞ IEMobile ٖٛ‬ؼش‪ٙ‬ذ و‪ ٝ‬ثش دبي‪ ٝ‬ي ثشخي لبثّيز ‪ٞ‬بي اي‪ٙ‬شش٘ز اوؼذّ‪ٛ‬سس ػبخش‪ ٝ‬ؿذ‪ ٜ‬اػز‪ .‬دس دػشٍب‪ٞ ٜ‬بي اخيش ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ‪ ،‬وبسثشاٖ‬
‫دسػز ‪ٕٞ‬ب٘‪ٙ‬ذ دػشٍب‪ٞ ٜ‬بي دػىشبح اص اي‪ٙ‬شش٘ز اػشفبد‪ٔ ٜ‬ي و‪ٙٙ‬ذ‪ .‬س‪ٟٙ‬ب سفب‪ٚ‬ر فمي ا٘ذاص‪ ٜ‬ي و‪ٛ‬چه سش كفح‪ ٝ‬ي ٕ٘بيؾ اػز‪ .‬دس هٕٗ اص أىب٘بر‬
‫‪ AJAX ٚ ASP.NET 3.5‬ثشاي وٕشش ؿذٖ سجبدَ داد‪ ٜ‬ثيٗ والي‪ٙ‬ز ‪$‬دػشٍب‪ ٚ # ٜ‬ػش‪ٚ‬س اػشفبد‪ٔ ٜ‬ي ٕ٘بي‪ٙ‬ذ‪ .‬ايٗ أىبٖ ث‪ٚ ٝ‬يظ‪ ٜ‬دس اسلبَ اي‪ٙ‬شش٘ز‬
‫ثب ػشػز وٓ ٔب٘‪ٙ‬ذ ‪ GPRS‬ثؼيبس وبس سا‪ ٜ‬ا٘ذاص اػز‪.‬‬

‫دس ايٗ ٔمبِ‪ ٝ‬اًالػبسي سا دس ثبس‪ ٜ‬ي س‪ٛ‬ػؼ‪ ٝ‬ي ٘شْ افضاس ‪ٞ‬بي سحز ‪ٚ‬ة ٔ‪ٛ‬ثبيُ‪ ،‬س‪ٙ‬ظيٓ ثش٘بٔ‪ ٝ‬ي ‪ٚ‬ة ثشاي دـشيجب٘ي اص ‪ ٚ AJAX‬دس ٘‪ٟ‬بيز اػشفبد‪ٜ‬‬
‫اص و‪ٙ‬ششَ ‪ٞ‬بي ٔش‪ٚ‬سٌش داخُ دش‪ٚ‬ط‪ ٜ‬ي ‪ٚ Smart Device‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ ٛ‬خ‪ٛ‬ا‪ٞ‬يذ ديذ‪.‬‬

‫٘شْ افضاس ‪ٞ‬بي سحز ‪ٚ‬ة ‪ ٚ‬دـشيجب٘ي اص ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ‬


‫دػشٍب‪ٞ ٜ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ اص ‪ٕٞ‬بٖ ا‪ٔ َٚ‬ش‪ٚ‬سٌش ‪ٚ‬ة داؿش‪ٙ‬ذ ‪ِٚ‬ي سب ديؾ اص اساي‪ ٝ‬ي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪ ،6‬أىب٘بر ٔش‪ٚ‬سٌش ٔزو‪ٛ‬س ثؼيبس ٔحذ‪ٚ‬د ‪ ٚ‬ثش‬
‫ٔج‪ٙ‬بي ٍ٘بسؽ ‪ٞ‬بي لذيٕي سش اي‪ٙ‬شش٘ز اوؼذّ‪ٛ‬سس ث‪ٛ‬د‪ .‬آخشيٗ ٍ٘بسؽ ‪$‬دس صٔبٖ سأِيف ايٗ ٔمبِ‪ٔ #ٝ‬ش‪ٚ‬سٌش ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ثب ٘بْ ‪Internet Explorer‬‬
‫‪ Mobile 6‬يه ٔش‪ٚ‬سٌش ثب أىب٘بر وبُٔ اػز و‪ ٝ‬ويفيز ثبالي وبس ثب ٔش‪ٚ‬سٌش ‪ٚ‬ة دس دػشٍب‪ٞ ٜ‬بي دػىشبح سا ثشاي وبسثش ث‪ ٝ‬اسٔغبٖ ٔي آ‪ٚ‬سد‪ .‬ايٗ‬
‫ٔش‪ٚ‬سٌش ث‪ٟ‬ششي ٗ ػبصٌبسي سا ثب سٕبٔي ٍ٘بسؽ ‪ٞ‬بي ٔش‪ٚ‬سٌش ‪ٞ‬بي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ داسد‪ .‬أىب٘بر ػذيذ ‪ ٚ‬ديـشفش‪ ٝ‬ي آٖ ث‪ ٝ‬وبسثشاٖ وٕه ٔي و‪ٙ‬ذ و‪ٝ‬‬
‫وبس ؿبٖ سا ث‪ ٝ‬ػشػز ا٘ؼبْ د‪ٙٞ‬ذ و‪ ٝ‬دس صيش ث‪ ٝ‬آٖ ‪ٞ‬ب اؿبس‪ٔ ٜ‬ي و‪ٙ‬يٓ‪:‬‬

‫دـشيجب٘ي اص ‪ٍ٘ Jscript‬بسؽ ‪ 5.7‬اي‪ٙ‬شش٘ز اوؼذّ‪ٛ‬سس ‪ 8‬و‪ ٝ‬ث‪ ٝ‬س‪ٛ‬ػؼ‪ ٝ‬د‪ٙٞ‬ذ‪ٌ ٜ‬بٖ أىبٖ ٔي د‪ٞ‬ذ اص لبثّيز ‪ٕٞ AJAX‬ب٘‪ٙ‬ذ دػىشبح دس ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص‬
‫ٔ‪ٛ‬ثبيُ ‪ ٓٞ‬اػشفبد‪ٕ٘ ٜ‬بي‪ٙ‬ذ‪.‬‬

‫اي‪ٙ‬شش٘ز اوؼذّ‪ٛ‬سس ٔ‪ٛ‬ثبيُ ‪ 6‬أىبٖ ٕ٘بيؾ ‪ٞ‬ش د‪ ٚ‬حبِز ‪ٚ‬يظ‪ ٜ‬ي ٔ‪ٛ‬ثبيُ ‪ٔ ٚ‬ؼٕ‪ِٛ‬ي ‪ٚ‬ة ػبيز ‪ٞ‬ب سا داسد‪.‬‬

‫اي‪ٙ‬شش٘ز اوؼذّ‪ٛ‬سس ٔ‪ٛ‬ثبيُ ‪ 6‬ثؼش‪ ٝ‬ث‪ ٝ‬س‪ٙ‬ظيٓ وبسثش ٔي س‪ٛ‬ا٘ذ ث‪ ٝ‬ك‪ٛ‬سر ٔش‪ٚ‬سٌش دػىشبح يب ٔش‪ٚ‬سٌش ٔ‪ٛ‬ثبيُ ػُٕ و‪ٙ‬ذ‪.‬‬

‫وبسثشاٖ ٔي س‪ٛ‬ا٘‪ٙ‬ذ اص أىب٘بر كفح‪ ٝ‬ي ِٕؼي ‪ٕٞ ٚ‬چ‪ٙ‬يٗ حبِز ‪ٞ‬بي ٔخشّف ثضسي ٕ٘بيي )‪ (Zoom‬اػشفبد‪ٕ٘ ٜ‬بي‪ٙ‬ذ‪.‬‬

‫‪80‬‬
‫‪www.SoftGozar.Com‬‬
‫‪http://m0911.wordpress.com‬‬
‫حبِز ‪ٞ‬بي ٔخشّف ٕ٘بيؾ ‪ٚ‬ة ػبيز‬
‫صٔب٘ي و‪ ٝ‬وبسثش يه ‪ٚ‬ة ػبيز سا ثبص يب يه ثش٘بٔ‪ ٝ‬ي سحز ‪ٚ‬ة سا اػشا ٔي ٕ٘بيذ‪ٔ ،‬ش‪ٚ‬سٌش والي‪ٙ‬ز س‪ٛ‬ػي يه ٔشغيش سؿش‪ ٝ‬اي ‪UserAgent‬‬
‫ؿ‪ٙ‬بػبيي ٔي ؿ‪ٛ‬د ‪ ٚ‬ثؼش‪ ٝ‬ث‪ٔ ٝ‬مذاس ٔشغش ٔزو‪ٛ‬س‪٘ ،‬شْ افضاس سحز ‪ٚ‬ة أىب٘بر ثيـشش يب وٕششي ‪ٔ$‬ب٘‪ٙ‬ذ دـشيجب٘ي اص ‪ #AJAX‬سا ثشاي والي‪ٙ‬ز فشا‪ٓٞ‬‬
‫ٔي و‪ٙ‬ذ‪ .‬آخشيٗ ٍ٘بسؽ ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ‪ٍ٘ ،‬بسؿي اص اي‪ٙ‬شش٘ز اوؼذّ‪ٛ‬سس سا اػشفبد‪ٔ ٜ‬ي ٕ٘بيذ و‪ ٝ‬ث‪ ٝ‬ساحشي ٔي س‪ٛ‬ا٘ذ ث‪ ٝ‬ػبي ٔش‪ٚ‬سٌش دػىشبح يب ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص‬
‫ٔ‪ٛ‬ثبيُ ؿ‪ٙ‬بػبيي ٌشدد‪ .‬ثشاي ايٗ وبس وبفي اػز و‪ ٝ‬اص ٔ‪ٛٙ‬ي داخُ اي‪ٙ‬شش٘ز اوؼذّ‪ٛ‬سس ٔ‪ٛ‬ثبيُ ٌضي‪ ٝٙ‬ي ٔشث‪ٛ‬ى ث‪ ٝ‬آٖ سا ا٘شخبة و‪ٙ‬يذ‪.‬‬

‫ؿىُ ‪ :40‬ثش٘بٔ‪ ٝ‬ي اي‪ٙ‬شش٘ز اوؼذّ‪ٛ‬سس ‪ٛٔ 6‬ثبيُ دس حبِز ٕ٘بيؾ دػىشبح ‪ٛٔ ٚ‬ثبيُ‬

‫دس ؿىُ ‪٘ 1‬ح‪ ٜٛ‬ػ‪ٛ‬ئيچ وشدٖ ثيٗ حبِز ‪ٞ‬بي دػىشبح ‪ٛٔ ٚ‬ثبيُ سا ٔي ثي‪ٙ‬يذ‪ .‬دس ثخؾ ‪ٚ‬ػٌي ؿىُ ‪ 1‬اي‪ٙ‬شش٘ز اوؼذّ‪ٛ‬سس دس حبِز ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيژُ‬
‫اػشا ٔي ؿ‪ٛ‬د و‪ٕ٘ ٝ‬بيؾ ‪ٚ‬ة ػبيز سا ثشاي دػشٍب‪ٚ ٜ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ث‪ٟ‬ي‪ ٝٙ‬وشد‪ ٜ‬اػز‪ .‬دس ثخؾ ػٕز ساػز ؿىُ ‪٘ 1‬يض ‪ٕٞ‬بٖ ‪ٚ‬ة ػبيز سا ايژٗ ثژبس‬
‫دس حبِز دػىشبح ٔـب‪ٞ‬ذ‪ٔ ٜ‬ي و‪ٙ‬يذ‪ .‬ثب اي‪ٙ‬ى‪ ٝ‬كفح‪ ٝ‬ي ٕ٘بيؾ و‪ٛ‬وشش اػز ِيىٗ وژبسثش ‪ٕٞ‬ژبٖ حبِژز ٔش‪ٚ‬سٌژش ‪ٚ‬ي‪ٙ‬ژذ‪ٚ‬ص دػژىشبح سا داسد‪ .‬دس يژه‬
‫دػشٍب‪ ٜ‬ثب أىبٖ كفح‪ ٝ‬ي ِٕؼي ػب ث‪ ٝ‬ػبيي دس كفح‪ ٝ‬ي ‪ٚ‬ة خيّي ساحز سش ا٘ؼبْ ٔي ؿ‪ٛ‬د‪.‬‬

‫سـخيق لبثّيز ‪ٞ‬بي ٔش‪ٚ‬سٌش‬


‫ثشاي سـخيق أىب٘بر ٔش‪ٚ‬سٌش والي‪ٙ‬ز ٔي س‪ٛ‬ا٘يذ اص يه ٔشغيش سؿش‪ ٝ‬اي ‪ UserAgent‬اػشفبد‪ٕ٘ ٜ‬بييذ‪ٔ .‬مبديش صيش ثشاي ٔشغيش ٔزو‪ٛ‬س كشف ٘ظش اص‬
‫٘‪ٛ‬ع دػشٍب‪$ ٜ‬اػشب٘ذاسد يب دش‪ٚ‬فـ‪ٙ‬بَ‪ #‬ثشٌشدا٘ذ‪ٔ ٜ‬ي ؿ‪٘ٛ‬ذ‪:‬‬
‫‪‬‬ ‫)‪Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 8.12; MSIEMobile 6.0‬‬
‫‪‬‬ ‫)‪Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1‬‬
‫و‪ ٝ‬ا‪ِٚ‬ي ثشاي حبِز ٔ‪ٛ‬ثبيُ ‪ ٚ‬د‪ٔٚ‬ي ثشاي حبِز دػىشبح اػز‪.‬‬

‫‪81‬‬
http://m0911.wordpress.com
ٝ‫ز ث‬ٙ‫د ثبيذ والي‬ٛ‫ثبيُ اػشا ؿ‬ٛٔ ‫سٌش دس حبِز‬ٚ‫ اٌش ٔش‬.‫ذ داؿز‬ٞ‫ا‬ٛ‫ سا خ‬AJAX ‫دوبس أىب٘بر‬ٛ‫س خ‬ًٛ ٝ‫د ث‬ٛ‫سٌش دس حبِز دػىشبح اػشا ؿ‬ٚ‫اٌش ٔش‬
ٗ‫ يب ثبالسش ثبؿذ اي‬6.12 ٖ‫ آ‬IEMobile ‫ ٍ٘بسؽ‬ٝ‫ثبيُ و‬ٛٔ ‫ص‬ٚ‫ذ‬ٙ‫ي‬ٚ ‫ي‬ٚ‫سٌش س‬ٚ‫ش ٔش‬ٞ .‫د‬ٛ‫ اػشا ؿ‬ie5 ‫ا٘ذ دس حبِز ػبصٌبس ثب‬ٛ‫ ٔي س‬ٝ‫ذ و‬ٙ‫س اػالْ و‬ٚ‫ػش‬
:‫ ٕ٘بييذ‬ٜ‫ وذ صيش اػشفبد‬ٝ‫ا٘يذ اص لٌؼ‬ٛ‫ ثشاي اػالْ ػبصٌبي ٔي س‬.‫ػبصٌبسي سا داسد‬
public static bool IsIEMobileWithAjaxSupport(string input)
{
const string mobileBrowser = "IEMobile ";
bool ajaxSupported = false;
if (input.Contains(mobileBrowser))
{
string version = input.Substring(input.IndexOf(mobileBrowser) +
mobileBrowser.Length);
version = version.Remove(version.IndexOf(';'));
string[] versionNr = version.Split(new char[] { '.' });
int IEMobileMajor = Convert.ToInt32(versionNr[0]);
int IEMobileMinor = Convert.ToInt32(versionNr[1]);
ajaxSupported = IEMobileMajor > 6 || (IEMobileMajor == 6 && IEMobileMinor >= 12);
}
return ajaxSupported;
}
ُ‫ثبي‬ٛٔ ‫سس‬ّٛ‫شش٘ز اوؼذ‬ٙ‫ سـخيق أىب٘بر اي‬:7 ‫وذ‬

‫ ايٗ وبس سا‬.ٓ‫ي‬ٞ‫س اًالع د‬ٚ‫ ػش‬ٝ‫ز سا ث‬ٙ‫سٌش والي‬ٚ‫ وذ صيش أىب٘بر ٔش‬ٝ‫ػي لٌؼ‬ٛ‫ا٘يٓ س‬ٛ‫ يب ثبالسش ثبؿذ ٔي س‬6.12 ُ‫ثبي‬ٛٔ ‫سس‬ّٛ‫شش٘ز اوؼذ‬ٙ‫اٌش ٍ٘بسؽ اي‬
‫ش‬ٞ .‫د‬ٛ‫ ايٗ وبس يه ثبس ا٘ؼبْ ٔي ؿ‬ٝ‫ ثبؿيذ و‬ٝ‫ داؿش‬ٝ‫ػ‬ٛ‫ س‬.ٓ‫ي‬ٞ‫ة ا٘ؼبْ ٔي د‬ٚ ‫ داخُ ٘شْ افضاس سحز‬FrameworkInitialized ‫دس ثخـي اص ٔشذ‬
ClientTarget ‫ي‬ٞ‫ ٔمذاس د‬ٝ‫ ٘يبصي ث‬ٝ‫( ثخـي اص كفح‬refresh) ‫ٍبْ ثبسٌزاسي ٔؼذد‬ٙٞ ٝ‫ ث‬ٕٝ٘ٛ٘ ‫د ثشاي‬ٛ‫ دسيبفز ؿ‬postback ْ‫ ديغب‬ٝ‫ثبس و‬
.‫ اػز‬ٜ‫س اص ٔمذاس آٖ ٌّٔغ ؿذ‬ٚ‫ٖ ػش‬ٛ‫٘يؼز چ‬
protected override void FrameworkInitialize()
{
base.FrameworkInitialize();
if (!IsPostBack)
{
if (IsIEMobileWithAjaxSupport(Request.UserAgent))
{
ClientTarget = "ie5";
}
}
}
‫س‬ٚ‫ ػش‬ٝ‫ز ث‬ٙ‫سٌش والي‬ٚ‫ اسػبَ اًالػبر ٔش‬:8 ‫وذ‬

82
‫‪http://m0911.wordpress.com‬‬
‫سـخيق ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ اػشب٘ذاسد اص دش‪ٚ‬فـ‪ٙ‬بَ‬
‫اص آٖ ػب و‪ٞ ٝ‬ش د‪ٍ٘ ٚ‬بسؽ اػشب٘ذاسد ‪ ٚ‬دش‪ٚ‬فـ‪ٙ‬بَ ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ٔمذاس يىؼبٖ ثشاي ‪ UserAgent‬ثشٔي ٌشدا٘‪ٙ‬ذ ؿٕب ثبيذ اص س‪ٚ‬ؽ ديٍشي ثشاي‬
‫سـخيق ٘‪ٛ‬ع دػشٍب‪ ٜ‬اػشفبد‪ٕ٘ ٜ‬بييذ‪ .‬دس يه دسخ‪ٛ‬اػز ٔش‪ٚ‬سٌش اًالػبر اهبفي ٘يض ث‪ ٝ‬ػش‪ٚ‬س اسػبَ ٔي ٌشدد‪ .‬يىي اص ايٗ اًالػبر ا٘ذاص‪ ٜ‬ي كفح‪ٝ‬‬
‫ثش ٔج‪ٙ‬بي ديىؼُ اػز‪ .‬سفب‪ٚ‬ر اكّي ‪ ٓٞ‬دس ايٗ ػب اػز‪ .‬ثش خالف ثش٘بٔ‪ٞ ٝ‬بي ‪٘ ، Smart Client‬شْ افضاس ‪ٞ‬بي سحز ‪ٚ‬ة ثشاي ‪ٞ‬ش د‪ٛ٘ ٚ‬ع اػشب٘ذاسد‬
‫‪ ٚ‬دش‪ٚ‬فـ‪ٙ‬بَ ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ اص و‪ٙ‬ششَ ‪ٞ‬بي يىؼب٘ي اػشفبد‪ٔ ٜ‬ي ٕ٘بي‪ٙ‬ذ‪ .‬دِيّؾ ‪ ٓٞ‬آٖ اػز و‪ٔ ٝ‬ش‪ٚ‬سٌش اي‪ٙ‬شش٘ز دس ‪ٞ‬ش د‪ٚ‬ي آٖ ‪ٞ‬ب يىؼبٖ اػز‪ .‬ث‪ٙ‬ب‬
‫ثش ايٗ يه ٘شْ افضاس سحز ‪ٚ‬ة دس دػشٍب‪ٚ ٜ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ اػشب٘ذاسد ٔي س‪ٛ‬ا٘ذ داساي دوٕ‪ (button) ٝ‬ثبؿذ‪ .‬ؿٕب ث‪ ٝ‬ساحشي ثب دوٕ‪ٞ ٝ‬بي ػبثؼبيي ٔي‬
‫س‪ٛ‬ا٘يذ س‪ٚ‬ي دوٕ‪ ٝ‬ي ٔ‪ٛ‬سد ٘ظش سبٖ سفش‪ ،ٝ‬ثب دوٕ‪ ٝ‬ي اوـٗ س‪ٚ‬ي اٖ وّيه و‪ٙ‬يذ‪ .‬فيّذ ‪ٞ‬ذس )"‪ ("UA-Pixels‬سؼذاد ‪ٚ‬الؼي ديىؼُ ‪ٞ‬ب سا ثش ٔي‬
‫ٌشدا٘ذ يؼ‪ٙ‬ي دس د‪ ٚ‬حبِز سفىيه ٌشافيىي ثبال ‪ٔ ٚ‬ؼٕ‪ِٛ‬ي ٔمبديش دسػز سا ثش ٔي ٌشدا٘ذ‪.‬‬
‫ثشاي س‪ٙ‬ظيٓ ٔش‪ٚ‬سٌش دس حبِز ٕ٘بيؾ ث‪ٟ‬ي‪ ٝٙ‬ثبيذ اص ثشچؼت )‪ MobileOptimized (tag‬اػشفبد‪ٕ٘ ٜ‬بييذ و‪ ٝ‬ا٘ذاص‪ ٜ‬ي كفح‪ ٝ‬ي ٕ٘بيـي سا و‪٘ ٝ‬شْ‬
‫افضاس ًجك آٖ س‪ٛ‬ػؼ‪ ٝ‬داد‪ ٜ‬ؿذ‪ ٜ‬اػز‪ٔ ،‬ـخق ٕ٘بيذ‪ .‬وذ صيش داخُ ثش٘بٔ‪ ٝ‬ثشچؼت ‪ MobileOptimized‬سا ثؼش‪ ٝ‬ث‪ ٝ‬ػشم كفح‪ ٝ‬ي ٕ٘بيؾ‬
‫ٔمذاس د‪ٞ‬ي ٔي و‪ٙ‬ذ‪:‬‬
‫)‪protected void Page_Load(object sender, EventArgs e‬‬
‫{‬
‫)‪if (!IsPostBack‬‬
‫{‬
‫))‪if (IsIEMobileWithAjaxSupport(Request.UserAgent‬‬
‫{‬
‫)‪if (this.Header != null‬‬
‫{‬
‫;)(‪HtmlMeta mobileOptimized = new HtmlMeta‬‬
‫;"‪mobileOptimized.Name = "MobileOptimized‬‬
‫= ‪mobileOptimized.Content‬‬
‫;]‪Request.Headers["UA-pixels"].Split(new char[] { 'X', 'x' })[0‬‬
‫;)‪Header.Controls.Add(mobileOptimized‬‬
‫}‬
‫}‬
‫}‬
‫}‬
‫وذ ‪ :9‬س‪ٙ‬ظيٓ ػشم ػٕز ساػز كفح‪ ٝ‬ثشاي ساحشي وبسثش‬

‫ثب اػشفبد‪ ٜ‬اص اًالػبر ‪ٔ Request.Header‬ي س‪ٛ‬ا٘يذ دػشٍب‪ٞ ٜ‬بي ٔخشّف سا سـخيق داد‪ ،ٜ‬حبِز ٕ٘بيؾ سا ثشاي ‪ٛ٘ ٕٝٞ‬ع دػشٍب‪ ٜ‬ث‪ٟ‬ي‪ ٝٙ‬و‪ٙ‬يذ‪.‬‬

‫‪83‬‬
http://m0911.wordpress.com
.‫ اػز‬ٜ‫ ؿذ‬ٝٙ‫ي‬ٟ‫ثبيُ ث‬ٛٔ ‫ص‬ٚ‫ذ‬ٙ‫ي‬ٚ َ‫ب‬ٙ‫فـ‬ٚ‫ دش‬ٚ ‫ اػشب٘ذاسد‬ٜ‫ دػشٍب‬ٚ‫ ثشاي ٕ٘بيؾ دس د‬ٝ‫يذ و‬ٙ‫ة سا ٔي ثي‬ٚ ‫ ي‬ٝ‫ٕبٖ كفح‬ٞ 2 ُ‫دس ؿى‬

‫بي ٔخشّف‬ٞ ٜ‫ر دس دػشٍب‬ٚ‫٘ز ٔشفب‬ٛ‫ ي ف‬ٜ‫ دس ا٘ذاص‬ٝ‫ ثبسٌزاسي كفح‬:41 ُ‫ؿى‬

ٝ‫ي و‬ٞ‫ ي ٕ٘بيؾ دػشٍب‬ٝ‫ ػشم كفح‬ٜ‫يظ‬ٚ ٝ‫ ث‬ٚ ٜ‫ دػشٍب‬ٝ‫ ث‬ٝ‫ة سا ثؼش‬ٚ ‫بي‬ٞ َ‫شش‬ٙ‫ ي لّٓ و‬ٜ‫ا٘يذ ا٘ذاص‬ٛ‫ ٔي س‬ٍٝ٘ٛ‫ چ‬ٝ‫ذ و‬ٞ‫ وذ صيش ٘ـبٖ ٔي د‬ٝ‫لٌؼ‬
‫ب سا‬ٞ َ‫شش‬ٙ‫ا٘يذ ٔـخلبر و‬ٛ‫ ٔي س‬ٝ‫ ايٗ و‬ٚ ‫ٖ ثبؿيذ‬ٕٛٙٔ ASP.NET 3.5 ‫ دس ايٗ ػب ثبيذ اص أىب٘بر‬.‫يذ‬ٞ‫ سغييش د‬،‫ي آٖ اػشا ٔي ٌشدد‬ٚ‫ س‬ٝٔ‫ثش٘ب‬
.‫يذ‬ٞ‫( سغييش د‬code – behind) ٝٙ‫دس فبيُ وذ دغ صٔي‬

protected void Page_Load(object sender, EventArgs e)


{
string currentTime = DateTime.Now.ToLongTimeString();
if (!IsPostBack)
{
if (IsIEMobileWithAjaxSupport(Request.UserAgent))
{
if (this.Header != null)
{
HtmlMeta mobileOptimized = new HtmlMeta();
mobileOptimized.Name = "MobileOptimized";
mobileOptimized.Content = Request.Headers["UA-pixels"].Split(
new char[] { 'X', 'x' })[0];
Header.Controls.Add(mobileOptimized);
pageWidth = Convert.ToInt32(mobileOptimized.Content);
}
}
}
if (pageWidth < 240)
{
Label1.Font.Size = System.Web.UI.WebControls.FontUnit.Small;
Label2.Font.Size = System.Web.UI.WebControls.FontUnit.Small;
Label3.Font.Size = System.Web.UI.WebControls.FontUnit.Small;
Label4.Font.Size = System.Web.UI.WebControls.FontUnit.Small;

84
‫‪www.SoftGozar.Com‬‬
‫‪http://m0911.wordpress.com‬‬
‫;‪Label5.Font.Size = System.Web.UI.WebControls.FontUnit.Small‬‬
‫;‪DropDownList1.Font.Size = System.Web.UI.WebControls.FontUnit.Small‬‬
‫;‪Button1.Font.Size = System.Web.UI.WebControls.FontUnit.Small‬‬
‫;‪Menu1.Font.Size = System.Web.UI.WebControls.FontUnit.Small‬‬
‫}‬
‫}‬
‫وذ ‪ :10‬س‪ٙ‬ظيٓ ا٘ذاص‪ ٜ‬ي ف‪٘ٛ‬ز ٔش‪ٙ‬بػت ثب ٔذَ دػشٍب‪ ٜ‬والي‪ٙ‬ز‬

‫ٔي ثي‪ٙ‬يذ و‪ ٝ‬اي‪ٙ‬شش٘ز اوؼذّ‪ٛ‬سس ٔ‪ٛ‬ثبيُ آخشيٗ سى‪ِٛٛٙ‬طي ‪ٞ‬بي ٔ‪ٛ‬ػ‪ٛ‬د دس ٍ٘بسؽ دػىشبح سا سيض دـشيجب٘ي ٔي و‪ٙ‬ذ و‪ ٝ‬اغّت أىب٘بر‬
‫‪ ASP.NET 3.5‬سا دس ٔ‪ٛ‬ثبيُ دس اخشيبس سبٖ لشاس داد‪ ٜ‬اػز‪.‬‬

‫سشويت ‪ٚ‬ة ‪ ٚ‬اػٕبسر والي‪ٙ‬ز‬


‫اٌش يه ثش٘بٔ‪ ٝ‬ي اػٕبسر والي‪ٙ‬ز )‪ (Smart Client‬س‪ٛ‬ػؼ‪ٔ ٝ‬ي د‪ٞ‬يذ ثبيذ اص يه و‪ٙ‬ششَ ٔش‪ٚ‬سٌش )‪ (Browser Control‬اػشفبد‪ ٜ‬و‪ٙ‬يذ‪ .‬و‪ٙ‬ششَ‬
‫ٔش‪ٚ‬سٌش دس آخشيٗ ٍ٘بسؽ ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ث‪ ٝ‬ؿٕب أىبٖ اػشفبد‪ ٜ‬اس ٔش‪ٚ‬سٌش ‪ٚ‬ة دس دػششع سا ٔي د‪ٞ‬ذ ‪ ٚ‬ايٗ يؼ‪ٙ‬ي أىبٖ اػشفبد‪ ٜ‬اص ‪ASP.NET‬‬
‫‪ ٚ 3.5‬أىب٘بر ‪ AJAX‬اص داخُ يه ثش٘بٔ‪ ٝ‬ي اػٕبسر والي‪ٙ‬ز‪ .‬سشويت ‪ٚ‬ة ‪ ٚ‬اػٕبسر والي‪ٙ‬ز ايٗ أىبٖ سا ٔي د‪ٞ‬ذ و‪ ٝ‬وبسثش حشي ثذ‪ ٖٚ‬اسلبَ ث‪ٝ‬‬
‫ؿجى‪٘ ٝ‬يض ثش٘بٔ‪ ٝ‬سا اػشا ٕ٘بيذ‪ .‬اٌش اسلبَ ؿجى‪ ٝ‬ثشلشاس ثبؿذ وبسثش ٔي س‪ٛ‬ا٘ذ اص و‪ٙ‬ششَ ٔش‪ٚ‬سٌش اػشفبد‪ٕ٘ ٜ‬بيذ ‪ٔ ٚ‬ظال ث‪ ٝ‬داد‪ٞ ٜ‬بي ثب٘ه اًالػبسي س‪ٚ‬ي‬
‫ػش‪ٚ‬س دػششػي ديذا و‪ٙ‬ذ‪ .‬ايٗ ‪ٚ‬يظٌي ٔظال دس حبِشي و‪ ٝ‬چ‪ٙ‬ذ وبسثش ث‪ًٛ ٝ‬س ‪ ٓٞ‬صٔبٖ س‪ٚ‬ي داد‪ٞ ٜ‬بي يىؼب٘ي دس ثب٘ه اًالػبسي وبس ٔي و‪ٙٙ‬ذ اص‬
‫سذاخُ ديؾ ٌيشي ٔي ٕ٘بيذ چ‪ ٖٛ‬ايٗ وبس وبٔال س‪ٛ‬ػي ػش‪ٚ‬س ا٘ؼبْ ٔي ؿ‪ٛ‬د‪ .‬أشيبص ديٍش ايٗ س‪ٚ‬ؽ ث‪ٍٙٞ ٝ‬بْ دشداصؽ ‪ٞ‬بي ػ‪ٍٙ‬يٗ اص داخُ يه‬
‫و‪ٙ‬ششَ ٔش‪ٚ‬سٌش خ‪ٛ‬دؽ سا ٘ـبٖ ٔي د‪ٞ‬ذ ٔظال ثشاي دسيبفز اًالػبر ٘مـ‪ٞ ٝ‬بي صٔي‪ٙ‬ي‪ .‬ث‪ ٝ‬ػبي اػشفبد‪ ٜ‬اص ‪ٚ‬ة ػش‪ٚ‬يغ ؿٕب ٔي س‪ٛ‬ا٘يذ سٕبْ ػّٕيبر‬
‫ػش‪ٚ‬سي سا داخُ يه و‪ٙ‬ششَ ٔش‪ٚ‬سٌش ا٘ؼبْ د‪ٞ‬يذ‪.‬‬
‫و‪ٙ‬ششَ ٔش‪ٚ‬سٌش و‪ ٝ‬دس ثش٘بٔ‪ ٝ‬ي اػٕبسر والي‪ٙ‬ز خ‪ٛ‬د اص آٖ اػشفبد‪ٔ ٜ‬ي و‪ٙ‬يذ ‪ٕٞ‬بٖ ٔمذاس ‪ٔ UserAgent‬ش‪ٚ‬سٌش ٔؼشمُ اي‪ٙ‬شش٘ز اوؼذّ‪ٛ‬سس ٔ‪ٛ‬ثبيُ‬
‫سا ثش ٔي ٌشدا٘ذ‪ .‬أب و‪ٙ‬ششَ ٔش‪ٚ‬سٌش سا ٕ٘ي س‪ٛ‬اٖ ث‪ ٝ‬حبِز ٔ‪ٛ‬ثبيُ ٔؼشفي وشد‪ .‬اص آٖ ػب و‪ ٝ‬دػشٍب‪ٚ ٜ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ كفح‪ٕ٘ ٝ‬بيؾ و‪ٛ‬چىي داسد ٕٔىٗ‬
‫اػز ثخ‪ٛ‬ا‪ٞ‬يذ كفحبر خبكي سا ثشاي سشويت و‪ٙ‬ششَ ٔش‪ٚ‬سٌش دس داخُ يه ثش٘بٔ‪ ٝ‬ي اػٕبسر والي‪ٙ‬ز ايؼبد ٕ٘بييذ‪ .‬وذ ٕ٘‪ ٝ٘ٛ‬ي صيش يه ثش٘بٔ‪ ٝ‬ي‬
‫وبُٔ سا سـبٖ ٔي د‪ٞ‬ذ و‪ ٝ‬اسلبَ ؿجى‪ ٝ‬اي‪ٙ‬شش٘ز سا سـخيق ٔي د‪ٞ‬ذ ‪ ٚ‬دس ك‪ٛ‬سر ‪ٚ‬كُ ث‪ٛ‬دٖ دػشٍب‪ ٜ‬أىبٖ ٕ٘بيؾ يه كفح‪ ٝ‬ي ‪ٚ‬ة حب‪ٚ‬ي‬
‫اًالػبر دس داخُ يه و‪ٙ‬ششَ ٔش‪ٚ‬سٌش ‪ٞ‬ؼز‪ .‬اٌش ؿجى‪ ٝ‬لٌغ ؿ‪ٛ‬د وبسثش ٔي س‪ٛ‬ا٘ذ آدسع ‪ٞ‬بي ػذيذ سا ‪ٚ‬اسد ٕ٘بيذ ‪ِٚ‬ي ٕ٘ي س‪ٛ‬ا٘ذ كفحبر آٖ ‪ٞ‬ب سا‬
‫ٔش‪ٚ‬س ٕ٘بيذ‪ .‬اِجش‪ ٝ‬ايٗ ٔظبَ ثؼيبس ػبد‪ ٜ‬اػز ‪ ٚ‬دس ٕ٘‪ ٝ٘ٛ‬ي ثش٘بٔ‪ ٝ‬ي ‪ٚ‬الؼي أىب٘بر ثيـششي ٔي س‪ٛ‬ا٘يذ لشاس د‪ٞ‬يذ‪.‬‬

‫‪public partial class Form1 : Form‬‬


‫{‬
‫;‪private SystemState nrNetWorkConnections‬‬
‫;‪private SystemState deviceCradled‬‬
‫)(‪public Form1‬‬
‫{‬
‫;)(‪InitializeComponent‬‬
‫;)‪nrNetWorkConnections = new SystemState(SystemProperty.ConnectionsCount‬‬
‫=‪nrNetWorkConnections.Changed +‬‬
‫;)‪new ChangeEventHandler(nrNetWorkConnections_Changed‬‬
‫;)‪deviceCradled = new SystemState(SystemProperty.CradlePresent‬‬
‫;)‪deviceCradled.Changed += new ChangeEventHandler(deviceCradled_Changed‬‬
‫}‬
‫)‪private void Form1_Load(object sender, EventArgs e‬‬
‫{‬
‫;‪bool isCradled = (int)deviceCradled.CurrentValue != 0‬‬
‫;‪int nrNetworks = (int)nrNetWorkConnections.CurrentValue‬‬
‫;)‪tbURL.Select(tbURL.Text.Length, 0‬‬
‫;‪btnGo.Enabled = isCradled || nrNetworks > 0‬‬

‫‪85‬‬
http://m0911.wordpress.com
}
void deviceCradled_Changed(object sender, ChangeEventArgs args)
{
bool isCradled = (int)args.NewValue != 0;
int nrNetworks = (int)nrNetWorkConnections.CurrentValue;
btnGo.Enabled = isCradled || nrNetworks > 0;
}
void nrNetWorkConnections_Changed(object sender, ChangeEventArgs args)
{
bool isCradled = (int)deviceCradled.CurrentValue != 0;
int nrNetworks = (int)args.NewValue;
btnGo.Enabled = isCradled || nrNetworks > 0;
}
private void btnGo_Click(object sender, EventArgs e)
{
webBrowser1.Navigate(new Uri(tbURL.Text));
}
}
‫ذ‬ٞ‫ سا سـخيق ٔي د‬ٝ‫ اسلبالر ؿجى‬ٝ‫ز و‬ٙ‫ ي وبُٔ اػٕبسر والي‬ٝٔ‫ يه ثش٘ب‬: 11 ‫وذ‬

ٖ‫ا‬ٛ‫ ثب س‬ٜ‫ٕشا‬ٞ ‫سي وبسثش‬ٚ ٜ‫ش‬ٟ‫ا٘يذ ث‬ٛ‫ ؿٕب ٔي س‬.‫ذ‬ٞ‫ؽ سا دس اخشيبس سبٖ لشاس ٔي د‬ٚ‫ س‬ٚ‫ششيٗ حبِز اص د‬ٟ‫لغ ث‬ٚ ‫ة دس‬ٚ ‫ ثب‬ٜ‫ٕشا‬ٞ ‫ز‬ٙ‫سشويت اػٕبسر والي‬
#‫يغ‬ٚ‫ة ػش‬ٚ ‫حشي اص ًشيك‬$ ‫ب سا‬ٞ ٖ‫ا٘يذ يه وذي ٔحّي اص آ‬ٛ‫٘ذ ٔي س‬ٛ‫ ؿ‬ٜ‫س ٔشوضي رخيش‬ًٛ ٝ‫ب ث‬ٞ ٜ‫ اٌش داد‬.‫يذ‬ٞ‫س لشاس د‬ٚ‫ي ػش‬ٚ‫دشداصؽ سا س‬
‫سد ٘يبص وبسثش‬ٛٔ ‫ٕبٖ ٔمذاس‬ٞ ٝ‫ا٘ذ ث‬ٛ‫ ٔي س‬ٜ‫ي دػشٍب‬ٚ‫بي لبثُ دػششع س‬ٞ ٜ‫ ٔيضاٖ داد‬ٚ ‫ذ‬ٙ‫ ي سذاخُ سا حُ ٔي و‬ِٝ‫ؽ ٔؼأ‬ٚ‫ ايٗ س‬.‫يذ‬ٙ‫د و‬ّٛ٘‫دا‬
‫بي‬ٞ ٜ‫د داد‬ٛ‫ٖ ثبػض ٔي ؿ‬ٛ‫ٓ اػز چ‬ٟٔ ‫يشي ٘يض‬ٙٔ‫ ِحبٍ ا‬ٝ‫ ث‬ٝ‫ ٘يؼز ثّى‬ٜ‫ دػشٍب‬ٝ‫يي فوبي حبفظ‬ٛ‫ ػ‬ٝ‫ ايٗ وبس كشفب ثشاي كشف‬.‫د ٌشدد‬ٚ‫ٔحذ‬
.‫ذ‬ٙ‫ لبثُ دػششع ثبؿ‬ٜ‫ي دػشٍب‬ٚ‫ش صٔبٖ س‬ٞ ‫حؼبع وٕششي دس‬

‫ز‬ٙ‫ ي اػٕبسر والي‬ٝٔ‫سر ثخـي اص يه ثش٘ب‬ٛ‫ ك‬ٝ‫ ث‬ٚ ‫سٌش‬ٚ‫ة اص داخُ يه ٔش‬ٚ ‫ ي سحز‬ٝٔ‫ ثش٘ب‬:42 ُ‫ؿى‬

86
‫‪www.SoftGozar.Com‬‬
‫‪http://m0911.wordpress.com‬‬
‫فهرست تصاویر‬
‫ؿىُ ‪ :1‬د‪ٙ‬ؼش‪ ٜ‬ي ‪6 ........... ................................ ................................ ................................ New Smart Device Project‬‬
‫ؿىُ ‪ٔ :2‬حيي ًشاحي فشْ ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪1 ................ ................................ ................................ ................................ 2008 ٛ‬‬
‫ؿىُ ‪٘ :3‬خؼشيٗ ثش٘بٔ‪ ٝ‬ؿٕب دس حبَ اػشا دس ؿجي‪ ٝ‬ػبص دػشٍب‪ٚ ٜ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪12 ................. ................................ ................................‬‬
‫ؿىُ ‪ :4‬ثش٘بٔ‪ ٝ‬ي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ دس حبَ اػشا س‪ٚ‬ي ؿجي‪ ٝ‬ػبص دػشٍب‪11 .......................... ................................ ................................ ٜ‬‬
‫ؿىُ ‪ :5‬س‪ٙ‬ظيٓ ٔـخلبر ؿجي‪ ٝ‬ػبص ‪14 ............................. ................................ ................................ ................................‬‬
‫ؿىُ ‪ :6‬اسلبَ ؿجي‪ ٝ‬ػبص سّفٗ ‪ٕٞ‬شا‪ ٜ‬ث‪ ٝ‬ؿجي‪ ٝ‬ػبص دػشٍب‪15 ...................................... ................................ ................................ ٜ‬‬
‫ؿىُ ‪ :7‬ؿجي‪ ٝ‬ػبص دػشٍب‪ ٚ ٜ‬ؿجي‪ ٝ‬ػبص سّفٗ ‪ٕٞ‬شا‪ ٜ‬دس حبَ اػشا ‪16 ................................ ................................ ................................‬‬
‫ؿىُ ‪ :8‬دسيبفز ديبٔه داخُ يه ثش٘بٔ‪17 ........................ ................................ ................................ ................................ ٝ‬‬
‫ؿىُ ‪ٔ :9‬ذيش ؿجي‪ ٝ‬ػبص دس حبَ اػشاي يه ؿجي‪ ٝ‬ػبص دػشٍب‪11 .................................. ................................ ................................ ٜ‬‬
‫ؿىُ ‪ :10‬س‪ٙ‬ظيٕبر ؿجي‪ ٝ‬ػبص دػشٍب‪11 ........................... ................................ ................................ ................................ ٜ‬‬
‫ؿىُ ‪ٔ :11‬ذيش أ‪ٙ‬يز دػشٍب‪ ٜ‬دس حبَ اػشا اص داخُ ؿجي‪ ٝ‬ػبص دػشٍب‪11 ......................... ................................ ................................ ٜ‬‬
‫ؿىُ ‪ٚ :12‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪ 2008 ٛ‬دس ٕ٘بي ًشاحي فشْ ‪16 .......... ................................ ................................ ................................‬‬
‫ؿىُ ‪ :13‬خٌ‪ٛ‬ى سا‪ٕٙٞ‬ب ث‪ٟ‬ششيٗ دػشيبس ؿٕب دس سشويت ث‪ٙ‬ذي ‪ٚ‬اػي وبسثش ‪17 ..................... ................................ ................................‬‬
‫ؿىُ ‪ٚ :14‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪ 6‬حشف‪ ٝ‬اي دس حبِز ػٕ‪ٛ‬دي‪ ،‬و‪ٙ‬ششَ ‪ٞ‬ب ٘‪ ٝ‬طبثز ؿذ‪ ٜ‬ا٘ذ ‪ ٝ٘ ٚ‬ث‪ٙ‬ذوـي ‪11 ............................... ................................‬‬
‫ؿىُ ‪ٚ :15‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪ 6‬حشف‪ ٝ‬اي دس حبِز افمي‪ ،‬و‪ٙ‬ششَ ‪ٞ‬ب ٘‪ ٝ‬طبثز ؿذ‪ ٜ‬ا٘ذ ‪ ٝ٘ ٚ‬ث‪ٙ‬ذوـي ‪11 .................................. ................................‬‬
‫ؿىُ ‪ٚ :16‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ ‪ 6‬حشف‪ ٝ‬اي دس حبِز افمي‪ ،‬ثب و‪ٙ‬ششَ ‪ٞ‬بي طبثز ‪ ٚ‬ث‪ٙ‬ذوـي ؿذ‪11 ...................................... ................................ ٜ‬‬
‫ؿىُ ‪ :17‬سغييش ػ‪ٟ‬ز ٕ٘بيؾ دس حبِز ًشاحي ‪12 ................. ................................ ................................ ................................‬‬
‫ؿىُ ‪ :18‬فشْ دبي‪ ٝ‬ي ثش٘بٔ‪ ٝ‬ثشاي دػشٍب‪ٚ ٜ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ اػشب٘ذاسد ‪11 .............................. ................................ ................................‬‬
‫ؿىُ ‪ :19‬فشْ دبي‪ ٝ‬ي ٔـشك ؿذ‪ ٜ‬ثشاي ‪ٚ‬ي‪ٙ‬ذ‪ٚ‬ص ٔ‪ٛ‬ثبيُ حشف‪ ٝ‬اي ‪11 ................................. ................................ ................................‬‬
‫ؿىُ ‪ :20‬و‪ٙ‬ششَ ػفبسؿي ثشاي اػشجبس ػ‪ٙ‬ؼي وبسثش ‪11 ............. ................................ ................................ ................................‬‬
‫ؿىُ ‪ :21‬و‪ٙ‬ششَ ػفبسؿي داخُ يه ثش٘بٔ‪11 ..................... ................................ ................................ ................................ ٝ‬‬
‫ؿىُ ‪ :22‬و‪ٙ‬ششَ ‪ٞ‬بي ‪$ UserCredentials‬اػشجبس ػ‪ٙ‬ؼي وبسثش‪ٚ$ NumericTextBox ٚ #‬س‪ٚ‬د داد‪ ٜ‬ي ػذدي‪ #‬دس حبِز ًشاحي ‪ ٚ‬اػشا داخُ ؿجي‪ ٝ‬ػبص ‪42‬‬
‫ؿىُ ‪٘ :23‬شْ افضاس لٌت ٕ٘بي اِىشش‪٘ٚ‬يىي و‪ ٝ‬يه و‪ٙ‬ششَ ػفبسؿي سا اػشفبد‪ٔ ٜ‬ي و‪ٙ‬ذ ‪44 ......................................... ................................‬‬
‫ؿىُ ‪ :24‬ديبٌشاْ والع ‪45 ............................... ................................ ................................ ................................ GPSID‬‬
‫ؿىُ ‪ :25‬سغييش ٔـخل‪ٞ ٝ‬بي و‪ٙ‬ششَ لٌت ٕ٘ب ‪ #Compass$‬ث‪ٍٙٞ ٝ‬بْ ثش‪ٚ‬ص خٌب ‪47 .............. ................................ ................................‬‬
‫ؿىُ ‪ :26‬لٌت ٕ٘بي اِىشش‪٘ٚ‬يىي دس حبَ اػشا ‪ٕ٘ ٚ‬بيؾ داد‪ٞ ٜ‬بي ‪41 ....................... ................................ ................................ GPS‬‬
‫ؿىُ ‪ :27‬اؿششان د‪ٛ‬ؿ‪ ٝ‬ث‪ٍٙٞ ٝ‬بْ ٔىبٖ يبثي ؿجي‪ ٝ‬ػبصي ؿذ‪ ٜ‬ثب ‪41 .................. ................................ ................................ FakeGPS‬‬
‫ؿىُ ‪ :28‬ديشبػز )‪ٞ (DataSet‬بي ثب ٘‪ٛ‬ع داد‪54 ................ ................................ ................................ ................................ ٜ‬‬
‫ؿىُ ‪ :29‬فشْ ‪ٞ‬بي س‪ِٛ‬يذ ؿذ‪ ٜ‬ي خ‪ٛ‬دوبس دس ٔحيي ًشاحي ‪ٚ‬يظ‪ٚ‬اَ اػش‪ٛ‬دي‪55 .................... ................................ ................................ ٛ‬‬
‫ؿىُ ‪ :30‬صٔبٖ الصْ ثشاي ثبسٌضاسي ‪ٕ٘ ٚ‬بيؾ داد‪ٞ ٜ‬ب ‪ ٚ‬ػب ث‪ ٝ‬ػبيي ثيٗ سو‪ٛ‬سد ‪ٞ‬ب ‪57 .............. ................................ ................................‬‬
‫ؿىُ ‪ٞ SqlCeResultSet :31‬بي ثب ٘‪ٛ‬ع داد‪51 ................ ................................ ................................ ................................ ٜ‬‬
‫ؿىُ ‪ :32‬اسلبَ ػؼج‪ٔ ٝ‬شٗ ‪ Product ID‬ث‪ٙٔ ٝ‬جغ داد‪ ٜ‬ي ٘بدسػز ‪61 ........................... ................................ ................................‬‬
‫ؿىُ ‪ :33‬افض‪ٚ‬دٖ دػشي ٔ‪ٙ‬جغ اسلبَ )‪ ٚ (binding source‬ا٘شؼبة آٖ ث‪61 ................. ................................ Order_DetailsResultSet ٝ‬‬
‫ؿىُ ‪ :34‬صٔبٖ الصْ ثشاي ثبسٌضاسي ‪ٕ٘ ٚ‬بيؾ داد‪ٞ ٜ‬ب ‪ ٚ‬ػب ث‪ ٝ‬ػبيي ثيٗ سو‪ٛ‬سد ‪ٞ‬ب ‪ٔ$‬مبيؼ‪ ٝ‬و‪ٙ‬يذ ثب ؿىُ ‪61 ................... ................................ #3‬‬
‫ؿىُ ‪ :35‬ثش٘بٔ‪ ٝ‬ي ‪72 .......... ................................ ................................ ................................ Device Security Manager‬‬
‫ؿىُ ‪ٚ :36‬ة ػبيز حب‪ٚ‬ي ثش٘بٔ‪ ٚ ٝ‬داّ٘‪ٛ‬د ث‪ ٝ‬س‪ٚ‬ص سػب٘ي آٖ ‪71 ..................................... ................................ ................................‬‬
‫ؿىُ ‪ :37‬ا‪ِٚ‬يٗ اػشاي ثش٘بٔ‪71 .................................... ................................ ................................ ................................ ٝ‬‬

‫‪87‬‬
‫‪www.SoftGozar.Com‬‬
‫‪http://m0911.wordpress.com‬‬
‫ؿىُ ‪٘ :38‬لت ثش٘بٔ‪ ٚ ٝ‬اػشاي آٖ اص ًشيك ثش٘بٔ‪ ٝ‬ي ث‪ ٝ‬س‪ٚ‬ص سػب٘ي )‪74 ............................... ................................ (application updater‬‬
‫ؿىُ ‪ :39‬ث‪ ٝ‬س‪ٚ‬ص سػب٘ي خ‪ٛ‬دوبس دس ػُٕ ‪76 ........................ ................................ ................................ ................................‬‬
‫ؿىُ ‪ :40‬ثش٘بٔ‪ ٝ‬ي اي‪ٙ‬شش٘ز اوؼذّ‪ٛ‬سس ‪ٛٔ 6‬ثبيُ دس حبِز ٕ٘بيؾ دػىشبح ‪ٛٔ ٚ‬ثبيُ ‪11 ............ ................................ ................................‬‬
‫ؿىُ ‪ :41‬ثبسٌزاسي كفح‪ ٝ‬دس ا٘ذاص‪ ٜ‬ي ف‪٘ٛ‬ز ٔشفب‪ٚ‬ر دس دػشٍب‪ٞ ٜ‬بي ٔخشّف ‪14 .................. ................................ ................................‬‬
‫ؿىُ ‪ :42‬ثش٘بٔ‪ ٝ‬ي سحز ‪ٚ‬ة اص داخُ يه ٔش‪ٚ‬سٌش ‪ ٚ‬ث‪ ٝ‬ك‪ٛ‬سر ثخـي اص يه ثش٘بٔ‪ ٝ‬ي اػٕبسر والي‪ٙ‬ز ‪16 ....................... ................................‬‬

‫‪88‬‬

You might also like