עבור לתוכן
Magic DevHub
yftach_carmi

דוח בדיקה שלי של מעבר לגירסא 10

Recommended Posts

שלום לכולם,
ביצעתי "יצוא יבוא" לגרסא 10  SP1
סיבות לכך :
א. על מנת ללמוד היכן אני עומד ליפול ולהערך לעתיד
ב. לימוד - יותר קל לי לקרוא תוכנית שאני כתבתי ולראות איך היא נראת במג'יק 10 מאשר לנסות לכתוב משהו מהתחלה.


1. הסבת הנתונים :
א. יש לייצא אך ורק מגרסת מג'יק 9.4 SP7 ומעלה
ב. יבוא של 17MB לקח לי 6 דקות.
ג. בזמן הייבוא המערכת לא מציגה שהיא עובדת, היו סבלניים.
ד. ניתן לראות התקדמות יבוא ע"י גישה למחיצה ה SOURCE ולבצע Refresh
ה. בסיום הייבוא נוצר קובץ LOG עליו יש להסתכל.
ו. גודל אפליקציה אחרי יבוא : 65MB. (פי 4), אבל הקובץ הגדול ביותר רק 5 MB והתוכנית הגדולה ביותר 2MB.
ז. יש להמיר גם קובץ צבעים, קובץ פונטים והגדרות INI.

2. בעיות שמצאתי :
א. שדות מסוג MEMO (מזכר) הומרו למחרוזת.
ב. טבלאות MEMORY לא נמחקות בסוף כל שאילתא, יש לבדוק עם מג'יק.
ג. לטענת מג'יק גרסת הפיתוח לא "תיזרק" אם יש לי בג בתוכנית שאני מריץ – אני בקלות יחסית הצלחתי להיזרק גם מהפיתוח... (היה לי ניתוב שגוי למסד נתונים).
ד. נוסחאות ארוכות מידי נחתכות, יש לתקן במג'יק 9 ולהעביר בשנית (הנוסחה היתה 260 תווים ע"פ המונה של WORD ולדעתי הוא קיבל רק 255).

3. נקודות לידיעה בלבד :
א. העיצובים עברו (לפחות אצלי) כמו שצריך.
ב. ישנן מספר פקודות ששינו נוסח אוטומטית, כגון : IOExist => FileExist
ג. בדיקת שגויים טובה יותר במג'יק 10 :
      • כאשר יש ב"אצווה" נוסחה בראשי רשומה (לא הצב אלא תנאי כן/לא), אז זוהי נוסחה שלא עובדת (גם ב 9), אבל ב – 10 הם מאתרים שזה מיותר.
      • כאשר בראשי רשומה יש פתח קבוצה ובתוכו קישור, הקישור ממילא יתבצע ב-9, אבל ב – 10 זוהי נוסחה מיותרת של פתח קבוצה.
ד. עכשיו כבר לא "כופים" בהתקנה הראשונית התקנה של Btrieve (בשונה מהגרסא הראשונית )
ה. ישנם מספר שינויי מקשים, חלקם מאוד לטובה (במקום CTRL + P ו CTRL + C רוכזו שניהם למסך אחד), אבל ביטלו את מקש CTRL+F של המבנים וזה משגע אותי.
ו. כל התוכניות הופכות להיות XML, ואת האמת הקבצים כמעט קריאים וניתנים לתמרון חיצוני.
ז. בוטל סוג מסוים של עבודה עם האינטרנט, ובגלל זה נזרקה לי תוכנית אחת שהשתמשה בתכונה זו.

4. סיכום עד הנה :
סה"כ תוכנה טובה יותר מהמג'יק 9.4 ואני עובר לשלב הבא של בדיקות כתיבה קלות ובדיקות גלישה, מהירות ועומסים.

שתף אשכול


קישור ישיר להודעה
שתף באתרים אחרים
  1. <li>בגרסה 10 סופסוף הורידו את שדות ה memo המיותרים ולכן שדות ה memo הוסבו למחרוזת. <li>במקום CTRL+F יש CTRL+3. ראה תפריט "משימה" לגבי שאר הקיצורים.

