מאמרים עם התגית “.NET”
26 מאמרים עם התגית “.NET”, מהחדש לישן.
-
Time Travel Debugging — להקליט ולהריץ אחורה באגים שלא משתחררים באפליקציות ארוכות-ריצה
באג פעם בחודש משאיר ב-crash dump רק את התוצאה. מקליטים ומריצים אחורה את הביצוע עם WinDbg Time Travel Debugging (TTD): TTD.exe, ring buffers ו-TTD.Calls.
-
למה arguments נשברים — כללי command-line arguments ב-Windows
Windows מעביר ל-CreateProcess מחרוזת אחת שהמקבל מפצל. מכסה את כללי CommandLineToArgvW, CRT ו-.NET, ArgumentList, ובניה ב-C++.
-
סיום התמיכה ב-printer drivers של Windows — איך אפליקציות עסקיות מתכוננות להדפסת דוחות ותוויות
Microsoft מפסיקה בהדרגה printer drivers מסוג v3/v4. מה Windows protected print mode מסיר, ואיך עושים inventory ומכינים הדפסת דוחות ותוויות באפליקציות עסקיות.
-
Proxy ארגוני ו-Windows apps — WinINET, WinHTTP ו-.NET
בדפדפן זה עובר, ורק האפליקציה העסקית לא חוצה את ה-proxy הארגוני. בדרך כלל WinINET, WinHTTP, environment variables ו-.NET קוראים הגדרות שונות. המאמר מכסה PAC ...
-
שיטות עבודה מומלצות ל-multithreading בפועל: מהדורת .NET — מה להחליט לפני שמוסיפים threads
כללי תכנון שמונעים מקוד multithreaded ב-.NET/C# לקרוס או להיתקע מדי פעם: להשתמש ב-Task במקום ליצור threads בעצמכם, לצמצם shared mutable state, לשמור משמעת lo...
-
WMI/CIM מ-C# ומ-PowerShell — מדריך מעשי למידע חומרה, ניטור process ושאילתות remote
WMI/CIM הוא הדרך הסטנדרטית לשלוף serial number של מחשב, לנטר דיסק פנוי ולזהות process שהתחיל. המאמר מכסה CIM cmdlets כמו Get-CimInstance, מעבר מ-Get-WmiObjec...
-
מעמקי ה-I/O ב-Windows (פרק 5) — המבנה הפנימי של NTFS: מערכת קבצים מתוך MFT
פרק 5 בסדרה שמסבירה בתרשימים את המבנה הפנימי של NTFS. המאמר עובר על MFT ו-file records, כמה data streams (Zone.Identifier), hard links ושמות 8.3, reparse poi...
-
מעמקי ה-I/O ב-Windows (פרק 4) — Cache Manager: מתי WriteFile באמת מגיע לדיסק
פרק 4 בסדרה שמסבירה בתרשימים את Cache Manager של Windows. המאמר עובר על מטמון שממומש כמיפוי קובץ, read-ahead ו-lazy writer, הבחירה בין FlushFileBuffers ל-FIL...
-
מעמקי ה-I/O של Windows (חלק 3) — I/O completion ports (IOCP) ו-thread pool של .NET: המרתף שמתחת ל-async/await
חלק 3 בסדרה עם איורים על I/O completion ports (IOCP): איחוד ה-queue עם בקרת מספר ה-threads, ערך ה-concurrency, שחרור ה-threads ב-LIFO וההמשכים ב-.NET.
-
עד מתי אפשר להשתמש ב-MSMQ? ── החלטת ה-migration של תור legacy ש"אפילו לא מוגדר כ-deprecated"
MSMQ לא מופיע ברשימת ה-deprecated הרשמית, אבל System.Messaging קיים רק ב-.NET Framework ומעכב את ה-migration ל-.NET. המאמר מסדר את השמועות על "הפסקת השימוש" ...
-
מעמקי ה-I/O של Windows (חלק 2) — I/O סינכרוני ואסינכרוני: מה OVERLAPPED באמת אומר
חלק 2 בסדרה מסביר בדיאגרמות I/O סינכרוני ואסינכרוני (Overlapped I/O) ב-Windows: המשמעות של FILE_FLAG_OVERLAPPED, ארבע דרכי ההודעה על הסיום, התנאים שבהם פעולה...
-
מעמקי ה-I/O של Windows (חלק 1) — כל קריאה וכתיבה הופכת ל-IRP: התמונה הכוללת של מערכת ה-I/O
חלק 1 בסדרה על ה-I/O של Windows מהיסוד: מרחב השמות של ה-Object Manager, ה-driver ואובייקטי ה-device וה-file, מחזור החיים של IRP, ומה CloseHandle באמת עושה.
-
להבדיל ב-.NET בין המתנה ל-GC לבין memory leak — תהליך מעשי של תצפית, השוואה והוכחה של גידול בזיכרון
איך מפרידים באפליקציית .NET בין גידול זיכרון שנובע מהמתנה ל-garbage collection לבין memory leak אמיתי, עם dotnet-counters, dotnet-gcdump ו-dotnet-dump.
-
רשימת בדיקה לניהול בטוח של child processes באפליקציית Windows
בניהול בטוח של child processes באפליקציית Windows, בעלות על עץ התהליכים ותהליך הסיום חשובים יותר מבחירת API להפעלה. המאמר עובר על Job Object, הפצת סיום, stdi...
-
הפצת אפליקציית Windows כקובץ אחד: מה single binary כן מכסה, ומה נשאר תלוי ב-OS
כשרוצים אפליקציית Windows כ-EXE אחד, חשוב להפריד בין אריזה לקובץ אחד לבין ביטול תלות ב-OS. המאמר עובר על .NET, C++, WebView2, WinUI, שירותים ומנהלי התקן.
-
Pitfalls באפליקציות serial communication — reconnect ותכנון log
Pitfalls שכדאי להימנע מהן באפליקציית serial לחיבור ציוד ולשליטה במכשירי מדידה: framing, timeout, RTS/CTS, DTR/RTS, reconnect ותכנון log, מזווית מעשית.
-
צ'קליסט לפני migration מ-.NET Framework ל-.NET
צ'קליסט מעשי לפני migration מ-.NET Framework ל-.NET: סוג פרויקט, טכנולוגיות לא נתמכות, תלויות NuGet, SDK-style, WPF/WinForms, CI/CD ותפעול.
-
Generic Host ב-.NET — התשתית ל-DI, Configuration ולוגים
Generic Host מרכז DI, Configuration, לוגים, IHostedService ו-BackgroundService במקום אחד. המאמר מסביר מתי הוא באמת עוזר באפליקציית console או worker, ומתי הו...
-
מה זה .NET Native AOT — ההבדל מ-JIT ומ-trimming
מהו Native AOT — לפי ההבדל מ-JIT, ReadyToRun, self-contained, single-file, trimming ו-source generator, וסיכום מעשי של המקרים שמתאימים והמקרים הקשים.
-
שלושה timers ב-.NET — PeriodicTimer, Timer ו-DispatcherTimer
ההבדל בין PeriodicTimer, System.Threading.Timer ו-DispatcherTimer, ואיך בוחרים ביניהם לעיבוד async, callback ב-ThreadPool ועדכון UI ב-WPF.
-
איך קוראים ל-DLL של C# Native AOT מ-C/C++
איך מפרסמים ספריית מחלקות C# כ-DLL native עם Native AOT, וקוראים לנקודות כניסה מסוג UnmanagedCallersOnly מ-C/C++ — לפי מקום השימוש, דפוסי מימוש ונקודות זהירות.
-
למה להכניס Generic Host ו-BackgroundService לאפליקציית desktop ב-.NET
בכלי Windows ובאפליקציות long-running, איך להשתמש ב-Generic Host וב-BackgroundService כדי לרכז הפעלה, עיבוד תקופתי, shutdown, לוג, הגדרות ו-DI.
-
ActiveX / OCX: להשאיר, לעטוף או להחליף
כשמוצאים ActiveX או OCX, איך בוחרים בין להשאיר, לעטוף או להחליף — כולל 32bit / 64bit, registration, תלות בדפדפן ותחזוקת vendor.
-
async/await וה-UI thread ב-WPF וב-WinForms
ב-WPF וב-WinForms, לאן חוזר הקוד אחרי await, מתי להשתמש ב-Dispatcher או Invoke, מה ConfigureAwait(false) באמת עושה, ולמה .Result ו-.Wait() יוצרים deadlock.
-
FileSystemWatcher בפועל: miss ו-duplicate
איך משתמשים ב-FileSystemWatcher בזהירות: miss, duplicate, מלכודות בקביעת סיום, rescan, atomic claim ו-idempotency.
-
async/await ב-C#: טבלת החלטה ל-Task.Run ו-ConfigureAwait
איך בוחרים בין I/O wait, חישוב CPU, Task.Run, ConfigureAwait(false) ו-fire-and-forget ב-C# async/await, עם טבלת החלטה.