
IImagesManager עם שתי פונקציות: GetImagesNames, שמחזירה מערך מחרוזות, ו-GetImage(string), שמחזירה מערך בתים.ServiceContract לממשק ו-OperationContract לכל פונקציה.ImagesManager קוראת את תיקיית Images בעזרת Application.StartupPath (נדרשת הפניה ל-System.Windows.Forms). מסננים רק את שמות הקבצים, בלי הנתיב המלא.הטקסט המלא של הדקות הראשונות בהרצאה «Performance - MTOM» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אנחנו מגיעים לנושא הפרפורמנס, ביצועים. ומה שאנחנו הולכים לראות זה איך נכון להעביר תמונות ווידאו. אז מה שאנחנו הולכים לעשות זה קודם כל לבנות סרוויס חדש.
עזבנו את הכלכלתור לפחות לדוגמה הזאת, כי הוא פשוט לא קשור להעברת תמונות ווידאו. ואנחנו הולכים לבנות סרוויס חדש, קודם כל שמעביר תמונות. אז בואו נצרף dll חדש לסולושן.
Add New Project. נבחר ב-Class Library. אנחנו רואים שהוא נמצא בתוך הסלושן ונקרא לו image manager library. נבצע אוקיי ועכשיו אנחנו רוצים לבנות את האינטרפייס ואת המחלקה שבו.
אז בואו נוסיף new item עבור האינטרפייס ואנחנו רוצים להוסיף אינטרפייס לניהול תמונות. נקרא לו i images manager. אוקיי, הוספנו את האינטרפייס, נגדיר אותו כפאבליק ונגדיר בו שתי פונקציות.
הפונקציה הראשונה הולכת להחזיר לנו נניח רשימה של תמונות שקיימות לנו בשרת בכדי שהלקוח יוכל לבחור אחר כך תמונה.
פונקציה שנייה תביא לו פיזית את התמונה. אז הפונקציה הראשונה מחזירה לנו מערך של סטרינגים get images names בעצם למה אני פותח סוגריים וסוגר הרי זה אינטרפייס והפונקציה השנייה ממש תחזיר לנו את התמונה שנבחר.
אז יש לנו פה מערך בתים getImage שמקבלת String image name. אוקיי, אז אלה בעצם הפונקציות שאנחנו רוצים.
כל מה שנשאר לנו לעשות קודם כל בעבור ה-interface הזה זה לצרף DLL שהוא System Service Model בכדי להגדיר את האטריביוטס המתאימים. יש לנו פה Service Contract ויש לנו Operation Contract.
ניפטר מכל היוזינגים שלא צריך וסיימנו לבנות את האינטרפייס. בואו נלך למחלקה ונממש את האינטרפייס הזה. אז נקרא למחלקה בדיוק כמו השם של האינטרפייס רק בלי ה-i בהתחלה.
Images Manager. ניגש למחלקה ונממש את הממשק i Images Manager. אז הפונקציה שמחזירה לנו את כל השמות של התמונות, מה שאנחנו רוצים לעשות זה Return Directory Get Files ובואו נביא את כל התמונות שנמצאות בתיקייה של הפרויקט.
אז לצורך כך נצרף עוד משהו ל-DLL מבחינת ה-References, וה-Reference שנצרף זה System Windows Forms. בואו נצרף אותו, ואז יהיה לנו את Application.StartupPath.
זה בעצם מביא אותנו בדיוק לתיקייה של הפרויקט שרץ, והפרויקט שרץ הולך להיות ה-Host שלנו. אז ה-DLL הרי הוא מחובר בצורה דינמית לפרויקט הרצה אחר, והפרויקט הרצה אחר זה ה-host, ולכן סטארט-אפ-אף היא התיקייה שממנה הרצה ה-host.
בגלל שאנחנו נמצאים כרגע במצב דיבאג, אנחנו לא רוצים לקחת את התמונות ישירות מהתיקייה של ה-bin-dbug, מפני שהתיקייה בין דיבאג היא תמיד נמחקת.
ולכן מה שאנחנו הולכים לעשות, קודם כל נשים פה איזשהו שטרודל בשביל להתעלם מ-בקסלשים, אנחנו רוצים להעלות למצוא את כל התמונות שלנו אבל למעשה הקוד הזה מחזיר לנו את הנתיב המלא אז בואו בשביל לא להחזיר את הנתיב המלא אלא רק את השמות של התמונות נגדיר סטרינג מערך חד-ממדי של פיילס נכניס את זה לתוכו ועכשיו נגדיר עוד סטרינג
בואו נגדיר את זה כ-full path files ו-can only file names New String בגודל FullPathFile.Length ונרוץ ונשלוף את השמות של התמונות בלבד. אז נרוץ ב-4 על FullPathFile.Length ומה שנעשה זה פשוט ניקח פייל אינפו על כל אחד מהם.
FullPathFiles על i ואז FileNames על i יהיה שווה רק ל-FI.Name לבסוף נחזיר את FileNames. אז בעצם מה שיש לנו כאן זאת פונקציה שאם קוראים לה היא לוקחת את כל הקבצים שנמצאים באיזושהי תקייה האמת שזה לא התקייה שאנחנו צריכים ללכת אנחנו צריכים ללכת לאיזושהי תקיית images אז בואו נגדיר כאן images אנחנו צריכים לגשת