שתף אשכול


קישור ישיר להודעה
שתף באתרים אחרים

שלום רב,

1. אומנם הורידו את MEMO, אבל ב DB שיש לי יש לי MEMO, מה עכשיו ?, הסבת קבצים ?, כמו כן ה MEMO לא לוקח כמעט מקום ב DB בעוד שמחרוזת לוקחת הרבה מקום, וזאת בלי לציין מגבל אורך למחרוזת שלא קיימת ב MEMO (יש לי שדות של 8000 - מה אני אמור לעשות ???)

2. לא אמרתי שאין מקש אחר, אמרתי שזה מטריף אותי כי אני רגיל למקש מסויים, זה כמו שיחליפו לך את ה F5 ל - F7, עכשיו תסביר לי ש F7 עושה אותו הדבר אבל תלחץ המון פעמים על F5... סה"כ צריך להתרגל, אבל אני קוטר.

3. לגבי ה MEMORY זה מאוד מדאיג אותי הואיל וכל התוכניות שלי לא מוחקות את הקבצים, יותר גרוע - התוכניות שלי רצות במקביל (אינטרנט) ואם זה קובץ אמיתי הנתונים במקבילות יתערבבו...

בקיצור - סעיפים 1, 3 הינם מהותיים ומהווים מבחינתי חסם למעבר.

בברכת שבוע טוב

שתף אשכול


קישור ישיר להודעה
שתף באתרים אחרים

לגבי ה MEMO יש אפשרות ב PROPERTIES לשנות את סוג ה - ALPHA באמצעות STORED AS

(בעצם נראה לי שרק ב MEMORY TABLE הוא מאפשר לשנות)

בגירסה 10 כאשר אתה מעלה פיתוח אתה גם מעלה מנוע RUN TIME בנפרד אתה יכול לראות את זה ב - TASK MANAGER אז תמיד ההתנהגות היא התנהגות של CONTEXT שתמיד נמצא באויר.

רק שמנוע ה - RUNTIME ירד אז גם יעלמו הנתונים של טבלאות ה - MEMORY.

לגבי מי שעובד עם מספר THREADS במקביל לא תהיה כל בעיה מכיון שבכל THREAD יש לטבלת MEMORY חיים עצמאיים.

שתף אשכול


קישור ישיר להודעה
שתף באתרים אחרים

1.   לנושא ה MEMO יש תחליף ב 10. בתכונות השדה ניתן לבחור תכונה של "שמור כ" String Memo או Magic Memo. תוכנית ההסבה מבצעת את זה אוטומטית עבור טבלאות קיימות. זה נראה לי יותר הגיוני מהמצב הקודם שבו היו שני סוגי מחרוזות שלאחת מהן יש מגבלת אורך.

3.   לגבי ה memory הכוונה שלך לא כל כך ברורה לי. תוכל לפרט יותר?

שתף אשכול


קישור ישיר להודעה
שתף באתרים אחרים

לגבי ה STRING MEMO - תודה, באמת עובד, מעניין אם אני צריך להסב נתונים מהתצורה הנוכחית או שאני יכול להמשיך לתמוך במצב "דואלי" שגם ממג'יק 9 וגם ממג'יק 10 אוכל לגשת לאותו הקובץ.

לגבי ה MEMORY :

במג'יק 9 כאשר הייתי פותח טבלה מסוג מסד נתונים MEMORY היא היתה נמחקת ביציאה מהתוכנית,

כלומר אם מבצעים CTRL+G (חילול) על הטבלא ורושמים נתונים, יוצאים ונכנסים שוב אין נתונים.

ככה MEMORY אמור לעבוד.

אתן דוגמא מהתוכניות :

במקביל 3 סטודנטים מבקשים לראות את גליון הציונים שלהם

לכל סטודנט המערכת מייצרת קובץ MEMORY ומציגה את הנתונים (וכמובן לבסוף נמחק אוטומטית)

