مقالات بوسم «الاستشارات التقنية»
قائمة بالمقالات الموسومة بـ «الاستشارات التقنية» (33 مقالة)، من الأحدث إلى الأقدم.
-
معالجة الأخطاء وتصميم إعادة المحاولة في Power Automate ── منع «توقّف تدفّق كان يعمل دون أن يلاحظ أحد»
مجموعة أنماط تصميميّة لمنع تدفّقات Power Automate من «التوقّف دون أن يلاحظ أحد». نستعرض، استناداً إلى مواصفات Microsoft Learn، القيم الافتراضيّة لسياسة إعادة...
-
تصميم تدفّقات التنفيذ الدوريّ في Power Automate ── الممارسة العمليّة لمعالجة نهاية الشهر وتحديد أيّام العمل والتذكيرات
دليل عمليّ لأتمتة المعالجة الدوريّة باستخدام مشغِّل Recurrence في Power Automate. نستعرض فخّ كون المنطقة الزمنيّة الافتراضيّة هي UTC، وصيغ التواريخ، وتحديد أ...
-
معالجة ملفّات PDF لطلبات الشراء والفواتير الواردة عبر البريد الإلكترونيّ آليّاً بواسطة Power Automate ── تصميم الحفظ والتصنيف والإشعار والقراءة
نستعرض تصميم أتمتة حفظ وتصنيف وإشعارات ملفّات PDF لطلبات الشراء والفواتير الواردة عبر البريد الإلكترونيّ باستخدام Power Automate. نشرح من منظور عمليّ متطلّبا...
-
التعامل مع الأعطال لا ينتهي بالاستعادة ── نمط ما بعد الحادثة (منع التكرار) للفِرَق الصغيرة
التعامل مع العطل بـ«الإصلاح والاعتذار ثمّ الانتهاء» يُكرِّر العطل نفسه. نُترجِم مفهوم blameless postmortem للفِرَق الصغيرة، ونُقدِّم قالباً يُكتَب في ساعة وا...
-
مدخل إلى ADR (سجلّ قرار العمارة) ── أقلّ وسيلة لتوثيق «لماذا اخترنا هذا التصميم» في التطوير الصغير
لا تخبرنا الشيفرة «لماذا اتُّخذ هذا القرار». نشرح كيفية توثيق أسباب قرارات التصميم عبر ADR (Architecture Decision Record) بصيغة Markdown بمعدّل قرار واحد لكل...
-
التعامل الآمن مع تطبيق أعمال قديم بلا اختبارات ── الممارسة العمليّة لاختبار التوصيف وإعادة الهيكلة
لإجراء تعديلات آمنة على تطبيق أعمال بلا اختبارات، نشرح خطوات اختبار التوصيف (أسلوب Golden Master) الذي يُثبِّت السلوك الحاليّ، وكيفيّة صنع نقاط التماسّ (seam...
-
عندما يُعامَل تطبيق Windows الذي طوّرته شركتك بوصفه فيروساً ── التعامل مع الكشف الخاطئ في Microsoft Defender والتعايش مع أثره على الأداء
نرتّب الإجراء الرسميّ عند كشف Microsoft Defender تطبيق Windows الذي طوّرته شركتك خطأً. نشرح آليّة برامج مكافحة الفيروسات الحديثة، والإبلاغ عن الكشف الخاطئ لـ...
-
السكون والإسبات وModern Standby والتطبيقات طويلة التشغيل ── منع «التوقّف في منتصف الليل» بالتصميم
نرتّب أسباب وصول تطبيقات Windows طويلة التشغيل إلى حالة «توقّفت عندما نظرت صباحاً»، انطلاقاً من الفرق بين سكون S3 والإسبات وModern Standby. نشرح سلوك المؤقّت...
-
هل تعمل تطبيقات الأعمال على Windows بإصدار Arm؟ ── واقع محاكاة x64 (Prism) ومكتبات DLL وCOM الأصليّة
نجيب المطوّرين ومسؤولي الأنظمة عن سؤال «هل تعمل تطبيقات الأعمال على Windows بإصدار Arm؟». نستعرض آليّة محاكاة x64 (Prism)، والطبقات التي لا تعمل مثل برامج ال...
-
عندما ترث نظاماً بلا شيفرة مصدريّة ولا مواصفات ── الإجراءات العمليّة لتشغيله وصيانته دون توقّف
نُنظِّم الإجراءات العمليّة لبدء تشغيل وصيانة نظام أعمال بلا شيفرة مصدريّة ولا مواصفات. نشرح صون البيئة العاملة والنسخ الاحتياطيّ، وجرد الملفّات التنفيذيّة وق...
-
مطبّات محرك الشبكة ومسار UNC ── الممارسة العمليّة للتعامل مع خادم الملفّات (المجلّد المشترك) في تطبيقات الأعمال
نرتّب الأعطال الشائعة عند إخراج البيانات إلى مجلّد مشترك أو مراقبته من تطبيق أعمال. نشرح سبب عدم ظهور حرف القرص (Z:) من الخدمة، والصلاحيّات المطلوبة لكلّ حسا...
-
أيقونات علبة النظام والإشعارات المنبثقة في تطبيقات Windows — مزالق NotifyIcon وكيفية اختيار AppNotification المناسب
دليل عملي لإبقاء تطبيق Windows الخاص بالأعمال مقيمًا في علبة النظام (منطقة الإشعارات) وإخطار المستخدم عبر الإشعارات المنبثقة (Toast). يتناول الاستخدام الصحيح...
-
إلى متى ستستمرّ تطبيقات VB6 في العمل ── وضع دعم بيئة التشغيل والمسار العمليّ للترحيل إلى .NET
إلى متى تستمرّ تطبيقات VB6 في العمل؟ يُنظّم هذا المقال التناقض بين سياسة دعم بيئة تشغيل VB6 (المدعومة حتّى على Windows 11) وحقيقة انتهاء دعم بيئة التطوير (ID...
-
معالجة التقويم الياباني والعطلات الرسمية وتاريخ الإغلاق في تطبيقات الأعمال — تصميم مقاوم لتغيّر العصر، وJapaneseCalendar، وحساب أيام العمل في الممارسة العملية
عرض «ريوا 8» في تقرير رسمي، وحساب أيام العمل باستثناء العطلات الرسمية، والدفع في آخر يوم عمل من الشهر التالي لإغلاق يقع في اليوم العشرين — تحمل معالجة التوار...
-
دليل عملي لأداة Process Monitor (ProcMon) — تحديد سبب «عدم قراءة الإعدادات» و«ACCESS DENIED» خلال 10 دقائق
«عدّلت ملف الإعدادات لكن التغيير لا ينعكس» أو «كان يعمل حتى الأمس لكنه لا يبدأ اليوم» — قبل التدخل في الكود المصدري، يمكن لأداة Process Monitor (ProcMon) تحد...
-
لا تُحِط HttpClient بـ using ── الممارسة العمليّة للاتّصال عبر HTTP في تطبيقات C# للأعمال (أنماط الإنشاء، وضبط المهلة، وإعادة المحاولة)
إنشاء HttpClient داخل using في كلّ مرّة يؤدّي إلى استنزاف المقابس (sockets)، وجعله static يجعله لا يتابع تغيّر DNS ── نشرح آليّة هاتين المشكلتين الكبيرتين، و...
-
تحديد سبب «البطء» باستخدام PerfView وdotnet-trace ── مدخل عمليّ لتحقيق أداء .NET
عندما يصبح تطبيق الأعمال «بطيئاً» أو «يستهلك المعالج بالكامل»، ما الأداة التي تستخدمها وما الذي تنظر إليه؟ ننظِّم توزيع الأدوار بين PerfView وdotnet-trace، و...
-
ليس appsettings.json وحده ── الممارسة العمليّة لإدارة الإعدادات في تطبيقات Windows للأعمال (الإعدادات حسب البيئة، المعلومات السرّيّة، وجهة الكتابة)
نُنظّم هنا إدارة الإعدادات لتطبيقات Windows للأعمال. نشرح تدرّج appsettings.json، والتمييز بين IOptions/IOptionsMonitor، والإعدادات حسب البيئة، وأماكن حفظ ال...
-
الطباعة وإخراج PDF في تطبيقات أعمال Windows ── كيفيّة الاختيار بين System.Drawing.Printing وWPF ومكتبات التقارير
نرتّب عبر جدول قرار حسب المتطلّبات طباعة WinForms باستخدام PrintDocument، وطباعة FlowDocument/FixedDocument في WPF، وخيارات إخراج PDF. ونشرح حتّى التحكّم بفو...
-
فهم نموذج OSI حقًا — تشريح طلب HTTP واحد إلى طبقاته السبع
نفهم نموذج OSI من خلال التجربة الفعلية بدلًا من الحفظ. نقوم بتجميع وتشريح إطار Ethernet الذي يحمل طلب HTTP GET واحدًا باستخدام C#، ونتحقق عبر تفريغ سداسي عشر...
-
كيف تفهم عزل الجلسات في Windows — Session 0 وRDP وتشغيل عدة مستخدمين في وقت واحد
يوضح هذا المقال مفهوم «الجلسة» (session) في Windows، وهو موضوع يسبب ارتباكًا مستمرًا لمطوري تطبيقات Windows. يتناول المقال سبب وجود عزل Session 0 (ولماذا لا ...
-
إطالة عمر تطبيقات VB6 / Access الخاصّة بالأعمال وترحيلها ── جدول قرار الإبقاء والتغليف والاستبدال
كيف نقرِّر الإبقاء على تطبيقات VB6 وAccess الخاصّة بالأعمال، أو إطالة عمرها، أو استبدالها؟ نستعرض عبر جدول قرار وضع بيئة التشغيل الحاليّ، ومشكلة 32bit/64bit ...
-
منع التشغيل المتعدّد لتطبيقات Windows ── Mutex المسمّى وتفعيل النافذة عند التشغيل المزدوج
نرتّب هنا طريقة تنفيذ منع التشغيل المتعدّد لتطبيقات Windows للأعمال باستخدام Mutex مسمّى. نشرح الفرق بين Global\ وLocal\ ومطبّاته في بيئات RDP، وAbandonedMut...
-
استدعاء Win32 API بأمان من C# ── دليل P/Invoke العمليّ (DllImport / LibraryImport / CsWin32)
نُنظِّم النقاط العمليّة لاستدعاء Win32 API من C# عبر P/Invoke. الفرق بين DllImport وLibraryImport، والتوليد التلقائيّ عبر CsWin32، ومطبّات ترحيل السلاسل النص...
-
دمج مصادقة Entra ID في تطبيقات WinForms/WPF ── التشكيل العمليّ لـ MSAL.NET ووسيط WAM
نُنظّم خطوات دمج مصادقة Entra ID في تطبيقات WinForms/WPF لسطح المكتب. نشرح مفهوم العميل العامّ، وتسجيل التطبيق، وAcquireTokenSilent في MSAL.NET، ووسيط WAM، و...
-
التاريخ والوقت والمناطق الزمنية في تطبيقات الأعمال ── من فخاخ DateTime إلى مبدأ التخزين بتوقيت UTC وتصميم الاختبارات
ينزاح الوقت 9 ساعات بعد نقل الخادم ── نرتّب أسباب أعطال التاريخ والوقت انطلاقًا من خاصيّة Kind في DateTime والتحويل الضمنيّ. نشرح التمييز بين استخدام DateTim...
-
التعامل مع الدقّة العالية (DPI) في WPF ── أسباب الضبابيّة والتلطّخ رغم أنّه «يُفترَض أن يكون محصّناً ضدّ DPI» وطرق العلاج
WPF مصمَّم بحيث يعي System DPI، لكن نقل النافذة إلى شاشة بدقّة DPI مختلفة يجعل الشاشة كلّها تتلطّخ، وتصبح الصور النقطيّة ضبابيّة. نُنظّم تشخيص السبب، ودعم Pe...
-
مشكلة بقاء EXCEL.EXE عند التعامل مع Excel من C# ── أنماط تحرير مراجع COM وقرار الاستبدال
نُنظّم مشكلة بقاء عمليّة EXCEL.EXE عند تشغيل Excel عبر COM من C#، انطلاقاً من آليّة عدّ مراجع COM وRCW. نشرح مطبّ «قاعدة النقطتين»، وأنماط التحرير عبر Releas...
-
دعم الدقّة العالية (High DPI) في WinForms ── أسباب النِّيَة والانكسار على شاشات 4K ومعالجتها الواقعيّة
نرتّب هنا أسباب نِيَة وانكسار تطبيقات WinForms على شاشات 4K، انطلاقاً من مفهومَي الافتراض الوهميّ لـ DPI (DPI Virtualization) وأوضاع إدراك DPI (System Aware ...
-
استخدام SQLite في تطبيقات C# للأعمال ── وضع WAL، والتحكّم الحصريّ، والوقاية من التلف، والتمييز عن EF Core
نرتّب هنا المعرفة العمليّة اللازمة لدمج SQLite في تطبيقات الأعمال عبر Microsoft.Data.Sqlite. نشرح وضع WAL، وSQLITE_BUSY وتوحيد مسار الكتابة، ومطبّات تخطيط ال...
-
كيفيّة إنشاء خدمات Windows وتشغيلها ── من التمييز عن جدولة المهام إلى تحويل BackgroundService إلى خدمة
هل ينبغي تحويل المعالجة المقيمة إلى خدمة Windows، أم تكفي جدولة المهام؟ نرتّب من منظور عمليّ جدول القرار، وكيفيّة إنشاء الخدمة عبر .NET Worker Service، وحساب...
-
كيف تختار مكان حفظ بيانات تطبيق Windows محليّاً ── جدول قرار بين SQLite وJSON وRegistry وAccess
أين ينبغي حفظ بيانات تطبيق سطح مكتب Windows، وبأيّ صيغة؟ نرتّب الفرق بين AppData وProgramData، ونقاط قوّة وعيوب كلّ من SQLite وملفّات JSON وRegistry وAccess ...
-
لماذا لا تُنفَّذ مهامّ Task Scheduler أو تنتهي بالرمز 0x1 ── تشخيص الأسباب وتصميم تشغيل آمن
نرتّب هنا حساب التشغيل ونوع تسجيل الدخول في Task Scheduler على Windows، والسبب النمطيّ لانتهاء المهمّة بالرمز 0x1، وتفعيل السجلّ (History)، ومنع التشغيل المت...