Professional Documents
Culture Documents
Com
http://m0911.wordpress.com
ايٗ وشبة اِىشش٘ٚيىي دس اكُ يه ػشي ٔمبِ ٝي 7لؼٕشي ثش٘بٔٛ٘ ٝيؼي ٚيٙذٚص ٔٛثبيُ اػز و ٝدس اػفٙذ ٚ 1388فشٚسديٗ 1389ثخؾ ثٝ
ثخؾ سشػٕ ٚ ٝدس ٚثالٌٓ ٔٙشـش ٕ٘ٛدِْ .يىٗ ثشاي ساحشي وبس خٛا٘ٙذٌبٖ سشػيح دادْ و ٕٝٞ ٝسا دس يه فبيُ ٌشدآٚسي ٚثبص ٘ـش ٕ٘بيٓ.
٘ٛيؼٙذٌ ٜبٖ ايٗ ٔؼٕٛػٔ ٝمبِ ٝاص وبسوٙبٖ وٕذب٘ي ٔيىشٚػبفز ٞؼشٙذ .يؼٙي ٕٞبٖ وٕذب٘ي وٚ ٝيٙذٚص ٔٛثبيُ سا سِٛيذ ٙٔ ٚشـش ٕ٘ٛد ٜاػز .اص
ايٗ سٌٕٔ ٚئ ٓٙؤٌ ٝبِت ٔ ٚحشٛيبر ايٗ اطش ثشاي ثش٘بٔٛ٘ ٝيؼب٘ي ؤ ٝي خٛاٙٞذ ٚاسد د٘يبي ٚيٙذٚص ٔٛثبيُ ثـ٘ٛذ ،ػٛدٔٙذ خٛاٞذ ثٛد.
خٛؿحبَ خٛا ٓٞؿذ و٘ ٝظش ٚديـٟٙبد خٛد سا اص ًشيك آدسع ٚثالٌٓ http://m0911.wordpress.comيب ث ٝآدسع ايٕيُ
mehdi.abd@gmail.comاسػبَ فشٔبييذ.
1
http://m0911.wordpress.com
فهرست مطالة
فصل نخست 4 ...................... ................................ ................................ ................................ ................................
٘لت ٚيظٚاَ اػشٛدي ٚ 2008 ٛاثضاس ٞبي اهبفي سٛػؼ٘ ٝشْ افضاس 5 ............................... ................................ ................................
ايؼبد ٘خؼشيٗ ثش٘بٔ ٝي ٚيٙذٚص ٔٛثبيُ 7 ......................... ................................ ................................ ................................
ٍ٘بسؽ ٞبي ٔخشّف ؿجي ٝػبص دػشٍب11 ....................... ................................ ................................ ................................ ٜ
اػشاي ؿجي ٝػبص دػشٍب ٜاص داخُ ٚيظٚاَ اػشٛدي11 .................................... ................................ ................................ 2008 ٛ
سٙظيٓ ٔـخلبر ؿجي ٝػبص دػشٍب14 .......................... ................................ ................................ ................................ ٜ
اػشفبد ٜي ٓٞصٔبٖ اص ؿجي ٝػبص دػشٍب ٚ ٜؿجي ٝػبص سّفٗ ٕٞشا15 ........................... ................................ ................................ ٜ
دسػز وشدٖ اسلبَ داخُ ؿجي ٝػبص سّفٗ ٕٞشا16 ............. ................................ ................................ ................................ ٜ
وٙششَ ؿجي ٝػبص دػشٍب ٜسٛػي ثش٘بٔ ٝي ٔذيش ؿجي ٝػبص دػشٍب11 ........................... ................................ ................................ ٜ
رخيش ٜي سٙظيٕبر ؿجي ٝػبص دػشٍب ٜثشاي اػشفبدٞ ٜبي ثؼذي 11 ............................. ................................ ................................
اػشفبد ٜاص ؿجي ٝػبص دػشٍب ٜثشاي آصٔبيؾ سٙظيٕبر أٙيشي ٔخشّف 12 ........................ ................................ ................................
خٛدوبس ػبصي ٔذيش ؿجي ٝػبص 11 ................................ ................................ ................................ ................................
دػشٍبٞ ٜبي ٚيٙذٚص ٔٛثبيُ اػشب٘ذاسد 15 ......................... ................................ ................................ ................................
دػشٍبٞ ٜبي ٚيٙذٚص ٔٛثبيُ 6حشف ٝاي 15 ...................... ................................ ................................ ................................
ًشاحي يه ٚاػي وبسثش ػبد ٜدس ٚيٙذٚص ٔٛثبيُ 6حشف ٝاي 16 ................................. ................................ ................................
ايؼبد ٘شْ افضاسي و ٝثشٛا٘ذ ثب ػٟز ٞبي ٔخشّف كفحٕ٘ ٝبيؾ ػبصٌبس ثبؿذ 17 ................ ................................ ................................
ثٙذوـي يب طبثز وشدٖ وٙششَ ٞب 17 ............................. ................................ ................................ ................................
ًشاحي ثش٘بٔ ٝاي و ٝسٚي دػشٍبٞ ٜبي ٔخشّف وبس وٙذ 12 ..................................... ................................ ................................
اسص ثشي فشْ ٞب 11 ............... ................................ ................................ ................................ ................................
افضٚدٖ وٙششَ ٞبي ػفبسؿي ث ٝثش٘بٔ ٝي خٛدسبٖ 17 ............ ................................ ................................ ................................
وٙششَ ٞبي اسص ثشي ؿذ11 .................................... ................................ ................................ ................................ ٜ
اػشفبد ٜاص وٙششَ ػفبسؿي داخُ يه ثش٘بٔ44 .................. ................................ ................................ ................................ ٝ
2
http://m0911.wordpress.com
افضد ٖٚاًالػبر ٔشثٛى ثٔ ٝحُ ػغشافيبيي ث ٝثش٘بٔ45 ......................................... ................................ ................................ ٝ
ث ٝسٚص سػب٘ي وٙششَ ٞبي ٚاػي وبسثش دس يه ثش٘بٔ ٝي چٙذ دشداصؿي 41 ....................... ................................ ................................
آصٔبيؾ ثش٘بٔٞ ٝبي حؼبع ثٔ ٝحُ ػغشافيبيي 41 .............. ................................ ................................ ................................
اػشفبد ٜاص ديشبػز ٞبي داساي ٘ٛع 51 ........................... ................................ ................................ ................................
اػشفبد ٜاص SqlCeResultSetsثب ٘ٛع داد51 ................. ................................ ................................ ................................ ٜ
ؿىُ ٞ SqlCeResultSet :31بي ثب ٘ٛع داد51 ................ ................................ ................................ ................................ ٜ
أٙيز دس دػشٍبٞ ٜبي ٚيٙذٚص ٔٛثبيُ 66 ........................ ................................ ................................ ................................
ٔؼٛص اػشا ٚفبيُ ٞبي وشبثخب٘ ٝي 61 .................... ................................ ................................ ................................ DLL
آصٔبيؾ ثش٘بٔ ٝدس حبِز ٞبي ٔخشّف سٙظيٕبر أٙيشي 61 ...................................... ................................ ................................
ث ٝسٚص سػب٘ي ثش٘بٔٞ ٝب 71 ........................................ ................................ ................................ ................................
ث ٝسٚص سػب٘ي ثش٘بٔ76 ........... ................................ ................................ ................................ ................................ ٝ
ؿىُ :39ث ٝسٚص سػب٘ي خٛدوبس دس ػُٕ 76 ..................... ................................ ................................ ................................
٘شْ افضاس ٞبي سحز ٚة ٚدـشيجب٘ي اص ٚيٙذٚص ٔٛثبيُ 12 ........................................ ................................ ................................
حبِز ٞبي ٔخشّف ٕ٘بيؾ ٚة ػبيز 11 ......................... ................................ ................................ ................................
سـخيق ٚيٙذٚص ٔٛثبيُ اػشب٘ذاسد اص دشٚفـٙبَ 11 ............... ................................ ................................ ................................
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
حبَ اٌش حذالُ يىي اص دٍ٘ ٚبسؽ Professional ٚ Standardاثضاس سٛػؼ ٝي ٚيٙذٚص ٔٛثبيُ 6سا ٘لت وشد ٜايذ ٔي سٛا٘يذ ٘خؼشيٗ ثش٘بٔ ٝي
خٛد سا ثشاي دػشٍب ٜثب ػيؼشٓ ػبُٔ ٚيٙذٚص ٔٛثبيُ 6ثٛٙيؼيذ.
6
http://m0911.wordpress.com
ايؼبد ٘خؼشيٗ ثش٘بٔ ٝي ٚيٙذٚص ٔٛثبيُ
ثشاي ايٗ ثش٘بٔ ٝثبيذ ٌضي ٝٙي Windows Mobile 6 Professional SDKسا دس ثخؾ Target Platformا٘شخبة ٕ٘بييذ .اِجش ٝؿٕب ٛٙٞص
ٔي سٛا٘يذ ثشاي سؼذاد صيبدي اص دػشٍبٞ ٜبي ٚيٙذٚص ٔٛثبيُ ٚدػشٍبٞ ٜبي ػٕٔٛي Windows CEثش٘بٔ ٝثٛٙيؼيذ .ثب ٘لت ٞش دٍ٘ ٚبسؽ اثضاس
سٛػؼ ٝي ٚيٙذٚص ٔٛثبيُ 6دس ٚيظٚاَ اػشٛدي 2008 ٛؿٕب ٔي سٛا٘يذ ثشاي دػشٍبٞ ٜبي صيش ثش٘بٔ ٝثٛٙيؼيذ:
دس ٚيظٚاَ اػشٛدئ ٛي سٛا٘يذ ثب دٍ٘ ٚبسؽ ٔخشّف – .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 ٛسا ٔي ثيٙيذ .ثخؾ ثضسي ػٕز چخ كفح ٝو ٝؿىُ يه دػشٍبٛٔ ٜثبيُ ثب
ػيؼشٓ ػبُٔ ٚيٙذٚص سا ٘ـبٖ ٔي دٞذ ٚدس ٚالغ ث ٝػبي ًشاح فشْ دس ثش٘بٔٞ ٝبي ٔؼِٕٛي اػز .ؿٕب ٔي سٛا٘يذ وٙششَ ٞبي ٔٛسد ٘يبص ٚاػي
وبسثشي سا اص ػؼج ٝاثضاس آٖ ا٘شخبة وشد ،ٜداخُ 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دس ٔحّي اص ٚيشايـٍش وذ ؤ ٝىبٖ ٕ٘ب لشاس داسد ،وذ صيش سا اهبفٕ٘ ٝبييذ.
٘ىش : ٝؿٕب حيٗ ٘ٛؿشٗ وذ ،لبثّيز ٕ٘بيؾ سٍ٘ي وّٕبر وّيذي ٔ ... ٚحيي ٚيشايـٍش وذ سا – وٞ ٝش وذاْ اص دػشٛسٞب ٚػجبسار سبيخ ؿذ ٜسا ثشاي
ساحشي سـخيق دسػز ثٛدٖ آٖ ،ث ٝسً٘ خبكي ٕ٘بيؾ ٔي دٞذ – ٔـبٞذ ٜخٛاٞيذ وشدٕٞ .چٙيٗ ٘ 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
ٔمذٔٝ
اٌش ؿٕب سٛػؼ ٝدٙٞذ ٜي ثش٘بٔٞ ٝبي ٚيٙذٚص ٔٛثبيُ ثبؿيذ حشٕب ثب ؿجي ٝػبص دػشٍب ٜآؿٙب ٞؼشيذ .ايٗ يه اثضاس سايٍبٖ ثشاي آصٔبيؾ اػشاي ثش٘بٔٝ
ٞبي سبٖ ثش سٚي ا٘ٛاع ٔخشّف دػشٍبٞ ٜبي ثب ػيؼشٓ ػبُٔ ٚيٙذٚص ٔٛثبيُ ثب ٔذَ ٞبي ٔخشّف اػز؛ ثذ ٖٚايٗ و٘ ٝيبص ث ٝسٟي ٝي دػشٍبٞ ٜبي
ٚالؼي ثبؿذ.
دس ايٗ ٔمبِ ٝؿٕب ثب ٘ح ٜٛي وبس ؿجي ٝػبص دػشٍب ٜثشاي آصٔبيؾ ثش٘بٔٞ ٝبي خٛد آؿٙب ٔي ؿٛيذ ٚايٗ و ٝچٍ ٝ٘ٛؿجي ٝػبص سا سٙظيٓ ٕ٘بييذ سب
دليمب ثشٛا٘يذ ػّٕىشد اثضاس سا وٙششَ وٙيذ .ث ٝػال ٜٚچٍٍ٘ٛي اػشفبد ٜاص ؿجي ٝػبص سا ث ٝكٛسر سشويجي ثب سّفٗ ٕٞشا٘ ٜيض خٛاٞيذ آٔٛخز و ٝثشٛا٘يذ
سٕبع ٞبي سّفٙي ٚاسػبَ ٚدسيبفز ديبٔه سا آصٔبيؾ ٕ٘بييذ .دس ٟ٘بيز خٛاٞيذ ديذ و ٝچٍٔ ٝ٘ٛي سٛا٘يذ ث ٝوٕه ثش٘بٔٛ٘ ٝيؼي ،اص ٔذيش ؿجيٝ
ػبص ثشاي وٙششَ ؿجي ٝػبص ٞبي ٔخشّف اص داخُ يه ثش٘بٔ ٝي دػىشبح اػشفبد ٜوٙيذ.
ٍ٘بسؽ 0.3آخشيٗ ٍ٘بسؽ ؿجي ٝػبص دػشٍب$ ٜدس صٔبٖ ٍ٘بسؽ ايٗ ٔمبِ #ٝاػز وٕٞ ٝشا ٜثب ٚيظٚاَ اػشٛدي 2008 ٛػشه ٝؿذ ٜاػز ٚثًٛ ٝس
خٛدوبس ٍ٘بسؽ ٞبي لجّي ٘لت ؿذ ٜسٚي ػيؼشٓ ؿٕب سا ثب ٍ٘بسؽ ػذيذ ػبيٍضيٗ ٔي ٕ٘بيذٍ٘ .بسؽ ،0.3ػال ٜٚثش ثٟجٛد وبسآيي ٘ؼجز ثٍ٘ ٝبسؽ
،0.2اص ٚاػي ٞبي ٔ COMذيش ؿجي ٝػبص دػشٍب ٜاػشفبدٔ ٜي وٙذ .ث ٝػال ٜٚأىبٖ وٙششَ ؿجي ٝػبص ٞب سا اص ًشيك ثش٘بٔٛ٘ ٝيؼي ثشاي ٔٛاسد صيش
فشأ ٓٞي ػبصد:
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ثبص خٛاٞذ ؿذ.
14
http://m0911.wordpress.com
اػشفبد ٜي ٓٞصٔبٖ اص ؿجي ٝػبص دػشٍب ٚ ٜؿجي ٝػبص سّفٗ ٕٞشاٜ
ٔٛاسد ثؼيبسي ديؾ ٔي آيذ و ٝثخٛاٞيذ اػشاي ٘شْ افضاس سبٖ سا دس سّفٗ ٕٞشا ٜآصٔبيؾ وٙيذٔ .ظال ٘شْ افضاس ؿٕب ٕٔىٗ اػز ؿٕبسٌ ٜيشي سّفٗ يب
اسػبَ ٚدسيبفز ديبٔه سا ا٘ؼبْ دٞذ .ثشاي ايٗ ٔٛساد ؿجي ٝػبص دػشٍب ٜثؼيبس ٔفيذ خٛاٞذ ثٛد چشا و ٝوٕه ٔي وٙذ سب ثذ٘ ٖٚيبص ث ٝيه سّفٗ
ٕٞشاٚ ٜالؼي سٕبٔي حبِز ٞبي آٖ سا آصٔبيؾ ٕ٘بييذ .ؿجي ٝػبص سّفٗ دس ٍ٘بسؽ ٚ 0.2ثبالسش لبثُ دػششع اػز .ؿجي ٝػبص سّفٗ ٕٞشا ٜسا اص ٔٛٙي
Start/All Programs / Windows Mobile 6 SDK / Tools / Cellular Emulatorاػشا ٕ٘بييذ .ديؾ اص آٖ و ٝؿجي ٝػبص دػشٍب ٜسا ٕٞشاٜ
ثب ؿجي ٝػبص سّفٗ ٕٞشا ٜاػشفبدٕ٘ ٜبييذ ،ثبيذ دٛسر ػشيبَ ؿٕبس 0 ٜؿجي ٝػبص دػشٍب ٜسا ث ٝدٛسر ػشيبِي و ٝدس ٘ٛاس ٚهؼيز ثش٘بٔ ٝي ؿجي ٝػبص
سّفٗ ٕٞشإ٘ ٜبيؾ دادٔ ٜي ؿٛد ٔشلُ ٕ٘بييذ .دس ؿىُ 3ؿٕب دٛسر ػشيبَ ؿٕبس 0 ٜسا دس كفح ٝي ٔـخلبر ثش٘بٔ ٝي ؿجي ٝػبص ٔي ثيٙيذ وٝ
ثشاي اسسجبى ثب ثش٘بٔ ٝي ؿجي ٝػبص سّفٗ ٕٞشا ٜث ٝدٛسر ٔ COM3شلُ ؿذ ٜاػز .دغ اص اسلبَ دٛسر ػشيبَ ثبيذ ؿجي ٝػبص دػشٍب ٜسا سا ٜا٘ذاصي
ٔؼذد ) (resetوٙيذ سب ؿجي ٝػبص سّفٗ ٕٞشا ٜوبس وٙذ.
ؿىُ :6اسلبَ ؿجي ٝػبص سّفٗ ٕٞشا ٜث ٝؿجي ٝػبص دػشٍبٜ
حبَ ٔي سٛا٘يذ:
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
دس ؿىُ 5ؿٕب يه ٕ٘ ٝ٘ٛثش٘بٔٔ ٝي ثيٙيذ و ٝديبٔه ٞبيي سا و ٝثب ػجبسر Control Messageآغبص ؿ٘ٛذ ،ػذا ٚدسيبفز ٔي ٕ٘بيذٞ .ش ثبس وٝ
ديبٔه سٛػي دػشٍب – ٜو ٝدس حبَ اػشاي ثش٘بٔ ٝي SMS Captureاػز – دسيبفز ٔي ؿٛد ،اثشذا سٛػي ثش٘بٔ ٝثشسػي ٔي ؿٛد .ثش٘بٔٔ ٝشٗ
ديبٔه سا دس يه ػؼجٔ ٝشٗ ٕ٘بيؾ ٔي دٞذ ٔ ٚـخل ٝي Textيه وٙششَ LinkLabelسا ثشاثش ثب ؿٕبس ٜسّفٗ اسػبَ وٙٙذ ٜي ديبٔه لشاس ٔي
دٞذ .وبسثش خٛاٞذ سٛا٘ؼز ث ٝػبدٌي ثب وّيه سٚي ؿٕبس ٜسّفٗ ٕ٘بيؾ داد ٜؿذ ،ٜثب فشػشٙذ ٜي ديبٔه سٕبع سّفٙي ثٍيشد.
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
دس ؿىُ ٚ 6يٙذٚص ٔٛثبيُ 1.6سا ٔي ثيٙيذ و ٝدس يه كفح ٝي ٔشثؼي داخُ ٔذيش ؿجي ٝػبص اػشا ؿذ ٜاػز.دغ اص اػشاي ؿجي ٝػبص ،ثش٘بٔ ٝي
ٔذيش ؿجي ٝػبص ثشاي اسلبَ ث ٝآٖ ث ٝوبس ٔي سٚد .ثشاي وٙششَ ؿجي ٝػبص ٞب اص داخُ ٔذيش ؿجي ٝػبص ثبيذ سٚي ؿجي ٝػبص ٔٛسد ٘ظش سبٖ اص ِيؼز
ٕ٘بيؾ دسخشي – و ٕٝٞ ٝي ؿجي ٝػبص ٞبي ٘لت ؿذ ٜسا ٘ـبٖ ٔي دٞذ – ساػز وّيه وٙيذ ٌ ٚضي ٝٙي ٔٛسد ٘ظش سبٖ سا اص ٔٛٙي Actions
سٚي ؿجي ٝػبص دس حبَ اػشا ا٘شخبة ٕ٘بييذ .ثٔ ٝحن اسلبَ ث ٝؿجي ٝػبص دػشٍب ٜخٛاٞيذ ديذ و ٝثش٘بٔ ٝي ActiveSyncيب Windows Mobile
Device Centerثبال ٔي آيٙذ.
18
http://m0911.wordpress.com
رخيش ٜي سٙظيٕبر ؿجي ٝػبص دػشٍب ٜثشاي اػشفبدٞ ٜبي ثؼذي
ثب ثش٘بٔ ٝي ٔذيش ؿجي ٝػبص ايٗ أىبٖ ٞؼز و ٝؿٕب سٙظيٕبر خبف ٔٛسد ٘ظشسبٖ سا ثشاي ٞش ٘ٛع ؿجي ٝػبص دػشٍب ٜرخيشٕ٘ ٜبييذٔ .ظال يه ؿجيٝ
ػبص ايؼبد ٔي وٙيذ وٕٞ ٝيـ ٝثب ثبسشي ٚ "50وبسر حبفظ ٝاي و ٝسٚي يه دٛؿ ٝي خبف سٚي وبٔذيٛسش ٔيضثبٖ سٙظيٓ ؿذ ٜاػز ،ثبال ثيبيذ.
ثذيٗ ٔٙظٛس دس ثش٘بٔ ٝي ٔذيش ؿجي ٝػبص يىي اص ؿجي ٝػبص ٞبي ٘لت ؿذ ٜسا ا٘شخبة ٚدغ اص ساػز وّيه سٚي آٖ ٌضي ٝٙي Connectسا ثض٘يذ.
ثٍٙٞ ٝبْ اػشاي ؿجي ٝػبص ٔي سٛا٘يذ سٙظيٕبر آٖ سا سغييش دٞيذ ٚسٛػي ٌضي ٝٙي Save Asاص ٔٛٙي ساػز وّيه داخُ ٔذيش ؿجي ٝػبص
سٙظيٕبر ػذيذ سا رخيشٕ٘ ٜبييذ.ايٗ سٙظيٕبر رخيش ٜؿذ ٜث ٝكٛسر يه ٘بْ ؿجي ٝػبص ػذيذ داخُ ٔذيش ؿجي ٝػبص ديذ ٜخٛاٙٞذ ؿذ .دس ٕ٘ٛداس
دسخشي My Device Emulatorsداخُ ٔذيش ؿجي ٝػبص ٔي سٛا٘يذ ايٗ ؿجي ٝػبص دػشٍبٞ ٜب سا ثجيٙيذ .ثب ايٗ وبس كشفب يه فبيُ حبٚي سٙظيٕبر
ثش ٔجٙبي ٘ٛع خبف ؿجي ٝػبص ٔٛسد ٘ظش ؿٕب ايؼبد ٔي ؿٛد ٚثب ٞش ثبس ايؼبد يه ؿجي ٝػبص ثب سٙظيٕبر ػذيذ حبفظ ٝي چٙذا٘ي ثشاي آٖ سٚي
ٞبسد ديؼه ؿٕب اخشلبف ٕ٘ي يبثذ.
دس ؿىُ ٜٕٚٛ٘ 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) صٚذٙيٚ ي دػىشبحٝٔ ثشاي ايؼبد يه ثش٘ب. آٖ سا اػشا ٕ٘بيذٜٔشلُ ؿذ
:يذٞٔشاحُ صيش سا ا٘ؼبْ د
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
فصل سوم
24
http://m0911.wordpress.com
ٔمذٔٝ
سٛػؼ ٝي ٘شْ افضاس ٚيٙذٚص ٔٛثبيُ ؿجبٞز صيبدي ث ٝسٛػؼ ٝي ٘شْ افضاس دس دػىشبح داسد ثٚ ٝيظ ٜصٔب٘ي و ٝيىي اص د ٚصثبٖ ٚيظٚاَ ثيؼيه يب ٚيژظٚاَ
ػي ؿبسح دار ٘ز سا اػشفبدٔ ٜي وٙيذ .ؿٕب ٕٞبٖ اثضاسٞبي سٛػؼ ٝي ثش٘بٔٞ ٝبي ٚيٙذٚص دػىشبح سا ثشاي ٚيٙذٚص ٔٛثبيُ ٞژٓ اػژشفبدٔ ٜژي وٙيژذ
ِيىٗ سفبٚر ٞبيي ٘يض ثيٗ ايٗ دٔ ٚحيي ٞؼز .دػشٍبٞ ٜبي ٚيٙذٚص ٔٛثبيُ كفح ٝي ٕ٘بيؾ وٛچه سش ٙٔ ٚبثغ ٔحذٚد سش داس٘ذ ٕٞ ٚچٙژيٗ لبثژُ
حُٕ ثٛد ،ٜاغّت ثبسشي اػشفبدٔ ٜي وٙٙذ.
ايٗ ٔمبِ ٝاًالػبسي سا دس ثبس ٜي چٍٍ٘ٛي ٘شْ افضاسٞبي ٚيٙذٚص فشْ ثشاي دػشٍبٞ ٜبي ٚيٙذٚص ٔٛثبيُ ث ٝؿٕب خٛاٞژذ داد ٚدس ٟ٘بيژز ؿژٕب يژبد ٔژي
ٌيشيذ و ٝچٌٛس ٘شْ افضاسٞب سا ثشاي اػشفبد ٜاص أىب٘بر دػشٍبٞ ٜبي ٚيٙذٚص ٔٛثبيُ سٛػؼ ٝدٞيذ ٚدس ػيٗ حبَ حٛاع سبٖ ث ٝؿبسط ثبسشي ٓٞثبؿژذ
ٚكفحٕ٘ ٝبيؾ ثش٘بٔ ٝسبٖ ثذ ٖٚسٛػ ٝث ٝػٟز كفح ٝي ٕ٘بيؾ دػشٍب ،ٜدسػز ػُٕ وٙذ.
25
http://m0911.wordpress.com
26
http://m0911.wordpress.com
خت ! ثيىبس ٕ٘ب٘يذ ٚوٙششَ ٞبي ٔخشّفي سا ؤ ٝي سٛا٘يذ دس ًشاحي ٚاػي وبسثش اػشفبد ٜوٙيذٍ٘ ،بٞي ثيٙذاصيذ .اٌش ثشخي اص آٖ ٞب ثژ ٝچـژٓ سژبٖ
آؿٙب ٘يؼشٙذ ثٟششيٗ وبس ايٗ اػز و ٝآٖ ٞب سٚي فشْ لشاس دٞيذ ٔ ٚـخلٞ ٝبي آٖ ٞب ٚوبسوشد ٞش وذاْ سا ٌٔبِؼژ ٝوٙيژذ ٚكژذ اِجشژ ٝسإٙٞژبي
آ٘اليٗ سا ٓٞث ٝيبد داؿش ٝثبؿيذ .يىي اص ٔ ٟٓسشيٗ چيضٞبيي و ٝثٍٙٞ ٝبْ ًشاحي ٚاػي وبسثش ث ٝچـٓ خٛاٞذ آٔذ٘ ،ح ٜٛي وبس ًشاح ٚاػي وژبسثش
اػز .دلز وٙيذ و ٝچٌٛس وٕه سبٖ خٛاٞذ وشد ٔحُ لشاس ٌيشي وٙششَ ٞب سا سشاص وٙيذ ٚوٕششيٗ فبكّ ٝي ٕٔىٗ سا ثشاي آٖ ٞب دس ٘ظش ثٍيشيژذ.
خٌٛى سإٙٞب ) (Guide Linesوٕه صيبدي خٛاٙٞذ وشد سب دس ا٘ذن صٔب٘يٚ ،اػي وبسثش سا خيّي خٛؽ دػز ًشاحي وٙيژذ .دس ؿژىُ 2لژشاس
ٌيشي دوٕٞ ٝبي button2 ٚ button1سا دس د ٚحبِز افمي ٚػٕٛدي ٘ؼجز ثٔ ٓٞ ٝي ثيٙيذ و ٝث ٝوٕه خٌٛى ثبسيه آثي سًِ٘ ،جٞ ٝژبي آٖ
ٞب ٘ؼجز ث ٓٞ ٝسشاص ؿذ ٜا٘ذ.
ؿىُ :13خٌٛى سإٙٞب ثٟششيٗ دػشيبس ؿٕب دس سشويت ثٙذي ٚاػي وبسثش
ايؼبد ٘شْ افضاسي و ٝثشٛا٘ذ ثب ػٟز ٞبي ٔخشّف كفحٕ٘ ٝبيؾ ػبصٌبس ثبؿذ
سٛٙع صيبد دػشٍبٞ ٜب ٔ ٚذَ ٞبي آٖ ٞب ثبػض ؿذ ٜاػز و ٝسٛػؼ ٝي يه ٘شْ افضاس و ٝثشٛا٘ذ دس سؼذاد ٔشٛٙػي دػشٍب ٜوبس وٙذ ا٘ذوي ديچيذٜ
ثبؿذٚ .يظٚاَ اػشٛدي ٛث ٝؿٕب أىبٖ ثٙذوـي ٚطبثز وشدٖ وٙششَ ٞبي ٚاػي وبسثش سا فشأ ٓٞي وٙذ .ثب اثضاس سٛػؼ ٝي ٚيٙذٚص ٔٛثبيُ ٔ 6ي سٛا٘يذ
اًالػبسي دس ثبس ٜي لبثّيز ٞبي دػشٍبٍ٘ ٚ ٜبسؽ ٞبي ػيؼشٓ ػبُٔ دػشٍب ٜث ٝدػز آٚسيذِ .يىٗ دس ايٗ ٔمبِٔ ٝب سٚي چٙذ ٔٛسد خبف ٔ ٚحذٚد
وبس ٔي وٙيٓ:
سٛػ ٝثٔ ٝيضاٖ ٔٙبثغ آصاد ػيؼشٓ ٚثبسشي
اػشا دس دػشٍبٞ ٜبي ٚيٙذٚص ٔٛثبيُ 6
ٕ٘ بيؾ دسػز دس ٞش د ٚحبِز افمي ،ػٕٛدي ٕٞ ٚچٙيٗ دػشٍبٞ ٜبيي ثب كفحٕ٘ ٝبيؾ ٔشثغ ؿىُ
ثب ٚػٛدي و$ ٝدس صٔبٖ ٍ٘بسؽ ايٗ ٔمبِ #ٝدػشٍبٞ ٜبي ٚيٙذٚص ٔٛثبيُ اػشب٘ذاسد ػٟز ٞبي ٔخشّف كفح ٝي ٕ٘بيؾ سا دـشيجب٘ي ٕ٘ي وٙٙذ ِٚي
ٕٔىٗ اػز دس آيٙذ ٜايٗ أىبٖ فشا ٓٞؿٛد .دس ثشخي ٔٛاسد ٕ٘بيؾ اًالػبر دس كفح ٝي افمي ثبػض ساحشي ثيـشش وبسثش خٛاٞذ ؿذٚ .يظٚاَ
اػشٛدي ٛثٍٙٞ ٝبْ ًشاحي ٚاػي وبسثش يه ثش٘بٔ ٝي ٚيٙذٚص فشْ ،وٕه سبٖ خٛاٞذ وشد سب وٙششَ ٞب دس يه ٔٛلؼيز خبف طبثز وشد ،ٜيب ثٙذوـي
وٙيذ.
ؿىُ ٚ :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سا ٜديٍش آٖ اػز و ٝفشْ سا ا٘شخبة $وّيه #وشد ،ٜدوٕٞ ٝبي سٚي ٘ٛاس
اثضاس سا ثشاي سغييش ػٟز ٕ٘بيؾ اػشفبد ٜوٙيذ.
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سؼشيف وشد ٜايٓ ،اػشا خٛاٞذ ؿذ:
ايٗ وذ اص وبسثش خٛاٞذ دشػيذ و ٝآيب فبيُ ٞبي دس حبَ اػشفبد ٜسا لجُ اص ايؼبد فبيُ ػذيذ ،رخيش ٜوٙذ يب ٕ٘ٞ .ٝبٖ ًٛس ؤ ٝي ثيٙيذ أىب٘بر خٛد
ٚيشايـژژٍش دس وژژالع ديٍژژشي ثژژ٘ ٝژژبْ EditLogicلژژشاس داسد وژژ ٝاليژژ ٝي ٚاػژژي وژژبسثش سا ثژژً ٝژژٛس وبٔژژُ اص اليژژ ٝي ادّيىيـژژٗ الػيژژه
) (Application Logicػذا ٔي وٙذ .اٌش ثش٘بٔ ٝدس دػشٍب ٜثب ػيؼشٓ ػبُٔ ٚيٙذٚص ٔٛثبيُ حشف ٝاي اػشا ؿٛد ،يىي اص لبثّيز ٞبيي وژ ٝثبيژذ دس
اثشذاي اػشاي ثش٘بٔ ٝغيش فؼبَ ؿٛد وٙششَ «فٟشػز فبيُ ٞب» اػز .ايٗ وبس سا ثب اثٌبَ ٔذيش سٚيذاد ٌٔ menuNew_Clickبثك لٌؼژ ٝوژذ صيژش
ا٘ؼبْ ٔي دٞيٓ:
صٔب٘ي و ٝوبسثش دس ٚيٙذٚص ٔٛثبيُ حشف ٝاي ٌضي ٝٙي Newسا ا٘شخبة ٔي ٕ٘بيذ ،اثشذا وذ ٘ٛؿش ٝؿذ ٜدس فشْ دبي ٝاػشا ٔي ؿٛد ػذغ د ٚخژي وژذ
و ٝفمي دس ٚيٙذٚص حشف ٝاي دس دػششع ٞؼشٙذ اػشا ٔي ؿ٘ٛذ .ايٗ دػشٛس ٞب ث ٝسشسيت ثشاي ٔخفي وشدٖ وٙششَ «فٟشػز فبيُ ٞژب» ثژشاي ديژذٜ
ؿذٖ وٙششَ «ػؼجٔ ٝشٗ» ٕ٘ ٚبيؾ يه دوٕ ٝي OKدس ٘ٛاس ػٛٙاٖ فشْ ،اػشا ٔي ؿ٘ٛذ.
ثشاي اثٌبَ ٔذيش سٚيذاد menuNew_Clickثبيذ آٖ سا ثًٛ ٝس دػژشي ثژ ٝفبيژُ MainFormTouch.csاهژبفٕ٘ ٝبييژذ .اٌژش سٚي ٌضيٙژ ٝي
Newدس ٔحيي ًشاحي فشْ داثُ وّيه وٙيذٚ ،يظٚاَ اػشٛدي ٛيه ٔذيش سٚيذاد ػذيذ ث٘ ٝژبْ menuNew_Click_1ايؼژبد ٔژي وٙژذ وژ ٝدس
صٔبٖ اػشا ،دغ اص فشاخٛا٘ي ٔذيش سٚيذاد menuNew_Clickاكّي دس فشْ دبي ،ٝفشاخٛا٘ي خٛاٞذ ؿذ.
33
http://m0911.wordpress.com
سٛػ ٝثٙٔ ٝبثغ ػيؼشٓ
كشف ٘ظش اص ٔذَ دػشٍبٞ ٜش صٔبٖ و ٝفشْ اكّي ثش٘بٔٔ ٝخفي ؿٛد $دس دغ صٔي ٝٙلشاس ٌيشد #يه سٚيذاد فشاخٛا٘ي ٔي ؿٛد .ثًٛ ٝس ٔـژبث ٝصٔژب٘ي
و ٝفشْ اكّي ثش٘بٔٔ ٝؼذد فؼبَ ٔي ؿٛد ٚدس ديؾ صٔيٚ ٝٙيٙذٚص لشاس ٔي ٌيشد ،سٚيذاد ديٍشي فشاخٛا٘ي ٔي ؿٛد .ايٗ سٚيذاد ٞب سا ٔي سٛا٘يٓ ثشاي
آصاد ػبصي ٔٙبثغ ػيؼشٓ ٍٙٞبٔي و ٝثش٘بٔ ٝدس دغ صيٕ ٝٙاػشا ٔي ؿٛد ،اػشفبدٕ٘ ٜبييٓٔ$ .ظال غيش فؼبَ وشدٖ سبيٕش #دس ايٗ حبَ ثش٘بٔ ٝحبفظ ٝي
ٔٛسد اػشفبد ٜاؽ سا صٔب٘ي و٘ ٝيبصي ث ٝآٖ ٘يؼ ز ،آصاد ٔي ٕ٘بيذ ٚحشي االٔىبٖ اص وٕششيٗ دشداصؽ ٚث ٝسجغ آٖ وٕششيٗ سٛاٖ ثبسشي اػژشفبدٔ ٜژي
وٙذ.
اٌش ثش٘بٔ ٝي Mobile Editorدس دغ صٔي ٝٙلشاس ثٍيشد ثًٛ ٝس ٔٛلز ٔحشٛاي ػؼجٔ ٝشٗ سا دس يه فبيُ رخيشٔ ٜي وٙذ $وذ صيش:#
ٍٙٞ ٚبٔي و ٝثش٘بٔ ٝدٚثبس ٜدس ديؾ صٔي ٝٙلشاس ثٍيشدٔ ،حشٛاي فبيُ ٔژزوٛس سا ثبصيژبثي وژشد ،ٜدس ػؼجژٔ ٝژشٗ ٕ٘ tbWorkAreaژبيؾ ٔژي دٞژذ
$وذ صيش:#
34
http://m0911.wordpress.com
سِٛيذ ٘شْ افضاس ٞبيي و ٝدس ٞش دٚ ٚيشايؾ حشف ٝاي ٚاػشب٘ذاسد ٚيٙذٚص ٔٛثبيُ وبس وٙذ ،أىبٖ دزيش اػز ،أب ايٗ و ٝفىشي ٓٞثژشاي ٔؼٕژبسي ٘ژشْ
افضاس ثىٙيذ ثؼيبس ٔ ٚ ٟٓاػبػي اػز .ثٚ ٝيظ ٜصٔب٘ي ؤّ ٝضْ ثبؿيذ أىب٘بر ػخز افضاسي ٔخشّف سا دس دػشٍبٞ ٜبي ٔشٛٙع دس ٘ظش ثٍيشيذ ،ايٗ وبس
ديچيذ ٜسش خٛاٞذ ثٛد و ٝكذ اِجش ٝاص حٛكّ ٝي ايٗ ٔمبِ ٝخبسع اػز.
ؿىُ :9ثش٘بٔ ٝي Mobile Editدس حبَ اػشا سٚي دػشٍبٞ ٜبي ٔخشّف
ثشاي اػشفبد ٜاص اصص ثشي فشْ ٞب دس ٔحيي ًشاحي Windows Formsثبيذ يه ايذ ٜي دسػز ٚحؼژبثي داؿژش ٝثبؿژيذ .اِجشژٞ ٝژش وٙششِژي سا
ٔي سٛا٘يذ سٚي فشْ دبي ٝلشاس دٞيذ ث ٝؿشًي و ٝثخٛاٞيذ آٖ سا دس فشْ ٞبي ٔـشك ؿذ٘ ٜيض اػشفبدٕ٘ ٜبييذ .فمژي يبدسژبٖ ثبؿژذ اٌژش ٔژي خٛاٞيژذ
وبسوشد يه وٙششَ سا دس فشْ ٔـشك ؿذ ٜسغييش دٞيذ ،ثبيذ ٔـخل ٝي Modifiersوٙششَ سا ثب protectedيب ٔ publicمذاس دٞژي وٙيژذ .اٌژش
ٔـخل ٝي Modifiersيه وٙششَ سا ثب ٔ privateمذاس ثذٞيذ ،دس فشْ ٔـشك ؿذ ٜفمي ٔي سٛا٘يذ آٖ سا ٔخفي يب ثٙذوـي وشد ،ٜيب آٖ سا سغييژش
ا٘ذاص ٜثذٞيذ.
35
http://m0911.wordpress.com
فصل چهارم
36
http://m0911.wordpress.com
ٔمذٔٝ
سٛػؼ ٝي ٘شْ افضاس ٚيٙذٚص ٔٛثبيُ ؿجبٞز صيبدي ث ٝسٛػؼ ٝي ٘شْ افضاس دس دػىشبح داسد ثٚ ٝيظ ٜصٔب٘ي و ٝيىي اص د ٚصثبٖ ٚيظٚاَ ثيؼيه يب ٚيژظٚاَ
ػي ؿبسح دار ٘ز سا اػشفبدٔ ٜي وٙيذ .ؿٕب ٕٞبٖ اثضاسٞبي سٛػؼ ٝي ثش٘بٔٞ ٝبي ٚيٙذٚص دػىشبح سا ثشاي ٚيٙذٚص ٔٛثبيُ ٞژٓ اػژشفبدٔ ٜژي وٙيژذ
ِيىٗ سفبٚر ٞبيي ٘يض ثيٗ ايٗ دٔ ٚحيي ٞؼز .دػشٍبٞ ٜبي ٚيٙذٚص ٔٛثبيُ كفح ٝي ٕ٘بيؾ وٛچه سش ٙٔ ٚبثغ ٔحذٚد سش داس٘ذ ٕٞ ٚچٙژيٗ لبثژُ
حُٕ ثٛد ،ٜاغّت ثبسشي اػشفبدٔ ٜي وٙٙذ.
دس ايٗ ٔمبِ ٝيبد ٔي ٌيشيذ و ٝچٌٛس ٘شْ افضاسٞبي ثش ٔجٙبي ٚيٙذٚص فشْ ،ثشاي ٔٛثبيُ ايؼبد وٙيذ .وٙششَ ٞبي ػفبسؿي سا ث ٝثش٘بٔ ٝسبٖ اهبف ٝوٙيذ
ٚچٍٍ٘ٛي ػبخشٗ وٙششَ ٞبي ػفبسؿي ثب دـشيجب٘ي وبُٔ ٔحيي ًشاحي سا سٕشيٗ وٙيذ .ث ٝػال ٜٚوبسثشد ػژخز افژضاس GPSداخژُ ٘ژشْ افژضاس ٚ
ٕٞچٙيٗ ث ٝسٚص سػب٘ي ٔمبديش وٙششَ ٞبي ٚاػي وبسثش سا داخُ يه ثش٘بٔ ٝي چٙذ دشداصؿي ) (Multi Threadedسا ٘يض فشا خٛاٞيذ ٌشفز.
37
http://m0911.wordpress.com
ثشاي اػشفبد ٜاص وٙششَ اػ شجبس ػٙؼي وبسثش داخُ ثش٘بٔ ٝوبفي اػز آٖ سا اص ػؼج ٝاثضاس ٚيظٚاَ اػشٛدي ٛثىـيذ ٚسٚي فشْ ثيٙذاصيژذ .وٙشژشَ اػجشژشا
ػٙؼي وبسثش ثًٛ ٝس خٛدوبس دس ػؼج ٝاثضاس ٘ـبٖ دادٕ٘ ٜي ؿٛد .ثبيذ ٘خؼز سٚي ثخؾ Generalػؼج ٝاثضاس ساػز وّيژه وٙيژذ ٚاص ٔٙژٛي ثژبص
ؿذٌ ،ٜضي ٝٙي Choose Itemsسا ثض٘يذ ٚث ٝفبيُ اػٕجّي و ٝحبٚي وٙششَ اػشجبس ػٙؼي وبسثش اػز اؿبس ٜوٙيذ سب وٙششَ ٔزوٛس دس ػؼج ٝاثژضاس
ظبٞش ؿٛد .دس ؿىُ 2ؿٕب چٍٍ٘ٛي ٕ٘بيؾ وٙششَ اػشجبس ػٙؼي ) (User Credentalsسا داخُ ثش٘بٔٔ ٝي ثيٙيذ .اٌش ث ٝػؼج ٝاثضاس ٞژٓ ثٍٙشيژذ
وٙششَ ثب ٘بْ UserCredentalsسا دس ثخؾ Generalػؼج ٝاثضاس خٛاٞيذ ديذ و ٝث ٝآػب٘ي ٔي سٛا٘يذ آٖ سا سٚي فشْ خژٛد لژشاس دٞيژذ .دژغ اص
ايٗ وبس ؿٕب دس دٙؼش ٜي ٔـخلبر ) (Propertiesيه ٔـخل ٝي - UserNameو ٝلبثُ ٔمذاس دٞي دس ٔحيي ًشاحژي ٚدس ػژيٗ حژبَ ثژٝ
كٛسر وذ ٘ٛيؼي داخُ ثش٘بٔ ٝاػزٔ -ي ثيٙيذ .دس ػيٗ حبَ ٔـخل ٝي Passwordسا ثب سً٘ خبوؼششي دس دٙؼش ٜي ٔـخلبر خٛاٞيذ ديژذ
و ٝث ٝدِيُ فمي خٛا٘ذ٘ي ثٛدٖ آٖ اػز .ايٗ ٔـخل ٝلبثُ ٔمذاسدٞي ٘يؼز ِٚي ٔمذاسؽ دغ اص آٖ و ٝسٛػي وبسثش ثٍٙٞ ٝبْ اػژشاي ثش٘بٔژٚ ٝاسد
ؿذ ،لبثُ ثبصيبثي $خٛا٘ذٖ #خٛاٞذ ثٛد.
38
http://m0911.wordpress.com
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 ٛث ٝآٖ اهبفٕ٘ ٝبييذ.
41
http://m0911.wordpress.com
سر ثخـژي اص دژبسأششٛ كٝ سا ثGraphics عٛ٘ ؿيء اصٚ يذٙا٘ي وٛ فشاخOnPaint آٖ سا داخُ ٔشذٚ ٕ٘بييذٜ وذ صيش سا اػشفبدٝا٘يذ لٌؼٛٔي س
: داخُ آٖ ثفشػشيذٝ ثPaintEventArgs
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
ؿىُ ٘ :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بيؾ داد ٜؿذ ٜاػز.
والع ٘ Gpsمٌ ٝي آغبص وبس ؿٕب ثب ػخز افضاس آٖ اػز .دس ايٗ والع ٔشژذٞبيي ثژشاي دسيبفژز اًالػژبر ٔىژبٖ ػغشافيژبيي GPSثژ ٝكژٛسر
ثالدسً٘ ٕٞ ٚبٚ ًٙٞػٛد داسد ٚدس هٕٗ يه سٚيذاد و ٝثٍٙ ٞ ٝبْ سغييش اًالػبر ٔىبٖ ،فشاخٛا٘ي ٔي ؿٛدٔ .شژذٞبيي ٘يژض ثژشاي فؼژبَ/غيش فؼژبَ
ػبصي ػخز افضاس ٞ GPSؼز.
ديؾ اص دسيبفز اًالػبر ٔىب٘ي اص ٌيش٘ذ ٜي ٘ GPSخؼز الصْ اػز و ٝيه ؿيء ػذيذ اص ٘ٛع Gpsايؼبد ٔ ٚشژذ Openسا ثژشاي آٖ فشاخژٛا٘ي
وٙيذ .ايٗ وبس ثبػض ٔي ؿٛد و ٝاٌش ثش٘بٔ ٝي ؿٕب اِٚيٗ اػشفبد ٜوٙٙذ ٜي ػخز افضاس GPSسٚي ايٗ دػژشٍب ٜاػژز ،ػژخز افژضاس GPSفؼژبَ
ٌشدد .دغ اص دبيبٖ اػشفبد ٜاص آٖ ،اٌش ثش٘بٔ ٝي ؿٕب آخشيٗ اػشفبد ٜوٙٙذ ٜي GPSسٚي دػژشٍب ٜاػژز ثبيژذ ٔشژذ Closeسا ثژشاي ؿژيء GPS
فشاخٛا٘ي وٙيٓ سب ػخز افضاس GPSسا غيشفؼبَ وٙذ .ايٗ وبس ثبػض ٔي ؿٛد و ٝثٍٙٞ ٝبْ ٘يژبص ٘ذاؿژشٗ ثژ GPS ٝثژبسشي دػژشٍب ٜثيٟژٛدٔ ٜلژشف
ٍ٘شدد.
45
http://m0911.wordpress.com
:دٛ اػشا ٔي ؿٝ٘بي ػذاٌبٞ يذادٚ دس ٔذيش سٚ ذٞ سا ٘ـبٖ ٔي دGPS ػخز افضاسٝ اسلبَ ثٚ غيش فؼبَ ػبصي/ٍَ٘ي فؼبٍٛ وذ صيش چٝلٌؼ
:ذٞ ي اكّي آٖ سا ٘ـبٖ ٔي دٝ ٘ؼخٚ gps_LocationChanged يذادٚ وذ صيش ٔذيش سٝلٌؼ
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يژه ٘ژٛع دادٜ
ي ػبد ٜاػز و ٝيه ٘ـب٘$ ٝاؿبسٌ ٜش #اص ٔشذ سا سؼشيف ٔي وٙذ ؤ ٝي سٛا٘ذ سٛػي ٞش ٔشذ ثب اؿبسٌ ٜش ػبصٌبس ثب آٖ ٔمذاس دٞي ؿٛد.
48
http://m0911.wordpress.com
ثب ايٗ سغييشار ٔي سٛا٘يذ ثش٘بٔ ٝي لٌت ٕ٘بي اِىشش٘ٚيىي سا ثذ ٖٚخٌب اػشا ٚاًالػبر ٔبٛٞاس ٜاي GPSسا اص ًشيك GPSIDدسيبفز ٕ٘بييذ.
ؿىُ :26لٌت ٕ٘بي اِىشش٘ٚيىي دس حبَ اػشا ٕ٘ ٚبيؾ دادٞ ٜبي GPS
حبَ ايٗ ػؤاَ دس ر ٗٞسبٖ ٞؼز و ٝايٗ ٘شْ افضاس االٖ داخُ ؿجي ٝػبص دػشٍب ٜاػشا ٔي ؿٛد ِٚي اًالػبر ٔبٛٞاس ٜاي GPSسا دسيبفز ٔي وٙژذ.
دغ چٍ ٝ٘ٛوبس ٔي وٙذ؟
ؿىُ :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آغبص ٌشدد.
ايٗ ٕٝٞي آٖ چيضي ثٛد و ٝثشاي آصٔبيؾ ثش٘بٔٞ ٝبي ٔجشٙي ثش GPSث ٝآٖ ٘يبص داؿشيذ .حبَ سٚي ؿجي ٝػبص دػشٍب ٓٞ ٚ ٜسٚي دػشٍب ٜفيضيىي
ٚ$الؼيٚ #يٙذٚص ٔٛثبيُ ٔي سٛا٘يذ ثش٘بٔ ٝسبٖ سا آصٔبيؾ وٙيذ .دغ اص ٘لت ٚسٙظيٓ ٔ FakeGPSي سٛا٘يژذ ثش٘بٔژ ٝي لٌژت ٕ٘ژبي اِىشش٘ٚيىژي سا
اػشا وٙيذ.
50
www.SoftGozar.Com
http://m0911.wordpress.com
فصل پنجم
51
http://m0911.wordpress.com
ٔمذٔٝ
سٛػؼ ٝي ٘شْ افضاس ٚيٙذٚص ٔٛثبيُ ؿجبٞز صيبدي ث ٝسٛػؼ ٝي ٘شْ افضاس دس دػىشبح داسد ثٚ ٝيظ ٜصٔب٘ي و ٝيىي اص د ٚصثبٖ ٚيظٚاَ ثيؼيه يب ٚيژظٚاَ
ػي ؿبسح دار ٘ز سا اػشفبدٔ ٜي وٙيذ .ؿٕب ٕٞبٖ اثضاسٞبي سٛػؼ ٝي ثش٘بٔٞ ٝبي ٚيٙذٚص دػىشبح سا ثشاي ٚيٙذٚص ٔٛثبيُ ٞژٓ اػژشفبدٔ ٜژي وٙيژذ
ِيىٗ سفبٚر ٞبيي ٘يض ثيٗ ايٗ دٔ ٚحيي ٞؼز .ايٗ سفبٚر ثٍٙٞ ٝبْ اػشفبد ٜاص ثب٘ه اًالػبسي ٞ ٓٞؼز .اغّت ثش٘بٔٞ ٝب اص ثب٘ه اًالػبسي اػژشفبدٜ
ٔي وٙٙذ .ثشاي رخيش ٜػبصي داد ٜدس دػشٍب ٜؿٕب ث ٝػٛٙاٖ سٛػؼ ٝدٙٞذ ٜدػز سبٖ ثبص اػز و ٝاص چ ٝسٚؿي اػشفبد ٜوٙيذ .دس ايٗ ٔمبِژٌٔ ٝژبِجي
ساػغ ث ٚ SQL Server 2005 Compact Edition ٝسٚؽ ٞبي ٔخشّف دػششػي ث ٝدادٞ ٜبي ٔحّي رخيش ٜؿذ ٜسٚي دػشٍب ٜخٛاٞيژذ ديژذ.
ٔب د ٚسٚؽ ٔشفبٚر دػششػي ث ٝدادٞ ٜب سا اص ِحبٍ وبسآيي صٔبٖ الصْ ثشاي اػشا ٔ ٚيضاٖ وژذ ٘ٛؿژش ٝؿژذٔ ٜمبيؼژ ٝخژٛاٞيٓ وژشد .دس ٔظژبَ ٞژبي
وذ٘ٛيؼي د ٚػذ Order_Details ٚ Orders َٚاص ثب٘ه اًالػبسي ٕ٘ ٝ٘ٛي Northwindسا اػشفبد ٜوشد ٜايٍٓ٘ .بسؽ ٔژٛسد اػژشفبد ٜي ثب٘ژه
اًالػبسيٕٞ SQL Server 2005 Compact Edition 3.5 ،شا ٜثب ٚيظٚاَ اػشٛدي 2008 ٛاػز.
ٕٞ :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فشأ ٓٞي ػبصد.
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دس ٚيٙذٚص ٚيؼشب يب ػ ٖٛاػشا ٕ٘بييذ .دس غيش ايٗ كٛسر أىبٖ اسلبَ ٚدػششػي ث ٝثب٘ه اًالػبسي سا ٘خٛاٞيذ
داؿز.
53
http://m0911.wordpress.com
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سغييش دٞيذ .ثٚ ٝيظ ٜثشاي ثب٘ه اًالػبسي ٔحبفظز ؿذ ٜسٛػي ٌزسٚاط ،ٜاٌش افؼبس ثش٘بٔ ٝسا ث ٝدػز ٚيظٚاَ
اػشٛدي ٛثذٞيذ ،سؿش ٝي اسلبَ حبٚي ٌزسٚاط ٜخٛاٞذ ثٛد و ٝايٗ خٛد يه ايشاد أٙيشي اػز.
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ـبٖ داد ٜؿذ ٜاػز.
56
http://m0911.wordpress.com
ؿىُ :30صٔبٖ الصْ ثشاي ثبسٌضاسي ٕ٘ ٚبيؾ دادٞ ٜب ٚػب ث ٝػبيي ثيٗ سوٛسد ٞب
اص آٖ ػب و ٝديشبػز ٕٝٞي دادٞ ٜب سا دس حبفظ ٝي اكّي ٍ٘ٔ ٝي داسد دس صٔبٖ ٞبي ٔـخلي الصْ اػز و ٝسغييشار سا دس ثب٘ه اًالػبسي طجز
لٌؼي ) (commitوٙيذ ٚصٔبٖ آٖ ثؼش ٝث٘ ٝظش خٛد سبٖ داسد .يه سٚؽ ايٗ اػز و ٝسب ػبيي ؤٕ ٝىٗ اػز سٚي ديشبػز وبس وٙيذ ٚصٔب٘ي
و ٝوبسثش ٔي خٛاٞذ ثش٘بٔ ٝسا ثجٙذد سغييشار سا سٚي ثب٘ه اًالػبسي طجز لٌؼي ٕ٘بييذ .اِجش ٝاٌش لشاس اػز دادٞ ٜب سا ثب يه ػشٚس اكّي ٕٞؼبٖ
ػبصي وٙيذ ،ثٟشش اػز و ٝديؾ اص ٕٞؼبٖ ػبصي ثب آٖ ،دادٞ ٜب سا طجز لٌؼي ٕ٘بييذ .ثٞ ٝش حبَ اٌش ٕٝٞي دادٞ ٜب دس ديشبػز $حبفظ ٝي سْ#
ثٕب٘ٙذ ثٍٙٞ ٝبْ اص وبس افشبدٖ ثش٘بٔ ،ٝدادٞ ٜبي ؿٕب اص ثيٗ خٛاٙٞذ سفز .دس يه ثش٘بٔ ٝي ٔؼِٕٛي ٕٔىٗ اػز ؿٕب دس صٔبٖ ٞبي خبكي اص ػّٕٝ
ثؼش ٝؿذٖ ثش٘بٕٔٞ ،ٝؼبٖ ػبصي ثب ػشٚس خبسػي ٚصٔب٘ي و ٝثش٘ب ٜدس دغ صٔي ٝٙلشاس ٔي ٌيشد ،دادٞ ٜب سا طجز لٌؼي ٕ٘بييذ .دس ػيٗ حبَ ٕٔٗ
اػز ثخٛاٞيذ دادٞ ٜب سا ثٔ ٝحن ايؼبد سوٛسد ػذيذ ٘يض طجز لٌؼي وٙيذ و ٝدس ايٗ حبِز ،ديشبػز سمشيجب ث ٝكٛسر يه وذي سىشاسي ثي ٔلشف
اص دادٞ ٜب خٛاٞذ ثٛد .وذ ٘ 3ح ٜٛي طجز لٌؼي سا ث ٝؿٕب ٘ـبٖ ٔي دٞذ .دس ايٗ ٔظبَ دس ٔذيش سٚيذاد $ Closingيؼشٗ ثش٘بٔ #ٝدادٞ ٜب طجز
لٌؼي ٔي ؿ٘ٛذ اِجش ٝث ٝؿشًي ؤ ٝحشٛاي ديشبػز سغييش وشد ٜثبؿذ.
صٔب٘ي و ٝاص ديشبػز اػشفبدٔ ٜي ٕ٘بييذ ،ثخؾ اػظٓ وذ سٛػي ٚيظٚاَ اػشٛدي ٛايؼبد ٔي ؿٛد ٚدغ اص ٔمذاس دٞي اِٚي ٝي ديشبػز وبس ثب دادٞ ٜب
ثب ػشػز ا٘ؼبْ ٔي ؿٛد .دس ٚالغ سٟٙب وذي و ٝالصْ اػز ؿٕب ثٛٙيؼيذ طجز ل ٌؼي دادٞ ٜب دس ثب٘ه اًالػبسي اػز .ث ٝػالٕٔ ٜٚىٗ اػز ؿٕب ثشاي
حشوز ثيٗ دادٞ ٜب وذ٘ٛيؼي وٙيذ ٚسا ٜحُ غيش اص ديؾ فشم سا ثشاي ٔمذاس دٞي ديشبػز اػشفبدٕ٘ ٜبييذٔ ،ظال صٔب٘ي و ٝثخٛاٞيذ دادٞ ٜب سا
فيّشش وشد ،ٜػذغ دس حبفظ ٝلشاس دٞيذ .دس ايٗ ٔمبِٔ ٝب ثشخي أىب٘بر ديـشفشٔ ٝب٘ٙذ ثبسٌزاسي دادٞ ٜب ثب سأخيش سا كشف ٘ظش وشد ٜايٓ.
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 َٚثًٛ ٝس خٛدوبس سٛػي ٚيظٚاَ اػشٛدي ٛثب دادٞ ٜبي ػذِٚؾ دش خٛاٞذ ؿذ.
ٕٞچٙيٗ ٞيچ فشْ اهبف ٝثش ايٗ ٞب ثشاي ٕ٘بيؾ خالك ٝي دادٞ ٜب يب دٙؼش ٜي ٔىبِٕٚ ٝيشايؾ سوٛسد ٞب ايؼبد ٕ٘ي ؿٛد.
58
http://m0911.wordpress.com
ثشاي ٕ٘بيؾ دادٞ ٜبي ػذ ٓٞ 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
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
67
http://m0911.wordpress.com
68
http://m0911.wordpress.com
اص ايٗ س ٚلٛا٘يٗ صيش ثشاي ثش٘بٔٞ ٝب ايؼبد ؿذ ٜاػز سب ٌٔبثك آٖ ثٞ DLL ٝب دػششػي ديذا وٙٙذ:
سأييذي ٝي د ٚالي ٝاي سأييذي ٝي يه الي ٝاي ثذ ٖٚأٙيز سشويت ثش٘بٔDLL ٚ ٝ
ثش٘بٔ ٝي ثذٔ ٖٚؼٛص
ػبدي ثب اػبص ٜي وبسثش ٚيظ ٜثب اػبص ٜي وبسثش ٚيظٜ DLLثذٔ ٖٚؼٛص
ػبدي ثب اػبص ٜي وبسثش ٚيظ ٜثب اػبص ٜي وبسثش ٚيظٜ DLLثب دػششػي ػبدي
ػبدي ثب اػبص ٜي وبسثش ٚيظ ٜثب اػبص ٜي وبسثش ٚيظٜ DLLثب دػششػي ٚيظٜ
ثش٘بٔ ٝي ثب ٔؼٛص ػبدي
ػبدي ثب اػبص ٜي وبسثش ٚيظٜ ٚيظٜ DLLثذٔ ٖٚؼٛص
ػبدي ٚيظٜ ٚيظٜ DLLثب دػششػي ػبدي
ػبدي ٚيظٜ ٚيظٜ DLLثب دػششػي ٚيظٜ
ثش٘بٔ ٝي ثب ٔؼٛص ٚيظٜ
غيش ٔؼبص ٚيظٜ ٚيظٜ DLLثذٔ ٖٚؼٛص
غيش ٔؼبص ٚيظٜ ٚيظٜ DLLثب دػششػي ػبدي
ٚيظٜ ٚيظٜ ٚيظٜ DLLثب دػششػي ٚيظٜ
69
http://m0911.wordpress.com
سٙظيٕبر أٙيشي دػشٍبٞ ٜب ٔي سٛا٘ذ داخُ دش٘ٚذٞ ٜبي 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 /
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 ٝثشاي ث ٝسٚص سػب٘ي ثش٘بٔٞ ٝبي ٚيٙذٚص ٔٛثبيُ خٛاٞيذ ديذ.
ايٗ ٔظبَ كشفب يه ٘مٌ ٝي آغبص خٛاٞذ ثٛد ٚث ٝؿٕب اًالػبر وبفي خٛاٞذ داد و ٝخٛدسبٖ ثشٛا٘يذ ث ٝايٗ سٚؽ ثش٘بٔٞ ٝبي سبٖ سا ث ٝسٚص وٙيذ.
ثشاي ث ٝسٚص سػب٘ي خٛدوبس ثش٘بٔٞ ٝبي سبٖ ٔي سٛا٘يذ اص ٚة ػشٚيؼي اػشفبد ٜوٙيذ و ٝآخشيٗ ٍ٘بسؽ ٔٙشـش ؿذ ٜي ثش٘بٔ ٝسا اػالْ ٚثب ٍ٘بسؽ
ثش٘بٔ ٝي ٔٛسد اػشفبد ٜي فؼّي ٔمبيؼ ٝوٙذ .اص آٖ ػب و ٝؿٕب ثبيذ يه ثش٘بٔ ٝي دس حبَ اػشا سا ث ٝسٚص سػب٘ي وٙيذ ثبيذ يه ثش٘بٔ ٝي ٘لت وٙٙذٜ
ي ٔؼضا ٕٞ -ب٘ٙذ ٘لت وٙٙذ ٜاي و ٝاص اثشذا ثش٘بٔ ٝسبٖ سا سٚي دػشٍب٘ ٜلت وشد ٜاػز -ثٛٙيؼيذ.
دس ؿىُ 2ؿٕب يه ٚة ػبيز ٔي ثيٙيذ و ٝيه ثش٘بٔ ٝي ػذيذ ثشاي داّ٘ٛد ث ٝكٛسر آٔبد ٜداسد .ثب وّيه سٚي آٖ ثش٘بٔ٘ ٝلت ٘خٛاٞذ ؿذ ثّىٝ
ث ٝػبي آٖ يه ثش٘بٔ ٝي ٘لت وٙٙذ ٜسٚي دػشٍب٘ ٜلت ٔي ؿٛد .ثش٘بٔ ٝي ٘لت وٙٙذ ٜدس ٕٞبٖ دٛؿ ٝاي و ٝثش٘بٔ ٝي اكّي دس آٖ ٘لت خٛاٞذ
ؿذ لشاس ٔي ٌيشد .ثش٘بٔ ٝي ٘لت وٙٙذ ٜدس ػيٗ حبَ يه ٔيب٘جش ٘ ٓٞبْ ثب ثش٘بٔ ٝي اكّي دس دٛؿ ٝي Program Filesايؼبد خٛاٞذ وشد.
72
http://m0911.wordpress.com
دغ اص داّ٘ٛد ثش٘بٔ ٝي ث ٝسٚص سػب٘ي ،وبسثش ٔي سٛا٘ذ دس دٛؿ ٝي Programsسٚي آٖ وّيه ٚثش٘بٔ ٝي ث ٝسٚص سػب٘ي سا اػشا ٕ٘بيذ .اص آ٘ؼب وٝ
ثش٘بٔ ٝي اكّي ٛٙٞص لبثُ دػششػي ٘يؼز ثش٘بٔ ٝي ث ٝسٚص سػب٘ي ث ٝػبي آٖ اػشا ٔي ؿٛد $ؿىُ #3
ثش٘بٔ ٝي ث ٝسٚص سػب ٘ي اص ًشيك دبسأشش خي فشٔبٖ ٔشٛػٔ ٝي ؿٛد و ٝآيب سٛػي وبسثش اػشا ؿذ ٜاػز يب اص داخُ ثش٘بٔ ٝي اكّي .حبِز د ْٚصٔب٘ي
ديؾ ٔي ايذ و ٝث ٝسٚص سػب٘ي ػذيذي داخُ ٚة ػبيز ٔٙشـش ؿذ ٜثبؿذ .وذ صيش – و ٝث ٝػٛٙاٖ ثخـي اص ثش٘بٔ ٝي ث ٝسٚص سػب٘ي داخُ سٚيذاد
Form_Loadاػشا ٔي ؿٛد٘ -ـبٖ ٔي دٞذ و ٝچٌٛس اػشاي ثبس ا َٚسا اص اػشاي حبِز ث ٝسٚص سػب٘ي سـخيق دٞيٓ.
صٔب٘ي و ٝثش٘بٔ٘ ٝلت ٔي ؿٛد ٔيب٘جش داخُ دٛؿ ٝي Program Filesسا ًٛسي سغييش ٔي دٞذ و ٝدس اػشاي ثؼذي و ٝوبسثش ثش٘بٔ ٝسا اص داخُ
دٛؿ ٝي Program Filesاػشا ٔي وٙذ ثش٘بٔ ٝي اكّي اػشا ؿٛد ٘ ٝثش٘بٔ ٝي ث ٝسٚص سػب٘ي.
73
http://m0911.wordpress.com
(application updater) ص سػب٘يٚ سٝ ي ثٝٔ اػشاي آٖ اص ًشيك ثش٘بٚ ٝٔ ٘لت ثش٘ب:38 ُؿى
ٖ ٔحن دبيبٝ ايٗ وبس ث.دٛ اؽ اػشا ٔي ؿٜذٙٙػي ٘لت وٛدوبس سٛس خًٛ ٝ ي اكّي ثٝٔ ثش٘ب،ٜذٙٙ ي ٘ لت وٝٔػي ثش٘بٛ سٝٔدغ اص ٘لت ثش٘ب
يٝٔ ي اكّي سا اص داخُ ثش٘بٝٔس ثش٘بٌٛ چٝذ وٞ وذ صيش ٘ـبٖ ٔي د.دٛ ا٘ؼبْ ٔي ؿMenu | Exit يٝٙػي وبسثش اص ًشيك ٌضيٛ ي ٘لت سٝٔثش٘ب
ٖ ٘يبص سبٝ ثٝ ثؼشٚ يذٙ ساحشي آٖ سا دػشىبسي وٝا٘يذ ثِٛي ٔي سٚ ٘يؼز،ؼشيذٞ د٘جبِؾٝ ؿٕب ثٝ ي آ٘چٕٝٞ وذ صيشٝ اِجش.ٓيٙ اػشا وٜذٙٙ٘لت و
:يذٙ صيبدؽ وٚ ٓو
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ايٗ أىبٖ سا فشإ٘ ٓٞبييذ.
ثشاي داّ٘ٛد ٍ٘بسؽ ػذيذ ثش٘بٔ ،ٝثش٘بٔ ٝي ث ٝسٚص سػب٘ي اص ًشيك يه وٙششَ ٔشٚسٌش ٚة )ٔ (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يظٚاَ اػشٛدي ٛخٛاٞيذ ديذ.
دـشيجب٘ي اص ٍ٘ Jscriptبسؽ 5.7ايٙشش٘ز اوؼذّٛسس 8و ٝث ٝسٛػؼ ٝدٙٞذٌ ٜبٖ أىبٖ ٔي دٞذ اص لبثّيز ٕٞ AJAXب٘ٙذ دػىشبح دس ٚيٙذٚص
ٔٛثبيُ ٓٞاػشفبدٕ٘ ٜبيٙذ.
ايٙشش٘ز اوؼذّٛسس ٔٛثبيُ 6أىبٖ ٕ٘بيؾ ٞش د ٚحبِز ٚيظ ٜي ٔٛثبيُ ٔ ٚؼِٕٛي ٚة ػبيز ٞب سا داسد.
ايٙشش٘ز اوؼذّٛسس ٔٛثبيُ 6ثؼش ٝث ٝسٙظيٓ وبسثش ٔي سٛا٘ذ ث ٝكٛسر ٔشٚسٌش دػىشبح يب ٔشٚسٌش ٔٛثبيُ ػُٕ وٙذ.
وبسثشاٖ ٔي سٛا٘ٙذ اص أىب٘بر كفح ٝي ِٕؼي ٕٞ ٚچٙيٗ حبِز ٞبي ٔخشّف ثضسي ٕ٘بيي ) (Zoomاػشفبدٕ٘ ٜبيٙذ.
80
www.SoftGozar.Com
http://m0911.wordpress.com
حبِز ٞبي ٔخشّف ٕ٘بيؾ ٚة ػبيز
صٔب٘ي و ٝوبسثش يه ٚة ػبيز سا ثبص يب يه ثش٘بٔ ٝي سحز ٚة سا اػشا ٔي ٕ٘بيذٔ ،شٚسٌش واليٙز سٛػي يه ٔشغيش سؿش ٝاي UserAgent
ؿٙبػبيي ٔي ؿٛد ٚثؼش ٝثٔ ٝمذاس ٔشغش ٔزوٛس٘ ،شْ افضاس سحز ٚة أىب٘بر ثيـشش يب وٕششي ٔ$ب٘ٙذ دـشيجب٘ي اص #AJAXسا ثشاي واليٙز فشآٞ
ٔي وٙذ .آخشيٗ ٍ٘بسؽ ٚيٙذٚص ٔٛثبيٍُ٘ ،بسؿي اص ايٙشش٘ز اوؼذّٛسس سا اػشفبدٔ ٜي ٕ٘بيذ و ٝث ٝساحشي ٔي سٛا٘ذ ث ٝػبي ٔشٚسٌش دػىشبح يب ٚيٙذٚص
ٔٛثبيُ ؿٙبػبيي ٌشدد .ثشاي ايٗ وبس وبفي اػز و ٝاص ٔٛٙي داخُ ايٙشش٘ز اوؼذّٛسس ٔٛثبيُ ٌضي ٝٙي ٔشثٛى ث ٝآٖ سا ا٘شخبة وٙيذ.
ؿىُ :40ثش٘بٔ ٝي ايٙشش٘ز اوؼذّٛسس ٛٔ 6ثبيُ دس حبِز ٕ٘بيؾ دػىشبح ٛٔ ٚثبيُ
دس ؿىُ ٘ 1ح ٜٛػٛئيچ وشدٖ ثيٗ حبِز ٞبي دػىشبح ٛٔ ٚثبيُ سا ٔي ثيٙيذ .دس ثخؾ ٚػٌي ؿىُ 1ايٙشش٘ز اوؼذّٛسس دس حبِز ٚيٙذٚص ٔٛثبيژُ
اػشا ٔي ؿٛد وٕ٘ ٝبيؾ ٚة ػبيز سا ثشاي دػشٍبٚ ٜيٙذٚص ٔٛثبيُ ثٟي ٝٙوشد ٜاػز .دس ثخؾ ػٕز ساػز ؿىُ ٘ 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) ٝٙدس فبيُ وذ دغ صٔي
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سا دس ٔٛثبيُ دس اخشيبس سبٖ لشاس داد ٜاػز.
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