المدونة
مقالات عملية من شركة كومورا سوفت حول تطوير المواقع، وتحسين محركات البحث، وإعلانات جوجل، وتطوير ويندوز، وإعادة استخدام الأصول القديمة، والتحقيق في الأخطاء.
بحث ذكي في الموقع بالكامل
تُرسل استعلامات البحث إلى Cloudflare AI Search لإنشاء النتائج. يُرجى عدم إدخال معلومات شخصية.
-
حفظ أسرار تطبيقات Windows - تجنّب إعداد النصّ الصريح بـ DPAPI
نرتّب هنا فكرة DPAPI و ProtectedData، والفرق بين CurrentUser و LocalMachine، ونقاط التنفيذ، كي لا تُحفَظ معلومات الاتّصال ورموز API بالنصّ الصريح في ملفّ إعد...
-
قائمة التحقّق قبل ترحيل .NET Framework إلى .NET
قائمة تحقّق عمليّة قبل ترحيل .NET Framework إلى .NET: نوع المشروع، والتقنيات غير المدعومة، وتبعيّات NuGet، وأسلوب SDK، و WPF/WinForms، و CI/CD، والتشغيل.
-
كيفيّة تحويل YUV إلى RGB في Media Foundation
نرتّب هنا تحويل إطارات YUV إلى RGB في Media Foundation عبر مسارَي التحويل التلقائيّ في Source Reader والتحويل اليدويّ لـ NV12 و YUY2، مع stride وفضاء اللون.
-
دليل إعدادات NIC المتقدّمة في Windows - RSS و LSO و EEE و Wake on LAN
نرتّب إعدادات NIC المتقدّمة في Windows من منظور عملي. نلخّص ماذا يتغيّر عند تعديل Jumbo Packet و Speed و Duplex و RSS و RSC و LSO و Flow Control و EEE و Wake...
-
استخراج صورة ثابتة من MP4 عند زمن محدّد بـ Media Foundation
نلخّص خطوات التنفيذ لأخذ إطار قريب من زمن محدّد في MP4 عبر Source Reader، وترتيب stride و alpha في RGB32، ثم الحفظ PNG.
-
قائمة التحقّق الدنيا لأمان تطبيقات Windows
ننظّم في صورة قائمة تحقّق أساسيات الصلاحيات والتوقيع والتحديث والأسرار و HTTPS والتحقّق من الإدخال وتحميل DLL والسجلات لتطبيقات أعمال WPF و WinForms و WinUI ...
-
ما هو Generic Host في .NET - أساس DI والإعدادات والسجلات
ننظّم دور Generic Host من علاقة DI والإعدادات والسجلات و IHostedService و BackgroundService، ونلخّص أين يؤثّر وأين يصير زائداً من منظور عملي.
-
ما هو Native AOT في .NET - الفرق عن JIT و trimming
ننظّم معنى Native AOT من الفرق عن JIT و ReadyToRun و self-contained و single-file و trimming و source generator، ونلخّص الحالات التي يناسبه والحالات التي تضي...
-
ما هي COM / ActiveX / OCX: الفروق والعلاقات
تنظيم ما هي COM وما هي ActiveX وما هي OCX، مع الفروق والعلاقات وصلة OLE، وأين تُستخدم، وكيف تُفهم اليوم من منظور العمل اليومي.
-
اختيار مؤقّتات .NET الثلاثة: PeriodicTimer و Timer و DispatcherTimer
تنظيم الفروق بين PeriodicTimer و System.Threading.Timer و DispatcherTimer، وكيف تُختار للمعالجة غير المتزامنة و callback على ThreadPool وتحديث واجهة WPF.
-
كيف نستدعي DLL من C# Native AOT من C/C++
إصدار مكتبة أصناف C# كـ native DLL عبر Native AOT، واستدعاء نقاط دخول UnmanagedCallersOnly من C/C++، مع مواضع الاستخدام وأنماط التنفيذ والملاحظات.
-
لماذا نستخدم Generic Host و BackgroundService في تطبيق سطح المكتب
تنظيم البدء والمعالجة الدوريّة والإيقاف والسجلات والإعدادات و DI في أدوات Windows والتطبيقات المقيمة باستخدام Generic Host و BackgroundService.
-
كيف تتعامل مع ActiveX / OCX اليوم - جدول قرار للإبقاء أو التغليف أو الاستبدال
عند العثور على ActiveX أو OCX، يبيّن المقال كيف تختار بين الإبقاء والتغليف والاستبدال، مع 32bit / 64bit والتسجيل واعتماد المتصفّح وصيانة البائع.
-
تنظيم async وخيط الواجهة في WPF/WinForms في صفحة واحدة
نرتّب وجهة العودة بعد await في WPF / WinForms، وDispatcher / Invoke، وConfigureAwait(false)، ومواضع التوقّف في .Result / .Wait().
-
بنية اختبار مسارات الفشل في Windows بـ Application Verifier
نرتّب ما هو Application Verifier مع بناء بنية اختبار مسارات الفشل في Windows باستخدام Handles وHeaps وLow Resource Simulation و!htrace.
-
تحقيق تعطّل الكاميرا الصناعيّة بعد تشغيل طويل: فصل handle leak
نرتّب طريقة النظر إلى تعطّل تطبيق Windows فجأة بعد تشغيل طويل، من زوايا إيجاد handle leak وتصميم السجلّات، بحالة تطبيق تحكّم بكاميرا صناعيّة.
-
توقّف اتّصال الكاميرا الصناعيّة بسبب إعادة إرسال TCP: السبب والتضييق
نرتّب طريقة تضييق توقّف اتّصال الكاميرا الصناعيّة لعدّة ثوانٍ بسبب إعادة إرسال TCP، مع فقد الحزم وRTO وطوابع RFC1323 ونقاط التحقّق في Wireshark.
-
دليل عملي لـ FileSystemWatcher: معالجة الفقد والتكرار
نرتّب استخدام FileSystemWatcher ونقاط الحذر فيه من زوايا الفقد، والإشعارات المكرّرة، ومزالق الحكم على الاكتمال، وإعادة المسح، وclaim الذرّي، وidempotency.
-
مدخل إلى Media Foundation - فهم الواجهة من منظور COM
نرتّب ما هو Media Foundation مع المصطلحات الأساسيّة لواجهات وسائط Windows مثل COM و HRESULT و IMFSourceReader و MFT، بالترتيب الذي يُضبَط أوّلاً.
-
جدول قرار عملي لـ C# async/await - Task.Run و ConfigureAwait
نرتّب أفضل ممارسات C# async/await بجداول قرار لانتظار I/O وحساب CPU و Task.Run و ConfigureAwait(false) و fire-and-forget.
-
دليل عملي لتحقيق soft real-time قدر الإمكان على Windows العادي
ننظّم طريقة تثبيت المعالجة الدوريّة والمعالجة منخفضة التأخير على Windows العادي، من دقّة المؤقّت والأولويّة وإعدادات الطاقة وطريقة المراقبة.
-
أساسيات التحكّم الحصري في تكامل الملفّات - أفضل الممارسات لـ file lock والـ claim الذرّي
ننظّم التحكّم الحصري في تكامل الملفّات عبر file lock والـ claim الذرّي و temp -> rename و idempotency، ونلخّص تصميماً يتجنّب الحوادث في التكامل عبر المجلّدات...
-
استدعاء native DLL من C#: غلاف C++/CLI مقابل P/Invoke
عند استخدام native DLL من C#، نميّز الحالات التي يكفي فيها P/Invoke عن تلك التي ينفع فيها غلاف C++/CLI، من زوايا الملكيّة والاستثناءات وأنواع C++ والـ callba...
-
مدخل إلى مخطّط HCP وMakingHCPChartSkill
نشرح ما هو مخطّط HCP، ونلخّص تدفّق تحويل HCP-DSL إلى SVG حتمي بـ MakingHCPChartSkill، وطريقة القراءة والاستخدام.
-
أساسيات COM STA/MTA - نموذج الخيوط وتجنّب التعليق
نرتّب هنا أساسيات COM STA/MTA بما يشمل نموذج Apartment وخيط واجهة المستخدم وحلقة الرسائل والـ marshalling وتجنّب التعليق.
-
دراسة حالة لجسر COM يستدعي DLL بـ 64bit من تطبيق 32bit
عندما يتعذّر استدعاء DLL بـ 64bit مباشرة من تطبيق 32bit، نرتّب هنا فكرة الربط عبر جسر COM مع قيد Windows والتركيبة وتدفّق المعالجة.
-
ما هو COM - لماذا لا يزال تصميم Windows COM يبدو جميلاً حتى اليوم
نرتّب هنا ما هو COM من زاوية تصميم الواجهة في Windows COM وIUnknown وGUID والتوافق الثنائي، ونشرح لماذا ما زال هذا النموذج صالحاً اليوم.
-
إعلان إطلاق المدوّنة التقنية - بدأنا مدوّنة تطوير Windows / C# / COM
إعلان عن إطلاق المدوّنة التقنية لشركة كومورا سوفت ذ.م.م. سننشر فيها معارف حول تطوير Windows وC# / .NET وCOM والتصميم وأدوات التطوير.