عندما قامت الMicrosoft بانزال بيئة ال.Net الى الاسواق شكلت هذه البيئة نقلة نوعية في لغات البرمجة من ناحية القوة والجودة والامكانيات ولم تكن Microsoft لتقوم بانزال هذه البيئة القوية العاملة على جميع البيئات والنظم لولا ضغط الاتحاد الاوربي والغرامات التي فرضت عليها لوقف احتكار Windows لسوق البرمجيات بعدما اصبحت Microsoft العملاق الذي لاينافس
وبعد طرح هذه البيئة جائت مشابهة لنظام Linux في مبدأ ال Open Source Code وللغة Java في الاعتماد الكلي على مبدأ ال Orient Object Programming اي البرمجة الغرضية التوجه الرائدة في علم البرمجة
لكن التطبيقات عندما تترجم تترجم الى لغة الIL المفتوحة المصدر والمتاحة لجميع المستخدمين عن طريق مايعرف ب ال Reflection الذي يحلل الكود الى اجزاءه الاصلية ولغاته الاصلية والانتقال بين اللغات مثل C# Visual Basic وغيرها
لكن هذا المبدأ اثار استهجانا واسعا بين فئة المبرمجين الذين لم يقتنعو باي حجة طرحتها Microsoft في هذا المجال فتخيل أن تقوم انت بطرح برنامج ضخم ومنافس ويقوم منافسوك في السوق او بعض اللصوص بتحليله و طرحه بنفس الكود لكن باسم اّخر وبجودة منافسة ................ كما أن ذلك يودع الى الابد أمن المعلومات والسرية الشخصية ويفتح الباب على مصراعيه لل Hackers والسارقين ويبدأون بالعبث بمعلوماتك وبحقوق ملكيتك السهلة الاغتصاب
لكن في نفس الوقت طرحت مصطلحات وامكانيات مايعرف بال Obfuscation اي التشويش ويقوم باضاعة منطق الكود خاصتك
ولكن تقريبا يبقا الحال على ماهو تقريبا
أو مبدأ ال COM الذي يقوم باضافة كود Native الى برنامجك الذي يكون شبه مبهم تقريبا
<MethodImpl(MethodImplOptions.InternalCall)> لكنها صعبت طرق استخدامه و هذا ال attribute يقوم بتحويل بعض اجزاء الكود الى اللغة السابقة ال COM
وأخيرا دون اطالة لقد كانت لي تجربتي السابقة في حماية الكود لكني اريد من من له اي تجربة في هذا المجال أن يقوم بشرح هذه الخصائص وطريقة استدعائها شاكرا جهودكم جميعا في هذا المنتدى الجميل


