قم ببناء تطبيقات سطح المكتب عبر الأنظمة الأساسية باستخدام .NET 8 وBlazor، ASP.NET Core (Razor Pages، MVC).
Electron.NET عبارة عن غلاف حول تطبيق Electron الأصلي مع تطبيق ASP.NET Core المضمن. عبر جسر Electron.NET IPC الخاص بنا، يمكننا استدعاء Electron APIs من .NET.
تستضيف ملحقات CLI مجموعة أدواتنا لإنشاء تطبيقات Electron.NET وبدء تشغيلها.
حسنًا... هناك الكثير من الطرق المختلفة لكيفية تشغيل تطبيق X-plat لسطح المكتب. لقد اعتقدنا أنه سيكون من الجيد لمطوري .NET استخدام بيئة ASP.NET Core ودمجها داخل بيئة X-plat قوية جدًا تسمى Electron. إن نقل الإلكترون إلى .NET ليس هدفًا لهذا المشروع، على الأقل ليس لدينا أي فكرة عن كيفية القيام بذلك. نحن فقط نجمع بين ASP.NET Core وElectron.
إلكتروننيت.API | إلكترونNET.CLI
يقوم Electron.NET CLI الحالي بإنشاء ثنائيات Windows/macOS/Linux. تستخدم واجهة برمجة التطبيقات (API) الخاصة بنا .NET 8، لذا فإن الحد الأدنى لنظام التشغيل الأساسي لدينا هو نفس .NET 8.
كما كان يجب عليك تثبيت:
إلى جانب الدردشة على Gitter والقضايا التي تمت مناقشتها هنا، يمكنك أيضًا استخدام StackOverflow مع العلامة electron.net
.
إذا كنت ترغب في رعاية المزيد من الصيانة والتطوير لهذا المشروع، راجع قسم التبرع.
لتنشيط واجهة برمجة تطبيقات Electron "الأصيلة" (نوعًا ما أصلية...) والتواصل معها، قم بتضمين حزمة ElectronNET.API NuGet في تطبيق ASP.NET Core الخاص بك.
PM > Install-Package ElectronNET.API
عليك بدء تشغيل Electron.NET باستخدام ملحق UseElectron
WebHostBuilder وفتح نافذة Electron:
using ElectronNET . API ;
using ElectronNET . API . Entities ;
var builder = WebApplication . CreateBuilder ( args ) ;
builder . WebHost . UseElectron ( args ) ;
// Is optional, but you can use the Electron.NET API-Classes directly with DI (relevant if you want more encoupled code)
builder . Services . AddElectron ( ) ;
var app = builder . Build ( ) ;
.. .
await app . StartAsync ( ) ;
// Open the Electron-Window here
await Electron . WindowManager . CreateWindowAsync ( ) ;
app . WaitForShutdown ( ) ;
يمكنك بدء تشغيل Electron.NET باستخدام ملحق UseElectron
WebHostBuilder.
public static IHostBuilder CreateHostBuilder ( string [ ] args ) =>
Host . CreateDefaultBuilder ( args )
. ConfigureWebHostDefaults ( webBuilder =>
{
webBuilder . UseElectron ( args ) ;
webBuilder . UseStartup < Startup > ( ) ;
} ) ;
افتح نافذة Electron في ملف Startup.cs :
public void Configure ( IApplicationBuilder app , IWebHostEnvironment env )
{
//...
Electron . WindowManager . CreateWindowAsync ( ) ;
}
لبدء التطبيق تأكد من تثبيت حزم "ElectronNET.CLI" كأداة عالمية:
dotnet tool install ElectronNET.CLI -g
في المرة الأولى، تحتاج إلى تهيئة مشروع Electron.NET. اكتب الأمر التالي في مجلد ASP.NET Core الخاص بك:
electronize init
electronize start
فقط
electronize start
الأولى تكون بطيئة. القادم سوف يستمر بشكل أسرع.
تم تضمين مراقب الملفات في الإصدار 8.31.1 من Electron.NET. على سبيل المثال، يمكن أن يؤدي تغيير الملف إلى تشغيل عملية التحويل البرمجي أو تنفيذ الاختبار أو النشر. سيتم تحديث نافذة Electron.NET تلقائيًا وستكون التغييرات الجديدة في التعليمات البرمجية مرئية بسرعة أكبر. مطلوب أمر Electron.NET CLI التالي:
electronize start /watch
فقط
electronize start
الأولى تكون بطيئة. القادم سوف يستمر بشكل أسرع.
ابدأ تشغيل تطبيق Electron.NET الخاص بك باستخدام أمر Electron.NET CLI. في Visual Studio، قم بإرفاق مثيل التطبيق قيد التشغيل. اذهب إلى قائمة التصحيح وانقر على إرفاق بالمعالجة... . قم بالفرز حسب اسم المشروع الخاص بك على اليمين وحدده في القائمة.
ستتبع الوثائق الكاملة. حتى ذلك الحين، قم بإلقاء نظرة على الكود المصدري للتطبيق النموذجي:
عروض واجهة برمجة تطبيقات Electron.NET
في فيديو YouTube هذا، نعرض لك كيف يمكنك إنشاء مشروع جديد واستخدام Electron.NET API وتصحيح أخطاء أحد التطبيقات وإنشاء تطبيق سطح مكتب قابل للتنفيذ لنظام التشغيل Windows: Electron.NET - البدء
هنا تحتاج إلى Electron.NET CLI أيضًا. اكتب الأمر التالي في مجلد ASP.NET Core الخاص بك:
electronize build /target win
هناك منصات إضافية متاحة:
electronize build /target win
electronize build /target osx
electronize build /target linux
ستنتج هذه الأهداف "الافتراضية" الثلاثة حزم x64 لتلك الأنظمة الأساسية.
بالنسبة لحزم NuGet معينة أو سيناريوهات معينة، قد ترغب في إنشاء تطبيق x86 خالص. لدعم هذه الأشياء، يمكنك تحديد وقت تشغيل .NET Core المطلوب ومنصة الإلكترون وبنية الإلكترون على النحو التالي:
electronize build /target custom " win7-x86;win32 " /electron-arch ia32
يجب أن تكون النتيجة النهائية تطبيقًا إلكترونيًا ضمن مجلد /bin/desktop الخاص بك.
لا يمكن إنشاء إصدارات macOS على أجهزة Windows لأنها تتطلب روابط رمزية غير مدعومة على Windows (حسب مشكلة Electron هذه). يمكن إنتاج إصدارات macOS على أجهزة Linux أو macOS.
بعد التحديث إلى أحدث حزمة Electron.API، يلزم دائمًا إجراء تحديث لأحدث Electron.CLI. بالإضافة إلى ذلك، قم دائمًا بتحديث واجهة سطر الأوامر (CLI) عبر NuGet:
dotnet tool update ElectronNET.CLI -g
انظر أيضًا قائمة المساهمين الذين شاركوا في هذا المشروع.
لا تتردد في إرسال طلب سحب إذا وجدت أي أخطاء (للاطلاع على قائمة بالمشكلات النشطة، قم بزيارة قسم المشكلات. يرجى التأكد من توثيق جميع الالتزامات بشكل صحيح.
يقدم هذا الفيديو مقدمة لتطوير Electron.NET: Electron.NET - المساهمة في البدء
يتكون هذا المستودع من الأجزاء الرئيسية (API & CLI) وتطبيق ASP.NET Core "الملعب" الخاص به. ينتج كلا الجزأين الرئيسيين حزم NuGet محلية، والتي تم إصدارها بـ 99.0.0. أول شيء ستحتاج إليه هو تشغيل أحد البرامج النصية للإنشاء (.cmd أو .ps1 لنظام التشغيل Windows، و.sh لنظام التشغيل macOS/Linux).
إذا كنت تبحث عن مشاريع تجريبية خالصة، فاطلع على المستودعات الأخرى.
تكمن مشكلة العمل مع هذا المستودع في أن NuGet يحتوي على ذاكرة تخزين مؤقت قوية جدًا، راجع هنا لمزيد من المعلومات.
نحن نقوم بهذا العمل مفتوح المصدر في أوقات فراغنا. إذا كنت تريد منا أن نستثمر المزيد من الوقت في ذلك، يرجى التبرع. يمكن استخدام التبرع لزيادة أولوية بعض القضايا. شكرًا لك!
بدلاً من ذلك، فكر في استخدام رعاية GitHub للمشرفين الأساسيين:
أي دعم موضع تقدير! ؟
مرخص من معهد ماساتشوستس للتكنولوجيا. راجع الترخيص للحصول على التفاصيل.
يتمتع!
تأكد من حصولك أيضًا على الإصدار الجديد Electron.NET API & CLI 9.31.2.
dotnet tool update ElectronNET.CLI -g
يستخدم هذا الآن منشئ الإلكترون ويتم إجراء التكوين اللازم للبناء في ملف Electro.manifest.json (في جزء البناء). بالإضافة إلى ذلك، يتم تخزين تكوينات Electron.NET الخاصة (على الجذر).
الرجاء التأكد من أن ملف Electro.manifest.json الخاص بك يحتوي على البنية الجديدة التالية:
{
"executable" : " {{executable}} " ,
"splashscreen" : {
"imageFile" : " "
},
"name" : " {{executable}} " ,
"author" : " " ,
"singleInstance" : false ,
"build" : {
"appId" : " com.{{executable}}.app " ,
"productName" : " {{executable}} " ,
"copyright" : " Copyright © 2020 " ,
"buildVersion" : " 1.0.0 " ,
"compression" : " maximum " ,
"directories" : {
"output" : " ../../../bin/Desktop "
},
"extraResources" : [
{
"from" : " ./bin " ,
"to" : " bin " ,
"filter" : [ " **/* " ]
}
],
"files" : [
{
"from" : " ./ElectronHostHook/node_modules " ,
"to" : " ElectronHostHook/node_modules " ,
"filter" : [ " **/* " ]
},
" **/* "
]
}
}
في الإصدار 0.0.9، لم تكن واجهة سطر الأوامر (CLI) أداة عالمية ويجب تسجيلها بهذه الطريقة في .csproj :
< ItemGroup >
< DotNetCliToolReference Include = " ElectronNET.CLI " Version = " 0.0.9 " />
</ ItemGroup >
بعد تحرير ملف .csproj ، تحتاج إلى استعادة حزم NuGet الخاصة بك داخل مشروعك. قم بتشغيل الأمر التالي في مجلد ASP.NET Core الخاص بك:
dotnet restore
إذا كنت لا تزال تستخدم هذا الإصدار، فستحتاج إلى استدعائه على النحو التالي:
electronize ...
يتطلب Electron.NET تمكين تكامل Node.js لكي يعمل IPC. إذا كنت لا تستخدم وظيفة IPC، فيمكنك تعطيل تكامل Node.js كما يلي:
WebPreferences wp = new WebPreferences ( ) ;
wp . NodeIntegration = false ;
BrowserWindowOptions browserWindowOptions = new BrowserWindowOptions
{
WebPreferences = wp
} ;
يمكن إضافة ElectronNET.API إلى حاوية DI الخاصة بك ضمن فئة Startup
. ستتم إضافة جميع الوحدات المتوفرة في Electron كوحدات فردية.
using ElectronNET . API ;
public void ConfigureServices ( IServiceCollection services )
{
services . AddElectron ( ) ;
}