مقالات بوسم «الاستشارات التقنية»
قائمة بالمقالات الموسومة بـ «الاستشارات التقنية» (33 مقالة)، من الأحدث إلى الأقدم.
-
معالجة الأخطاء وتصميم إعادة المحاولة في Power Automate ── منع «توقّف تدفّق كان يعمل دون أن يلاحظ أحد»
مجموعة أنماط تصميميّة تمنع تدفّقات Power Automate من «التوقّف دون أن يلاحظ أحد». نرتّب، استناداً إلى مواصفات Microsoft Learn، القيم الافتراضيّة لسياسة إعادة ...
-
تصميم تدفّقات التنفيذ الدوريّ في Power Automate ── الممارسة العمليّة لمعالجة نهاية الشهر وتحديد أيّام العمل والتذكيرات
دليل عمليّ لأتمتة المعالجة الدوريّة بمشغِّل Recurrence في Power Automate. نرتّب فخّ كون المنطقة الزمنيّة الافتراضيّة UTC، وصيغ التواريخ، وتحديد أيّام العمل ع...
-
ترحيل ماكرو Excel VBA إلى Power Automate ── النطاق الذي يُستبدل بـ Office Scripts، والنطاق الذي يبقى على VBA
نرتب إمكانية ترحيل ماكرو Excel VBA إلى Power Automate. نشرح النطاق الذي يمكن استبداله بـ Office Scripts، وما لا يُنجز إلا عبر VBA، والقيم الحدية للموصل، ومتط...
-
معالجة الأعطال لا تنتهي بالاستعادة ── قالب postmortem (منع التكرار) للفرق الصغيرة
إن انتهت معالجة العطل عند «أصلحنا واعتذرنا»، تكرر العطل نفسه. نكيّف مبدأ 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 للأعمال في علبة النظام والإشعارات المنبثقة. نشرح الاستخدام الصحيح لـ NotifyIcon، وإعادة التسجيل عند إعادة تشغيل Explorer، وجدول ا...
-
إلى متى ستستمر تطبيقات VB6 في العمل ── وضع دعم بيئة التشغيل والمسار العملي للترحيل إلى .NET
إلى متى تستمر تطبيقات VB6 في العمل؟ نرتّب وضع بيئة التشغيل المشمولة حتى في Windows 11 وانتهاء دعم بيئة التطوير، وجدول القرار بين إعادة الكتابة الكاملة والتحو...
-
معالجة التقويم الياباني والعطلات الرسمية وتاريخ الإغلاق في تطبيقات الأعمال ── تصميم يقاوم تغيّر العصر، وJapaneseCalendar، وحساب أيام العمل
نرتّب معالجة التواريخ الخاصة بتطبيقات الأعمال اليابانية: عرض التقويم الياباني، وحساب أيام العمل باستثناء العطلات، وتاريخ الإغلاق. نشرح التصميم المقاوم لتغيّر...
-
دليل عملي لـ Process Monitor (ProcMon) ── تحديد «الإعدادات لا تُقرأ» وACCESS DENIED خلال 10 دقائق
أعطال مثل «عدّلت الإعدادات لكنها لا تنعكس» تُحدَّد أسبابها عبر Process Monitor (ProcMon) من واقع الوصول إلى الملفات وRegistry. نشرح استخدام الفلتر عملياً وقر...
-
لا تُحِط HttpClient بـ using ── الممارسة العملية لاتصال HTTP في تطبيقات C# للأعمال (أنماط الإنشاء والمهلة وإعادة المحاولة)
إنشاء HttpClient داخل using في كل مرة يستنزف المقابس، وجعله static يمنعه من متابعة تغيّر DNS. نرتّب نمط الإنشاء الصحيح عبر PooledConnectionLifetime وIHttpCli...
-
تحديد سبب «البطء» بـ 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#، ونتابع في Wireshark كيف تتداخل الطبقات السبع. نرتّب أيضاً تقا...
-
كيف نفهم عزل الجلسات في Windows ── Session 0 وRDP وتشغيل عدة مستخدمين معاً
نوضح مفهوم «الجلسة» الذي يربك كثيراً من مطوّري تطبيقات Windows. نشرح عملياً سبب عزل Session 0 الذي يمنع الخدمة من عرض واجهة، وسلوك الجلسات عند الاتصال عبر RD...
-
إطالة عمر تطبيقات VB6 / Access للأعمال وترحيلها ── جدول قرار الإبقاء والتغليف والاستبدال
كيف نقرّر الإبقاء على تطبيقات VB6 وAccess للأعمال، أو إطالة عمرها، أو استبدالها؟ نرتّب عبر جدول قرار وضع بيئة التشغيل، ومشكلة 32bit/64bit في ACE، ومخاطر الاس...
-
منع التشغيل المتعدّد لتطبيقات Windows ── Mutex المسمّى وتفعيل النافذة عند التشغيل المزدوج
نرتّب تنفيذ منع التشغيل المتعدّد لتطبيقات Windows للأعمال بـ Mutex مسمّى. نشرح الفرق بين Global\ وLocal\ ومطبّاته في بيئات RDP، وAbandonedMutexException، وإظ...
-
استدعاء Win32 API بأمان من C# ── دليل P/Invoke العملي (DllImport / LibraryImport / CsWin32)
نرتّب النقاط العملية لاستدعاء Win32 API من C# عبر P/Invoke. الفرق بين DllImport وLibraryImport، والتوليد التلقائي عبر CsWin32، ومطبّات ترحيل السلاسل، وSafeHa...
-
دمج مصادقة Entra ID في تطبيقات WinForms/WPF ── التشكيل العملي لـ MSAL.NET ووسيط WAM
نرتّب خطوات دمج مصادقة Entra ID في تطبيقات WinForms/WPF لسطح المكتب. نشرح مفهوم العميل العامّ، وتسجيل التطبيق، وAcquireTokenSilent في MSAL.NET، ووسيط WAM، وا...
-
التاريخ والوقت والمناطق الزمنية في تطبيقات الأعمال ── من فخاخ DateTime إلى مبدأ التخزين بـ UTC وتصميم الاختبارات
ينزاح الوقت 9 ساعات بعد نقل الخادم. نرتّب أسباب أعطال التاريخ والوقت انطلاقاً من Kind في DateTime والتحويل الضمني. نشرح التمييز مع DateTimeOffset، ومبدأ التخ...
-
دعم DPI العالي في WPF ── أسباب الضبابية والتلطّخ رغم أنه «يفترض أن يكون محصّناً ضد DPI» وطرق العلاج
WPF واعٍ بـ System DPI، لكن نقل النافذة إلى شاشة مختلفة DPI يجعل الشاشة كلّها تتلطّخ، وتصبح الصور النقطية ضبابية. نرتّب تشخيص السبب، ودعم Per-Monitor DPI، وا...
-
مشكلة بقاء EXCEL.EXE عند التعامل مع Excel من C# ── أنماط تحرير مراجع COM وقرار الاستبدال
نرتّب مشكلة بقاء عملية EXCEL.EXE عند تشغيل Excel عبر COM من C#، انطلاقاً من آلية عدّ مراجع COM وRCW. نشرح فخ قاعدة النقطتين، وأنماط التحرير عبر ReleaseComObj...
-
دعم DPI العالي في WinForms ── أسباب الضبابية والانهيار على شاشات 4K والمعالجة الواقعية
نرتّب أسباب ضبابية تطبيقات WinForms وانهيار تخطيطها على شاشات 4K انطلاقاً من DPI virtualization وأوضاع إدراك DPI (System Aware / Per-Monitor V2). نشرح طريقة ...
-
استخدام 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)، ومنع التشغيل المت...