הדפדפן ככלי אולטמטיבי לפיתוח GUI
-
@pcinfogmach למה לא? זה סך הכל קבצי טקסט בסיומת js
יש 2 דרכים לטעון קבצי JS, באמצעות CDN כלומר לכתובת כתובת של שרת שמחזיק לך את הקובץ, או להתקין באמצעות npm ולהשתמש בbundler שדוחס את הכל לקובץ (או קבצים) ניידים וקלים
הדרך הנורמלית היא דרך NPM -
@dovid כתב בהדפדפן ככלי אולטמטיבי לפיתוח GUI:
כיום נהייתה אפשרות חדשה, להשתמש בפקד WebView2 המטורף של מייקרוסופט. זה בעצם edge (שזה כרום) עם המון מאפיינים אירועים ופונקציות לשליטה מוחלטת עליו. אפשר להגיש שפקד תיקיית HTML סטטית, ולתקשר דרך הJS עם התוכנה המארחת שיכולה להיות WPF עם C#, אני עשיתי את זה וזה ממש עובד נהדר.
אני משתמש באופציה זו הרבה - מה שמעניין לי שאתה מגדיר אותה כאופציה נהדרת בזמן שאצלי זה רק מקל עלי בגלל סיבה אחת שאני מתעסק עם מסמכים על בסיס טקסט (כלומר מאגרים תורניים).
לולא זה אני מרגיש שאני מפסיד מדאי הרבה כשאני עובר לדפדפן - אני מפסיד את הקלות של ה-debugging, את ה-intellisense העוצמתי של C#, את ההתמשקות העוצמתית של C# עם WPF.טוב, כתבת שזה קשה אולי לזה התכוונת.
בכל אופן עדיין נותרו לי כמה שאלות ברמה כללית:
א. האם זה לא מאט את זמן הטעינה - לעבוד ככה?
ב. האם יש לי את הגמישות של ה-layout שאני מכיר ב-wpf?
ג. באיזה IDE אוכל להשתמש כדי לייצר אפליקציות בזרימה שאני מכיר מ-C#. -
@dovid כתב בהדפדפן ככלי אולטמטיבי לפיתוח GUI:
להשתמש בפקד WebView2 המטורף של מייקרוסופט
החיסרון לכאו' שזה לא נתמך במק
-
יש פריימוורקים ייעודיים לתוכנה מבוססת HTML CSS JS חוצת פלטפורמות
הותיק והכבד - אלקטרון, כולל בתוכו כרומיום שלם,
או קלים יותר מבוססי WebView כמו Tauri (חסרון מסוים שאם אתה צריך לממש יכולות נייטיב שלא זמינות בAPI של טאורי אתה צריך לכתוב את זה בRust) או Neutralinojs -
@pcinfogmach כתב בהדפדפן ככלי אולטמטיבי לפיתוח GUI:
אני משתמש באופציה זו הרבה - מה שמעניין לי שאתה מגדיר אותה כאופציה נהדרת בזמן שאצלי זה רק מקל עלי בגלל סיבה אחת שאני מתעסק עם מסמכים על בסיס טקסט (כלומר מאגרים תורניים).
אתה משתמש בפקד.
אני מתכוון למשהו אחר לגמרי, פיתוח לWEB נפרד בפני עצמו, כשהאפליקציה היא רק ה"צד האחורי". זה בעצם ללמוד פיתוח לWEB רק עבור הממשק משתמש, ואז לשלב את C# בשביל כל הפעילות האמיתית של האפליקציה (שלעיתים ממש קטנה).לולא זה אני מרגיש שאני מפסיד מדאי הרבה כשאני עובר לדפדפן - אני מפסיד את הקלות של ה-debugging, את ה-intellisense העוצמתי של C#, את ההתמשקות העוצמתית של C# עם WPF.
כיום חוויית הדיבאג של תכנות לדפדפן לעיתים עולה על של C#. גם ההשלמה אוטומטית וההבנה של IDE מעולה אם משתמשים בTypeScript (שזה הנורמה היום בכל הפרימוורקים המובילים).
הקושי שהתכוונתי זה עצם הפיצול. אתה כאילו מפתח שני כלים: צד אחורי וצד קדמי נפרדים שמתקשרים ביניהם כאילו הם שני תוכנות.בכל אופן עדיין נותרו לי כמה שאלות ברמה כללית:
א. האם זה לא מאט את זמן הטעינה - לעבוד ככה?
ב. האם יש לי את הגמישות של ה-layout שאני מכיר ב-wpf?
ג. באיזה IDE אוכל להשתמש כדי לייצר אפליקציות בזרימה שאני מכיר מ-C#.אם אתה רוצה לשלב ממשק WEB אתה לא יכול לעשות את זה בלי ללמוד פיתוח לWEB, זה לא יום אחד וזה השקעה, זה עולם שונה מאוד, אבל לדעתי זה משתלם ואף חובה לכל מתכנת בסופו של דבר.
א. תיאורטית אולי, מעשית בכלל לא.
ב. יותר...
ג. VSCODE, לתיקיה נפרדת לגמרי שאחראית על צד הממשק. -
עוד שאלה בנושא הנ"ל:
מה קורה אם אני מפתח תוכנה שאני לא רוצה שהקוד יהיה זמין וקריא ככה בקלות? אם הכל זה קבצי JS ו-html? -
@pcinfogmach אתה יכול להוסיף בבילד שלב ערפול עם https://github.com/javascript-obfuscator/javascript-obfuscator
ישפיע במידה מסוימת על הביצועים, תלוי ברמת הערפול שתבחר -
@dovid כתב בהדפדפן ככלי אולטמטיבי לפיתוח GUI:
אם אתה רוצה לשלב ממשק WEB אתה לא יכול לעשות את זה בלי ללמוד פיתוח לWEB
מה בעצם אני צריך ללמוד כדי ללמוד פיתוח WEB
-
@צדיק-תמים קלוד הצליח לשחזר עבורי קוד מעורפל, אחרי מהפכת ה AI הערפול כבר לא מה שהיה
-
@יוסף-בן-שמעון תלוי ברמת הערפול
-
@pcinfogmach ערפול? זה רק הממשק הגרפי, זה בכל מקרה לא קריא בקלות בכלל (בכל הפרימוורקים המובילים שיש אריזה), וגם C# לא ממש מעורפל...
איך לומדים פיתוח WEB? מה היה קורה לו היית שואל אותי את זה על C# וWPF, או שהיית יודע יותר טוב או שלא היית יודע כלום...
במקרה שלך לא צריך את כל הסטאק, אפשר ממש רק צד לקוח: צריך בעיקרון ללמוד HTML+JS בסיסי, ובבסיסי הזה כדאי להבין טוב מה קורה שמה. כמו כן בJS להבין קצת אסינכרוניות: קלאבק, פרומייס וasync\await, ואז להתחיל ללמוד פרימוורק שאתה בוחר וזהו.
אם אתה רוצה ללמוד טיפה על הרעיון של שרת/לקוח (שאתה תממש אותו בדרך שונה בwebview2 עם post message) אז תוכל להפיק תועלת מהמדריך שלי פה בפורום על פיתוח full stack שנותן קצת רקע לעניין. לצערי חסר שמה כמה יסודות, אבל זה לא נוגע בכלל לענייננו.