كنت للتو أقوم ببحث عن WMI، ولو أنني واجهت سؤالك هذا بعد أسبوع لأتيت لك بزبدة هذا المفهوم، لكن سبحان الله هذه بدايتي في البحث ولا قسمة لك
على كل حال، وجدت هذه الروابط، وكنت سأدرسها.. تفضل:
ما هو WMI:
What is WMI?
Windows Management Instrumentation - WikiPedia
https://www.codeproject.com/Articles/291...mplementat
https://www.codeproject.com/Articles/219...ce-for-NET
سلسلة لفهم WMI:
https://www.codeproject.com/Articles/181...t-1-Regist
https://www.codeproject.com/Articles/181...rt-2-Proce
codeproject.com/Articles/18268/How-To-Almost-Everything-In-WMI-via-C-Part-3-Hardw
بعض التطبيقات:
https://stackoverflow.com/questions/4742...ws-machine
https://www.c-sharpcorner.com/UploadFile...harp-code/
https://www.codeproject.com/Articles/824...fo-using-C
https://www.youtube.com/watch?v=7umTiMga7Cg
مجالات الأسماء Namespaces
مجالات الأسماء هي مجالات تضم العديد من الفئات والأنواع، ولاستخدام فئة ما يجب تضمين مجال الأسماء الذي تَتب ع له هذه الفئة.
تكلمنا بإيجاز في بداية هذا الكتاب عن مجالات الأسماء دون أن ننوه لها، وقلنا أنه لاستخدام الفئة Console يجب تضمين System في مشروعك. الآن عد إلى ثاني صورة من الفصل صفر ولنتكلم عن الموضوع جزءًا جزءًا:
أولا: يعتبر System هو مجال أسماء، و Console هو إحدى فئاته، لذلك يجب تضمين System في مشروعك لتتمكن من استخدام طرق وخصائص Console . ويمكن تضمين أي مجال أسماء باستخدام الكلمة using .
ثانيًا" إذا لم ترغب في تضمين مجال أسماء ما لسبب من الأسباب مثل – قلة حاجتك له فإنه عليك كتابة اسم مجال الأسماء أولا، نقطة، الفئة –المطلوبة، نقطة، الخاصية أو الطريقة المطلوبة وهكذا..
ثالثا: من الممكن لمجال أسماء أي يحتوي على مجال أسماء آخر، مثل System.Text .
رابعا: هناك مجالات أسماء أخرى لا تُدرَج افتراضيا مع إنشاء مشروع جديد، ولا يمكنك استخدام بعض الكائنات والفئات لولاها، في هذه الحالة عليك إضافتها ك System.Windows.Forms .
خامسا: مجال الأسماء هو وحدة برمجية متكاملة مكونة من عدد من الفئات، فإذا اعتبرنا أن العجلة فئة والباب فئة والنافذة فئة و.. إلخ من العناصر المكونة للسيارات، فيمكن اعتبار السيارة مجال أسماء لأنه يحوي مجموعة من الفئات تؤدي مع بعضها وظيفة معينة كما يمكن استخدام فئة دون أخرى. كما يمكن أن يضم مجالُ الأسماء مجالات أسماء أخرى، فبدوره الباب مثلا مكون من فئة تمثل الزجاج وفئة تمثل المعدن وفئة تمثل المرآة و.. إلخ من العناصر المكونة للباب. كما أن المرآة هي مجال أسماء يمكن محاكاتها بذات الطريقة، فمجالات الأسماء – كما هو حال الفئات هي – تمثيل لكائنات الحياة الواقعية الحية منها وغير الحية، الملموسة منها والمعنوية، على شكل كائنات برمجية.
إنشاء مجال أسماء
عند إنشاء مشروع ما فإنه سيتم إنشاء مجال أسماء خاص بمشروعك وباسم مشروعك أيضا، قد تحتاج لإنشاء مجال أسماء تضع فيه بعض الفئات لاستخدامها في أكثر من برنامج، وهي ذات الفكرة التي أنشؤوا من خلالها مجالات الأسماء الجاهزة مثل IO ، فمن خلال استخدام فئاتها ستحصل على نتائج أكواد موضوعة داخلها أنت بغنى عن الخوض في تفاصيلها طالما أن النتيجة متاحة.
لإنشاء مجال اسماء اكتب الكلمة namespace ثم اسم مجال الأسماء، تليها فئاتها محاطة بإشارتي { } تحدِّ دان بداية ونهاية مجال الأسماء هذا. ولاستخدام مجال الأسماء الذي أنشأته في مجال أسماء آخر عليك تضمينه في بداية البرنامج بالكلمة using .
وعلى سبيل المثال، بإمكانك إنشاء واستخدام مجالات الأسماء وفئاتها كما يلي:
PHP كود :
using System;
using School; //مجال أسماء خاص بنا
namespace ConsoleApplication11
{
class Program
{
static void Main(string[] args)
{
Students Ali = new Students();
Teachers Khaled = new Teachers();
Subjects Math = new Subjects();
}
}
}
namespace School
{
class Students
{
}
class Teachers
{
}
class Subjects
{
}
}
وبالبرمجة الصحيحة والخوارزميات المتقنة بإمكانك استخدام مجال الأسماء School السابق على سبيل المثال، في الكثير من البرامج، كما أنه بإمكانك توزيعها على المبرمجين.
والفكرة من هكذا مجال أسماء، هو إنشاء كتلة برمجية لمرة واحدة تتضمن أفكارً ا وتطبيقات عديدة، واستخدامها برمجيا في أكثر من برنامج، فعند برمجة طرق وخصائص جميع فئات مجال الأسماء هذا، فإنه يصبح جاهزا للاستخدام. وعند استنساخ هذه الفئات إلى كائنات في الإجراء main ، فإن جميع الطرق التي ألفّتها ستصبح متاحة لهذه الكائنات، مما يعطي برامج قوية يسهل فيها إصلاح الأخطاء بعد اكتشافها.
هذا الموضوع من كتاب C# من البداية حتى الإتقان:
يمكنك تحميله من هنا