أهلا وسهلا بك في هذه السلسلة الجديدة من تصميم صفحات الويب باستخدام Microsoft .NET Blazor أو لغاية اللحظة مايكروسوفت تطلق عليه لقب Blazor فقط وهو اختصار ل Razor في ال Browser لأنه أمر جديد عليهم ولم يتم الفصل بشأن اسم المولود بعد.
ما هو Blazor
البلازور هو single-page web app framework ، يعني إطار عمل لبرمجة الويب بعقلية الصفحة الواحدة SPA ، مبني على الدوت نت بالكامل ويعمل على المتصفح باستخدام محرك جديد اسمه WebAssembly ، أنا عارف إنه الصورة ضبابية بعد، لكن شيئا فشيئا ستتضح الرؤية.
أفترض أنك مبرمج .NET سابق ولهذا يهمك المقال، أو إذا كنت جديد، فالدوت نت تحتاج إلى تنصيب لكي تعمل على الجهاز، مثل الجافا.
ولكن كيف ستعمل البرمجيات عبر هذه التقنية على المتصفح وعند العميل Client (المستخدم النهائي)
عبر معيار الويب الجديد WebAssembly وهو باختصار بسيط عبارة عن محرك محمول يمكنك من تشغيل وتحميل مكتبات من الموقع DLL على المتصفح وتشغييلها على جهاز العميل، وهذا بسرعة فائقة وتكلفة مصادر قليلة جدا.
طيب جميل، بس احنا عارفين انه منصة الدوت نت ما بتشتغل إلا على الويندوز،
فكيف ستعمل على باقي أنظمة التشغيل ؟
تمام التمام، لهذا السبب البلازور يعتمد على .NET runtime (specifically Mono)
واضح الكلام، طيب
هل يحتوي الآن الملف الذي تم عمل Compile له ، على كل منصة مونو Mono ؟
بالتأكيد سيكون حجم الموقع المحمل كبير؟
القليل جدا من الملفات سيتم تحميلها وتنصيبها على جهاز العميل، والمكتبات ستكون فقط WebAssembly-based .NET runtime ، مع أن هذا سيكلف بعض الطاقة والوقت، ولكن عملية التحسين مستمرة، وأنسخ هذه الفقرة
Early Blazor prototypes used a compact .NET runtime (including assembly execution, garbage collection, threading) that compiled to a mere 60KB of WebAssembly
ما هي المزايا الحالية في النسخة الأولية من بلازور ؟
- A component model for building composable UI
- Routing
- Layouts
- Forms and validation
- Dependency injection
- JavaScript interop
- Live reloading in the browser during development
- Server-side rendering
- Full .NET debugging both in browsers and in the IDE
- Rich IntelliSense and tooling
- Ability to run on older (non-WebAssembly) browsers via asm.js
- Publishing and app size trimming
هذا يأخذنا لسؤال مهم
هل يمكنني تشغيل أي موقع ببلازور على أي جهاز لا يوجد له .NET Framework
نعم وبالمنطق نعم، لأن ملفات ال DLL الموجودة في المشروع، يفهمها المتصفح ، هي عبارة عن ملفات Mono في المتصفح يترجمها الWebAssembly
وما الفائدة إذا ؟ هل يمكنني الوصل بعمق لمكتبات ال.NET مثل ASP.NET Core ؟
نعم يمكنك ذلك ولديك كافة إمكانيات full-stack web development solution ، ولكن هنالك خدعة لهذا الأمر سنراها مستقبلا.
هل البلازور إطار عمل مبني على الجافا سكريبت إذا ؟
لا لا ، هو مشابه لنفكرة ال Angular وال React وال Vue وال Knockout و ال Ember وغيرها، لكنه جديد بالكامل، ولا يعتمد على غيره
هل يمكنني استخدام البلازور الآن ؟
نعم يمكنك استخدامه إلا أنه ما زال في نسخته الأولية Alpha لأن هنالك بعض النقاط ما زال الفريق يعمل عليها، ولكن يجب الإشارة إلى انه مشروع مفتوح المصدر Open Source ولا خوف عليه، ويجب التنبيه أنه لا علاقة له بالابن الضال Silverlight ولا يعتمد على XAML، هو إطار ويب حقيقي
ماذا عن الهواتف الذكية ومتصفحاتها ؟
نعم يعمل وهذه قائمة بالأجهزة المدعومة, modern mobile browsers also support WebAssembly.
صحيح أن ال WebAssembly معيار جديد وتم طرحه في 2015 في المتصفحات، إلا أنه هنالك 4 محركات متصفحات أساسية تدعمه في الويب، وهي
Microsoft Edge
Mozilla Firefox
Google Chrome
Apple Safari
ما هو ال WebAssembly مرة أخرى ؟
للأسف يجب أن يخبرك هو عن نفسه وباللغة الانجليزية ، تفضل يا سيادة ال WebAssembly عرف عن نفسك
WebAssembly (abbreviated Wasm) is a binary instruction format for a stack-based virtual machine. Wasm is designed as a portable target for compilation of high-level languages like C/C++/Rust, enabling deployment on the web for client and server applications.
ماذا عن المتصفحات التي لا تدعم ؟
لا تقلق، هنالك نسخة من البلازور مع الويب اسمبلي في ملف جافا سكريبت، تشغله، تحت مسمى asmjs ، صحيح أن الحجم تقريبا 7 ميغا، ولكن مع الكاشنج وال CDN الأمور ممكنة جدا، ومع تقدم المتصفحات لن نعود بحاجة له.
ما هي الخطوة التالية ؟
إما أن تنطلق وحدك في هذا المسار https://blazor.net/
أو تنتظر السلسلة التي قد أطرحها، والله الموفق والمستعان
لسى توا شوفت كلمة بلازور وبحثت عنها طلعت هاي المدونة
[…] إذا كنت لا تعرف ما هو البلازور، فأدعوك إلى قراءة هذا المقال، وإذا كنت أيضاً مبرمج بايثون أو أي لغة أخرى، فيمكنك أيضاً قراءته، لأن الWeb Assembly مبدأ واحد: ما هو إطار تصميم صفحات الويب Blazor […]