שאלות בנושא MasterPage ואחרים

עיקרון

New member
../images/Emo13.gifשאלות בנושא MasterPage ואחרים../images/Emo13.gif

"קצת" שאלות
המון תודה מראש
!| 1. אני משתמש ב MasterPage, מכיוון שבעצם כל מה שמשותף לכל הדפים קבוע, ורק החלק הפנימי (PlaceHolder) משתנה בין דף לדף, אני מחפש אפשרות שבה רק החלק הפנימי יטען בפוסטבק, ולא כל הדף.
האם מישהו ניסה ? אולי בשילוב עם Atlas ? 2. באתר צריכה להיות תמיכה בריבוי שפות, עד היום הייתי עושה זאת ע"י Resource File, ואז בהתאם לשפת הגולש (לפי משתנה Session), הייתי קורא את הערך הנכון. הבעיה היא שזה מגביל את העיצוב של הדף, למשל - יש לי דף ASPX שאמור להפויע בו מלל, לשם כך הכנתי 5 asp:Label, ובזמן ריצה אני שולף את המשפטים לפי השפה המתאימה, ושותל את הערכים.
הבעיה היא כאשר בשפה מסויימת, כדי שהטקסט יכנס, אני צריך 7 Label ולא 5... מה הדרך הנכונה לבנות אתר התומך בריבוי שפות ? 3. קראתי שישור ארוך בנושא העברת מחלקות ל WS, ולא הבנתי משהו בסיסי... אם עד היום הייתי צריך להעביר נתוני Student ל WS, הייתי מעביר לו אותם כשדות בודדים (int Id, string firstName, string lastName), ולא אובייקט מטיפוס Student.
האם אכן אפשר להעביר אובייקט ? מה יעבור בפועל ? פירוק של האובייקט לנתונים בדידים, כמו בדוגמא הראשונה ? 4. מה האורך המקסימלי של Session.SessionId, והאם יש לאוסף התווים משמעות ?
מאוחר יותר, במידה ורשמתי את הנתון ל DB, כיצד ניתן לזהות מי היה היוזר שה Session Id הרשום ב DB היה שייך אליו ? 5. האם לפקד ה Calander ב 2.0 יש אפשרות לחיתוך לפי שנה / חודש ? (כלומר, מעיין DropDownList מעליו, המכיל שנים, ובחירה בשנה מסויימת, מעבירה את התאריכים ב Calander לאותה שנה).
במידה ולא, מישהו מכיר קונטרול כזה (גם בתשלום) 6. אני מעוניין שבלחיצה על כפתור, יופק לגולש קובץ מסויים (נניח קובץ טקסט פשוט), והדפדפן יקפיץ לו את החלונית של Save / Open וכו'. נניח שבצד השרת אני רץ על הנתונים, ומייצר מבנה נתונים,
לאן בדיוק אני אמור לשמור אותם ? (תיקייה על השרת ?), וכיצד הגולש יקבל את חלונית השמירה ? 7. אפשר לקבוע דף 404 ב IIS לאפליקציה ספציפית, וגם ב web.config זה לאפליקציה ספציפית,
מה ההבדל ? 8. יש לי DLL של חברה חיצונית, המבצע פונקציונליות מסויימת, וכדי שהוא יעבוד, אני צריך להוסיף שורת verb ל web.config, מה שמוזר לי הוא שפרט ל DLL (שעובד), לא סיפקו לי דף abc.aspx,
האם יתכן שהוא מקומפל לתוך ה DLL ? 9. יצרתי Master Page שיש בתוכו ASP:Label שמשמש ככתרת דינאמית לעמוד, הערך שלו נחשף החוצה דרך Property, כך שכל עמוד שמשוייך ל Master Page הזה, קובע את ערך הכותרת. הבעיה שכדי לקבוע את הערך, אז ב Page Load של דף כלשהו, אני צריך לקחת את ה Instance של ה Master, לבצע Cast לסוג ה Master שלי, ואז לעדכן את ה Property. האם יש דרך לעדכן את ה Property דרך מאפיין ב Page Directive שבראש כל דף ?
הבנתי שבשלב ה PreRender אבצע את ההמרה של ה-MasterPage ואקבע בו את הכותרת לפי הערך של המאפיין,
אבל איך בדיוק ? 10.
 

Justin Angel

New member
קה פרובלמה מואי צ'יקיטה?

