locked
אפליקצית MVC דינאמית עם אפשרות ל -drag and drop RRS feed

  • שאלה

  • שלום

    אני מעוניין לפתח אפליקציה ב- MVC אשר תתמוך גם ב -drap and drop. הבעיה היא כיצד אני יכול לשמור את השינויים שעשה המשתמש ב -dnd כדי שפעם הבאה שיכנס לאתר יראה אותו לפי הקונפיגורציה שהוא סידר.

    האם מישהו יכול להכווין אותי למדריך כלשהו? אני מכיר את knockoutjs לדוגמה אך איך אני יכול לשלב אותה עם dnd של Jquery-ui?

     

    יום ראשון 17 יוני 2012 11:10

תשובות

  • השם הוא JSON ולא JASON :-)

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

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


    signature

    • סומן כתשובה על-ידי Moran Monovich יום רביעי 20 יוני 2012 11:40
    יום רביעי 20 יוני 2012 11:38
    משיב

כל התגובות

  • לבעיה שהצגת יש שני חלקים:

    1. להוציא את הסדר החדש שהמשתמש קבע באמצעות הגרירה - הדרך הפשוטה ביותר (אך דורשת קוד) היא לשלוף באמצעות jQuery Selectors את האלמנטים אותם המשתמש מיין ולרוץ עליהם באמצעות לולאה פשוטה. לרוב אנו נצמיד לכל אלמנט איזה שהוא Attribute המייצג את ה-Data האמיתי שאותו המשתמש מיין.
    2. להחליט איפה לאכסן את הסדר החדש (צד שרת או צד לקוח) - ניתן לשלוח נתונים לשרת באמצעות jQuery.ajax. ניתן לשמור נתונים בצד דפדפן באמצעות localStorage, sessionStrage, IndexDB או אפילו סתם Cookies

    שוה לך להסתכל בדוגמא הבאה:

    https://skydrive.live.com/#cid=E418C5DAA368F5FE&id=E418C5DAA368F5FE%21420

    בספריה הקרויה Samples_2010 וספציפית בתת ספריה הקרויה "05 Upshot"

    תנסה ליצור משחק חדש ולגרור את השחקנים מעלה ומטה.

    יום שני 18 יוני 2012 12:27
    מנחה דיון
  • תודה רבה, בהחלט נתת לי כמה דברים לחשוב עליהם. הדוגמה בלינק נפתחת רק עם visual studio 2012, האם יש לך דוגמה שמתאימה ל 2010? 

    יום שני 18 יוני 2012 14:27
  • האם הורדת את הספריה Samples_2010? היא אמורה להכיל דוגמאות ב-2010
    יום שני 18 יוני 2012 14:32
    מנחה דיון
  • הפרוייקטים הקיימים שם עברו שידרוג ל2011. האם יש דרך להמיר אותם חזרה?

    מורן מונוביץ

    יום שני 18 יוני 2012 21:13
  • אנא בדוק שוב. אני מצליח לפתוח את הפרוייקט המדובר בעזרת Visual Studio 2010.
    יום שלישי 19 יוני 2012 20:48
    מנחה דיון
  • אני מצליח לטעון רק את הפרוייקט של ה - BL, הפרויקט WhosTheBest לא נטען. אני משתמש ב visual studio 2010 sp1.הודעת שגיאה

    מורן מונוביץ

    יום שלישי 19 יוני 2012 21:04
  • מורן שלום

    1. אם מנסים לפתוח פרוייקט בגרסת VS מתקדמת יותר אכן זה לא עובד אבל התוכן של הפרוייקט אמור להיות זהה אם הוא פותח תחת אותה סביבה של dot.net ו EF למשל.

    ז"א רק קובץ הקונפיגורציה (קובת ה solution) של הפרוייקט (SLN) שונה.

    נסי לפתוח solution ולצרף אליו את הפרוייקט הקיים. בהנחה שהפרוייקט פותח ב dot.net4 ומותקנת לך הגרסה הזו ולא בגרסה 4.5 (שזה ברירת המחדל של VS11 בניגוד של VS 1010 שעובד עם גרסאות קודמות בברירת המחדל) וכן הגרסה של ה EF זהה למה שיש לך אז הכל אמור לעבוד טוב

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

    בסך הכל מה שאתה צריכה זה פונקציית AJAX הכי פשוטה שיש שרצה בכל פעם שהמשתמש עוזב את העכבר בגרירה (שוב אם עבדת עם פונקציה מוכנה של JQUERY אז מדובר על אירוע סיום הגרירה). פונקציה זו אמורה להעביר למתודה מתאימה בקונרטרולר את הנתון של הסדר החדש -> במתודה מבצעים את העדכון של מסד הנתונים -> בסיום המתודה ניתן להחזיר ערך true/false בהתאם הצלחת הפעולה

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

    במקרה כזה הרי מדובר בטופס פשוט ולא צריך לעבוד באגקס אפילו אלא פשוט עם הלחיצה על הכפתור לבצע את העדכון (את הסדר מוצאים ב JS לפי סדר מודל האובייקטים אם את לא רוצה לעבוד עם הפונקציות המוכנות של JQUERY)


    signature

    יום רביעי 20 יוני 2012 10:10
    משיב
  • בסדר גמור, תודה רבה על העזרה. דבר אחד שלא הצלחתי למצוא הוא איך לעדכן את השרת באמצעות בשינויים. אני מעוניין להשתמש ב -knockoutjs וברור לי שאני אצטרך להשתשמש גם ב jason request ובקריאות של ajax. הבנתי מהסירטון שראיתי באתר של knockoutjs שניתן לעשות זאת בצורה פשוטה יחסית, האם תוכל להפנות אותי לדוגמה כלשהי של קריאה וכתיבה ל DB באמצעות jason? 

    תודה מראש 


    מורן מונוביץ

    יום רביעי 20 יוני 2012 11:31
  • השם הוא JSON ולא JASON :-)

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

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


    signature

    • סומן כתשובה על-ידי Moran Monovich יום רביעי 20 יוני 2012 11:40
    יום רביעי 20 יוני 2012 11:38
    משיב