-->

كن خبير بتقنية C++/CLI - لمطورين net framework

معظم المطورين بلغة السي بلس بلس يفضلون ان يعملوا علي منصة GNU GCC والذي يوفر لهم الكثير من الحرية في استخدام اللغة بشكل احترافي وسريع لانها مفتوع المصدر ولكن لا توفر الانتاجية و الحماية من اخطاء المؤشرات اذا كنت مبتدأ في هذا المجال فيمكنك ان تواجه بعض المعوقات ولكن في هذه الايام لغة السي بلس اصبحت متقدمة بشكل كبير فقد تم حل معظم هذه المشاكل ولكن يبقي السبق لهذه التقنية لذلك اصبحت طفرة في برمجة السي ++ من اصدار net framework 3.5 و اصدار visual studio 2005 وكل الاصدارات التي جائت بعده حتي visual studio 2017.

ما هي net framework.

عبارة عن بنية تحتية التي توفر فائدتين رئيسيتين الانتاجية و الحماية.

الانتاجية:

توفر الكثير من المكونات والكلاسات الجاهزة التي تجعلك تنشأ برامج بشكل اسرع بالاضافة انك يمكنك ان تقوم بمشاركة هذه المكونات بين جميع اللغات الخاصة ميكروسوفت وايضا تساعدك علي عمل برامج بواجهة المستخدم.

الحماية:

 نوعان منهم الحماية من الوصول الي النظام بشكل مباشر فهناك قيود بما انك تستخدم فقط APIs.
النوع الاخر وهو الحماية من التعامل مع الذاكرة و المؤشرات التي يمكن استخدامها الخاطأ ان يؤثر بالسلب علي الاجهزة.

ما هي CLR


عبارة عن لغة مشتركة بين جميع لغات net framework والتي تترجم بواسطة virtual machine و الذي بدوره يقون بترجمة هذه اللغة الي كود native ( machine Code ).

وبعد ان تعرفنا علي اهم المفاهيم في هذه التقنية دعونا نقوم بعمل تنصيب للبيئة التي سنعمل عليها.

رابط الفيديو :  C++/CLI 🔰 C++ Technology 🧐 For .Net Framework Developer

اولا: يجب ان يكون لديك visual studio منصب علي الجهاز يمكنك ايضا تحميله وتنصيبه كاي برنامج visual studio

ثانيا: تقوم بتنصيب مكونات ++desktop development with C كما يوجد في الصورة.




ثالثا: تقوم بانتظاره حتي يتم تحميل وتبيت المكونات وبعدها تقوم بفتحه.




رابعا: قم بفتح مشروع جديد ++new project  > visual C
اختار CLR > Desktop Console Application




الكود المستخدم في الشرح :

#include "stdafx.h"


using namespace System;
using namespace System::IO;
int main(array ^args)
{
 // Your Path File

 String^ text = File::ReadAllText("C:\\Users\\User Name\\Desktop\\desk3\\c.txt");

 Console::WriteLine(text->IndexOf("java"));
 Console::WriteLine(text->Contains("gtk"));

    
 return 0;
}