משיב מוביל
בסיס נתונים משותף לכמה אפליקציות

שאלה
-
-יש לי אפליקצית wpf.
-אני משתמש בקבצי XML כבסיס הנתונים שלי(10 קבצים בתוך תיקיה).
-גודל הקבצים ביחד זה 1KB בערך.
-קיבלתי בקשה ל 20 יחידות של האפליקציה, אך הלקוח מעוניין שיהיה בסיס נתונים אחד לכל האפליקציות.
השאלה שלי:
מה הדרך ליישם דבר כזה.
חשבתי ליישם זאת כך:
1. ממשק הניהול יהיה למנהל והוא יעדכן קבצים שנמצאים בשרת.
2. האפליקציות יקחו כל כמה זמן את כל קבצי ה-XML(הנתונים מתעדכנים בממוצע פעם בכמה שעות).
ראשית האם יש דרך יותר טובה?
אם לא:
1.איך ניתן לעדכן קובץ בשרת.
2. איך ניתן להוריד את הקבצים.
תודה רבה
יום שלישי 29 אוקטובר 2013 13:26
תשובות
-
נשמע שמה אתה צריך זה פשוט לעבוד עם שרת מסדי נתונים כמו SQL Server שמותקן על מחשב אחד וכל האפליקציות יכולות לפנות אליו. ככה עובדים עם בסיס נתונים משותף. לפי התיאור שלך אתה יכול לעבוד עם הגרסה החינמית של SQL EXPRESS. תתקין את הגרסה החדשה יותר של 2012 ותהנה גם מעבודה הרבה יותר מהירה ויעילה מאשר עם קבצי XML
* אם אתה לא יודע לעבוד עם שרת מסדי נתונים אז אני אוכל למצוא לך קישור שמסביר את הבסיס. זה מאוד חשוב למפתח להכיר את האפשרות הזו.
עתה אם חושבים על זה יותר לעומק, ואתה צריך לעבוד עם מסד נתונים מרכזי, אז למה אתה בכלל צריך לעבוד עם 20 אפליקציות נפרדות?!? לזה נועדו אפליקציות רשת (אפליקציות WEB). אתה יכול להכין GUI ב WPF שפונה לשירות WCF שיושב על מחשב אחד מרוחק. האפליקציה ב WPF היא הלקוח שפונה אל ה WCF וה WCF מנהל את כל העבודה מול בסיס הנתונים המשותף.
אם אתה צריך שאפליקציה תעבוד גם בניתוק מהמחשב המרכזי (למשל אם האינטרנט נופל) אז נוצרת בעיה של סינכרון מול מסד הנתונים המרכזי, אבל אפשר להכין במקביל למסד הנתונים המשותף מסד נתונים מראה מקומי, כך שאם אם אין קשר למסד הנתונים המרכזי אז קוראים ממנו את הנתונים (כשהקשר חוזר יש בעיה של סינכרון מול מסד הנתונים המרכזי... בעיה שצריך לפתור ... זה לא קשה אבל צריך לחשוב על זה כשמתכננים את האפליקציה)
בהצלחה :-)
[Personal Site] [Blog] [Facebook]
- הוצע כתשובה על-ידי Eran Sharvit יום רביעי 30 אוקטובר 2013 10:41
- נערך על-ידי pituachMVP יום רביעי 30 אוקטובר 2013 12:22 תיקון קטן של שיאות הקלדה כמו אות חסרה במילה
- סומן כתשובה על-ידי Eran Sharvit יום ראשון 03 נובמבר 2013 15:08
יום רביעי 30 אוקטובר 2013 04:10
כל התגובות
-
כמה אי הבנות יש לי:
א. אפליקציה אחת וריבוי עותקים/משתמשים, או שתי אפליקציות שונות?
ב. אם בסיס הנתונים מרובה משתמשים קובץ XML לא בא בחשבון.
ג. למה צריך להוריד קבצים - האפילקצייה יכולות לקרוא מרחוק בדיוק באותו אופן שהיא קוראת במחשב הלוקאלי.
עוד הערה אחרונה: כדי לקבל תשובה שתעזור לך באמת עדיף שתסווג את מהות הנתונים הללו, ועד כמה הם חלק מהאפליקציה. נתונים יכולים להיות גופן מותאם אישית, אבל גם לקוחות ומס' חשבונות. ההבדל מאוד גדול. גם חשוב לדעת אם (כל) האפליקציות רק קוראות את הנתונים או גם כותבות בו.
- נערך על-ידי לומדים יום שלישי 29 אוקטובר 2013 15:09
יום שלישי 29 אוקטובר 2013 15:08 -
נשמע שמה אתה צריך זה פשוט לעבוד עם שרת מסדי נתונים כמו SQL Server שמותקן על מחשב אחד וכל האפליקציות יכולות לפנות אליו. ככה עובדים עם בסיס נתונים משותף. לפי התיאור שלך אתה יכול לעבוד עם הגרסה החינמית של SQL EXPRESS. תתקין את הגרסה החדשה יותר של 2012 ותהנה גם מעבודה הרבה יותר מהירה ויעילה מאשר עם קבצי XML
* אם אתה לא יודע לעבוד עם שרת מסדי נתונים אז אני אוכל למצוא לך קישור שמסביר את הבסיס. זה מאוד חשוב למפתח להכיר את האפשרות הזו.
עתה אם חושבים על זה יותר לעומק, ואתה צריך לעבוד עם מסד נתונים מרכזי, אז למה אתה בכלל צריך לעבוד עם 20 אפליקציות נפרדות?!? לזה נועדו אפליקציות רשת (אפליקציות WEB). אתה יכול להכין GUI ב WPF שפונה לשירות WCF שיושב על מחשב אחד מרוחק. האפליקציה ב WPF היא הלקוח שפונה אל ה WCF וה WCF מנהל את כל העבודה מול בסיס הנתונים המשותף.
אם אתה צריך שאפליקציה תעבוד גם בניתוק מהמחשב המרכזי (למשל אם האינטרנט נופל) אז נוצרת בעיה של סינכרון מול מסד הנתונים המרכזי, אבל אפשר להכין במקביל למסד הנתונים המשותף מסד נתונים מראה מקומי, כך שאם אם אין קשר למסד הנתונים המרכזי אז קוראים ממנו את הנתונים (כשהקשר חוזר יש בעיה של סינכרון מול מסד הנתונים המרכזי... בעיה שצריך לפתור ... זה לא קשה אבל צריך לחשוב על זה כשמתכננים את האפליקציה)
בהצלחה :-)
[Personal Site] [Blog] [Facebook]
- הוצע כתשובה על-ידי Eran Sharvit יום רביעי 30 אוקטובר 2013 10:41
- נערך על-ידי pituachMVP יום רביעי 30 אוקטובר 2013 12:22 תיקון קטן של שיאות הקלדה כמו אות חסרה במילה
- סומן כתשובה על-ידי Eran Sharvit יום ראשון 03 נובמבר 2013 15:08
יום רביעי 30 אוקטובר 2013 04:10