הואיל והשאילתות מתבצעות ב THREAD מקביל אף סטודנט לא רואה נתונים של האחר (למרות שהם ניגשים "כאילו" לאותה טבלת ה MEMORY)

וכמובן בסיום של כל שאילתא הטבלא "נעלמת".

עכשיו במג'יק 10 כאשר אני רושם נתונים לתוך הטבלא, יוצא ונכנס שוב הנתונים נשמרים !!!

כלומר :

א. אין מחיקה אוטומטית בסוף כל תוכנית.

ב. במקרה של מספר משתמשים במקביל אז כל משתמש יראה נתונים של משתמשים אחרים.

בקיצור, זה לא MEMORY למרות שהוא אמור להיות ומוגדר אצלי במנהל המסד כ MEMORY

בברכת שבוע טוב

שתף אשכול


קישור ישיר להודעה
שתף באתרים אחרים

אני לא מבין אתה מתכוון שאותם "סטודנטים" נכנסים במקביל (כלומר שלושתם עובדים באותו השנייה) או מבצעים את הפעולות שלהם אחד אחרי השני ?

שתף אשכול


קישור ישיר להודעה
שתף באתרים אחרים

במקביל - זוהי מערכת אינטרנטית עם 5-15 מנועי מג'יק (תלוי בלקוח)

במצב אינטרנט ה RUNTIME אף פעם לא יורד אלא חוזר למצב המתנה וכשיש כמה שאילתות הוא פותח יותר THREADS תחתיו (לפחות ככה זה ב - 9)

אבל שם לכל THREAD טבלאות ה MEMORY הן בנפרד ונמחקות בסוף השאילתא (אני עובד ב"מיזוג")

שתף אשכול


קישור ישיר להודעה
שתף באתרים אחרים

טוב מוזר ביותר
בכל אופן אני מריץ אפליקציית BACKGROUND על גבי ה - BROKER עם טבלאות MEMORY וכל טבלאות ה- MEMORY נמחקות ברגע שה - THREAD מסתיים.
אין לי רעיון מה זה יכול להיות.

שתף אשכול


קישור ישיר להודעה
שתף באתרים אחרים

בדקתי זאת יותר לעומק, התנהגות טבלא MEMORY בעת גלישה באינטרנט

אז ככה :

יצרתי שאילתא שרושמת נתונים 1 עד 10 לקובץ עם DELAY של שניה בין כל רישום ולבסוף מדפיסה הכל, כאשר המפתח לא מכיל כלל חד ערכיות.

אני מפעיל מגי'ק פיתוח, מפעיל ריצה וגולש לדף.

ממתין 10 שניות ומקבל רשימה 1-10 - כמו שצריך.

מריץ שוב - מקבל 1-10 כמו שצריך, כלומר הוא מוחק בסוף.

בפעם השלישית הרצתי, המתנתי רק 5 שניות ועצרתי את המג'יק פיתוח

הפעלתי שוב והרצתי 10 שניות מלאות

נחשו מה קיבלתי : 15 רשומות !!!

כלומר הוא מאכסן טבלא במקום פיסי במשך הריצה ומוחק בסוף רק אם הכל היה תקין...

שתף אשכול


קישור ישיר להודעה
שתף באתרים אחרים

שלום,

קודם כל ברכות על המעבר לגרסה 10. אני משוכנע שככל שתעמיק להכיר את יכולות הגרסה תהנה יותר ויותר מהשימוש בה.

אני משוכנע שאם היית מעלה את השאלות והסוגיות הפתוחות שנתקלת בהן בפני מחלקת התמיכה היית זוכה לתשובות מלאות ומקצועיות.

אך לפנים משורת הדין ארצה להתייחס למספר נקודות שהעלית פה ובעיקר לנושא טבלאות הזיכרון שנראה כי נותר לעת עתה ללא מענה, אז אתחיל בו.

