مقدمة
من منطلق خبرتي في مجال تطوير البرمجيات باستخدام الدوت نت (.NET) والصعوبات التي واجهتني في بداية مسيرتي المهنية حبيت أساهم في زيادة المحتوى العربي في المجال ليكون نقطة بداية للمهتمين في تطوير البرمجيات باستخدام الدوت نت
لمحة تاريخية
لكي تستوعب المصطلحات والفرق بينهم تحتاج أن تمر بشكل سريع على تاريخ الدوت نت لتفهم ماهو الدافع الذي جعل مايكروسوفت تقوم بهذه التغييرات
بدأت مايكروسوفت عام ١٩٩٦ بإطلاق إطار عمل Classic ASP الذي يمكّن المطورين من كتابة HTMLو Server-Side Code بلغة VBScript ولصعوبة التعديل على البرنامج لترباطه ببعضه البعض ممايؤدي لصعوبة إجراء الاختبارات عليه، قامت مايكروسوفت بإطلاق إطار عمل Web Forms عام ٢٠٠٢ تزامناً مع إطار عمل .NET الذي كان يتيح للمطورين إنشاء وتصميم الصفحات عن طريق الـDrag & Drop ومع مرور الوقت وتطور تطبيقات الويب وبروز لغات مثل جافاسكربت في المجال أرادت مايكروسوفت مواكبة هذا التطور قامت عام ٢٠٠٩ بالإعلان عن ASP.NET MVC ومن أهم مزاياه هو تبنيه لنط MVC (Model-View-Controller) بنفس الفترة تم اصدار محرك Razor Engine ليتمكن المطور من كتابة لغة C# مع الـHTML وتعتبر هذه إضافة قوية وقفرة في طريقة تطوير صفحات الويب
كثرت أطر العمل وأصبح كل إطار يقوم بدور مختلف عن الآخر مماسبب تشتت للمطورين وصعوبة لدى مايكروسوفت لدعمها وتطويرها فعزمت على إعداة كتابة إطار عمل جديد يراعي جميع ماسبق وبشكل أفضل فأنتجت .NET Core
ماهو الدوت نت كور؟ .NET Core
هو منصة للمطورين مفتوحة المصدر لبناء لبناء تطبيقات مختلفة كالمواقع أو التطبيقات أو حتى إنترنت الأشياء، ماهو المقصود بمنصة للمطورين؟ المقصود هنا هو مجموعة من اللغات (C#, F#, Visual Basic) ومجموعة من المنصات مثل .NET Core، .NET Framework وXamarin وأخيراً .NET Standard التي قامت بدورها بتوحيد التعامل مع اطر العمل المختلفة.
أهم مميزات .NET Core
- يعمل في كل أنظمة التشغيل (ويندوز، ماك، لينكس) (Cross-Platform)
- قدم لنا أوامر على الـTerminal\Command Line تسهل لنا عملية التطوير.
- متوافق مع تطوير البرمجيات (ASP.NET)، تطوير التطبيقات (Xamarin) باستخدام .NET Standard
- مفتوح المصدر
الأدوات اللازمة
لكي نبدأ في تطوير تطبيق على الدوت نت نحتاج لتثبيت حزمة البرمجيات (SDK) وأيضاً سنستخدم في هذه المقالة فيجوال ستدويو كود VS Code
بإمكانك استخدام أي محرر آخر مثل
- Visual Studio (Windows)
- Visual Studio for Mac
- Visual Studio Code
- Rider
- …الخ
إنشاء التطبيق
بعد تثبيت الـSDK سنقوم بفتح الـTerminal\Command Line وننشئ تطبيق جديد عن طريق كتابة هذا السطر
dotnet new webapp -o dotnetFirstApp
في الأمر السابق قمنا بـ:
- إنشاء تطبيق جديد من نوع webapp
- المتغير -o لتحديد المسار الذي سيتم إنشاء التطبيق به
سنقوم بفتح المشروع بإستخدام Visual Studio Code. ستلاحظ ملفات قام بإنشائها الأمر السابق سنقوم بشرحها جميعاً الآن
*اذا كانت هذه أول مره تفتح مشروع للدوت نت ستظهر لك رسالة لتحميل الأدوات اللازمة لتشغيل التطبيق أضغط Yes
ماهو الـProgram.cs؟
هو نقطة البداية في التطبيق ومن خلال دالة Main سيتم إنشاء الـHost الخاص بالدوت نت والإنتقال بعدها للكلاس Startup
نقطة البداية Startup.cs
كلاس الـStartup هو المحطة الثانية عند تشغيل تطبيق الدوت نت يحتوى على دالتين رئيستين Configureو ConfigureServices
1. ConfigureServices
الـ ConfigureServices هو المكان الخاص بتسجيل الإرتباطات في التطبيق. حيث أن الدوت نت كور معتمد بشكل أساسي على نمط الـDependecy Injection. أي Service ستقوم بتسجيلها هنا ستتمكن من الوصول لها عن طريق اضافتها كمتغير في الـConstructor وسيتولى الـIoC بمهمة احضارها لك.
*للقراءة أكثر عن الـDepedency Injection و الـIoC Container
2. Configure
هدف هذه الدالة هو التحكم بطلبات الـhttp حيث كل طلب سيمر من خلال مجرى (Pipeline) فيه عدة وسائط (Middlewares) بإمكانها التعديل على الطلب نفسه او إضافة بعض المتغيرات عليه وستمكنك هذه الدالة من تسجيل الوسائط والتحكم بترتيبها.
مجلد الـPages
هنا يتم إضافة الصفحات الخاصة بالموقع ولكل صفحة ملفين هم
- ملف امتداده .cshtml وهو الملف الذي يحتوي على أكواد HTML وC# بإستخدام Razor
- الملف الداعم وهو ملف بامتداد .cshtml.cs يحتوى على اكواد C# تتحكم بأحداث الصفحة ومتغيراتها
- هناك صفحات تبدأ بـUnderscore مثل _Layout.cshtml التي تحتوي على التصماميم العامة للصفحات
مجلد wwwroot
يحتوي على الملفات الثابتة static files، مثل ملفات الجافاسكربت والـCSS.
ملف appsettings.json
يحتوى على بعض البيانات المرتبطة بالإعدادات مثل رابط الوصول لقاعدة البيانات او إعداداتك الخاصة بالتطبيق، ميزته انه بإمكانك تغيير بمحتواه ولو أن التطبيق يعمل.
تشغيل التطبيق
إذا كانت جميع الخطوات السابقة صحيحة إلى هذه المرحلة ستتمكن من تشغيل التطبيق بالضغط على F5 أو كتابة الأمر في الـTerminal\Command Line
dotnet run
ومن ثم التوجة إلى http://localhost:5000
رائع! لقد قمت الآن بإنشاء تطبيق بإستخدام ASP.NET Core وتعرفت على الملفات الخاصة به ووظائفها. سنتحدث في المقالات القادمة بالتفصيل عن هذه الملفات وطريقة عملها والربط مع قواعد البيانات والكثير من الأمور المهمة في تطوير ويب.
إذا كنت تملك أي استفسار أو ملاحظة يشرفني تواصلك عبر الرسائل الخاصة في تويتر