בלוג
מאמרים מעשיים של KomuraSoft LLC על פיתוח אתרים, SEO, Google Ads, פיתוח עבור Windows, ניצול מערכות קיימות וחקירת תקלות.
חיפוש AI בכל האתר
שאילתות החיפוש נשלחות אל Cloudflare AI Search לצורך הפקת התוצאות. אל תזינו מידע אישי.
-
Checklist מינימלי לאבטחת אפליקציות Windows
Checklist לאפליקציות WPF / WinForms / WinUI / C++ / C#: admin rights, code signing, updates, secrets, HTTPS, validation של קלט, טעינת DLL ולוגים — מה חייבים ...
-
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, וסיכום מעשי של המקרים שמתאימים והמקרים הקשים.
-
COM, ActiveX ו-OCX — ההבדלים והקשר ביניהם
מהו COM, מהו ActiveX ומהו OCX — סקירה מעשית של ההבדלים והקשר ביניהם, הזיקה ל-OLE, איפה זה בשימוש, ואיך כדאי להתייחס לזה היום.
-
שלושה 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.
-
תשתית לבדיקות failure path ב-Windows עם Application Verifier
מה זה Application Verifier, ואיך בונים איתו תשתית לבדיקות failure path ב-Windows בעזרת Handles, Heaps, Low Resource Simulation ו-!htrace.
-
Handle leak באפליקציית מצלמה תעשייתית שקורסת אחרי ריצה ארוכה
איך בוחנים אפליקציית Windows שקורסת פתאום אחרי ריצה ארוכה, דרך מקרה של אפליקציית בקרת מצלמה תעשייתית: איך מוצאים handle leak ואיך מתכננים את הלוגים.
-
TCP Retransmission שעוצר תקשורת עם מצלמה תעשייתית — איך מפרקים את זה
איך מפרקים עצירה של כמה שניות בתקשורת עם מצלמה תעשייתית שנגרמת מ-TCP retransmission: packet loss, RTO, timestamps של RFC1323, ונקודות בדיקה ב-Wireshark.
-
FileSystemWatcher בפועל: miss ו-duplicate
איך משתמשים ב-FileSystemWatcher בזהירות: miss, duplicate, מלכודות בקביעת סיום, rescan, atomic claim ו-idempotency.
-
מבוא ל-Media Foundation: להבין את ה-API דרך COM
מה זה Media Foundation, דרך המונחים הבסיסיים של Windows media API — COM, HRESULT, IMFSourceReader ו-MFT — בסדר שכדאי לתפוס אותם קודם.
-
async/await ב-C#: טבלת החלטה ל-Task.Run ו-ConfigureAwait
איך בוחרים בין I/O wait, חישוב CPU, Task.Run, ConfigureAwait(false) ו-fire-and-forget ב-C# async/await, עם טבלת החלטה.
-
soft real-time ב-Windows רגיל: מדריך מעשי
איך מייצבים periodic processing ו-low-latency ב-Windows רגיל: timer resolution, priority, הגדרות power, ואיך מודדים.
-
Locking ב-file handoff: file lock ו-atomic claim בפועל
איך מתכננים locking ב-file handoff: file lock, atomic claim, temp -> rename ו-idempotency, כדי להימנע מתקלות בתיקייה משותפת.
-
C# מול native DLL: מתי P/Invoke ומתי C++/CLI wrapper
כשקוראים מ-C# ל-native DLL, מתי P/Invoke מספיק ומתי C++/CLI wrapper דק משתלם יותר: ownership, exceptions, טיפוסי C++ ו-callback. סיכום של מבנה עם wrapper דק.
-
HCP chart ו-MakingHCPChartSkill — איך כותבים ומפיקים SVG
HCP chart מתאר עיבוד בהיררכיה. המאמר מסביר את הסימון, את HCP-DSL, ואיך MakingHCPChartSkill ממיר את הטקסט ל-SVG דטרמיניסטי שאפשר לשלב ב-CI ובסקירות.
-
STA ו-MTA ב-COM — threading model, ואיך נמנעים מ-hang
STA/MTA ב-COM הם ה-apartment model שקובע מאיזה thread מותר לקרוא ל-component. המאמר מסביר UI thread, message loop, marshaling, ולמה קריאה מ-thread או apartme...
-
גשר COM: אפליקציית 32-bit קוראת ל-DLL של 64-bit
אפליקציית 32-bit לא יכולה לטעון DLL של 64-bit באותו process. המאמר מסביר איך Out-of-proc COM (EXE server) מגשר על זה, כולל המגבלות של Windows, הרישום ב-Regis...
-
מה זה COM — למה התכנון של Windows COM עדיין מחזיק
COM הוא binary contract בין components ב-Windows. המאמר מסביר את התכנון של interfaces, IUnknown, GUID ו-binary compatibility, ולמה העקרונות האלה עדיין רלוונט...
-
בלוג טכני חדש — Windows, C# ו-COM מהשטח
KomuraSoft LLC פותחת בלוג טכני. נפרסם כאן ידע מהשטח על פיתוח Windows, C# / .NET, COM / ActiveX, תכנון, וכלי פיתוח — בצורה שאפשר לקחת ישר לעבודה.