<U>טבלאות הזיכרון
טבלאות הזיכרון יחד עם משתני התוכנית הראשית והמשתנים הגלובליים (אלה הנקבעים על ידי SetParam) מאוגדים ונשמרים תחת ישות המכונה קונטקסט.
עוד בגרסה 9.4, בהרצת יישום לקוח (Foreground) מתקיים קונטקסט אחד ויחיד לאורך כל מהלך הריצה. וזה כולל מעבר בין זמן ריצה לפיתוח (שכן אם תוכנית א' שהרצתי ב F7 הזינה רשומות לטבלה הייתי רוצה להמשיך ולראות נתונים אלה ב F7 על תוכנית ב' – לשם סימולציה ידנית של מהלך אותו יבצע משתמש). כך שטבלאות הזיכרון, כחלק מהקונטקסט נשארו עם תוכנן לאורך כל העבודה בסטודיו.

מתכונת זו לא התאימה לסימולציה של יישומי שרת (Background) שאינם מסוג Browser Client – כמו מיזוג HTML, למשל. שכן בריצה במתכונת שרת כל בקשה המגיעה לשרת מקיימת קונטקסט חדש ובתוקף זה מתקיים עותק חדש לטבלאות הזיכרון – זו ההתנהגות לה אתה רגיל וזו אכן ההתנהגות הנכונה ביישומי שרת.
לשם קיום שתי המתכונות הללו, כבר בגרסה 9.4 קיימת הגדרת סביבה בשם הקליט "ניהול קונטקסט במחולל אינטראקטיבי". הגדרה זו שהתווספה ב 2SP של 9.4 מטרתה לאפשר לך לקבוע את מתכונת ניהול הקונטקסט. האם באופן של "קונטקסט יחיד משותף" המתאים ליישומי לקוח רגילים, או "כמתכונת ריצת שרת רקע". (אגב בהרצה ראשונה של 2SP ניתנה הודעה המתייחסת להגדרה החדשה שכן ברירת המחדל הייתה "כמתכונת ריצת שרת רקע").

בגרסה 10, הפרדת הרשויות – רשות מחוקקת (Studio) ורשות מבצעת (Runtime) :-) מאפשרת, להבדיל מגרסה 9, להריץ את מנוע הריצה כשרת רקע ובכך לקיים סימולציה אמיתית של זמן ריצה בעודנו מפעילים את התוכניות מהסטודיו.
כך שקודם כל ההגדרה של "ניהול קונטקסט במחולל אינטראקטיבי" מגרסה 9.4 כבר אינה רלוונטית. והמתכונת הנכונה לבדוק יישומי רקע היא פשוט להגדיר את "מצב זמן ריצה" ל"רקע" (שורה 9 בלשונית הראשונה במסך ההגדרות).
כעת, כשתריץ תוכניות מהסטודיו, כל תוכנית תופעל במתכונת של בקשה המופנית למנוע רקע ותרוץ בקונטקסט נפרד וטבלאות זיכרון נפרדות.
יש לזכור כי במתכונת זו לא ניתן להריץ תוכניות מקוונות.

אגב, כבר בגרסה 9.4, כמו ב Browser Client אפשר להריץ מספר בקשות נפרדות לשרת רקע שירוצו תחת אותו הקונטקסט וכך לשתף טבלאות זיכרון, משתני תוכנית ראשית ומשתנים גלובליים. לכך יש דוגמה באחד מקובצי הדוגמאות המלווים את גרסת 9.4.

<U>תעופת הסטודיו
יתרון להפרדת הרשויות כפי שתיארתי קודם אכן מגן על סביבת הפיתוח מ"להיזרק" כאשר מנוע הריצה "נזרק" מסיבה זו או אחרת. בלי קשר ליתרון זה של גרסה 10, עדיין יכולות להיות תקלות בסטודיו שכמובן יש לדווח עליהן למחלקת התמיכה וכך נוכל לדאוג לתיקון בעיות אלה.

