بليزر
Blazor هو إطار عمل ويب مجاني ومفتوح المصدر يمكّن المطورين من إنشاء واجهات مستخدم ويب (UI) تعتمد على المكونات، باستخدام لغة C# ولغة HTML . [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] يتم تطويره بواسطة مايكروسوفت ، كجزء من إطار عمل تطبيقات الويب ASP.NET Core .
يمكن استخدام Blazor لتطوير تطبيقات أحادية الصفحة أو تطبيقات الهاتف المحمول أو تطبيقات يتم عرضها من قبل الخادم باستخدام تقنيات .NET.
تاريخ
في عام ٢٠١٧، وخلال مؤتمر NDC أوسلو، كشف ستيف ساندرسون، مهندس البرمجيات في مايكروسوفت، عن إطار عمل تجريبي لتطبيقات الويب من جانب العميل لمنصة .NET ، أطلق عليه اسم "Blazor". تضمن العرض التوضيحي تطبيقًا تفاعليًا يعمل في المتصفح باستخدام WebAssembly ، بالإضافة إلى تجربة تطوير أولية في Visual Studio. أوضح ساندرسون كيفية إنشاء مكونات تفاعلية باستخدام لغة C# وبنية Razor . بعد ذلك، تم تجميع التطبيق إلى تجميعات .NET التي تعمل على بيئة تشغيل .NET خفيفة الوزن مفتوحة المصدر تابعة لجهة خارجية، تُسمى DotNetAnywhere، والتي تم تجميعها بدورها إلى WebAssembly.
إن اسم "Blazor"، كما أوضح ستيف ساندرسون، هو مزيج من كلمتي "browser" و "razor" (من صيغة Razor المستخدمة).
أقرّت مايكروسوفت مشروع Blazor رسميًا كمشروع مفتوح المصدر، وفي عام 2018، كجزء من .NET Core 3.0، تم إطلاق Blazor Server للجمهور. [ 7 ] وقد مكّن هذا المشروع تطبيقات الويب التفاعلية التي تعمل من جانب الخادم، والتي تُحدّث متصفح العميل عبر WebSockets . بعد ذلك بفترة وجيزة، تم إطلاق Blazor WebAssembly. وعلى عكس النموذج الأولي، استخدم هذا المشروع بيئة تشغيل Mono .NET على WebAssembly. وهي نفس بيئة التشغيل المستخدمة لتطوير تطبيقات الجوال باستخدام .NET MAUI (المعروفة سابقًا باسم Xamarin ).
كان كود مصدر Blazor موجودًا في البداية في مستودع خاص به على GitHub، إلى أن تم دمجه في مستودع ASP.NET Core الموحد . ومنذ ذلك الحين، استمر التطوير من هناك.
مع إصدار .NET 5، توقف Blazor عن العمل على Internet Explorer والإصدار القديم من Microsoft Edge . [ 8 ]
في عام 2023، ومع إصدار .NET 8، شهد Blazor على الخادم تغييرات جوهرية [ 9 ] لتمكين عرض الصفحات من جانب الخادم (SSR) التي لا تعتمد بشكل أساسي على التفاعل، مما أتاح استخدام Blazor كبديل لصفحات MVC Razor . وبفضل هذا التغيير، يُمكن للمطورين تحديد ما إذا كان كل مكون (أو صفحة) تفاعليًا، وما إذا كان سيتم تشغيله على الخادم أو في المتصفح باستخدام WebAssembly. وتُعرف هذه الخيارات باسم "أوضاع العرض التفاعلية".
عناصر
يُشار إلى المكونات رسميًا باسم مكونات Razor .
يتكون مكون Razor بشكل أساسي من HTML ممزوج بصيغة قوالب Razor التي تتيح الاستخدام المضمن لـ C# للتأثير على العرض.
يضمن نموذج مكون Blazor تحديث الترميز المعروض عند تغيير حالة المكون، وعادةً ما يكون ذلك استجابةً لإجراء المستخدم.
بينما يمكن وضع كل من لغة الترميز ورمز C# في نفس .razorالملف، فمن الممكن أيضًا وجود ملف كود منفصل يحتوي على فئة جزئية.
يتم تجميع المكونات في فئات .NET. يتم ترجمة ترميز HTML و Razor الخاص بالمكون إلى كود يقوم بإنشاء شجرة عرض، والتي بدورها تتحكم في عملية العرض الفعلية.
مثال
يوضح المثال التالي كيفية تنفيذ عداد بسيط يمكن زيادته بالنقر على زر:
<h1> العداد < / h1 ><p> العدد : @count </p>< button @ onclick = "Increment" > زيادة </ button > @شفرة { عدد صحيح خاص = 0؛ دالة خاصة void Increment() { count++; } } نماذج الاستضافة
يمكن استضافة تطبيقات Blazor بطرق متعددة. هذه هي نماذج الاستضافة اعتبارًا من .NET 8.
تطبيق ويب Blazor (خادم)
تطبيق Blazor مستضاف على خادم، كجزء من تطبيق ASP.NET Core.
العرض الثابت من جانب الخادم (SSR)
بشكل افتراضي، يقوم الخادم بعرض المكونات كصفحات HTML ثابتة، بدون أي تفاعلية. ويمكن تفعيل التفاعلية لكل مكون على حدة عن طريق تحديد وضع العرض.
هذا يعادل طريقة عرض صفحات MVC وصفحات Razor.
أوضاع العرض
المصدر: [ 10 ]
في .NET 8، قدم Blazor مفهوم أوضاع العرض التي تحدد ما إذا كانت مكونات Razor تفاعلية وما الذي يحرك هذا التفاعل.
يتم توريث وضع العرض ضمن تسلسل المكونات، من المكون الأصل الأعلى الذي تم تعيين وضع عرض له. ولا يمكن للمكونات الفرعية تجاوز هذا الوضع، إلا إذا كان وضع العرض الخاص بها هو وضع الخادم الثابت الافتراضي.
- الخادم الثابت – يتم عرض المكون بشكل ثابت على الخادم بدون أي تفاعل. هذا هو الوضع الافتراضي.
- الخادم التفاعلي – يعمل المكون على الخادم في الوضع التفاعلي. يتم التحكم في التفاعل من قبل الخادم، ويتم إرسال التغييرات إلى العميل عبر WebSocket باستخدام SignalR .
- WebAssembly التفاعلي - يعمل المكون في وضع تفاعلي في المتصفح باستخدام WebAssembly.
- الوضع التلقائي التفاعلي – سيتم تحميل المكون مبدئيًا في وضع عرض الخادم التفاعلي أثناء تنزيل حزمة Blazor. وفي الزيارات اللاحقة، يتم استخدام WebAssembly التفاعلي على جانب العميل.
المعالجة المسبقة
يتم عرض المكونات التفاعلية مسبقًا على الخادم قبل أن يتم عرضها على العميل وبدء التفاعل. يتم تشغيل هذا السلوك افتراضيًا، ولكن يمكن إيقاف تشغيله.
نظام ملاحة مُحسّن
هذه الميزة تجعل التنقل في موقع ثابت أكثر سلاسة بطريقة تشبه تطبيق الصفحة الواحدة (SPA).
عند الانتقال من صفحة ثابتة إلى أخرى، يعترض التطبيق عملية الانتقال، ويسترجع محتوى الصفحة المستهدفة فقط، ثم يطبق التغييرات على نموذج كائن المستند (DOM) فقط . وبهذه الطريقة، لا تومض الصفحة كما يحدث عادةً عند إعادة تحميلها بالكامل عند الانتقال إلى صفحة أخرى.
WebAssembly (مستقل)
هذا تطبيق ويب تفاعلي مستقل يعمل بتقنية WebAssembly في متصفح العميل.
عند الانتقال إلى التطبيق في متصفح، يتم تنزيل حزمة التطبيق، ثم تحميلها وتنفيذها داخل بيئة الحماية الخاصة بالمتصفح.
يمكن أيضًا تحويل تطبيق WebAssembly إلى تطبيق ويب تقدمي (PWA).
قبل إصدار .NET 8، كان هناك قالب مشروع يستضيف تطبيق Blazor WebAssembly داخل تطبيق ASP.NET Core يحتوي على واجهات برمجة تطبيقات الويب. تم استبدال هذا القالب بقالب مشروع تطبيق Blazor Web، مع بقاء الوظائف الأساسية.
هجين
يسمح بتشغيل تطبيقات Blazor داخل تطبيق أصلي باستخدام WebView. [ 11 ] يتم تنفيذ العرض في عملية الاستضافة، بدون خادم ويب.
يمكن استضافة التطبيقات الهجينة في Windows Presentation Foundation أو تطبيق WinForms .
يتم استخدام هذا النهج لبناء تطبيقات جوال أصلية باستخدام Blazor، باستخدام .NET MAUI .
الخادم (القديم)
كان الاستخدام المقصود هو تمكين المكونات التفاعلية التي تعمل بواسطة الخادم، مع إرسال التغييرات إلى العميل باستخدام WebSockets.
تم عرض أحد المكونات داخل صفحة MVC Razor.
كما مكّن ذلك من العرض المسبق لمكونات WebAssembly.
كان نموذج الاستضافة هذا يُشار إليه رسميًا باسم "خادم Blazor".
تم إيقاف استخدامه لصالح تطبيق Blazor Web.
انظر أيضاً
- asm.js – سلف WebAssembly الذي يُمكّن تطبيقات الويب من جانب العميل المكتوبة بلغة C أو C++
- عميل جوجل الأصلي – سلف جوجل لتقنية WebAssembly، والذي تم إيقافه، والذي يُمكّن من تشغيل التعليمات البرمجية الأصلية في متصفح الويب، بغض النظر عن نظام تشغيل المتصفح.
مراجع
- ↑ ستراهل، ريك (31 يوليو 2018). "Web Assembly وBlazor: إعادة تجميع الويب" . مدونة ريك ستراهل . منشور ذاتيًا . مؤرشف من الأصل في 22 أكتوبر 2018.
- ↑ توماسيتي، فيديريكو (4 سبتمبر 2018). "بلازور: .NET في المتصفح" . tomassetti.me . Strumenta. مؤرشف من الأصل في 22 أكتوبر 2018.
- ↑ جيمس، مايك (12 فبراير 2018). "Blazor .NET في المتصفح" . i-programmer.info . منشور ذاتيًا . مؤرشف من الأصل بتاريخ 18 فبراير 2018.
- ↑ ميلر، جوناثان (سبتمبر 2018). "لغة سي شارب في المتصفح مع بليزر" . مجلة MSDN . 33 (9). مؤرشف من الأصل في 22 أكتوبر 2018.
- ↑ روث، دانيال (22 مارس 2018). "ابدأ ببناء تطبيقات ويب .NET تعمل في المتصفح باستخدام Blazor" . مدونة ASP.NET . مايكروسوفت . مؤرشف من الأصل في 30 أبريل 2019.
- ↑ "لا يمكن لتطبيقات الويب فعل ذلك حقًا، أليس كذلك؟ - ستيف ساندرسون" . يوتيوب . 10 يوليو 2017. تاريخ الاسترجاع: 28 فبراير 2024 .
- ↑ wadepickett. "ما الجديد في ASP.NET Core 3.0" . learn.microsoft.com . تم الاطلاع عليه بتاريخ 18 سبتمبر 2025 .
- ↑ روث، دانيال (30 سبتمبر 2020). "تحديث دعم متصفح Blazor لـ .NET 5" . مستودع dotnet/aspnetcore . مايكروسوفت - عبر GitHub.com .
- ↑ "أساسيات ASP.NET Core Blazor" . 2024-12-02 . تم الاطلاع عليه بتاريخ 2024-02-28 .
- ↑ "أوضاع عرض ASP.NET Core Blazor" . 2024-02-09 . تم الاطلاع عليه بتاريخ 2024-03-26 .
- ↑ "ASP.NET Core Blazor Hybrid" . تم الاطلاع عليه بتاريخ 14-11-2023 .
للمزيد من القراءة
- إنجستروم، جيمي (2021). تطوير مواقع الويب باستخدام Blazor: دليل عملي لمطوري .NET لبناء واجهات مستخدم تفاعلية باستخدام لغة C# . دار نشر Packt. رقم ISBN 978-1800208728.
- هيمشوت، بيتر (2021). مايكروسوفت بليزر: بناء تطبيقات الويب في .NET 6 وما بعده . دار نشر أبريس. رقم ISBN 978-1484278444.
- رايت، توي (2021). Blazor WebAssembly بالأمثلة: دليل عملي لبناء تطبيقات الويب باستخدام .NET وBlazor WebAssembly وC# . دار نشر Packt. رقم ISBN 978-1800567511.
- ساينتي، كريس (2022). بليزر في العمل . منشورات مانينغ. رقم ISBN 978-1617298646.
روابط خارجية
- الموقع الرسمي

- ASP.NET Core على GitHub
- مدرسة بليزر - وثائق مجتمع بليزر.
- جامعة بلازور — وثائق بلازور من مصدر ثانوي ومستقل
- برامج 2018
- ASP.NET
- برامج متعددة المنصات
- مواقع الإنترنت التي تم إنشاؤها في عام 2018
- واجهات برمجة تطبيقات مايكروسوفت
- أدوات تطوير مايكروسوفت
- برنامج يستخدم ترخيص أباتشي
- برمجة الويب
