-
שלום לכולם,
אני רוצה להמיר תוכנה שכתובה באקסס (FrontEnd ו Backend) עם VBA, כך שבסיס הנתונים יהיה על שרת אינטרנטי, והFrontEnd יכול להיות תוכנה שולחנית או דף ברשת.
הרצון הראשוני שלי היה להשאר עם Access, הצלחתי להעביר את הטבלאות לSQL-Server, כתבתי כמה StoredProcedures לייעול החישובים, ואפילו ליצור טבלאות מקושרות OBCD בFE, אבל אני לא יודע בדיוק איך מתקדמים מכאן. כיצד מעלים את הנתונים לשרת אינטרנטי, כיצד מתבצע תהליך האימות והאבטחה, האם כדאי בכלל לשנות את כל הקוד והטפסים כך שיעבדו עם טבלאות מקושרות OBCD, או אולי אני צריך לכתוב הכל מחדש ב-C# עם Dapper? אני התחלתי להתנסות בVS ולכתוב טפסים בסיסיים, אבל אני מרגיש כל כך נוח באקסס... האם למישהו יש נסיון בתחום?
הייתי שמח מאד לשמוע כיצד מישהו עשה את התהליך בפועל, או לחילופין ניסה והחליט כי הגישה הנכונה היא לכתוב הכל מהתחלה, בכלים יותר עדכניים.
אני מתנצל אם השאלה כללית מדי. אשמח לכל תגובה -
@dovid יש לי היכרות בסיסית עם HTML, וידע בשפת c++\ c#. אבל אני מוכן ללמוד, אלא שאני מתבלבל מריבוי הטכנולוגיות שקיימות, הייתי רוצה שמישהו יציג איזה שהוא מודל סטנדרטי של שכבות הטכנולוגיות המומלצות ללמידה ולעבודה, אני רוצה לדעת היכן להתחיל, כך שלא אבזבז זמן מיותר בלמידה של דברים לא רלוונטים
-
@OdedDvir התחום של הWEB הוא תחום חזק מאד היום, אם כי הוא דינמי וכל הזמן משתנה ומתעדכן.
הייתי ממליץ לך להתחיל בלימוד JS, ולדעת אותה בצורה טובה (כלומר להבין איך היא עובדת, ולא רק להפעיל אותה..).
אחרי שתדע JS טוב, אז תוכל בקלות להשתמש באנגולר, ריאקט VUE או כל פלטפורמה אחרת לפיתוח לווב.אם אין לך כח, יכול להיות ששווה לך ללמוד את Blazor זה הדבר החדש (יחסית..) מבית מייקרוסופט שמאפשר לך לכתוב קוד C # לדפדפן, כך שאתה צריך רק להכיר HTML וCSS (שזה ממש בקטנה) ואת הקוד אתה כותב בC# וזה מתקמפל לאסמבלי שמורץ בדפדפן.
גילוי נאות: אין לי הכרות עם אקסס (ב"ה..), כך שלא היה לי את הפיתוי להשאר איתו.
דבר נוסף, למיטב זכרוני, @clickone בעבר הביא כאן פתרון להזרמת אקסס לווב.. אולי הוא יוכל לעזור לך. (אם כי, בכל מקרה אני ממליץ לך להתקדם). -
תודה רבה, אני בהחלט רואה שJS זה ממש הכרח בWeb. עדיין לא הבנתי כל כך את המודל של השכבות שבהן אני אמור להשתמש... האם הFE כתוב בJS? כל הטפסים, הפקדים וכו'? מה התפקיד של אנגולר \ ריאקט \ VUE? כיצד מתבצעת התקשורת עם בסיס הנתונים בweb. אני פשוט לא מבין איך הכל מתחבר...
-
@OdedDvir בfronted יש לך את הדפדפן שהוא יודע להציג UI ע"פ האלמנטים שנכתבים בHTML. את העיצוב של האלמנטים כותבים בשפה שנקראת CSS, וכך הוא יודע באיזה צבע/גודל/אנימציות וכו' להציג את האלמנטים הללו.
על גבי זה מתווספת שפת JS שהיא בעצם יכולה להוסיף חיים לכל האלמנטים הסטטיים, אתה יכול להאזין לאירועים בדפדפן ולהגיב להם (למשל אם אדם לחץ על כפתור מסוים - תעשה כך וכך וכן על זה הדרך), אתה יכול לשנות את הדום (האובייקט הבסיסי של כל האלמנטים שמוצגים בדפדפן), להוסיף אלמנטים, להחסיר וכו'. מה שבעצם מאפשר ליצור אפליקציות לכל דבר וענין על גבי הדפדפן (ולא רק דפים סטטיים שמתקבלים מהשרת, כפי שהיה פעם. בד"כ זה נקרא SPA - single page application דהיינו שהלקוח מקבל דף יחיד, וכל השינויים שהוא רואה בדף נעשים בקליינט, והגישה לשרת היא רק למשוך מידע. ולשם כך פותחו ספריות כמו אנגולר /ריאקט/ ויו וכדו'.)
לכן לפיתוח ווב - חיוני להבין את התגיות של ההטמל, להבין איך כותבים את העיצוב בCSS, והעיקר להבין JS, כדי שתוכל לכתוב את הקוד.
לדפדפן יש מנוע שיודע להריץ את הקוד, (בשונה מC# וC++ ) שקודם כל מקמפלים אותם, בדפדפן אתה שולח קובץ סקריפט (קוד שכתוב כמו כל מסמך טקסט אחר, והדפדפן בעצם מקמפל אותו ומריץ אותו תוך כדי תנועה.
כל זה בערך, כדי לתת לך קצת רקע, עכשיו אתה צריך ללכת וללמוד כל דבר בצורה יותר יסודית. -
לגבי תקשורת עם DB, אתה עושה שאילתות לשרת כדי לקבל ממנו נתונים שאתה רוצה להציג למשתמש, ולשלוח לו עדכונים של מידע מהמשתמש.
לצורך זה המציאו את הAJAX, והיום יש לזה מעטפות בכל הספריות הללו שמפשטות מאד את השימוש בזה, אתה יכול לכתוב שורת קוד אחת שבה אתה בעצם מבצע שאילתה לשרת עם עדכון או קבלת מידע.
כמו כן, ישנה אפשרות לשמור מידע לוקלית בדפדפן - אבל זה לא כ"כ מומלץ בד"כ - כי המשתמש יכול למחוק את זה.. (אם כי הרבה פעמים זה נצרך לכל מיני דברים, כמו שמירת קאש וכדו'). -
@OdedDvir אמר בUpScaling לבסיס נתונים של Access:
הייתי שמח מאד לשמוע כיצד מישהו עשה את התהליך בפועל, או לחילופין ניסה והחליט כי הגישה הנכונה היא לכתוב הכל מהתחלה, בכלים יותר עדכניים.
@avr416 אמר בUpScaling לבסיס נתונים של Access:
דבר נוסף, למיטב זכרוני, @clickone בעבר הביא כאן פתרון להזרמת אקסס לווב.. אולי הוא יוכל לעזור לך. (אם כי, בכל מקרה אני ממליץ לך להתקדם).
כל הכלים הקיימים הם רק אופציות לשיתוף האקסס על גבי שרת על מנת לאפשר גישה דרך אינטרנטית בדומה לווב, אין אפשרות המרה אמיתית לווב (אלא אם כן מדובר בתוכנה קטנה ובסיסית שכמדומני יש אפשרות להעביר אותה ל Access Web Apps).
אם הצורך שלך הוא גישה אינטרנטית, אתה יכול להשאר באקסס ולהשתמש עם אחת האופציות המומלצות שנקראת TSPLUS, בדוק על זה עם @clickone, אם אתה רוצה להפוך את זה לאפליקציה וובית אמיתית תצטרך לעשות הכל מחדש. -
קשה לי להגיב כי מעולם לא עמדתי באמת בעצמי בכזו עבודה.
אתה צריך להשתלם בשתי פלטפורמות לפחות, צד שרת וצד לקוח (בין אם זה WEB ובין אם זה שולחני),
ולעבוד קשה לכתוב הרבה קוד, ולוותר על הרבה נוחות שהייתה בטפסי האקסס.
יש את המערכות המוכנות שבהם יש קצת אוטומציה כמו הסרניטי ש@clickone ממליץ עליה, אבל אני לא לגמרי בעד. -
@dovid אישית אני נוטה יותר לכיוון של פיתוח מערכת שולחנית, כי אני מאוד רוצה לעבוד עם C# ודיי חושש מלהתחיל ללמוד JavaScript... החלום שלי הוא לפתח את הFE בC#, את הטפסים בסביבת VisualStudio מבחינתי WinForms נותן לי פונקצונאליות מספקת לממשק שנדרש, להעביר את הנתונים שלי לSQL-Server' ולבצע קריאות לבסיס הנתונים בweb ישירות מהקוד. האם זוהי גישה מיושנת מידי? האם אני אהיה מוכרח ללמוד JS?
-
כאחד שעבר (ועובר כל יום) את השלבים שהזכרת, אני חושב שכדאי שתמקד קודם למה אתה רוצה לעזוב כעת את אקסס.
ווב זה תמיד טוב ללמוד, אבל ייתכן שלצרכים מאד ספציפיים הייתי אומר לך להישאר באקסס ולא לעבור.בעיקר מה שאתה צריך להפנים במעבר מאקסס לכל דבר אחר, ובעיקר מאקססס לווב, שאסור לך לחשוב איך היית מממש את הפרט הזה באקסס, ואז לנסות ללכת עם הראש הזה לווב.
את חייב להכניס לראש לך שבווב הכל מתנהל אחרת ושונה. (לא שזה נורא )לגבי סרניטי זה היה משהו שניסיתי אותו בעבר והיה נראה לי טוב, היום אני לא כותב כמעט על סרניטי, אבל @www כותב ומן הסתם יוכל לשתף אותנו בתובנות שלו.
סרניטי לדעתי דיי קרוב לאקסס מבחינת חשיבה, אבל עדיין תצטרך לחשוב אחרת ממה שהיית רגיל, כי האקסס ניהל בשבילך המון דברים שכעת תצטרך לנהל אחרת.מבחינת הקוד שכתבת שיש בטפסים אצלך, מה הסגנון שלו?
פתח טופס, סגור, סנן וכו'?
או יש גם לוגיקה כבדה יותר?וכמובן, הגעת למקום הנכון, על מה שלא תלך, תגלה שכאן יש מי שיעזור לך בשמחה ( @dovid הענק )
-
אני מנחש שזה בגלל שהממשק הגרפי יותר מתקדם מבחינת יכולות? לפי הבנתי WPF עובד יותר בכיוון של XAML האם אני חוזר לכתיבת תגיות וקוד כדי לעצב את הטופס (זה מזכיר לי נשכחות כשכתבו דפי web בעורך טקסט) או שישנה סביבה נוחה לפיתוח טפסים בWPF בדומה לעורך הטפסים של WinForms הקיים בVisualStudio? ברור לי שאת הפונקצונאליות אני אצטרך לקודד בעצמי.
-
@OdedDvir מה שיש בWinForms יש גם בWPF.
אתה יכול לבחור פקד בסרגל הכלים ולשרטט אותו על גבי המסך.
אלא שכל מה שאתה עושה "מתועד" בצורה "הצהרתית" בוריאציה של XML שקרויה XAML (נהגה כ"זאמל").
כמובן שאפשר ישר לשנות בקוד, ולצפות בשינויים, אבל גם ניתן ע"י גרירה ושחרור ופועולות עכבר לשנות ישירות בתצוגת הטופס.
הסביבה הזו טובה לאין ערוך מWinForms בכל פרמטר אפשרי כמעט. -
@clickone הסיבה שאני רוצה לעבור לweb זה דרישת הלקוחות שלי (שעובדים עם התוכנה מזה כשנתיים) לאפשר גישה לתוכנה גם לאנשי קשר שלהם בחוץ-לארץ. חשוב שהגישה שלהם תהיה קודם כל נוחה, ושלא תצריך לימוד מחדש של כל הממשק.
הקוד של התוכנה ברובו די פשוט, יש מעט חלקים של מניפולציה של פקדים (בעיקר נעילה או הסתרה), יש חלק מסויים של יצירת שאילתות על ידי VBA. יש המרה של תאריך לועזי לעברי אבל בגדול זה לא בשמים.
הלוגיקה הכבדה ביותר היא במודול של קליטת נתונים מקובץ אקסל חיצוני. יש לבצע בדיקות של תקינות הנתונים, ולהריץ כמה שאילתות מורכבות, ליצור טבלאות חדשות בבסיס הנתונים שישמרו עותק של כל הרשומות שנקלטו עם תוצאת היבוא.
ולגבי מה שכתבת על כך שהגעתי למקום הנכון - אני בהחלט מרגיש ככה לאור הנכונות של כולם לעזור ולתרום! -
@OdedDvir אמר בUpScaling לבסיס נתונים של Access:
לאפשר גישה לתוכנה גם לאנשי קשר שלהם בחוץ-לארץ
מה אנשי הקשר צריכים? גישה לכלל הממשק?
אם הם לא צריכים גישה להכל, הייתי בשלב ראשון מעביר את הטבלאות לSQL SERVER ומחבר אותם לאקסס עם ODBC, ובונה בשבילם רק את הטפסים שהם צריכים.@OdedDvir אמר בUpScaling לבסיס נתונים של Access:
יש מעט חלקים של מניפולציה של פקדים (בעיקר נעילה או הסתרה),
קח בחשבון שבווב אתה לא יכול להסתמך על נעילת / הסתרת פקדים, כי כל אחד יכול פשוט ללחוץ קליק ימני, בדוק, ולשחרר / להציג את הפקד.
לגבי שאר הדברים הייתי ממש הולך על C# בלוגיקה,
ועל אנגולר + ASP MVC + JSON בצד הלקוחאולי יהיה לך יותר קל שצד הלקוח יהיה asp web forms אבל זה מלכודת דבש