<U>גודל הפרויקט
אכן גודל קבצי המקור של הפרויקט בגרסה 10 גדולים יותר. זאת בעיקר לשם יצירת קבצי מקור קריאים יותר, כפי שהעדת על כך בעצמך, המאפשרים מניפולציה חיצונית קלה יותר (ראה נושא של תשתית הכלים של eDeveloper).
יש לזכור שני דברים בהקשר הזה:
1) להבדל הגדלים האלה אין השפעה על מהירות קריאתם על ידי המנועים.
2) קובץ ההטמעה (ECF) הוא באופן משמעותי הרבה יותר קטן מקבצי המקור בזמן פיתוח.

<U>קיצורי מקשים
לשם תאימות עם סטנדרטים חלונאיים כדוגמת Ctrl+C להעתקה וכולי, ולשם עדכון כללי של הקיצורים, שונו מרבית מהקיצורים המוכרים. למרות שהמוצר מספק קובץ מיפוי מקשים במתכונת הישנה, אנחנו ממליצים להתרגל למתכונת החדשה.

<U>קבצי צבע וגופן
ברצוני לחדד כי לא נדרש להסב את טבלת הצבעים במעבר לגרסה 10. כחלק מהפרדת הרשויות, הופרדו גם קבצי הצבע, הגופן ומיפוי המקשים לסביבת הריצה וסביבת הפיתוח וניתן להשתמש בקבצי הצבע והגופן של גרסה 9.4.

<U>לסיכום
אני מקווה שהצלחתי להבהיר את הסוגיות הפתוחות בהן נתקלת.
אני שוב מדגיש וממליץ לפנות למחלקת התמיכה של חברת מג'יק לשם עזרה, יעוץ וליווי ולשם דיווח על בעיות.
בחרתי הפעם לענות ישירות לסוגיות אלה שכן נראה כי יש צורך בהבהרה מיידית של הדברים גם לטובת יתר החברים הקשובים לשיח זה.

אני מאחל לך ולכולנו המשך הנאה ופרודוקטיביות מעולה עם המעבר לגרסה 10 והשימוש בה.

בהצלחה,
עופר שפיגל
מנהל אסטרטגיית מוצר – eDeveloper.


 

שתף אשכול


קישור ישיר להודעה
שתף באתרים אחרים

עופר שלום

א. תודה רבה על התשובה המפורטת.

ב. זה לא הגיוני שכל אחד מהלקוחות ישאל שאלות "טריוויאליות" מול מחלקת התמיכה על מוצר חדש במקום לשאול אותן בפורום כך שכולנו נשכיל מהתשובות.

ושוב תודה, למדתי כמה דברים חדשים וחידדת לי דברים שאינם טריוויאליים אפילו למחלקת התמיכה.

בברכת יום נפלא

יפתח כרמי

שתף אשכול


קישור ישיר להודעה
שתף באתרים אחרים

עופר ,
אני חושב שבשם כולם אנו מודים לך התשובה המפורטת ואינטילגנטית
תתפלא אבל עד היום לא הצלחתי לקבל תשובות ברורות ומספקות מן התמיכה ... ובדיוק על הנושאים  הללו .
והתשובה שקיבלתי עד היום : אם ברצוני ליצור "הקשר" נפרד לכל מנוע יש ליצור הגבלה של מקסימום
"נים" אחד לכל מנוע (ב MAGIC.INI) ואז במקום מנוע יחיד עם 3 "נימים" אני מקבל 3 מנועים עם "נים" בודד - כמו ב 8 .
ואם כבר אז שאלה (כולם יכולים לענות ..) :
האם לכל "שיחה" של מגיק תיפתח "שיחה" session id נפרדת מול בסיס הנתונים הפיזי (oracle ) 
השאלה רלוונטים במצב "מקוון" ואצווה  וכן במצב "רקע" 
כי  אני מבין שהיום ב 9 זה לא מבצע כניסה חדשה לבסיס הנתונים - מה שגורם לתקיעות ...

תודה

שתף אשכול


קישור ישיר להודעה
שתף באתרים אחרים

התחבר או הרשם על מנת להגיב.

עליך להיות משתמש רשום על מנת להגיב

צור חשבון

צור חשבון חדש בקהילה בקלי קלות.

רישום חשבון חדש

התחבר

משתמש קיים? התחבר.

התחבר עכשיו

×