اهي سڀئي حصا، ويب ڪلائنٽ جي استثنا سان، سي ++ ۾ لکيل آهن. اضافي طور تي، تازو اعلان ڪيو ويو آهي نئين نسل جي ترتيب ڏيڻ واروجاوا ۾ لکيل آهي.
اصلي ائپس
C++ 03 استعمال ڪيو ويندو آهي مقامي ايپليڪيشنن کي ترقي ڪرڻ لاء. ونڊوز لاءِ، Microsoft Visual C++ 12 (Windows XP سان مطابقت رکندڙ پروفائل) هڪ ڪمپلر طور استعمال ڪيو ويندو آهي، ۽ لينڪس ۽ Android لاءِ - gcc 4.8، iOS لاءِ - clang 5.0. استعمال ٿيل معياري لائبريري سڀني آپريٽنگ سسٽم ۽ گڏ ڪرڻ وارن لاءِ ساڳي آهي - STLPport. هي حل STL لاڳو ڪرڻ جي مخصوص غلطين جي امڪان کي گھٽائي ٿو. اسان هن وقت CLang سان موڪليل STL عمل درآمد ڏانهن لڏڻ جي منصوبابندي ڪري رهيا آهيون، جيئن STLPport بند ڪيو ويو آهي ۽ gcc جي C++ 11 فعال موڊ سان مطابقت ناهي.
سرور جي ڪوڊ جو بنياد 99٪ عام آهي، ڪلائنٽ جو - 95٪. ان کان علاوه، موبائل پليٽ فارم پڻ ساڳيو C ++ ڪوڊ استعمال ڪري ٿو "وڏي" هڪ جي طور تي، جيتوڻيڪ اتحاد جو سيڪڙو ڪجهه گهٽ آهي.
اڪثر C++ استعمال ڪندڙن وانگر، اسان ٻولي ۽ ان جي لائبريرين جي 100% صلاحيتن کي استعمال ڪرڻ جي دعويٰ نٿا ڪريون. تنهن ڪري، اسان عملي طور تي بوسٽ استعمال نٿا ڪريون، ۽ ٻوليء جي خاصيتن مان هڪ آهي متحرڪ قسم جي ڪاسٽنگ. ساڳئي وقت، اسان فعال طور تي استعمال ڪندا آهيون:
STL (خاص طور تي تار، ڪنٽينر ۽ الگورتھم)
گھڻن وراثت، بشمول. گهڻن عملن جي وراثت
نمونن
استثنا
سمارٽ پوائنٽر (ڪسٽم لاڳو ڪرڻ)
انٽرفيس جي ڪيترن ئي ورثي کي استعمال ڪندي (مڪمل طور تي تجريدي طبقن)، هڪ جزو ماڊل ممڪن ٿي سگهي ٿو، جنهن تي هيٺ بحث ڪيو ويندو.
علحدگي بهتر ڊيزائن کي فروغ ڏئي ٿي، خاص طور تي بهتر ڪوڊ آئسوليشن
اجزاء جي ھڪڙي سيٽ مان توھان لچڪدار طور تي مختلف ترسيل اختيارن کي گڏ ڪري سگھو ٿا:
مثال طور، هڪ پتلي ڪلائنٽ تنصيب wbase تي مشتمل هوندي، پر پس منظر نه هوندو
پر wbase سرور تي، ان جي ابتڙ، اهو نه ٿيندو
ٻنهي اختيارن ۾ ضرور شامل هوندو nuke ۽ bsl
هن لانچ آپشن لاءِ گهربل سڀئي حصا لوڊ ڪيا ويندا آهن جڏهن پروگرام شروع ٿئي ٿو. اهو، خاص طور تي، SCOM طبقن کي رجسٽر ڪرڻ لاء ضروري آهي، جنهن تي هيٺ بحث ڪيو ويندو.
اسڪيم
هيٺين سطح تي ٺهڻ لاء، SCOM سسٽم استعمال ڪيو ويندو آهي، هڪ لائبريري نظريي ۾ ATL سان ملندڙ جلندڙ آهي. انهن لاءِ جن ATL سان ڪم نه ڪيو آهي، اسان مختصر طور تي مکيه صلاحيتن ۽ خاصيتن جي فهرست ڏيون ٿا.
خاص طور تي ٺهيل SCOM ڪلاس لاءِ:
ڪارخاني جا طريقا مهيا ڪري ٿو جيڪي توهان کي اجازت ڏين ٿا هڪ ڪلاس ٺاهڻ جي ٻئي جزو مان صرف ان جو نالو ڄاڻڻ جي (بغير عملدرآمد کي ظاهر ڪرڻ جي)
ھڪڙو حوالو ڳڻڻ واري سمارٽ پوائنٽر انفراسٽرڪچر مهيا ڪري ٿو. SCOM طبقي جي زندگيءَ کي دستي طور تي نگراني ڪرڻ جي ضرورت ناهي
توهان کي اهو معلوم ڪرڻ جي اجازت ڏئي ٿي ته ڇا هڪ اعتراض هڪ مخصوص انٽرفيس کي لاڳو ڪري ٿو ۽ خودڪار طور تي هڪ پوائنٽر کي اعتراض ڏانهن پوائنٽر کي انٽرفيس ۾ تبديل ڪري ٿو.
مثال طور، توھان json.dll جزو ۾ JSON (مثال طور، JSONStreamReader) پڙھڻ لاءِ ڪلاس بيان ڪري سگھو ٿا.
ڪلاس ۽ مثال ٻين حصن مان ٺاهي سگھجن ٿا؛ انهن کي SCOM مشين ۾ رجسٽر ٿيڻ جي ضرورت آهي:
SCOM_CLASS_ENTRY(JSONStreamReader)
هي ميڪرو هڪ خاص جامد رڪارڊر ڪلاس جي وضاحت ڪندو، جنهن جي تعمير ڪندڙ کي سڏيو ويندو جڏهن جزو ميموري ۾ لوڊ ڪيو ويندو.
ان کان پوء، توهان ان جو هڪ مثال ٺاهي سگهو ٿا ٻئي جزو ۾:
خدمتن جي حمايت ڪرڻ لاء، SCOM هڪ اضافي، بلڪه پيچيده زيربنا پيش ڪري ٿو. ان جي وچ ۾ هڪ SCOM پروسيس جو تصور آهي، جيڪو هلندڙ خدمتن لاء هڪ ڪنٽينر جي طور تي ڪم ڪري ٿو (يعني، سروس لوڪٽر جو ڪردار ادا ڪري ٿو)، ۽ پڻ مقامي وسيلن جي پابند آهي. SCOM عمل OS سلسلي سان ڳنڍيل آهي. انهي جي مهرباني، ايپليڪيشن اندر توهان هن طرح جون خدمتون حاصل ڪري سگهو ٿا:
SCOM_Process* process = core::current_process();
if (process)
return get_service<IMyService>(process);
ان کان علاوه، هڪ سلسلي سان ڳنڍيل منطقي (SCOM) عملن کي مٽائڻ سان، توهان حاصل ڪري سگهو ٿا ايپليڪيشنون جيڪي عملي طور تي آزاد آهن معلومات جي جڳهه جي نقطي نظر کان، ساڳئي سلسلي ۾ هلندڙ. هي ڪيئن اسان جو پتلي ڪلائنٽ هڪ فائيل ڊيٽابيس سان ڪم ڪري ٿو - هڪ OS پروسيس اندر ٻه SCOM عمل آهن، هڪ ڪلائنٽ سان لاڳاپيل، ۽ ٻيو سرور سان. اهو طريقو اسان کي ڪوڊ جي لکڻين کي متحد ڪرڻ جي اجازت ڏئي ٿو جيڪو مقامي فائل ڊيٽابيس ۽ "حقيقي" ڪلائنٽ-سرور ورزن تي ڪم ڪندو. اهڙي يونيفارم جي قيمت مٿي آهي، پر مشق ڏيکاري ٿو ته اهو ان جي قابل آهي.
SCOM جزو جي ماڊل جي بنياد تي، ٻئي ڪاروباري منطق ۽ 1C جو انٽرفيس حصو: انٽرپرائز لاڳو ٿيل آھن.
يوزر انٽرفيس
رستي ۾، انٽرنيٽ جي باري ۾. اسان معياري ونڊوز ڪنٽرول استعمال نٿا ڪريون؛ اسان جا ڪنٽرول سڌو سنئون ونڊوز API تي لاڳو ٿين ٿا. لينڪس ورزن لاءِ، هڪ پرت ٺاهي وئي آهي جيڪا wxWidgets لائبريري ذريعي ڪم ڪري ٿي.
ڪنٽرول جي لائبريري 1C:Enterprise جي ٻين حصن تي منحصر نه آهي ۽ اسان جي طرفان ڪيترن ئي ٻين ننڍن اندروني افاديت ۾ استعمال ڪيو ويندو آهي.
1C:Enterprise جي ترقيءَ جي سالن کان وٺي، ڪنٽرولن جي ظاھر ۾ تبديلي آئي آھي، پر اصولن ۾ ھڪ سنگين تبديلي صرف ھڪ ڀيرو آئي، 2009 ۾، ورجن 8.2 جي رليز ۽ ”منظم ٿيل فارمن“ جي آمد سان. ظهور کي تبديل ڪرڻ کان علاوه، فارم جي ترتيب جو اصول بنيادي طور تي تبديل ٿي چڪو آهي - عناصر جي وهڪري جي ترتيب جي حق ۾ عناصر جي پکسل-جي-پڪسل پوزيشن کي رد ڪيو ويو. ان کان علاوه، نئين ماڊل ۾، ڪنٽرول سڌو سنئون ڊومين جي شين سان ڪم نه ڪندا آهن، پر خاص ڊي ٽي اوز سان (ڊيٽا جي منتقلي آبجیکٹ).
انهن تبديلين اهو ممڪن بڻايو ته هڪ 1C:Enterprise ويب ڪلائنٽ ٺاهيو جيڪو C++ جاوا اسڪرپٽ ڪنٽرول جي منطق کي نقل ڪري ٿو. اسان پتلي ۽ ويب ڪلائنٽ جي وچ ۾ فعلي برابري برقرار رکڻ جي ڪوشش ڪندا آهيون. انهن حالتن ۾ جتي اهو ممڪن ناهي، مثال طور JavaScript API جي دستيابي جي حدن جي ڪري (مثال طور، فائلن سان ڪم ڪرڻ جي صلاحيت تمام محدود آهي)، اسان اڪثر ڪري C++ ۾ لکيل برائوزر ايڪسٽينشن استعمال ڪندي ضروري ڪارڪردگي کي لاڳو ڪندا آهيون. اسان هن وقت انٽرنيٽ ايڪسپلورر ۽ Microsoft ايج (ونڊوز)، گوگل ڪروم (ونڊوز)، فائر فاڪس (ونڊوز ۽ لينڪس) ۽ سفاري (MacOS) کي سپورٽ ڪريون ٿا.
ان کان علاوه، منظم فارم ٽيڪنالاجي استعمال ڪيو ويندو آهي هڪ انٽرفيس ٺاهڻ لاءِ موبائل ايپليڪيشنن لاءِ 1C پليٽ فارم تي. موبائيل ڊوائيسز تي، ڪنٽرول جي رينڊنگ کي لاڳو ڪيو ويو آهي ٽيڪنالاجيون استعمال ڪندي مقامي آپريٽنگ سسٽم، پر فارم جي ترتيب جي منطق ۽ انٽرفيس جي جواب لاء، ساڳيو ڪوڊ استعمال ڪيو ويندو آهي "وڏي" 1C ۾: انٽرپرائز پليٽ فارم.
لينڪس او ايس تي 1C انٽرفيس
هڪ موبائل ڊوائيس تي 1C انٽرفيس
1C انٽرفيس ٻين پليٽ فارمن تي ونڊوز او ايس تي 1C انٽرفيس
انٽرفيس 1C - ويب ڪلائنٽ
کليل ذريعو
جيتوڻيڪ اسان Windows (MFC، WinAPI کان ڪنٽرولس) تحت C++ ڊولپرز لاءِ معياري لائبريريون استعمال نٿا ڪريون، اسان سڀ حصا پاڻ نه لکون ٿا. لائبريريءَ جو ذڪر اڳ ۾ ئي ٿي چڪو آهي wx وائڊٽز، ۽ اسان پڻ استعمال ڪريون ٿا:
لسٽ جاري رهي.
اضافي طور تي، اسان هڪ انتهائي تبديل ٿيل نسخو استعمال ڪندا آهيون گوگل ٽيسٽ и Google Mock جڏهن ترقي يافته يونٽ ٽيسٽ.
لائبريرين کي SCOM جزو آرگنائيزيشن ماڊل سان مطابقت رکڻ جي ضرورت آهي.
1C جي ابتڙ پليٽ فارم کي ان ۾ استعمال ٿيندڙ لائبريرين لاءِ طاقت جو بهترين امتحان ڏئي ٿو. استعمال ڪندڙ ۽ منظرنامي جو هڪ قسم جلدي جلدي ظاهر ڪري ٿو غلطيون جيتوڻيڪ تمام گهٽ استعمال ٿيل ڪوڊ جي علائقن ۾. اسان پاڻ انهن کي درست ڪريون ٿا ۽ ڪوشش ڪريون ٿا ته انهن کي واپس لائبريري ليکڪن کي ڏيون. ڳالهه ٻولهه جو تجربو تمام مختلف ٿي سگهي ٿو.
ٺاهيندڙ زلف и libetpan پل-جي درخواستن تي تڪڙو جواب ڏيو، پر پيچ، مثال طور، ۾ OpenSSL اسان ڪڏهن به ان کي واپس ڏيڻ جو انتظام نه ڪيو.
ٿڪل
آرٽيڪل ۾ اسان 1C جي ترقي جي ڪيترن ئي مکيه حصن تي ڌيان ڏنو: انٽرنيشنل پليٽ فارم. مضمون جي محدود دائري ۾، اسان صرف ڪجهه دلچسپ، اسان جي راء ۾، پهلون تي ڌيان ڏنو.
مختلف پليٽ فارم ميکانيزم جو هڪ عام وضاحت ملي سگهي ٿو هتي.
مستقبل جي مضمونن ۾ ڪهڙن موضوعن تي توهان جي دلچسپي هوندي؟
1C موبائل پليٽ فارم ڪيئن لاڳو ڪيو ويو آهي؟
ويب ڪلائنٽ جي اندروني ساخت جي وضاحت؟
يا ٿي سگهي ٿو توهان نئين رليز، ترقي ۽ جاچ لاءِ فيچرز چونڊڻ جي عمل ۾ دلچسپي رکو ٿا؟