1. מה שאתה מבקש למעשה זה להכניס את ה-contentPlaceHolder לתוך תגית <iframe>. כל הקונספט עצמו מיושן. אלא אם כן קיים צורך אמיתי וסציפי לעבוד בצורה שבו רק התוכן עצמו מתרפרש - אל תעבוד ככה. אם כן קיים, תוכל להכניס את ה-ContentPlaceHolder לתוך UpdatePanel. על פני השטח זה יעשה מה שאתה רוצה, אבל קונפיגיורציה של דבר כזה תהיה כמעט בלתי-אפשרית לפני שייצא פקד UpdatePanelProxy. 2. אני ממליץ בחום שתקרא את Globalizing and Localizing ASP.NET Web Pages (Visual Studio). אחד מהקונספטים הגדולים בלוקיליזציה היא שמביאים את המסך\דף למצב הסופי שלו מבחינת עיצוב ותוכן בשפה ברירת המחדל, ומשם מקסטמים אותו לכל שפה עם מבנה שונה. כל מה שצריך לעשות זה ליצור את המסך עד הסוף בשפה ברירת המחדל, לשנות את התרבות ולעשות שינוי עיצוב למסך (למשל הוספת LABEL). שחוזרים לשפת הברירת מחדל אפשר לראות שהמסך בשפת ברירת המחדל עדיין אותו דבר. 3. כמו שכתבתי בשרשור שקראת, אכן ניתן להעביר אובייקטים. במסמך ה-WSDL (שהוא חוזה ה-ASMX) ניתן לתאר טיפוסי מידע מיוחדים וכך גם צרכן ה-WS ידע ליצור בצד שלו טיפוסים כאלו שיכילו את המידע. באופציה ב' כמובן זה לחלוק את האסמבלי עם טיפוסי המידע בין השרת לצרכן המערך, אבל כמו שאמרתי אז יש לזה הגבלות ומצבים שמתאימים לשימוש. 4. SessionID זה GUID שמבדיל בין ה-sessinים השונים. בסיקוול שומרים כזה דבר בטיפוס מסוג GUID. 5. לא קיימת אפשרות ברירת מחדל כזו. אם תרצה לשלב בין Calender ל-DropDownList שיאפשר לנווט בין השנים ובין החודשים השונים, אני ממליץ בחום שתבנה את זה כ-User Control או Custom Control. תוסיף לפקד שני DDLים ו-Calender, תמלא ל-DDLים שנים וחודשים, תקשר בין האירועים של שינוי ה-DLLים להשפעה שלהם על ה-Calender וזהו. בעקרון, מדובר במשהו בסדר גודל של דקה עבודה. 6. כמו שהבנת, כדי להגיש קבצים למשתשמ דרך האינטרנט תצטרך לתת לו כתובת שאליה הוא יוכל לפנות. הצורה הפשוטה היא לשמור את הנתונים איפהשהו בתיקייה הזמינה לאינטרנט ולתת למשתמש הפנייה לשם. בין אם הקובץ יוצג בדפדפן או יירד למחשב של הלקוח תלוי בהגדרות דפדפן הלקוח. אם תרצה להכריח את הלקוח להוריד את הקובץ תצטרך לציין ב-Header של ה-Response שמדובר ב-attachment ואת סוג ה-MIME שאתה שולח. למשל הדוגמה הזו:
private void Page_Load(object sender, System.EventArgs e) { Response.ContentType="application/zip"; Response.AppendHeader("Content-Disposition","attachment; filename=myzipfile.zip"); Response.WriteFile(@"c:\inetpub\wwwroot\myzipfile.zip"); Response.Flush(); { </script>​
7. אין הבדל פר-סה. בכל מקרה הנושא יטופל בצורה זהה. ההבדל הוא במעבר בין שרת פיתוח לשרת ריצה. אם תגדיר ברמת ה-IIS תצטרך לדאוג שה-Virtual directory תיווצר עם התוכנה, בזמן שפריסה עם הפניית 404 שנמצאת ב-web.config היא סה"כ XCopy פשוט (העתקת הקובץ config). 8. תצטרך לשאול את החברה. מאוד לא סביר. 9. עניתי על זה כבר. 10. כמו שהיית עושה המרה בכל מצב אחר.
public myBasePage : Page { string _myHeadLine = ""; public string MyHeadlLine { get { return _myHeadLine; } set { _myHeadline = value; } } void Page_PreRender(...) { ExaxctTypeOfMasterPage myMaster = (ExeactTypeOfMasterPage)this.Master; myMaster.myHeadlineLabel.Text = MyHeadLine; } }​
ברור שצריך שכל הדפים ירשו מה-BasePage, וכי ה-Master יחשוף את ה-Label שלו כ-public. עדיף כמובן שרק ה-Label.Text על ה-Master יחשף כ-public property ולא כל ה-Label עצמו.
 

עיקרון

New member
מעולה ../images/Emo45.gif, תודה, מספר תשובות :

1. מה הכוונה "צורך אמיתי" ? הצורך הוא בדיוק אותו צורך שלשמו GMAIL מתנהג כמו אפליקציה חלונאית, כלומר, הצורך הוא שהמשתמש ירגיש נוח יותר באתר, ללא פוסטבקים מיותרים, ובטח לא טעינה של חלקים קבועים.. מה זה UpdatePanel ? על איזו קונפיגורציה מדובר ? ולא הבנתי אם זה עונה על הצורך או לא :-9 2. לא הבנתי איך זה בדיוק עוזר לי... דוגמא פשוטה, יש לי דף ASPX, שצריך להציג טקסט, בעברית מדובר ב 5 משפטים, ובאנגלית ב 10 משפטים, אתה מציע לכתוב דף תואם לעברית, וכאשר עוברים לשפה האנגלית, להוסיף עוד 5 Labels דינאמים ? אם פיתרון נוח יותר ? מה לגבי מצב שבו שבגלל התוספת הדינאמית צריך לעצב את הדף בצורה שונה ? (למשל, כדי שיכנסו 10 משפטים, צריך להוריד חלק אחר..) 3. לחלוק את האסמבלי אתה מתכוון שגם הצרכן וגם היצרן יבצעו ADD REFERENCE ל DLL עם המחלקה שאמורה לעבור כפרמטר ? אם בלתי אפשרי, האם המחלקה תתואר ב WSDL כמחלקה, או שהיא תפורק לרכיביה הפרמיטיבים ? 4. כיצד ניתן לזהות מי היה היוזר שה Session Id הרשום ב DB היה שייך אליו ? 5. חשבתי שיש כזה מוכן
6. מעולה, תודה 7. יש מבין
8. OK 9. OK, איך אני ממש את הדרישה הראשונה, שהיא ולקרוא את ערך הכותרת מהפרופרטי שב Page Directive ? תודה !
 
אתה צריך להבין שאתר אינטרנט זה לא

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

Justin Angel

New member
קה פרובלמה מואי צ'יקיטה?

1. צורך אמיתי זה "משלמים לי" או "אמרו לי", לא "בא לי". מדובר בנושא שעדיין סבוך טכנית וחבל סתם להסתבך. UpdatePanel הוא פקד צד-שרת של Atlas פריימוורק המתלבשת על ASP.Net ומאפשר להעביר נתונים לשרת והחזרה של אלמנטים גרפיים בלי PostBack (אלא עם "PostBack שקט"). 2. כמו שאמרתי, ביחס לתרבות הנבחרה לדף יהיה עיצוב שונה עד רמת כמות ומיקום הפקדים. כלומר, בתרבות העברית יהיו 5 תוויות למשל ותרבות הערבית יהיו 10. אני ממליץ בחום שתצפה ב-WebCastים על גלובליזציה ולוקליזציה, מדובר על נושא מאוד גרפי שקשה להסביר בעל-פה. 3. אני ממליץ שתקרא את הפוסט שכתבתי לפני יומיים בנושא. הודעה ישנה שלי על העברת טיפוסי נתונים לעוד מידע בנושא - פשוט תנסה. זה משחק של 5 דקות. 4. לזהות משתמש בעזרת SessionID ביחס למה? לרשימת משתמשים? איפה בכלל אתה כותב SessionID? ב-Sql State Server? 9. כמו שאמרתי בבירור - לא ניתן להוסיף פרמטרים ל-Page Directive. ברמת הדף תוכל לקבוע את ה-Property וכל המשתמע מכך (עיצוב גרפי וכאלו).
 

עיקרון

New member
../images/Emo26.gif תגובה :

1. ברור שמשלמים, נראה לך שאני עושה את זה רק כי בא לי ?
אם אני מבין נכון, אני יכול לשלב Master Page ו UpdatePanel של אטלס, כדי לקבל את התוצא ההרצויה - האם הטכנולוגיה מספיק יציבה ואמינה ? 2. אז מה חסכת פה ? כבר היה קל יותר פשוט ליצור דף אחד לעברית ודף אחר לערבית, יקח פחות זמן מאשר ליצור דינאמית עוד 5 פקדים ולשנות את העיצוב.. יש לך אולי לינק ל WebCast של הגלובליזציה ? 4. גולש לוחץ על כפתור, הלחיצה מכניסה רשומה ל DB, שאחד העמודות שלה הוא עמודת nvarchat, המכילה את ה Session Id של הגולש שלחת על הכפתור. השאלה היא מה אני יכול לעשות את הנתון הזה השמור לי ב DB ? אני אוכל לדעת מאוחר יותר מי היה הגולש שלחץ על הכפתור ?
 

עיקרון

New member
באג ב VS.NET 2005 ? בעיה בהתקנה ?

File -> New Web Site ראו את התמונה המצורפת... מדוע ? כיצד מסדרים ? VS.NET 2005 Professional edition 8.0.50727.42
 

nadav1974

New member
שאלה תהיינה הצרות שלך

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

עיקרון

New member
../images/Emo41.gif 2003 & 2005

אני מפרמט ומתקין XP PRO מחדש,, במידהו אתקין רק VS.NET 2005 עם FW 2.0, האם תהיה לי אפשרות לפתוח ולעבוד גם על פרוייקטים ישנים יותר, שפותחו ב VS.NET 2003 עם FW 1.0, או שאני אהיה חייב להתקין גם את VS 2003 ?
 

idv

New member
מההמרות שאני עשיתי כן אבל זה לא

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