ASP.NET 3.5 סדנת לימוד בשפות C#וVB- קרא בהקדמה על קבצי קוד המקור צבי אלרואי:תרגום שרה עמיהוד:עריכה לשונית ועיצוב שרון רז:עיצוב עטיפה תודה ליצחק עמיהוד ולמאיר קרודו על הייעוץ המקצועי שמות מסחריים הוצאת.שמות המוצרים והשירותים המוזכרים בספר הינם שמות מסחריים רשומים של החברות שלהם עשו כמיטב יכולתן למסור מידע אודות השמות המסחריים המוזכריםWrox - וWiley עמי והוצאות- הוד registered ) שמות מסחריים רשומים. המוצרים והשירותים, בספר זה ולציין את שמות החברות .( המוזכרים בספר צוינו בהתאמהtrademarks הודעה נעשו מאמצים רבים לגרום לכך שהספר יהיה שלם ואמין.ספר זה מיועד לתת מידע אודות מוצרים שונים . אך אין משתמעת מכך כל אחריות שהיא,ככל שניתן אינן אחראיות כלפי יחיד אוWrox - וWiley עמי והוצאות- הוצאת הוד.("as is") "המידע ניתן "כמות שהוא או מהקבצים שבאתר )או, מהמידע שבספר זה, אם ייגרם,ארגון עבור כל אובדן או נזק אשר ייגרם .(קבצי מחשב שעשויים להיות מצורפים לו/דיסקט/מתקליטור Limit of Liability/Disclaimer of Warranty: The publisher and the author make no representations or warranties with respect to the accuracy or completeness of the contents of this work and specifically disclaim all warranties, including without limitation warranties of fitness for a particular purpose. No warranty may be created or extended by sales or promotional materials. The advice and strategies contained herein may not be suitable for every situation. This work is sold with the understanding that the publisher is not engaged in rendering legal, accounting, or other professional services. If professional assistance is required, the services of a competent professional person should be sought. Neither the publisher nor the author shall be liable for damages arising herefrom. The fact that an organization or Website is referred to in this work as a citation and/or a potential source of further information does not mean that the author or the publisher endorses the information the organization or Website may provide or recommendations it may make. Further, readers should be aware that Internet Websites listed in this work may have changed or disappeared between when this work was written and when it is read. ספר זה מיועד לגברים ונשים.לשם שטף הקריאה כתוב ספר זה בלשון זכר בלבד .ות/כאחד ואין בכוונתנו להפלות או לפגוע בציבור המשתמשים ASP.NET 3.5 סדנת לימוד בשפות C#וVB- Imar Spaanjaars ייעוץ מקצועי :מאיר קרודו [email protected] Beginning ASP.NET 3.5: In C# and VB By Imar Spaanjaars Copyright © 2008 by Wiley Publishing, Indianapolis, Indiana. ISBN 978-0-470-18759-3 This Hebrew translation published under license by John Wiley & Sons, Inc. Copyright: All Rights Reserved. No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as permitted under Sections 107 or 108 of the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright Clearance Center, 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 646-8600. Requests to the Publisher for permission should be addressed to the Legal Department, Wiley Publishing, Inc., 10475 Crosspoint Blvd., Indianapolis, IN 46256, (317) 572-3447, fax (317) 5724355, or online at http://www.wiley.com/go/permissions The Wiley Brand trade dress is a trademark of Wiley Publishing, Inc. in the United States and/or other countries. Used by permission: The WROX Brand trade dress is a trademark of Wrox, Inc. in the United States and/or other countries. Used by permission. עמי בע"מ-הוצאת הוד www.hod-ami.co.il © כל הזכויות שמורות [email protected] או לאחסן/ לקלוט ו, לשדר, להקליט, לתרגם, לצלם, לשכפל,או להעתיק/אין לעשות שימוש מסחרי ו או/או אחר – בחלק כלשהו מן המידע ו/ מגנטי ו, אופטי, דיגיטלי,או אמצעי מכני/במאגר מידע בכל דרך ו כל שימוש החורג.או שצורפו לספר זה/או כל תוכן אחר הכלולים ו/או התוכניות ו/או האיורים ו/התמונות ו אלא ברשות מפורשת בכתב,מציטוט קטעים קצרים במסגרת של ביקורת ספרותית אסור בהחלט . הוראות אלו משלימות את הוראות הזכויות באנגלית לעיל.מהמוציא לאור הודפס בישראל 10/2009 מהדורה ראשונה ISBN 978-965-361-400-0 מסת"ב תוכן עניינים מקוצר הקדמה xxi ........................................................................................... פרק ASP.NET 3.5 :1מתחילים 1 .......................................................... פרק :2בניית אתר אינטרנט בסביבת 34 .................................ASP.NET פרק :3עיצוב דפי האינטרנט שלך 66 ..................................................... פרק :4עבודה עם פקדי 107 .................................................. ASP.NET פרק :5תכנות דפי Webב141 .............................................. ASP.NET- פרק :6יצירת אתרי Webבעלי מראה עקבי 203 ...................................... פרק :7ניווט באתר 248 ........................................................................ פרק :8פקדי משתמש 282 .................................................................... פרק :9בדיקת אימות הקלט מהמשתמש 308 ......................................... פרק 340 .............................................................. ASP.NET AJAX :10 פרק :11מבוא לבסיסי נתונים 373 ......................................................... פרק :12הצגה ועדכון של נתונים405 ..................................................... פרק 450 .............................................................................. LINQ :13 פרק :14הצגת נתונים -נושאים מתקדמים 501 ...................................... פרק :15אבטחת אתר אינטרנט בסביבת 545 ....................ASP.NET 3.5 פרק :16התאמה אישית של אתרי אינטרנט 588 ..................................... פרק :17טיפול בחריגים ,ניפוי ומעקב )624 ............(Exception Handling, Debugging, and Tracing פרק :18פריסת אתר אינטרנט )666 ............ (Deploying Your Web Site תוכן עניינים v נספח א' :תשובות לתרגילים 703 ........................................................... נספח ב' :קביעת התצורה של 724 ..................... SQL Server 2005/2008 נספח ג' :תכונות חדשות )744 ....................................................... (SP1 נספח ד'747 ..................................................................... Silverlight : אינדקס 759 ......................................................................................... viסדנת לימוד ASP.NET 3.5 תוכן עניינים הקדמה xxi ........................................................................................... למי מיועד ספר זה xxii ..................................................................................................... במה עוסק הספר xxii ....................................................................................................... מבנה הספר xxvi ............................................................................................................. מה נדרש כדי להשתמש בספרxxvi .................................................................................... מוסכמות xxvi ................................................................................................................. קוד מקור xxviii ............................................................................................................... טעויות דפוס או קוד xxix ................................................................................................... xxx........................................................................................................ p2p.Wrox.com xxx........................................................................................................................ SP1 על המחבר xxxi .............................................................................................................. על העורך המקצועי xxxi ................................................................................................... על מחבר נספח ד'xxxi ..................................................................................................... פרק ASP.NET 3.5 :1מתחילים 1 .......................................................... כלי הפיתוח Visual Web Developerשל מיקרוסופט 2 ......................................................... הורדה של 3 ........................................................................... Visual Web Developer התקנת 3 ...................................................... Visual Web Developer Express Edition כיצד זה פועל 4 .......................................................................................................... יצירת אתר Webהראשון שלך בסביבת 5 ...................................................... ASP.NET 3.5 היכרות עם 9 ............................................................................................. ASP.NET 3.5 הבנת 10 ........................................................................................................ HTML אלמנטים של 10 ......................................................................................... HTML מאפיינים של 12 ......................................................................................... HTML ההבדל בין HTMLלבין 13 ......................................................................... XHTML תמיד סגור את האלמנטים 13 ............................................................................. תמיד השתמש באותיות "קטנות" עבור התגיות ושמות המאפיינים 13 ....................... תמיד הקף את ערך המאפיין בגרשיים 13 ............................................................. קנן את התגיות כהלכה 14 ................................................................................. תמיד הוסף הצהרת DOCTYPEלדף שלך 14 ...................................................... מבט ראשון ב14 .......................................................................... ASP.NET Markup - היכרות עם סביבת הפיתוח )15 ................................................................................. (IDE שטח הפיתוח הראשי 15 ............................................................................................. התפריט הראשי )15 ........................................................................... (Main Menu אזור סרגל הכלים )16 ...................................................................... (Toolbar Area תיבת הכלים )16 .................................................................................... (Toolbox סייר הפתרון )17 ....................................................................... (Solution Explorer תוכן עניינים vii סייר בסיס הנתונים )17 ........................................................... (Database Explorer טבלת המאפיינים )18 ................................................................... (Properties Grid חלון המסמך )18 ....................................................................(Document Window דף הפתיחה )18 ................................................................................. (Start Page חלונות שמכילים מידע 21 ............................................................................................ רשימת השגיאות )22 ............................................................................. (Error List חלון הפלט )22 ............................................................................(Output Window חלון הסימנייה )22 .................................................................. (Bookmark Window החלון 22 ......................................................................................... Find Results התאמה אישית של סביבת הפיתוח )23 ...................................................................... (IDE סידור מחדש של החלונות 23 ....................................................................................... התאמת תיבת הכלים 23 ............................................................................................. התאמת חלון המסמך )26 ............................................................ (Document Window התאמת סרגלי כלים 26 ............................................................................................... עריכת סרגלי כלים קיימים 27 .................................................................................. יצירת סרגלי כלים משלך 27 .................................................................................... התאמת קיצורי דרך למקלדת27 ................................................................................... איפוס ) (resetהשינויים28 ........................................................................................... איפוס פריסת החלונות 28 ....................................................................................... איפוס ארגז הכלים 28 ............................................................................................ איפוס כל ההגדרות 28 ........................................................................................... היישום לדוגמה30 ........................................................................................................... עצות מעשיות לגבי 32 .................................................................. Visual Web Developer סיכום 32 ........................................................................................................................ תרגילים 33 .................................................................................................................... פרק :2בניית אתר אינטרנט בסביבת 34 .................................ASP.NET יצירת אתרים באמצעות 35 ............................................................................. VWD 2008 סוגים שונים של פרויקטים 35 ....................................................................................... 35 .......................................................................................... Web Site Projects 36 ............................................................................... Web Application Projects בחירת תבנית האתר הנכונה 36 ................................................................................... 37 ....................................................................................... ASP.NET Web Site 37 .................................................................................. ASP.NET Web Service 37 ................................................................................................. WCF Service 38 .............................................................................................Empty Web Site יצירה ופתיחה של אתר אינטרנט חדש38 ....................................................................... יצירת אתרים חדשים 38 ......................................................................................... פתיחת אתרי אינטרנט קיימים 40 ............................................................................. עבודה עם קבצים באתר האינטרנט שלך 41 ........................................................................ סוגי הקבצים הרבים של אתר אינטרנט בסביבת 41 ................................... ASP.NET 3.5 קבצי אינטרנט 42 .................................................................................................. קבצי נתונים 44 ..................................................................................................... viiiסדנת לימוד ASP.NET 3.5 הוספת קבצים קיימים 45 ............................................................................................. ארגון האתר שלך 46 ................................................................................................... סוגים מיוחדים של קבצים 48 ........................................................................................ לעבוד עם טפסי אינטרנט )49 ........................................................................ (Web Forms אפשרויות תצוגה שונות בטפסי אינטרנט49 .................................................................... בחירה בין קוד ברקע לבין דפים עם קוד כלול 51 .............................................................. הוספת סימני עריכה לדף 56 ........................................................................................ הוספה ועיצוב טקסט 56 ......................................................................................... הוספת טבלאות וסימני עריכה אחרים 59 ................................................................... קישור בין דפים62 ...................................................................................................... עצות מעשיות לעבודה עם טפסי אינטרנט 64 ....................................................................... סיכום 65 ........................................................................................................................ תרגילים 65 .................................................................................................................... פרק :3עיצוב דפי האינטרנט שלך 66 ..................................................... מדוע אתה צריך 66 ............................................................................................... ?CSS בעיות בעריכה עם 67 ....................................................................................... HTML כיצד פותרת CSSאת בעיות העיצוב68 ......................................................................... מבוא ל69 ............................................................................................................. CSS- שפת 72 ........................................................................................................... CSS גיליון סגנון )73 ....................................................................................... (Style Sheet ) Selectorsבוררים( 73 .......................................................................................... 74 ..................................................................................... Universal selector 74 ............................................................................................Type selector 74 ............................................................................................... ID Selector 75 .......................................................................................... Class Selector הקבצה ושילוב של 75 ............................................................................. Selectors מאפיינים )76 ........................................................................................... (Properties ערכים )77 .................................................................................................... (Values שימוש בהגדרה מקוצרת 78 ......................................................................................... הוספת CSSלדפים שלך 85 ........................................................................................ בחירת האפשרות לקישור גיליונות סגנון 85 ............................................................... עבודה עם CSSב87 .................................................................. Visual Web Developer - יצירת סגנונות חדשים בגיליונות סגנון חיצוני 87 ............................................................... יצירת גיליונות סגנון 93 ................................................................................................ החלת סגנונות 99 ....................................................................................................... ניהול סגנונות 101 ...................................................................................................... עצות מעשיות לעבודה עם 104 .................................................................................. CSS סיכום 105 ...................................................................................................................... תרגילים 106 .................................................................................................................. פרק :4עבודה עם פקדי 107 .................................................. ASP.NET מבוא לפקדי שרת 107 ..................................................................................................... מבט מקרוב על שרתי פקד של 112 .................................................................... ASP.NET תוכן עניינים ix הגדרת פקדים בדפים שלך 112 .................................................................................... מאפיינים משותפים לכל הפקדים 112 ............................................................................ סוגי פקדים 115 .............................................................................................................. פקדים בקטגוריה 115 .................................................................................. Standard פקדים פשוטים 116 ............................................................................................... פקדי רשימה 116 .................................................................................................. פקדי מכולה 121 ................................................................................................... מבט מקרוב על הפקד 122 .......................................................................Panel הפקד 124 ...........................................................................................Wizard פקדים נוספים בקטגוריה 128 ...................................................................Standard LinkButtonו128 ....................................................................... ImageButton- Imageו128 ................................................................................. ImageMap- 128 ................................................................................................ Calendar 128 .............................................................................................. FileUpload Localize ,Literalו128 .................................................................... Substitute- 129 ............................................................................................... AdRotator 129 ............................................................................................ HiddenField 129 ....................................................................................................... XML 129 ...................................................................................................... Table פקדי 129 ....................................................................................................... HTML איך לבחור בין פקדי Standardלבין פקדי 130 ................................................. HTML פקדי נתונים )130 ............................................................................................. (Data פקדי בדיקת תקפות )130 .......................................................................... (Validation פקדי ניווט )130 ....................................................................................... (Navigation פקדי הזדהות -כניסה למערכת )131 .................................................................. (Login הרחבות 131 ..................................................................................................... Ajax מנוע המצב ) (State Engineשל 131 ..................................................................ASP.NET מה זה מצב ) (Stateומדוע הוא חשוב? 132 ................................................................... כיצד פועל מנוע המצב 133 .......................................................................................... לא כל הפקדים סומכים על 137 .................................................................... ViewState הערה לגבי ViewStateוביצועים 137 ............................................................................ עצות מעשיות לגבי עבודה עם פקדים 138 ........................................................................... סיכום 139 ...................................................................................................................... תרגילים 140 .................................................................................................................. פרק :5תכנות דפי Webב141 .............................................. ASP.NET- מבוא לתכנות 142........................................................................................................... סוגי נתונים ומשתנים 142................................................................................................. המרת סוגי נתונים146................................................................................................ שימוש במערכים ) (Arraysואוספים )148.................................................... (Collections הגדרה ועבודה עם מערכים )148................................................................. (Arrays הגדרה ועבודה עם אוספים )151.......................................................... (Collections מבוא לתבניות הקוד 152......................................................................... Generics xסדנת לימוד ASP.NET 3.5 משפטים )153.............................................................................................(Statements אופרטורים )154....................................................................................... (Operators אופרטורי הצבה 154.............................................................................................. אופרטורים אריתמטיים 154.................................................................................... אופרטורי השוואה 156........................................................................................... אופרטורי שרשור 158............................................................................................ אופרטורים לוגיים 159............................................................................................ קבלת החלטות 161.................................................................................................... המבנים If Else ,Ifו162.............................................................................. ElseIf- המבנים 164.................................................................... Switches / Select Case לולאות 169............................................................................................................... הלולאה 169.................................................................................................. For הלולאות 171.......................................................................... For Each / foreach הלולאות Whileו171.................................................................................... Until- ארגון הקוד 173.............................................................................................................. שיטות :פונקציות ושגרות173....................................................................................... התיקייה 176............................................................................................App_Code ארגון קוד בעזרת מרחבי שמות )180....................................................... (namespaces יבוא מרחבי שמות182........................................................................................... כתיבת הערות 182..................................................................................................... הערות כלולות בקוד 183........................................................................................ כתיבת הערות 184........................................................................................ XML יסודות תכנות מוכוון אובייקטים185.................................................................................... מונחי OOחשובים 185............................................................................................... אובייקטים 185..................................................................................................... מחלקות 186........................................................................................................ מאפיינים 187....................................................................................................... יצירת מאפיינים לקריאה-בלבד ולכתיבה-בלבד 189............................................... שיטות190........................................................................................................... פונקציות בנייה )בנאים( 191................................................................................... הורשה 193.......................................................................................................... מגבילי גישה )196.....................................................................(Access Modifiers אירועים 197.............................................................................................................. עצות מעשיות לתכנות נכון 199.......................................................................................... סיכום 200...................................................................................................................... תרגילים 201.................................................................................................................. פרק :6יצירת אתרי Webבעלי מראה עקבי 203 ...................................... עקביות עריכה ועיצוב של דף בעזרת דפים ראשיים203......................................................... יצירת דפים ראשיים 205............................................................................................. יצירת דפי תוכן 208.................................................................................................... מבט מקרוב בדפים ראשיים 211.............................................................................. קינון של דפים ראשיים 212..................................................................................... תוכן עניינים xi אזהרות לגבי דפים ראשיים 212.............................................................................. שימוש בדף בסיס מרכזי 213............................................................................................ מבוא למחזור החיים של דף 214................................................................... ASP.NET יישום של דף הבסיס216............................................................................................. יצירת תבניות דף לשימוש חוזר 221.............................................................................. ערכות נושא 225............................................................................................................. סוגים שונים של ערכות נושא 226................................................................................. בחירה בין Themeלבין 226............................................................StyleSheetTheme החלת ערכות נושא227............................................................................................... הרחבת ערכות נושא 231............................................................................................ החלפת ערכות נושא באופן דינמי233............................................................................ 240..................................................................................................................... Skins יצירת קובץ 242................................................................................................. Skin 243.................................................................................................... Named Skins הערה אחרונה על 244....................................................................................... Skins עצות מעשיות ליצירת דפים עקביים245.............................................................................. סיכום 245...................................................................................................................... תרגילים 247.................................................................................................................. פרק :7ניווט באתר 248 ........................................................................ התמצאות ברחבי האתר 249............................................................................................ מהם URLמוחלט ו URL-יחסי249............................................................................... URLיחסי 249..................................................................................................... URLיחסי מבוסס-שורש 250 ............................................................................ URLיחסי בפקד צד שרת 251........................................................................... URLמוחלט 253.................................................................................................. הבנת דפי ברירת המחדל 254...................................................................................... שימוש בפקדי הניווט 255................................................................................................. ארכיטקטורת פקדי הניווט 255..................................................................................... בחינת הקובץ 256................................................................................. Web.sitemap היבטים חשובים של הקובץ 256......................................................... Web.sitemap שימוש בפקד 258............................................................................................. Menu דברים שיש לשקול כשמשתמשים ב259......................................................... Menu- יצירת גרסה בסיסית של הפקד 260................................................................ Menu עיצוב הפקד 264......................................................................................... Menu שימוש בפקד 268....................................................................................... TreeView שימוש בפקד 272..................................................................................SiteMapPath הכוונה מחדש על ידי תכנות 274........................................................................................ הכוונת הלקוח לדף אחר על ידי תכנות 274..................................................................... הכוונה מחדש מצד השרת 277..................................................................................... עצות מעשיות לניווט 279.................................................................................................. סיכום 280...................................................................................................................... תרגילים 281.................................................................................................................. xiiסדנת לימוד ASP.NET 3.5 פרק :8פקדי משתמש 282 .................................................................... היכרות עם פקדי משתמש 283.......................................................................................... יצירת פקדי משתמש 283............................................................................................ הוספת פקדי משתמש לדף תוכן או לדף ראשי 287.......................................................... רישום פקדי משתמש ברחבי האתר 290........................................................................ אזהרות לגבי פקדי משתמש 291.................................................................................. הוספת לוגיקה לפקדי משתמש293.................................................................................... יצירת סוגי נתונים משלך עבור מאפיינים 293.................................................................. יישום מאפייני 299..................................................................................... ViewState שיקולים לשימוש ב305.............................................................................. ViewState- עצות מעשיות למשתמש בפקדי משתמש306...................................................................... סיכום 306...................................................................................................................... תרגילים 307.................................................................................................................. פרק :9בדיקת אימות הקלט מהמשתמש 308 ......................................... איסוף נתונים מהמשתמש 309.......................................................................................... אימות הקלט של המשתמש המוזן לדפי אינטרנט 310...................................................... פקדי האימות של 310............................................................................ ASP.NET אזהרה בדבר בדיקת אימות בצד-לקוח 311............................................................... שימוש בפקדי אימות 311....................................................................................... פקדי האימות התקניים 314.................................................................................... ההבדל בין המאפיינים Textו315............................................... ErrorMessage- אימות טווח – 315................................................................... RangeValidator אימות של ביטוי – 316.......................................... RegularExpressionValidator אימות השוואה – 316.......................................................... CompareValidator הפקדים CustomValidatorו320............................................ ValidationSummary- עיבוד נתונים בשרת 325.................................................................................................. שליחת דואר אלקטרוני מאתר האינטרנט שלך 326.......................................................... קביעת תצורת האתר לצורך שליחת דואר אלקטרוני 326............................................. יצירת הודעות דואר אלקטרוני 327........................................................................... הבנת הצורך באימות של בקשה 331........................................................................ קריאה מקבצי טקסט 332............................................................................................ עצות מעשיות לאימות נתונים 337...................................................................................... סיכום 338...................................................................................................................... תרגילים 339.................................................................................................................. פרק 340 .............................................................. ASP.NET AJAX :10 מבוא ל341............................................................................................................ Ajax- שימוש ב ASP.NET Ajax -בפרויקטים שלך 341.................................................................. יצירת דפים חופשיים מהבהוב 342................................................................................ הפקד 342...................................................................................... UpdatePanel מבט מקרוב על הפקד 345................................................................ UpdatePanel הפקד 346.................................................................................... ScriptManager מתן משוב למשתמשים 347......................................................................................... תוכן עניינים xiii הפקד 347................................................................................. UpdateProgress שימוש בפקד 352............................................................................................. Timer שימוש בשירותי Webבאתרי אינטרנט מבוססי 357...................................................... Ajax מהם שירותי 357............................................................................................. ?Web יצירת שירותי 359.............................................................................................. Web שימוש בשירותי Webבאתר אינטרנט מבוסס 362................................................... Ajax קביעת תצורת שירות 363.............................................................................. Web קביעת תצורת 363........................................................................ ScriptManager זו רק ההתחלה 370................................................................................................... עצות מעשיות להפעלת 370...................................................................................... Ajax סיכום 371...................................................................................................................... תרגילים 372.................................................................................................................. פרק :11מבוא לבסיסי נתונים 373 ......................................................... מהו בסיס נתונים? 374.................................................................................................... סוגים שונים של בסיסי נתונים טבלאיים 375........................................................................ שימוש ב SQL-לעבודה עם נתוני בסיס נתונים 375............................................................... אחזור וביצוע פעולות על נתונים378.............................................................................. קריאת נתונים 378................................................................................................ בחירת נתונים 378........................................................................................... סינון נתונים379............................................................................................... סידור נתונים 381............................................................................................. צירוף נתונים 385............................................................................................. יצירת נתונים 389.................................................................................................. עדכון נתונים 389.................................................................................................. מחיקת נתונים 389................................................................................................ יצירת טבלאות משלך 393................................................................................................ סוגי נתונים במערכת 393......................................................................... SQL Server הבנת מפתחות ראשיים וזהויות 394.............................................................................. יצירת קשרים בין טבלאות 398..................................................................................... עצות מעשיות לעבודה עם בסיסי נתונים 402....................................................................... סיכום 403...................................................................................................................... תרגילים 404.................................................................................................................. פרק :12הצגה ועדכון של נתונים405 ..................................................... פקדי נתונים )405.................................................................................... (Data Controls פקדים קשורי-נתונים )406........................................................ (Data-Bound Controls פקדי רשימה )406........................................................................... (List Controls פקדי פריט יחיד )407........................................................... (Single Item Controls פקדי דפדוף )408....................................................................... (Paging Controls פקדי מקור נתונים )408........................................................... (Data Source Controls פעולה משותפת של פקדים קשורי-נתונים ופקדי מקור נתונים408........................................... הצגה ועריכה של נתונים על ידי 409............................................................... GridView הכנסת נתונים על ידי 415.........................................................................DetailsView xivסדנת לימוד ASP.NET 3.5 אחסון מחרוזות החיבור ) (Connection Stringsב418................................... web.config- סינון נתונים420......................................................................................................... התאמה אישית של מראה פקדי הנתונים 427...................................................................... קביעת תצורת עמודות או שדות של פקדים קשורי-נתונים 427........................................... עדכון והכנסת נתונים 433................................................................................................. שימוש ב DetailsView-להכנסת נתונים ועדכונם 433....................................................... עצות מעשיות להצגת ועדכון נתונים 448............................................................................. סיכום 448...................................................................................................................... תרגילים 449.................................................................................................................. פרק 450 .............................................................................. LINQ :13 מבוא ל451.......................................................................................................... LINQ- הסוגים השונים של 452..................................................................................... LINQ 452........................................................................................... LINQ to Objects 452............................................................................................... LINQ to XML 452................................................................................................LINQ to SQL הצגת 452................................................................................................. LINQ to SQL מיפוי מודל הנתונים למודל אובייקטים453...................................................................... הצגת תחביר השאילתה458............................................................................................. אופרטורי שאילתה תקניים458..................................................................................... 459.......................................................................................................... Select 459........................................................................................................... From 459......................................................................................................Order By 460......................................................................................................... Where Average ,Max ,Min ,Sumו460................................................................. Count- TakeWhile ,Skip ,Takeו461.............................................................. SkipWhile- Singleו461................................................................................ SinglOrDefault- Last ,FirstOrDefault ,Firstו462.................................................... LastOrDefault- עיצוב נתונים עם סוגים אנונימיים )463............................................ (Anonymous Types שימוש בפקדי שרת עם שאילתות 468....................................................................... LINQ פקדים חדשים שהוצגו ב469................................................................ ASP.NET 3.5 - הפקד 469................................................................................. LinqDataSource הצגת הפקד 475..................................................................................... ListView הפקד 492.......................................................................................... DataPager כמה הערות לגבי ביצועים498...................................................................................... עצות מעשיות לעבודה ב498................................................................................... LINQ- סיכום 499...................................................................................................................... תרגילים 500.................................................................................................................. פרק :14הצגת נתונים -נושאים מתקדמים 501 ...................................... עיצוב הפקדים באמצעות סגנונות502................................................................................. מבוא לסגנונות 503.................................................................................................... שילוב סגנונות ,ערכות נושא ו507....................................................................... Skins- טיפול באירועים 511........................................................................................................ תוכן עניינים xv ביקור חוזר במחזור החיים של דפי ופקדי 512................................................. ASP.NET מחזור החיים של דף ASP.NETואירועים בפקדי נתונים 518....................................... טיפול בשגיאות שקורות בפקדי מקור נתונים525............................................................. מיטמון )530.................................................................................................... (Caching מלכודות נפוצות במיטמון נתונים 531............................................................................. הימנעות משימוש בנתונים שהתיישנו 532................................................................. אל תסמוך על כך שהנתונים יהיו שם 532.................................................................. דרכים שונות להטמנת נתונים ביישומי אינטרנט בסביבת 533............................ ASP.NET מיטמון הפלט )534......................................................................(Output Caching מיטמון עם פקדי מקור נתונים538............................................................................ מיטמון על ידי תכנות 539....................................................................................... עצות מעשיות לגבי נתונים 543.......................................................................................... סיכום 543...................................................................................................................... תרגילים 544.................................................................................................................. פרק :15אבטחת אתר אינטרנט בסביבת 545 ....................ASP.NET 3.5 היכרות עם נושאי האבטחה 546........................................................................................ זהות :מי אתה )546.......................................................................................(identity אימות :איך תוכל להוכיח מי אתה? 546......................................................................... הרשאה :מה אתה מורשה לעשות? )546............................................... (authorizations מבוא לשירותי היישום של 547..................................................................... ASP.NET הצגת פקדי התחברות )548................................................................................... (Login פקדי 554........................................................................................................ Login 554........................................................................................................... Login 556................................................................................................... LoginView 557................................................................................................. LoginStatus 557..................................................................................................LoginName 560....................................................................................... CreateUserWizard 563..................................................................................... PasswordRecovery 564........................................................................................ ChangePassword קביעת התצורה של יישום האינטרנט567....................................................................... מנהל התפקיד )571.................................................................................. (role manager קביעת תצורת מנהל התפקיד 572................................................................................ ניהול משתמשים עם 572................................................................................. WSAT עיצוב יישום אינטרנט כדי שיפעל עם תפקידים 577.......................................................... בדיקת תפקידים על ידי תכנות 582............................................................................... עצות מעשיות בנושא אבטחה 586..................................................................................... סיכום 586...................................................................................................................... תרגילים 587.................................................................................................................. פרק :16התאמה אישית של אתרי אינטרנט 588 ..................................... הבנת היישום 589................................................................................................ Profile עיצוב 590...................................................................................................... Profile יצירת מאפייני Profileפשוטים 590.......................................................................... xviסדנת לימוד ASP.NET 3.5 יצירת קבוצות פרופיל591....................................................................................... שימוש בסוגי נתונים לא-תקניים591......................................................................... שימוש ב597................................................................................................. Profile- דרכים אחרות להתמודדות עם 615......................................................................... Profile זיהוי אנונימי 616........................................................................................................ ניקוי פרופילים אנונימיים ישנים 616............................................................................... הצצה לפרופילים של משתמשים אחרים 618.................................................................. עצות מעשיות בנושא התאמה אישית 622........................................................................... סיכום 622...................................................................................................................... תרגילים 623.................................................................................................................. פרק :17טיפול בחריגים ,ניפוי ומעקב )624 ........... (Exception Handling, Debugging, and Tracing טיפול בחריגים 625......................................................................................................... סוגים שונים של שגיאות 625........................................................................................ שגיאות תחביר 625............................................................................................... שגיאות לוגיות 626................................................................................................ שגיאות זמן ביצוע 627........................................................................................... תפיסת חריגים והטיפול בהם 627................................................................................. טיפול גלובלי בשגיאות ודפי שגיאות מותאמים אישית 635...................................................... יסודות ניפוי השגיאות 641................................................................................................ תמיכת כלים בניפוי שגיאות 645........................................................................................ שוטטות בקוד במהלך הניפוי 645.................................................................................. חלונות ניפוי שגיאות 646............................................................................................. צפייה במשתנים 646............................................................................................. החלון 646............................................................................................ Watch החלון 647............................................................................................. Autos החלון 648............................................................................................Locals חלונות אחרים 648................................................................................................ חלון 648..................................................................................... Breakpoints חלון 648........................................................................................ Call Stack החלון 648..................................................................................... Immediate ניפוי תסריטי צד-לקוח 652................................................................................................ מעקב ) (Tracingאחר דפי האינטרנט של 656..................................................... ASP.NET שימוש ביכולות המעקב הרגילות 657............................................................................ מעקב אחר דפים יחידים 657.................................................................................. מעקב אחר האתר כולו658..................................................................................... הוספת מידע משלך ל660................................................................................. Trace- מעקב וביצועים 663.................................................................................................... הערת אבטחה 663.................................................................................................... עצות מעשיות בנושא ניפוי 663.......................................................................................... סיכום 664...................................................................................................................... תרגילים 665.................................................................................................................. תוכן עניינים xvii פרק :18פריסת אתר אינטרנט )666 ............ (Deploying Your Web Site הכנת האתר לפריסה )667........................................................................... (deployment הימנעות מהגדרות מובנות בתוכנה 667......................................................................... הקובץ 668......................................................................................... web.config תחביר הביטוי )668............................................................................ (expression המחלקה 669....................................................................ConfigurationManager העתקת האתר 674......................................................................................................... יצירת עותק פשוט של האתר 675................................................................................. הפצת האתר )678....................................................................................(publishing הפעלת האתר בשליטת 679........................................................................................ IIS התקנת שרת האינטרנט וקביעת התצורה שלו 679.......................................................... כיצד לוודא ש IIS-מותקן680................................................................................... Windows XPו680.....................................................Windows Server 2003 - 681........................................................................................Windows Vista 681............................................................................ Windows Server 2008 התקנת ASP.NETוקביעת התצורה 683.................................................................. האבטחה ב688................................................................................................... IIS- הגדרות NTFSעבור 689........................................................................ Planet Wrox איתור וטיפול בשגיאות שרת אינטרנט 694.......................................................................... העברת נתונים לשרת מרוחק 695...................................................................................... שימוש באשף הפצת בסיס הנתונים 696............................................................................. יצירת בסיס הנתונים מחדש 698................................................................................... רשימת תיוג לפריסה 699................................................................................................. מה הלאה? 701.............................................................................................................. סיכום 701...................................................................................................................... תרגילים 702.................................................................................................................. נספח א' :תשובות לתרגילים 703 ........................................................... נספח ב' :קביעת התצורה של 724 ..................... SQL Server 2005/2008 קביעת התצורה של 724....................................................................... SQL Server 2005 מינוח ומושגים 725..................................................................................................... אימות 725........................................... (SQL Server Authentication) SQL Server אימות 725............................................................................................ Windows בחירה בין אימות Windowsלבין אימות שרת 726..................................................... שימוש ב726........................................................ SQL Server Management Studio - השגת והתקנת 726.............................. SQL Server Management Studio Express הפעלת חיבורים מרחוק אל שרת 727.........................................................SQL Server צירוף בסיסי נתונים אל 728................................................................. SQL Server חיבור היישום אל 731..................................................................... SQL Server 2005 תרחיש - 1שימוש באימות 731............................................................ SQL Server תרחיש - 2שימוש באימות Windowsכאשר IISובסיס הנתונים באותו מחשב 735......... xviiiסדנת לימוד ASP.NET 3.5 קביעת התצורה של שירותי היישום 738.............................................................................. קביעת התצורה של בסיס הנתונים עבור שירותי היישום 739............................................. דריסת מחרוזת החיבור של 740........................................................... LocalSqlServer דריסת ההגדרות של שירותי היישום 741....................................................................... נספח ג' :תכונות חדשות )744 ....................................................... (SP1 744................................................................................. ASP.NET 3.5 Service Pack 1 היסטוריית 744.................................................................................................. Ajax 745.............................................................................................................. jQuery 745............................................................................................. Entity Framework נתונים דינמיים )746................................................................................ (Dynamic Data שירותי הנתונים של 746.................................................................................. ADO.NET נספח ד'747 ..................................................................... Silverlight : מהו 747...................................................................................................... ?Silverlight ארכיטקטורת 752............................................................................................Silverlight 752.................................................................................................................... XAML סגנונות ותבניות755........................................................................................................ קשירת נתונים 756.......................................................................................................... סיכום 758...................................................................................................................... אינדקס 759 ......................................................................................... תוכן עניינים xix הקדמה כדי לבנות אתר אינטרנט מבוסס בסיס נתונים ,שיהיה יעיל ומושך ,יש צורך בשני דברים :סביבת עבודה יציבה ומהירה שבה ירוצו דפי האינטרנט ,וסביבה עשירה ונרחבת ליצירה ותכנות של דפים אלה .שתי הדרישות מתמלאות עם ASP.NET 3.5ו .Visual Web Developer 2008 -ביחד הן מהוות את הפלטפורמה בה"א הידיעה ליצירת יישומי אינטרנט אינטראקטיביים ודינמיים. ASP.NET 3.5בנויה על גב קודמתה הפופולרית .ASP.NET 2.0סביבת העבודה NET 3.5של מיקרוסופט בכלל ,ו ASP.NET 3.5 -בפרט ,הוסיפו מספר רב של תכונות נחוצות לתערובת, בעודן שומרות על תאימות לאחור עם אתרים שנבנו תוך שימוש בגרסה הישנה יותר. גרסה 2.0של סביבת העבודה NETהכניסה את הרעיון של "פחות קוד" ASP.NET 3.5 ,ממשיכה רעיון זה ומאפשרת להשיג יותר עם עוד פחות קוד .תכונות חדשות כמו LINQשהתווספו לסביבת העבודה ,NETמאפשרות לגשת לבסיס נתונים ללא צורך בכתיבת קוד או עם כתיבה מעטה בלבד. שילוב ASP.NET Ajaxשל מיקרוסופט לתוך סביבת העבודה ,ASP.NETוVisual Web Developer - פירושו שביכולתך ליצור כעת ממשקי אינטרנט מהירי תגובה ואלגנטיים על ידי גרירת כמה פקדים אל הדף והגדרת כמה מאפיינים .הספר נותן מבט מעמיק בשתי טכנולוגיות אלו. תמיכת Visual Web Developerב ,(CSS) Cascading Style Sheets -שפת עיצוב דפי האינטרנט, עברה שיפוץ משמעותי .התמיכה בזמן עיצוב ,שמציגה את הדף כפי שייראה בסופו של דבר בדפדפן ,שופרה במידה ניכרת .בנוסף Visual Web Developer ,מגיעה כעת עם מגוון כלים שהופכים את כתיבת CSSלנעימה וקלה. עם זאת ,התמיכה בגרור-ושחרר ובכלים חזותיים אינה הדבר היחיד שתלמד מספר זה. 3.5ו Visual Web Developer 2008 -מגיעות עם קבוצת כלים מעולה ומקיפה שמטרתה לסייע בתכנות יישומי אינטרנט .טווח כלים זה נע מהתחביר החדש של LINQשמאפשר לתשאל נתונים ובסיסי נתונים מיישומי אינטרנט ,ועד ליכולות הניפוי המשופרות משמעותית שמאפשרות ניפוי יישום מ JavaScript-של צד-לקוח ,לאורך כל הדרך עד לקוד צד-שרת .כל הכלים האלה מצוידים בממשק המשתמש המוכר ובפקודות והפעולות המוכרות. ASP.NET ASP.NET 3.5משתמשת באותו runtimeכמו גרסה .2.0הדבר מבטיח תאימות מעולה לאחור עם הגרסה הישנה ,כלומר ,יישומי ASP.NET 2.0ימשיכו להתבצע בסביבת העבודה החדשה. אבל אל תוטעה על ידי העובדה שה runtime-לא השתנה .למרות שהמבנה הטכני הבסיסי שנדרש לביצוע יישום אינטרנט לא השתנה ,הרי שסביבת העבודה NET 3.5ו ASP.NET-הוסיפו תכונות חדשות רבות ,כפי שתגלה בספר זה. הקדמה xxi קרוב לוודאי שהדבר הטוב ביותר בנוגע ל Visual Web Developer 2008 -הוא מחירה .היא זמינה בחינם .למרות שהגרסאות המסחריות של Visual Studio 2008מגיעות עם ,Visual Web Developer ביכולתך להוריד ולהתקין את Express Editionהחינמית .קרוב לוודאי שהדבר הופך את Visual Web Developer 2008ו ASP.NET 3.5 -לטכנולוגיות פיתוח האינטרנט המושכות ביותר והמשכנעות ביותר שזמינות כיום. למי מיועד ספר זה ספר זה נועד לכל מי שרוצה ללמוד כיצד לבנות אתרי אינטרנט עשירים ואינטראקטיביים שפועלים על בסיס פלטפורמת מיקרוסופט .הידע שתשיג מספר זה יהווה בסיס נהדר לבניית אתר אינטרנט מסוג כלשהו ,החל מאתרים שקשורים לתחביב וכלה באתרים למטרות מסחריות. גם מי שתכנות אינטרנט חדש עבורו ,יוכל לעקוב אחר הספר ,מכיוון שהספר אינו מניח רקע קודם בתכנות אתרי אינטרנט .הספר מתחיל ממש בצעדים הראשונים של תכנות אינטרנט על ידי כך שהוא מראה כיצד להשיג ולהתקין את .Visual Web Developerהפרקים העוקבים מציגים טכנולוגיות חדשות באופן הדרגתי ,תוך הסתמכות על הידע שנצבר בפרקים הקודמים. האם יש לך העדפה ברורה של Visual Basicעל פני ,C#או להפך? ואולי אתה סבור ששתי השפות "מגניבות"? או שמא לא גיבשת דעה וברצונך ללמוד את שתי השפות? כך או כך ,הספר ימצא חן בעיניך מכיוון שכל דוגמאות הקוד מוצגות בשתי השפות! גם אם הנך בן-בית בגרסאות קודמות של ,ASP.NETבפרט גרסאות ,1.xתוכל ללמוד רבות מספר זה .למרות שרעיונות רבים הועברו מ ASP.NET 2.0 -אל ,ASP.NET 3.5תגלה שאפשר למצוא בספר חומר חדש רב ,כולל מבוא ל ,LINQ-כלי הניפוי החדשים של CSSו,JavaScript- פקדים חדשים של ,ASP.NETתמיכה משולבת ב ,ASP.NET Ajax -תכונות חדשות ב SP1 -ומבוא על .Silverlight במה עוסק הספר ספר זה ילמד אותך ליצור אתר אינטרנט אינטראקטיבי ,מונע-נתונים ועשיר בתכונות .למרות שזו משימה כבדה למדי ,תמצא שבעזרת Visual Web Developer 2008היא אינה כה קשה. תעקוב אחר כל התהליך של בניית אתר אינטרנט ,החל מהתקנת Visual Web Developer 2008 בפרק ,1וכלה בפריסת יישום האינטרנט בשרת productionבפרק .18הספר מחולק ל18- פרקים שכל אחד מהם מוקדש לנושא מסוים ו 4-נספחים. ~ פרק ASP.NET 3.5 - 1מתחילים בפרק זה תלמד כיצד להשיג ולהתקין את .Visual Web Developer 2008תקבל הוראות להורדת והתקנת גרסת החינם של Visual Web Developer 2008הקרויה Express .Editionתערוך גם היכרות עם ,HTMLהשפה שמאחורי כל דף אינטרנט .הפרק מסתיים בסקירה של אפשרויות ההתאמה האישית שמציעה .Visual Web Developer xxiiסדנת לימוד ASP.NET 3.5 ~ פרק 2 -בניית אתר אינטרנט בסביבת ASP.NET פרק זה מראה כיצד ליצור אתר אינטרנט חדש ,וכיצד להוסיף לו אלמנטים חדשים כמו דפים .בנוסף ללימוד נושא יצירת אתר בנוי היטב ,תלמד גם כיצד להשתמש בכלים הרבים של Visual Web Developerליצירת דפי HTMLו.ASP.NET- ~ פרק - 3עיצוב דפי האינטרנט שלך Visual Web Developerמגיעה עם כלים רבים שמאפשרים ליצור דפי אינטרנט מעוצבים היטב ומושכים .בפרק זה תלמד כיצד להשתמש בכלים אלה בצורה חכמה. בנוסף ,תלמד על ,CSSהשפה שמשמשת לעיצוב דפי אינטרנט. ~ פרק - 4עבודה עם פקדי ASP.NET פקדי שרת של ASP.NETהם אחד המושגים החשובים ביותר ב .ASP.NET-הם מאפשרים ליצור אתרי אינטרנט מורכבים ועשירי תכונות ,על ידי קוד מועט ביותר .בפרק תערוך היכרות עם פקדי שרת זמינים רבים ,ותלמד למה הם משמשים וכיצד להשתמש בהם. ~ פרק - 5תכנות דפי WebבASP.NET- למרות שכלי CSSהמובנים ופקדי השרת של ASP.NETיכולים לקדם אותך מאוד ביצירת דפי אינטרנט ,סביר להניח שתשתמש בשפת תכנות כדי לשפר את הדפים .פרק זה משרת כמבוא לתכנות ,עם דגש חזק על תכנות דפי אינטרנט .כל הדוגמאות שתראה בפרק זה )וביתרת הספר( הן בשתי השפות Visual Basic ,ו ,C#-ותוכל לבחור את המועדפת עליך. ~ פרק - 6יצירת אתרי webבעלי מראה עקבי עקביות היא גורם חשוב בהענקת מראה מקצועי ומושך לאתר אינטרנט. מסייעת ליצירת דפים בעלי מראה עקבי באמצעות השימוש בדפים ראשיים ,אשר מאפשרים להגדיר את המראה והתחושה הגלובליים של דף .ערכות נושא ו skins-עוזרים למרכוז המראה של פקדים ואלמנטים חזותיים אחרים באתר .תלמד גם ליצור דף בסיס שעוזר למרכוז קוד שמשתמשים בו בכל הדפים באתר. ASP.NET ~ פרק - 7ניווט באתר ASP.NETמגיעה עם כמה פקדי ניווט שתפקידם לעזור למבקרים למצוא את דרכם באתר .פקדים אלה משמשים לבניית מבנה הניווט של האתר .הם יכולים להיות מחוברים למפה המרכזית של האתר ,שמגדירה את הדפים באתר האינטרנט .תלמד גם כיצד לשלוח משתמשים מדף אחד לאחר על ידי תכנות. ~ פרק - 8פקדי משתמש פקדי משתמש הם קטעי דפים שניתן להשתמש בהם שימוש חוזר בדפים רבים באתר האינטרנט .ככאלה הם מעולים לתכנים חוזרים כמו תפריטים ,כרזות פרסום וכו' .בפרק זה תלמד כיצד ליצור ולהשתמש בפקדי משתמש ,ולשפר אותם עם אינטליגנציה תכנותית. הקדמה xxiii ~ פרק - 9בדיקת אימות הקלט מהמשתמש חלק ניכר מהאינטראקטיביות באתר נקבע על ידי הקלט מהמשתמשים .הפרק מראה כיצד לקבל קלט מהמשתמשים ,לבדוק את תקפותו ,ולעבד אותו תוך שימוש בפקדי שרת של .ASP.NETבנוסף ,תלמד כיצד לשלוח דואר אלקטרוני מיישום אינטרנט מבוסס ,ASP.NETוכיצד לקרוא מקבצי טקסט. ~ פרק 10 ASP.NET Ajax - ASP.NET Ajaxשל מיקרוסופט מאפשר ליצור דפי אינטרנט בעלי מראה נאה וחופשיים מהבהוב ,שסוגרים את הפער בין יישומי שולחן העבודה המסורתיים לבין יישומי אינטרנט .בפרק זה תלמד כיצד להשתמש בתכונות המובנות של Ajaxכדי לשפר את נוכחות דפי האינטרנט שלך .תוצאת הדבר היא אינטראקציה חלקה יותר עם האתר. ~ פרק - 11מבוא לבסיסי נתונים הבנת השימוש בבסיסי נתונים חיונית לבניית אתרי אינטרנט מודרניים ,מכיוון שרוב אתרי האינטרנט המודרניים משתמשים בבסיס נתונים .תלמד את יסודות ,SQLשפת השאילתות שמאפשרת גישה ושינוי הנתונים בבסיס נתונים .בנוסף ,תכיר את כלי בסיס הנתונים שנמצאים ב Visual Web Developer -ומסייעים ליצירת וניהול בסיסי נתונים מסוג .SQL Server ~ פרק - 12הצגה ועדכון של נתונים פרק זה מתבסס על הידע שרכשת בפרק הקודם .הפרק מראה כיצד להשתמש בפקדים קשורי-נתונים ובפקדי מקור נתונים של ,ASP.NETכדי ליצור ממשק עשיר שיאפשר למשתמשים אינטראקציה עם הנתונים בבסיס הנתונים שפקדים אלה מכוונים אליהם. ~ פרק 13 LINQ - LINQהוא הפתרון החדש של מיקרוסופט לגישה לאובייקטים ,בסיסי נתונים, ועוד .בפרק זה תלמד כיצד להשתמש ב LINQ to SQL -כדי לגשת לבסיסי נתונים מסוג .SQL Serverבמקום לכתוב קוד רב באופן ידני ,תיצור קבוצת אובייקטים של LINQ שיעשו עבורך את "העבודה השחורה" .פרק זה מסביר מהי ,LINQכיצד להשתמש במעצב החזותי של ,LINQהמובנה ב ,Visual Web Developer -וכיצד לכתוב שאילתות LINQכדי לקבל נתונים מבסיס נתונים SQL Serverאו לכתוב אליו. XML ~ פרק - 14הצגת נתונים -נושאים מתקדמים בעוד שהפרקים הקודמים התמקדו בעיקר ביסודות הטכניים של פעילות עם נתונים, פרק זה מתבונן באותו נושא מנקודת המבט של ממשק המשתמש .תלמד כיצד לשנות את המראה החזותי של הנתונים באמצעות שימוש בסגנונות שליטה .תלמד גם ליצור אינטראקציה עם פקדים קשורי-נתונים ,וכיצד להאיץ את היישום על ידי שמירת עותק מקומי של נתונים שניגשים אליהם בתדירות גבוהה. xxivסדנת לימוד ASP.NET 3.5 ~ פרק - 15אבטחת אתר אינטרנט בסביבת ASP.NET 3.5 אבטחה זה נושא בעל חשיבות מהמעלה הראשונה ,למרות היותו מוצג מאוחר למדי בספר .פרק זה מלמד כיצד להשתמש בתכונות המובנות של ASP.NETשקשורות לאבטחה .תלמד על כמה שירותי יישום שמסייעים לקידום האבטחה .תלמד גם כיצד לאפשר למשתמשים להירשם לקבלת חשבון באתר ,כיצד להבדיל בין משתמשים אנונימיים למשתמשים מחוברים ,וכיצד לנהל את המשתמשים במערכת. ~ פרק - 16התאמה אישית של אתרי אינטרנט פרק זה מראה כיצד ליצור דפי אינטרנט מותאמים אישית בעלי תוכן שמכוון למשתמשים אינדיבידואליים ,זאת תוך שהוא מתבסס על תכונות האבטחה שהוצגו בפרק .15תלמד כיצד להגדיר ולהשתמש ב Profile-של ASP.NETשמאפשר לאחסן נתונים מותאמים אישית על מבקרים ידועים ואנונימיים. ~ פרק - 17טיפול בחריגים ,ניפוי ומעקב כדי להבין ,לשפר ולתקן את הקוד שכתבת עבור דפי אינטרנט בסביבת ,ASP.NETיש צורך בכלי ניפוי טובים Visual Web Developer .מגיעה עם תמיכה מעולה בניפוי, שמאפשרת לאבחן את מצב היישום בזמן ביצוע ,ומסייעת במציאה ותיקון של בעיות לפני שהמשתמשים נתקלים בהן. ~ פרק - 18פריסת אתר אינטרנט כשתגיע לסיום הספר יהיה בידך אתר אינטרנט מוכן להיחשף לעולם .איך בדיוק תעשה זאת? איזה דברים עליך לדעת ולהבין לפני שתחשוף את האתר לציבור הרחב? פרק זה עונה על שאלות אלו ,ומספק תובנות לגבי תצורת מערכות ייצור שונות שבהן עשוי אתר האינטרנט הסופי להתבצע. ~ נספח א' -תשובות לתרגילים ~ נספח ב' -קביעת התצורה של ) SQL Server 2005תקף גם לגרסה .(2008 ~ נספח ג' -תכונות חדשות )(SP1 בנספח זה נציג בקצרה את התוספות שמיקרוסופט שחררה במסגרת העדכון .Service Pack 1קבוצת תכונות זו מתפרסת על פני סביבת העבודה ,NETובכלל זה גם .ASP.NETנספח זה עוסק בעיקר בתכונות החדשות של .ASP.NET NET 3.5 ~ נספח ד' -היכרות עם Silverlight בנספח זה תערוך היכרות עם הטכנולוגיה החדשה של מיקרוסופט שמהווה תשתית ,cross-browser ,cross-platformהמאפשרת למפתחים ומעצבים לייצר את הדור הבא של מערכות אינטרנט. ~ אינדקס הקדמה xxv מבנה הספר גישת הספר היא להסביר מושגים צעד אחר צעד ,תוך שימוש בדוגמאות עבודה והסברים מפורטים .הסעיפים המפורסמים של ,Wroxנסה זאת וכיצד זה פועל ,מנחים אותך צעד אחר צעד בביצוע משימה ,ומפרטים את הדברים החשובים תוך כדי התקדמות המשימה .אחרי כל משימת נסה זאת בא סעיף כיצד זה פועל שמסביר את הצעדים שבוצעו בתרגיל. בסופו של כל פרק תמצא תרגילים שיעזרו לך לבדוק את הידע שהשגת בפרק זה .התשובות לכל השאלות נמצאות בנספח א' בסוף הספר .אל תדאג אם אינך יודע את התשובות לשאלות. פרקים מאוחרים יותר אינם מניחים שביצעת את משימות סעיף התרגילים בפרקים קודמים. מה נדרש כדי להשתמש בספר הספר מניח שהמערכת שלך עונה על הדרישות הבאות: ~ מסוגלת להפעיל את .Visual Web Developerלגבי הדרישות המדויקות של המערכת פנה לקובץ readmeשמגיע עם התוכנה. ~ מערכת ההפעלה היא לפחות ,Windows XP Professional Editionאו )לפחות גרסת ,(Home Premiumאו אחת מגרסאות השרת של .Windows Windows Vista את רוב התרגילים ניתן אמנם לבצע בסביבת Windows XP Homeאו ,Windows Vista Basicאבל כמה מפרקי הספר דורשים שימוש ב ,IIS-שרת האינטרנט של מיקרוסופט ,שמגיע רק עם גרסאות Windowsשמופיעות ברשימת הדרישות לעיל. הפרק הראשון מראה כיצד להשיג ולהתקין את ,Visual Web Developer 2008אשר בתורה מתקינה את NET Framework version 3.5של מיקרוסופט ואת .SQL Server 2005 Express Editionכל מה שאתה זקוק לו זו מערכת הפעלה טובה ודחף לקרוא את הספר! קרא עוד על התוכנות הנדרשות בפרק .1 מוסכמות כדי לעזור לך להפיק את המרב מהטקסט ולעקוב אחר מה שקורה ,נשתמש לאורך הספר בכמה מוסכמות. מוסכמות נסה זאת נסה זאת הוא תרגיל שעליך לבצע בעקבות הטקסט בספר. .1התרגיל מורכב מקבוצת צעדים. .2כל צעד ממוספר. .3עקוב אחר הצעדים עם עותק הקוד שבידך. .4אחר כך קרא את הסעיף כיצד זה פועל כדי להבין מה קורה. xxviסדנת לימוד ASP.NET 3.5 כיצד זה פועל לאחר כל נסה זאת יוסברו הפעולות שביצעת והקוד שהקלדת לפרטיהן. הערה :עצות ,רמזים והערות נמצאים בפונט שונה כמו זה. סגנונות בטקסט: ~ מונחים חדשים ומילים חשובות מופיעים בגופן עבה כשהם מוצגים לראשונה. ~ לציון פריטי תפריט שדורשים לחיצה על תת-תפריט משמש הסימן ←. לדוגמה.Folder ← New ← File , ~ קוד או תוכן שאינם רלוונטיים לדיון מושמטים לחלוטין או מוחלפים בשלוש נקודות עוקבות ,כך: ><tr >";<td style="white-space: nowrap ... Menu items go here; not shown ></td ></tr אנו נשתמש בשלוש הנקודות מבלי להתחשב בשפת התכנות של הדוגמה ,לפיכך תראה אותן עבור CSS ,HTML ,Visual Basic ,C#ו .JavaScript-כשהן מופיעות בקוד שעליך להקליד בעורך הקוד ,דלג על שלוש הנקודות ועל כל מה שבא בעקבותיהן באותה שורה. ~ קוד שמוצג בפעם הראשונה ,או קוד רלוונטי אחר ,יופיע בצורה הבאה: Dim albumOwner As String "albumOwner = "Imar lblOwner.Text = albumOwner בניגוד לכך ,קוד פחות רלוונטי ,או קוד שכבר ראית קודם ,ייראה כך: "albumOwner = "Imar שים לב ,רצוי בכל מקרה להשתמש בקוד שתוריד מאתר האינטרנט ולא להקליד. ~ טקסט שמופיע על מסך ייראה לעתים קרובות כך: ,Letterגם אם טקסט המסך המקורי משתמש באופן שונה באותיות רישיות .הדבר נועד להבליט את טקסט המסך משאר הטקסט. Each Word Start With A Capital הקדמה xxvii קוד מקור כשתבצע את הדוגמאות בספר תוכל לבחור בין הקלדת כל הקוד באופן ידני )לא מומלץ( לבין שימוש בקבצי קוד המקור שנלווים לספר .כל קוד המקור שמשתמשים בו בספר זמין להורדה מ .www.wrox.com -כדי להשיג את כל קוד המקור עבור הספר ,היכנס לאתר ,אתר את כותרת הספר ) Beginning ASP.NET 3.5 In C# and VB -על ידי שימוש בתיבה Searchאו באחת מרשימות הכותרות( ,ולחץ על הקישור Download Codeבדף פרטי הספר .מכיוון שלספרים רבים יש כותרות דומות ,ייתכן שהדרך הקלה ביותר היא לחפש לפי ה .ISBN-ה- ISBNשל ספר זה הוא .978-0-470-18759-3 הערה :תוכל להוריד את הקבצים האלה גם מאתר הוצאת הוד‐עמי .מצא את דף הספר ולחץ להורדה על "קוד מקור "C#או "קוד מקור ."VBהמשך לפי הפסקאות הבאות. באפשרותך להוריד את כל המקור עבור ספר זה כקובץ יחיד ) VBאו (C#שאותו תוכל לפרוס בעזרת כלי הפריסה המועדף עליך .כשתשלוף את המקור עליך לוודא שיישמר המבנה המקורי של התיקייה שהינה חלק מהורדת הקוד .כלי הפריסה השונים משתמשים בשמות שונים לתכונה זו ,אבל חפש תכונה כמו User Folder Namesאו .Maintain Directory Structureברגע ששלפת את הקבצים מהקוד שהורד ,אתה אמור לסיים עם תיקייה בשם Sourceותיקייה בשם .Resourcesאחר כך צור תיקייה חדשה בשם BegASPNETבשורש כונן Cשלך ,והעבר את התיקיות Source ו Resources-אל התיקייה החדשה .אתה אמור לסיים עם תיקיות C:\BegASPNET\Source ו .C:\BegASPNET\Resources -תיקיית המקור מכילה את המקור עבור כל אחד מ 18-פרקי הספר ,ואת הגרסה הסופית של יישום PlanetWroxשאיתה תפעל לאורך הספר .התיקייה Resourcesמכילה קבצים שתזדקק להם בכמה מתרגילי הספר .אם הכל ילך כשורה ,אתה אמור לסיים עם המבנה שמוצג בתרשים ה.1- תרשים ה1- xxviiiסדנת לימוד ASP.NET 3.5 בפרקים מאוחרים יותר תיצור בתוך התיקייה מבנה התיקיות יהיה אז דומה לזה שבתרשים ה.2- C:\BegASPNET תיקיות בשם Site ו.Release- תרשים ה2- התיקייה Siteמכילה את האתר כפי שייבנה במהלך הספר .התיקייה Releaseתכיל את הגרסה הסופית בסיום הספר .בכל פעם ש"תיתקע" באחת מדוגמאות הספר ,תוכל להעיף מבט בתיקייה Sourceכדי לראות כיצד היו הדברים אמורים להיראות. כשתרצה להפעיל את האתר עבור פרק מסוים כדי לראות כיצד הוא פועל ,עליך לפתוח את תיקיית הפרק ב Visual Web Developer -כאתר אינטרנט .לפיכך תפתח ,לדוגמה ,את C:\BegASPNET\Source\Chapter13ולא את תיקיית האב .C:\BegASPNET\Source שים לב :יכול להיות שמראה האתר השתנה במקצת מזה המוצג בספר .דבר זה אינו צריך להפריע לך בעבודה ובהבנה. היצמדות למבנה זה מבטיחה ביצוע חלק של תרגילי נסה זאת בספר .ערבוב או מיקום לא נכון של תיקיות אלו יקשה על ביצוע התרגילים ,ועלול אף לגרום למצבים בלתי-צפויים ולשגיאות. בכל פעם שתיתקל בבעיה או שגיאה שאינן מוסברות בספר ,ודא שמבנה האתר עדיין קרוב לזה שמוצג כאן. טעויות דפוס או קוד נעשה כל מאמץ כדי לוודא שהטקסט והקוד נקיים משגיאות ,עם זאת ,אף אחד אינו מושלם, ושגיאות אכן קורות .אם תמצא בספר שגיאה ,כמו שגיאת איות או קטע קוד שגוי ,שלח אלינו ונעדכן באתר .דיווח על טעויות דפוס יכול לחסוך לקורא אחר שעות של תסכול ,ובו-בזמן יעזור לספק מידע איכותי עוד יותר .שלח מייל ל [email protected] -ובנושא כתוב .59447 דף שגיאות Errataתוכל למצוא באתר של הספר באנגלית .www.wrox.comבתרגום לעברית בספר זה השתדלנו להכניס את כל התיקונים שהיו באתר בזמן התרגום. הוצאת הוד-עמי תוכל לסייע לך בהורדת הקבצים מהאתר ,או בכל תקלה שתמצא בספר .הוצאת הוד-עמי אינה נותנת שירותי סיוע בתכנות או בהבנת הכתוב .לשם כך פנה אל יועץ תכנות. הקדמה xxix p2p.Wrox.com כדי להשתתף בדיונים עם המחבר ועמיתים ,הצטרף לפורומים של P2Pב.p2p.wrox.com - הפורומים הם מערכת מבוססת אינטרנט שבה תוכל לפרסם הודעות שנושאן ספרי Wrox וטכנולוגיות קשורות ,וליצור קשר עם קוראים אחרים ומשתמשי הטכנולוגיות .ניתן להיות מנוי בפורומים ולקבל הודעות דואר אלקטרוני בתחומי העניין שלך בכל פעם שנוספים לפורומים פרסומים חדשים. ב p2p.wrox.com -תמצא כמה פורומים שיעזרו לך לא רק במהלך קריאת הספר ,אלא גם בפיתוח היישומים שלך .כדי להצטרף לפורומים עקוב אחר הצעדים הבאים: .1היכנס ל p2p.wrox.com -ולחץ על הקישור .Register Now .2קרא את תנאי השימוש ולחץ .Agree .3השלם את המידע הנדרש כדי להצטרף ,וכל מידע בחירה אחר שברצונך לספק ,ולחץ .Submit .4תקבל הודעת דואר אלקטרוני עם מידע שמתאר כיצד לאמת את החשבון שלך ,והשלם את תהליך ההצטרפות. אפשר לקרוא הודעות מהפורומים מבלי להצטרף ל ,P2P-אבל כדי לפרסם הודעות משלך אתה חייב להצטרף. לאחר ההצטרפות תוכל לפרסם הודעות חדשות ולהגיב על הודעות שפרסמו משתמשים אחרים. את הפורום שעוסק בספר זה )באנגלית( תמצא תחת הקטגוריה Booksשזמינה מדף הבית על ידי לחיצת View All Forumsבתפריט שמשמאל .תוכל לקרוא הודעות ברשת בכל שעה .אם ברצונך שהודעות חדשות שנוגעות לפורום מסוים תישלחנה אליך בדואר אלקטרוני ,לחץ על הסמל Subscribe to this Forumשליד שם הפורום ברשימת הפורומים. למידע נוסף על השימוש ב Wrox P2P -קרא את ,P2P FAQsשמכיל תשובות לשאלות לגבי פעולת תוכנת הפורומים ולשאלות נפוצות רבות שייחודיות ל P2P-ולספרי .Wroxכדי לקרוא את ה FAQs-לחץ על הקישור FAQבדף כלשהו של .P2P SP1 נספח ג' נותן היכרות עם התכונות של .Service Pack 1 מידע נוסף תוכל למצוא בספרון: הוצאת הספרים .WROXתוכל למצוא אותו באתר של WROXבכתובת: New Feature in ASP.NET 3.5 Service Pack 1 של http://www.wrox.com/WileyCDA/WroxTitle/New-Features-in-ASP-NET-3-5-Service-Pack1.productCd-0470457341.html xxxסדנת לימוד ASP.NET 3.5 על המחבר Imar Spaanjaarsסיים את לימודיו האקדמיים בתחום ניהול הזמן הפנוי ) (leisure Managementבהולנד ,אך במהרה החליף את תחום התעניינותו ועיסוקו לתחום האינטרנט. הוא עבד בחברה גדולה וכיום הוא מועסק בחברה Design ITבהולנד, שבה הוא התמחה באינטרנט וביישומים הנלווים שנבנים בטכנולוגיית התוכנה של מיקרוסופט ,כמו .ASP.NET 3.5בתפקידו כדירקטור טכני ומעצב תוכנה הוא אחראי להקמת מערכות בינוניות וגדולות. בתוקף מעמדו המקצועי הבכיר הוא מנחה את החברה בשם זה בדנמרק. Dynamicweb Netherland שהינה סניף של Imarכתב ספר על ASP.NET 2.0ועל ,Dreamweaverשניהם יצאו לאור על ידי .Wroxהוא אחד התורמים הבכירים לפורום הידע .p2p.wrox.comניתן להתקשר איתו דרך האתר האישי .http://imar.spaanjaars.com על העורך המקצועי היועץ המקצועי מאיר קרודו עובד בחברת ,Matrixומשמש כראש צוות פיתוח ומוביל טכנולוגי בבנק לאומי .מאיר עוסק בפיתוח והטמעה של יישומיים בנקאיים מתקדמים בסביבת מחשוב עם תשתיות הפיתוח של מיקרוסופט ,ומשמש יועץ מקצועי לחברות בטכנולוגיות מיקרוסופט חדשניות ,כגול ASP.NET ,SQL Serverו.Silverlight- מאיר משמש כיועץ מקצועי לספרים נוספים בהוד-עמי ,וביניהם " Visual C# 3.0סדנת לימוד". על מחבר נספח ד' אלכס גולש הינו מומחה בעל שם ב Silverlight-ו ,WPF-בעל תואר MVPשל מיקרוסופט .אלכס יועץ בחברות שונות בארץ ובעולם ,מפתח ומטמיע RIAו ,Smart Client based solution -מדריך ומנחה מאות מומחי ITבארץ ובעולם .אלכס מרצה מבוקש בנושאים WPF ,Silverlightו.XNA- בבלוג שלו http://blogs.microsoft.co.il/blogs/alex_golesh/הוא יועץ לכותבים בנושא פיתוח ב Siverlight-ונושאים אחרים. הקדמה xxxi פרק 3 עיצוב דפי האינטרנט שלך הדפים שיצרת בשני הפרקים הקודמים נראו משעממים ולא אטרקטיביים ,משום שאינם מעוצבים .עיצוב הדפים נעשה באמצעות השפה CSS .(Cascading Style Sheets) CSSהיא השפה העיקרית הנהוגה לעריכה ולעיצוב של מידע באינטרנט ,ובכלל זה דפי אינטרנט בסביבת .ASP.NETעם CSSבאפשרותך לשנות במהירות את התצוגה של דפי האינטרנט שלך ,ולהקנות להם את המראה הרצוי. למרות שגרסאות קודמות של Visual Web Developerחסרו כלים טובים לעבודה עם ,CSSהרי לסביבה של Visual Web Developer 2008יש תמיכה מצוינת ב CSS-והיא מסוגלת לעצב דפים עוד בזמן פיתוח בצורה הקרובה ביותר לזו שבה הם יוצגו בדפדפן .הכלים החדשים מאפשרים לך ליצור בקלות עיצוב CSSמבלי שתצטרך לדעת ,לזכור או לעסוק בכל פרט קטן ב.CSS- בפרק זה תלמד בהרחבה את הנושאים הבאים: ~ מהי CSSומדוע אתה זקוק לה. ~ איך נראית שפת CSSואיך לכתוב בה. ~ הדרכים השונות להוספת קוד CSSלדפי ASP.NETולקבצים חיצוניים. ~ הכלים הרבים שמציעה VWDלכתיבה מהירה של .CSS כדי להבין את הרלוונטיות של CSSואת הצורך בה בפרויקטים הפועלים בסביבת ,ASP.NET עליך להכיר תחילה את המגרעות של .HTMLהסעיף הבא דן בבעיות שכרוכות בשימוש ב HTML-פשוט ,ואיך CSSמסוגלת להתגבר על בעיות אלו. הערה :לימוד נוסף של CSSתמצא בספר " HTML & CSSלמפתחי אתרים באינטרנט" בהוצאת הוד‐עמי. מדוע אתה צריך ?CSS בראשית ימיו של האינטרנט ,דפי webהיו מורכבים בעיקר מטקסט ותמונות .הטקסט עוצב תוך שימוש ב HTML-פשוט ותגיות ,כמו לדוגמה > <bכדי להגדיר טקסט מודגש )עבה( ,ו<font>- כדי לקבוע את סוג הגופן ,גודלו וצבעו .המפתחים של יישומי אינטרנט הבינו עד מהרה שדרושים להם כלים חזקים יותר כדי לעצב את הדפים שלהם ואמנם CSS ,נוצרה כדי לענות על מגרעות HTMLבתחום עיצוב סגנון הדפים. 66 סדנת לימוד ASP.NET 3.5 בעיות בעריכה עם HTML אחת הבעיות בשימוש ב HTML-לעריכה היא שקבוצת האפשרויות שמציעה HTMLלעיצוב סגנון הדפים מוגבלת למדי .אתה יכול להשתמש בתגיות כמו > <b> ,<iו <font>-כדי לשנות את ההופעה של טקסט ,ובמאפיינים כמו bgcolorכדי לשנות את צבע הרקע של אלמנטים של .HTMLכמו כן ,עומדים לרשותך כמה מאפיינים שמאפשרים לשנות את הדרך שבה מופיעים קישורים בדפים שלך. ברור שקבוצת מאפיינים זו אינה עשירה מספיק לעיצוב דפי האינטרנט האטרקטיביים שהמשתמשים שלך מצפים להם ודורשים אותם. בעיה אחרת של HTMLהמשפיעה בצורה רבה על בניית דפי האינטרנט שלך ,היא הדרך שבה משולב המידע על העיצוב בדף .כתוצאה מעיצוב זה ,כופה עליך HTMLלהטמיע את הנחיות העיצוב כחלק ממסמך HTMLשלך ,והדבר מקשה על שימוש חוזר או שינוי העיצוב מאוחר יותר .התבונן בדוגמה הבאה: >"<p><font face="Arial" color="red" size="+1 This is red text, in an Arial type face and slightly larger than the default text ></font></p הבעיה עם קטע קוד זה היא שאין הפרדה בין תגיות HTMLלבין המידע אשר מורה על דרך הצגת התגיות .הנתונים ומידע העיצוב צריכים להיות נפרדים ,כדי שיהיה קל יותר לשנות אחד מהם מבלי להשפיע על האחר. > <pו<font>- דמיין לעצמך שהאתר שלך מכיל 40דפים .ובכל דף נעשה שימוש בתגיות כפסקה הראשונה .קוד שכזה קשה לתחזוקה .למשל ,מה יקרה כשאתה מחליט לשנות את צבע הגופן מאדום לכחול כהה? ו/או קיבלת דרישה לשנות את הגופן ל Verdana-במקום ?Arial במקרים כאלה היית צריך לעבור על כל דף ודף באתר שלך ולהכניס בו את השינויים הנדרשים. פרט לעניין התחזוקה מתעוררת בעיה נוספת עם עיצוב - HTMLאינך יכול לשנות בקלות את העיצוב בזמן שהדף מוצג בדפדפן .אם תשתמש ב HTML-שבקטע הקוד הקודם לא תהיה לך כל דרך לאפשר למבקר באתר לשנות דברים ,כמו גודל הגופן וצבעו .אם ברצונך להציע למבקרים באתר גרסה אלטרנטיבית של הדף ,עם גופן גדול יותר או בעל צבע אחר ,אתה צריך ליצור עותק של הדף המקורי ולהכניס בו בעצמך את השינויים הנחוצים. הבעיה האחרונה עם עיצוב HTMLהיא שסימני העריכה הנוספים בדף שלך מגדילים במידה ניכרת את נפח הדף .דבר זה גורם להאטה בהורדת הדף והצגתו )תעבורת הרשת( ,מכיוון שהמידע צריך להיטען עם כל דף באתר שלך .דבר זה גם מקשה על תחזוקת הדפים בזמן פיתוח מכיוון שעליך לגלול דרך קבצי HTMLגדולים כדי למצוא את התוכן הדרוש לך. לסיכום ,עיצוב עם HTMLסובל מהבעיות הבאות: ~ קבוצת המאפיינים של על ידי הדפים שלך. HTML מגבילה באופן חמור את אפשרויות העיצוב שנדרשות פרק :3עיצוב דפי האינטרנט שלך 67 ~ נתונים ומידע תצוגה מעורבבים זה בזה באותו קובץ. ~ אין אפשרות קלה להחלפת העיצוב בדפדפן בזמן ריצה באופן דינמי. ~ התגיות ומאפייני העיצוב הנדרשים מגדילים את הדפים שלך ,והדבר גורם להאטה בטעינתם ובהצגתם. למרבה המזל מאפשרת לך CSSלהתגבר על כל הבעיות האלו. כיצד פותרת CSSאת בעיות העיצוב CSSתוכננה לעצב את דפי האינטרנט שלך כמעט בכל דרך אפשרית .היא מציעה מגוון עשיר של אפשרויות לעיצוב דפי האינטרנט שלך ,כולל גופנים )גודל ,צבע ,משפחה וכו'( ,צבעים וצבעי רקע ,גבולות סביב אלמנטים של ,HTMLהצבת אלמנטים בדף ועוד CSS .נתמכת על ידי כל הדפדפנים העיקריים כיום ,ולכן היא השפה המקובלת להגדרת תצוגה של דפי אינטרנט, ופופולרית מאוד בין מפתחי אינטרנט. CSSמתגברת על בעיית ערבוב הנתונים ומידע התצוגה על ידי הגדרת כל מידע העיצוב בקבצים חיצוניים .דפי ASPXאו HTMLשלך יכולים אז לפנות לקבצים אלה ,והדפדפן הוא זה שמיישם את הסגנונות הנכונים .עם החלת הפרדה זו ,מסמך HTMLמכיל כעת את מה שאתה רוצה להציג ,בעוד קובץ CSSמגדיר איך אתה רוצה להציג זאת .הפרדה זו מאפשרת לך לשנות, או להחליף ,את אחד משני המסמכים בעוד שהאחר יישאר ללא שינוי .בסעיף הבא תראה כיצד זה נעשה .בנוסף ,ניתן להציב קוד CSSבאופן ישיר בדף HTMLאו ,ASPXוכך באפשרותך להוסיף קטעים קטנים של קוד CSSבדיוק במקום שאתה צריך אותם .כשאתה מציב את קוד CSSישירות בדף HTMLאו ,ASPXעליך לגלות זהירות ,משום שכתוצאה מכך אתה מאבד את הגמישות של שליטה על העיצוב ממקום מרכזי. מכיוון שניתן להציב את כל קוד CSSבקובץ נפרד ,קל להציע למשתמש אפשרויות בחירה בין סגנונות שונים ,לדוגמה סגנון עם גופן גדול יותר .אתה יכול ליצור עותק של גיליון הסגנון החיצוני ,לערוך את השינויים הנדרשים ,ואז להציע למשתמש את גיליון הסגנון האלטרנטיבי. בפרק ,6כאשר יידונו נושאי ,ASP.NETתראה כיצד זה פועל. תועלת אחרת מקובץ גיליון סגנון נפרד היא הקטנת התעבורה ברשת .גיליונות סגנון אינם משתנים בכל בקשה ,ולכן הדפדפן יכול לשמור עותק מקומי של גיליון הסגנון בפעם הראשונה שהוא טוען אותו .מאותו רגע ואילך ,הדפדפן משתמש בעותק הנשמר במרחב הזיכרון שלו במקום לבקש אותו מהשרת בכל בקשה .לפעמים הדבר עלול לפעול נגדך ,והדפדפן לא יטען קבצי CSSהכוללים את השינויים העדכניים ביותר שלך .אם תמצא שהדפדפן אינו בוחר בקובץ CSSעם השינויים שעשית ,השתמש בקיצור הדרך Ctrl+F5שבדפדפן )לא ב ,(VWD-כדי לקבל עותק רענן מהשרת. כעת ,כשהבנת מדוע CSSכה חשובה ,הגיע הזמן ללמוד איך היא נראית וכיצד להשתמש בה. 68 סדנת לימוד ASP.NET 3.5 מבוא לCSS- מבחינת התחביר שלה CSS ,היא שפה קלה ללימוד .השפה מורכבת מכמה מושגים בלבד ולכן קל יחסית להתחיל להשתמש בה .הארגון העולמי שמתחזק את תקן ,HTMLהWorld Wide ) W3C- (Web Consortiumכולל תקן CSSבשלוש גרסאות שונות 2.1 ,1.0 :ו .3.0-מבין שלוש גרסאות אלו ,גרסה 2.1היא המקובלת ביותר כיום .היא מכילה כל מה שמכילה גרסה ,1.0ואפשרויות רבות מעבר לכך .בגרסה זו משתמשת ,VWDואותה היא יוצרת כברירת מחדל .גרסה 3.0נמצאת כעת בפיתוח ,וצפוי שיעבור זמן מה לפני שהדפדפנים העיקריים יתמכו בה באופן גורף. לפני שנתבונן בתחביר ,CSSרצוי להתבונן תחילה בדוגמה .בתרגיל הבא תתבקש לכתוב דף ASPXפשוט שמכיל מעט CSSכדי לעצב את תוכן הדף .הדבר יעזור להבנת שפת CSSשעליה נדון בפירוט מלא בסעיף הבא. נסה זאת כתיבת קוד CSSהראשון שלך בתרגיל זה תכתוב קוד CSSקצר שמשנה את עיצוב הכותרת ,ושתי פסקאות .בשלב זה תקודד את הדף באופן ידני; בחלקו השני של פרק זה תלמד כיצד להשתמש בכלי CSSהזמינים ב ,VWD-אשר הופכים את כתיבת CSSלפשוטה וקלה. .1בפרויקט Planet Wroxצור קובץ חדש בתיקייה ,Demosוקרא לו .CssDemo.aspxעבור תרגיל זה אין חשיבות לכך שתבחר קוד כלול או קוד ברקע ,כמו כן גם לשפת התכנות של הדף אין חשיבות ,מכיוון שתשתמש בה רק בחלק הדף שמכיל סימני עריכה. .2ודא שהדף מוצג ב ,Markup View -ואז אתר את התגית > <head/בדף .לפני תגית זו הקלד את הקוד המוצלל שלהלן: ><title>Untitled Page</title >"<style type="text/css ></style ></head שים לב שברגע שהקלדת את סוגר הפתיחה הזוויתי )<( צצה רשימה שמאפשרת לך לבחור בתגית > .<styleהדבר נכון גם לגבי המאפיין .typeהקלד את האותיות ty והמאפיין typeייבחר עבורך מהרשימה .כל מה שעליך לעשות כדי להשלים את המילה הוא להקיש Tabאו .Enterזכור שאותה עזרה זמינה גם עבור הערך text/css של המאפיין .לשם כך בחר בערך מהרשימה והקש Tabאו ,Enterוהערך יוכנס עבורך באופן אוטומטי כשהוא מוקף בגרשיים. .3בין תגיות הפתיחה והסגירה > <styleהקלד את קוד CSSהמוצלל הבא: >"<style type="text/css h1 { ;font-size: 20px ;color: Green } פרק :3עיצוב דפי האינטרנט שלך 69 p { ;color: Blue ;font-style: italic } .RightAligned { ;text-align: right } ></style הקלד את הקוד בצורה מדויקת ,מכיוון ש CSS-מקפידה מאוד בענייני תחביר! הפריט הראשון ברשימה הוא תגית h1שמיועדת לעיצוב סגנון כותרת ברמה הראשונה ,כדי שהתווים שבה יהיו בגודל 20פיקסל ,והיא תוצג בגופן ירוק .שים לב לתו נקודתיים )(: שבין font-sizeו ,20px-ולכך שהשורה נסגרת בנקודה-פסיק );(. הפריט השני ברשימה מכיל את האות האלמנטים > <pבדף. p ומגדיר את המראה והתחושה של כל הפריט האחרון מתחיל בנקודה ) (.ולאחריו הטקסט .RightAlignedפריט זה משמש ליישור לימין של קטעי טקסט מסוימים בדף. .4גלול מעט מטה בדף עד שתראה את תגית הפתיחה > .<divמייד לאחר תגית זו הקלד את הטקסט המוצלל הבא: ><div ><h1>Welcome to this CSS Demo page</h1 ><p>CSS makes it super easy to style your pages.</p >"<p class="RightAligned With very little code, you can quickly change the looks of a page. ></p ></div במקום להקליד קוד זה ישירות ,אתה יכול להשתמש בסרגל הכלים ,Formattingמתוך ,Design Viewכדי ליצור אלמנטים כמו > <h1ו .<p>-בינתיים תצטרך להקליד " ,class="RightAlignedאבל בתרגילים הבאים ,תלמד איך לגרום ל IDE-לכתוב קוד זה עבורך. .5אם תעבור ל Design View -תבחין כי הטקסט שלך מוצג בהתאם להגדרת העיצוב שקבעת באלמנט > <styleשל הדף .תרשים 3-1מציג את הדף ב Split View -ואתה יכול לראות כעת את הקוד והעיצוב בו-זמנית. הספר מודפס בשחור-לבן ולכן קשה להבחין בהבדלים בצבעי הגופנים .לעומת זאת ,ניתן לראות בתרשים 3-1בבירור של <h1>-יש גופן גדול יותר מאשר לטקסט .בתרשים גם רואים שכל הפסקאות )הן הרגילה והן המעוצבת עם " (class="RightAlignedמוצגות 70 סדנת לימוד ASP.NET 3.5 בגופן נטוי .לבסוף ,אתה יכול לראות שהפסקה האחרונה מיושרת לימין החלון ,מפני שהמאפיין classבתגית הפסקה משתמש בהגדרת העיצוב .RightAligned תרשים 3-1 אם אינך רואה את הפסקה האחרונה מוצמדת לגבול הימני של חלון המסמך ,ודא שהקלדת נכון את RightAlignedבתגית > <styleובמאפיין .Classמכיוון ש CSS-רגישה לרישיות ,יש הבדל בין RightAlignedל.rightAligned- אם ברצונך להציג את הדף בדפדפן שלך ,הקש Ctrl+F5ואז ' VWDמעוררת' את שרת האינטרנט המובנה ,פותחת את דפדפן ברירת המחדל שלך ,ומציגה את דף .CssDemo.aspx הדף שאתה רואה בדפדפן זהה לתצוגה המקדימה שראית ב Design View -של Visual Web .Developer כיצד זה פועל למרות שהקוד שהקלדת בתרגיל זה פשוט יחסית ,הרי ש"מאחורי הקלעים" של הדפדפן )וגם ב- (Design Viewיש התרחשויות רבות שמטרתן לאפשר לדברים לקרות .התחלת את התרגיל על ידי הוספת כמה סגנונות לקטע > <headשל הדף: >"<style type="text/css h1 { ;font-size: 20px ;color: Green } ... ></style התגית > <styleמשמשת לעטיפת גיליון הסגנון שמוטמע בדף ,כשהמאפיין typeשלה מוגדר כ .text/css-בין התגיות > <styleנמצא בלוק קוד שמתחיל ב h1-ומסתיים בסוגר המסולסל פרק :3עיצוב דפי האינטרנט שלך 71 ) } ( .הבלוק נקרא rule setאו בפשטות ) ruleכלל( .הכלל מגדיר את התצוגה עבור כל האלמנטים > <h1בדף שלך .ה <h1>-בראש בלוק הקוד נקרא ) selectorבורר( ותפקידו להצביע על האלמנטים שלגביהם יחול כלל העיצוב .במקרה שלנו ,ה selector-ממופה ישירות לאלמנט > <h1של ,HTMLאבל זמינים גם selectorsאחרים שתראה מאוחר יותר בסעיף זה. תרשים 3-2מראה איך האלמנטים קשורים ביניהם. תרשים 3-2 בין הסוגריים המסולסלים אתה רואה את מידע סגנון העיצוב שברצונך להחיל על הכותרת .כל שורה בין הסוגריים המסולסלים נקראת הצהרה ) .(declarationהצהרה מורכבת ממאפיין ) (propertyשלאחריו נקודתיים ) (:ולאחריהן ערך ) .(valueהתו נקודה-פסיק );( בסוף ההצהרה מפריד אותה מההצהרה הבאה ,והוא חייב להיות בכל ההצהרות ,פרט להצהרה האחרונה .עם זאת ,מטעמי עקביות ,יהיה זה נוהג נכון לסיים את כל ההצהרות בנקודה ופסיק ,וכך תראה בכל הדוגמאות הבאות שבספר. כשהדפדפן טוען דף זה ,הוא קורא את הסגנונות שהגדרת בין תגיות > .<styleבכל פעם שהדפדפן פוגש באלמנט HTMLשתואם את ה ,selector-הוא מחיל עליו את כללי CSS הרלוונטיים לו .כך מוחלים הכללים שמופיעים בצעד 3על האלמנטים > <h1ו ,<p>-בהתאמה. הדבר יגרום לכותרת להופיע בגופן גדול בצבע ירוק ,בעוד שהפסקה תוצג בצבע כחול וגופן נטוי. אבל מדוע הופיעה הפסקה האחרונה בצבע כחול כשהיא מיושרת לימין? ב CSS-הכללים יכולים לבוא ממקורות שונים .תגית > <pהאחרונה מקבלת את מידע הסגנון שלה מבורר pסטנדרטי שבהגדרת הסגנון ,והוא זה שקבע לפסקה גופן כחול ונטוי .עם זאת ,בנוסף הוצמד לתגית ><p דרך מאפיין Classסגנון נוסף בשם ,RightAlignedשגורם לטקסט להיות מיושר לימין החלון. בסופו של דבר ,אלמנט > <pהאחרון מקבל את הכללים שלו בו-זמנית משני מקורות. בסעיף הבא נתעמק הרבה יותר בתחביר ובמבנה של .CSS שפת CSS כפי שראית בתרגיל נסה זאת הקודם CSS ,היא למעשה אוסף של כללים .כלל הוא שילוב כלשהו של selectorוהצהרה אחת או יותר המכילה מאפיין וערך .קרוב לוודאי שאתה מסוחרר מעט מכל המונחים החדשים שהכרת בפסקאות האחרונות ,לפיכך תפגוש את רובם שוב בסעיף הבא ,בשילוב הסבר מפורט ודוגמאות קוד שיראו לך למה הן משמשות וכיצד הן פועלות. 72 סדנת לימוד ASP.NET 3.5 פרק 5 תכנות דפי WebבASP.NET- בפרקים הקודמים יצרת כמה טפסי Webשהכילו בעיקר פקדי שרת של ASP.NETושל קוד HTMLפשוט .רק דוגמאות מעטות הכילו קוד ממשי שנכתב ב (VB.NET) Visual Basic.NET -או ב ,C#-ורוב הקוד הזה היה פשוט למדי .עם זאת ,קידוד הוא מרכיב חשוב בכל אתר אינטרנט. אמנם ,בהשוואה למה שנדרש בגרסאות הישנות ממשפחת 1.xשל סביבת ,NETאו בטכנולוגיות אינטרנט אחרות כמו ASPהקלאסית או ,PHPהרי שהמספר הרב של פקדי השרת המתוחכמים שעומדים לרשותך מקטין את כמות הקוד שאתה צריך לכתוב ,ועדיין ,היכולת לקרוא ,להבין ולכתוב קוד היא נכס חיוני בערכת הכלים של מפתח אינטרנט. בפרק זה תכיר את יסודות התכנות עבור יישומי אינטרנט .תלמד בהרחבה על הנושאים הבאים: ~ איך לעבוד עם אובייקטים ואוספים ) (collectionsבסביבת תכנות. ~ דרכים שונות לקבלת החלטות בקוד שלך. ~ האפשרויות ליצירת בלוקים של פונקציונליות לשימוש רב-פעמי. ~ דרכים שונות לכתיבת קוד מסודר ומתועד. ~ מה זה תכנות מוכוון עצמים וכיצד להשתמש בו לבניית היישומים שלך. כמו כל שאר הדוגמאות בספר ,גם הדוגמאות בפרק זה מובאות בשתי השפות VB.NET :ו.C#- לכל מושג או תיאוריה שמוצגים בפרק זה תראה ,בו-זמנית ,דוגמה ב VB.NET-ודוגמה ב.C# - בחירת השפה המועדפת עליך תלויה בך בלבד. כדי להשיג את המרב מהלימוד של פרק זה ,מומלץ לנסות את כל ,או לפחות את רוב ,דוגמאות הקוד שמוצגות בפרק .קריאה והבנת קוד הן דבר אחד; לראות את הקוד פועל למעשה זה משהו שונה לחלוטין .את רוב הדוגמאות ניתן לבחון עם דף ASPXפשוט .גרור פקד Labelופקד Buttonאל הדף שלך ,לחץ לחיצה כפולה על הלחצן בתצוגת עיצוב ) ,(Design Viewואז הקלד את הקוד הרלוונטי בשורה הפתוחה של בלוק הקוד שנוסף על ידי סביבת הפיתוח. שים לב שכמה מהדוגמאות קוראות לקוד פיקטיבי שלא יפעל כהלכה .הן משמשות להמחשת הנושאים הנדונים בלבד. פרק :5תכנות דפי WebבASP.NET- 141 מבוא לתכנות כדי להתחיל בתכנות חשוב להבין תחילה את המינוח המקובל ,שמשותף לכל המתכנתים בכל שפות התכנות והיישומים .בהמשך הלימוד בפרק זה תכיר מספר גדול יחסית של מונחים ומושגים .רוב המונחים מלווים בדוגמאות קוד ,כדי שתוכל לראות איך משתמשים בהם בקוד. חשוב להבין שהפרק אינו מהווה מבוא שלם לתכנות .איננו עוסקים בכל פרט של שפת תכנות זו או אחרת .במקום זאת ,נתמקד במושגי המפתח שעליך להבין כדי לבנות בהצלחה אתרי אינטרנט לשימוש יום-יומי .לאחר שתבין את הנקודות העיקריות ,תמצא שקל לך יותר להעמיק את הידע שלך בתכנות על ידי לימוד התכונות היותר מתקדמות של שפת התכנות המועדפת עליך. הערה :לימוד מקיף על תכנות ב‐ C#בעברית ,תמצא בספר Visual C# 3.0סדנת לימוד בהוצאת הוד‐עמי. הקוד שאתה עומד לכתוב ,בפרק זה ובפרקים הבאים ,ייתכן שיתווסף לקוד ברקע של דף ,web או שיוצב כחלק מקובץ מסוג מחלקה שימוקם בתיקייה App_Codeשנדון בה בהמשך הפרק. כאשר רכיב ASP.NET runtimeמעבד בקשה לדף שמכיל קוד ,הוא מהדר תחילה כל קוד שהוא מוצא בדף ,בין אם זה קוד ברקע או קובץ מחלקה .קוד שעבר הידור משנה את צורתו משפת תכנות קריאה על ידי בני אדם )כמו C#או (VB.NETלקוד שהמחשב מבין ומסוגל לבצע .תוצאת תהליך הידור של אתר webבסביבת ASP.NETהוא קובץ אחד ,או יותר ,עם סיומת ,DLL שמאוחסן בתיקייה זמנית במערכת שלך .תהליך הידור זה קורה רק בפעם הראשונה שהדף מבוקש לאחר שהוכנסו בו שינויים .הבקשות הבאות לאותו דף מתמלאות על ידי שימוש חוזר באותו .DLLלמרבה המזל ,באתרי אינטרנט בסביבת ,ASP.NETההידור מתבצע ברקע ,באופן שאינך צריך לטפל בו. בתחילה נתבונן בסוגי הנתונים ובמשתנים השונים ,מכיוון שהם אבני הבניין של כל שפת תכנות .כל יישום .NETמשתמש בסוגי נתונים שונים ,שלעתים קרובות מאוחסנים במשתנים. בסעיף הבא נלמד עליהם. סוגי נתונים ומשתנים כשאתה חושב על נתונים בפעם הראשונה ,ייתכן שלא תבין שלכל יחידת נתונים יש סיווג כלשהו .אתה עשוי לחשוב שמחשב יאחסן את המילים " "Hello Worldבדיוק באותה צורה כמו שיאחסן את התאריך הנוכחי או את הספרה " ."6אולם ,כדי לעבוד עם נתונים ביעילות ,שפות תכנות מגדירות סוגי נתונים ) (data typesשונים ,כשכל סוג נתונים מוגבל לסוג מסוים של מידע .בסביבת ASP.NETיש רשימה ארוכה של סוגי נתונים שמאפשרים לעבוד עם מספרים )כמו Short ,Integerו ,(Double-מחרוזות טקסט ) Charו ,(String-תאריכים ) ,(DateTimeערך בוליאני (Boolean) true/falseועוד .רשימה של סוגי הנתונים הנפוצים נמצאת בהמשך הסעיף. לכל סוג עיקרי של נתונים יש סוג נתונים מיוחד .כדי לעבוד עם סוג זה ,אתה יכול לאחסן אותו במשתנה ) (variableשעליך להכריז ) (declareעליו כשאתה משתמש בסוג הנתונים בפעם 142 סדנת לימוד ASP.NET 3.5 הראשונה .ב VB.NET-תשתמש במבנה הכרזה ) Dim myVariable As DataTypeכאשר myVariableהינו שם המשתנה ו DataType-הוא סוג המשתנה( ,בשעה שב C#-תשתמש בהכרזה ) DataType myVariableגם כאן DataType ,הוא סוג המשתנה ו myVariable-הינו שם המשתנה(. הדוגמה הבאה מראה איך להכריז על שני משתנים :אחד לאחסון מספר והשני לאחסון מחרוזת או קטע טקסט. VB.NET הכרזה על סוג משתנה מספרי שלם בטווח מספרים בינוני בשם' distanceInMiles : Dim distanceInMiles As Integer הכרזה על סוג משתנה מחרוזת בשם' firstName : Dim firstName As String C# הכרזה על סוג משתנה מספרי שלם בטווח מספרים בינוני בשם// distanceInMiles : ;int distanceInMiles הכרזה על סוג משתנה מחרוזת בשם// firstName : ;string firstName לאחר ההכרזה על משתנה ,תוכל להקצות לו ערך .סוגים כמו מספרים עשרוניים ובוליאניים תוכל להקצות ישירות למשתנה .כדי להקצות מחרוזת ) (Stringלמשתנה עליך להקיף אותה בגרשיים )"(. VB.NET Dim distanceInMiles As Integer distanceInMiles = 437 Dim firstName As String "firstName = "Sara C# ;int distanceInMiles ;distanceInMiles = 437 ;string firstName ;"firstName = "Sara במקום הכרזה והקצאת ערך בשתי פעולות נפרדות כמו בדוגמאות הקודמות ,באפשרותך להכריז ומייד להקצות ערך בהוראה אחת בלבד .ראה דוגמאות אלו: VB.NET Dim distanceInMiles As Integer = 437 C# ;int distanceInMiles = 437 פרק :5תכנות דפי WebבASP.NET- 143 למרות ששם משתנה יכול להיות כל שם שעולה בדעתך ,מומלץ לקבוע לכל משתנה שם בעל משמעות שמתאר את מטרתו .לדוגמה ,מחרוזת שאמורה להחזיק שם פרטי תיקרא ,firstName ומשתנה שמחזיק את הגיל ייקרא .ageכדי לעזור לך מאוחר יותר למצוא בקוד את סוג המשתנה ,הרי ש VWD-וכל הכלים האחרים ב ,Visual Studio -מציגים תיאור של סוג המשתנה כשאתה עובר על פני משתנה בעורך הקוד .דבר זה הופך את זיהוי סוג המשתנה לקל ביותר. תרשים 5-1מראה שהמשתנה distanceInMilesבדוגמה של C#הוא מסוג .int תרשים 5-1 מומלץ לא להוסיף לשם המשתנה קידומת של כמה אותיות ,כדי לציין את סוגו .לדוגמה ,קרא למשתנה מחרוזת מסוג stringהמחזיק שם firstName :ולא ,sFirstNameההמלצה היא כדי שהקוד שלך יהיה קל יותר לקריאה ) ageיותר קריא מאשר (iAgeוקל יותר לתחזוקה. סביבת .NETשל מיקרוסופט )ולכן גם סביבת (ASP.NETתומכת במספר גדול של שפות תכנות שונות ,ובכללן C# ,VB.NETואחרות .כל השפות האלו מסוגלות לתקשר זו עם זו .לדוגמה ,אתה יכול לכתוב קוד ב ,C#-להשתמש ב Visual C# Express Edition -כדי להדר אותו לקובץ ,dll ואז להשתמש בקובץ זה ביישום webשהשפה העיקרית שלו היא .VB.NETיכולת זו קיימת הודות למנגנון המאפשר לכל שפות התכנות בסביבת .NETלהבין זו את זו .מנגנון זה קרוי CTS ) (Common Type Systemותפקידו להגדיר את סוגי הנתונים שנגישים לכל השפות שתואמות לה .כל שפה חופשית להגדיר סוגים שונים שהם ,ביסודו של דבר ,קיצורי דרך או שמות נרדפים לסוגי התיאור הקיימים בסביבת .NETכך ,לדוגמה אם CTSמגדירה סוג בשם ,System.Int32 שפה כמו C#תעדיף לקרוא לסוג זה intכדי להקל על מפתח התוכנה להשתמש בו. הטבלה הבאה מציגה את סוגי המשתנים הנפוצים ביותר בסביבת .NETהמוגדרים על ידי ,CTS ואת השמות הנרדפים שבהם משתמשות C#ו .VB.NET-הטבלה מפרטת גם את טווח המשתנים ומסבירה למה הם משמשים. תיאור סוג המשתנה VB.NET C# .NET אחסון של כמות מספרים קטנה ,בעלי ערכים חיוביים מ 0-עד .255כאשר לא מוקצה כל ערך במפורש ,ברירת המחדל היא .0 Byte byte System.Byte אחסון של מספרים שלמים שערכיהם בין -32,768לבין .32,767ברירת המחדל היא .0 Short short System.Int16 144 סדנת לימוד ASP.NET 3.5 תיאור סוג המשתנה VB.NET .NET C# אחסון של מספרים שלמים שערכיהם בין -2,147,483,648לבין .2,147,483,647 ברירת המחדל היא .0 Integer int System.Int32 אחסון של מספרים שלמים שערכיהם בין -9,223,372,036,854,775,808לבין .9,223,372,036,854,775,807 ברירת המחדל היא .0 Long long System.Int64 אחסון של מספרים שלמים שערכיהם בין -3.4028235E+38לבין .3.4028235E+38 ברירת המחדל היא .0 Single float System.Single אחסון של מספרים לא שלמים .הערכים בעלי השברים אינם מדויקים כמו הערכים השלמים, אולם כאשר אין צורך בדיוק מרבי קיצוני, עדיף להשתמש בסוג Doubleעל פני ,Decimal מכיוון שהסוג Doubleמהיר יותר בחישובים. ברירת המחדל היא .0.0 Double double System.Double אחסון של מספרים לא שלמים פשוטים במידת דיוק גבוהה .ברירת המחדל היא .0 Decimal decimal System.Decimal אחסון של ערכים בוליאניים) True :ב,(VB- ) trueב (C#-או ) Falseב) false ,(VB-ב.(C#- Boolean bool System.Boolean ב VB.NET -יש שם נרדף ) (aliasעבור System.DateTimeלאחסון נתוני תאריך וזמן. C#אינה מגדירה שם נרדף עבור סוג נתונים זה, ולכן השתמש בשם System.DateTimeבלבד. ברירת המחדל היא1/1/0001: 12:00 am : Date n/a System.DateTime אחסון תו יחיד .ברירת המחדל ב VB-היא ,Nothingאו nullב.C#- Char char System.Char אחסון מחרוזת טקסט באורך עד 2מיליון תווים .ברירת המחדל ב VB-היא ,Nothingאו nullב.C#- String string System.String אחסון מספרים בערכים נמוכים ,בטווח -128 עד .127ברירת המחדל היא .0 SByte sbyte System.SByte פרק :5תכנות דפי WebבASP.NET- 145 תיאור סוג המשתנה דומה לסוג הנתונים ,System.Int16אולם סוג זה יכול לאחסן ערכים ללא סימן מינוס ),(- בין 0לבין .65,535 ברירת המחדל היא .0סוגי הנתונים האחרים בעלי התחילית Uגם הם ערכים ללא סימן. VB.NET C# .NET UShort ushort System.UInt16 יכולת אחסון של מספרים שלמים שערכיהם בין 0לבין .4,294,967,295 ברירת המחדל היא .0 UInteger uint System.UInt32 יכולת אחסון של מספרים שלמים שערכיהם בין 0לבין .18,446,744,073,709,551,615 ברירת המחדל היא .0 ULong ulong System.UInt64 זהו סוג הראשי ,האב של כל הסוגים המקובלים ב .NET-כולל את סוגי CTSשאתה עשוי להגדיר בעצמך .כל סוג נתונים הוא גם אובייקט ,כפי שתלמד מאוחר יותר בספר זה. ברירת המחדל ב VB-היא ,Nothingאו null ב.C#- Object object System.Object לעתים צריך להמיר נתונים מסוג אחד לאחר .לדוגמה ,ייתכן שתקבל ערך מסוים ,שאתה צריך לפנות אליו כ .Double-תוכל לעשות זאת בכמה דרכים. Integer ממקור המרת סוגי נתונים הדרך הנפוצה ביותר להמיר סוג נתונים אחד לאחר היא להמיר אותו ל .String-יישומי אינטרנט משתמשים בסוגי מחרוזת בכל מקום .לדוגמה ,נתון Textשמוחזר מ TextBox-הוא ,Stringוכך גם SelectedValueשל DropDownListהוא מחרוזת .כדי להמיר Objectל String-אתה יכול לקרוא לשיטה )( ToStringשלו .כל אובייקט בעולם של .NETתומך בשיטה זו ,אם כי ההתנהגות המדויקת יכולה להיות שונה בכל אובייקט .בשלב זה חשוב להבין ש ToString() -זו שיטה ) - (methodאו פעולה -על אובייקט כמו Stringאו ,Doubleואפילו על אובייקט האב Objectעצמו .בהמשך הפרק ,כאשר נדון בנושא תכנות מוכוון אובייקטים ),(object-oriented תלמד יותר על שיטות ואובייקטים. השימוש ב ToString() -קל ופשוט ,כפי שמדגימה הדוגמה הבאה שכותבת את התאריך והשעה הנוכחיים למשתנה .Label הערה :זכור שכדי לנסות את דוגמאות הקוד עליך ליצור דף חדש בתיקייה ,Demosלהוסיף Labelו‐Button לדף ,ללחוץ לחיצה כפולה על הלחצן ב‐ ,Design Viewלהוסיף את הקוד הבא ,ואז להקיש .Ctrl+F5 146 סדנת לימוד ASP.NET 3.5 לאחר שתסתיים טעינת הדף ,לחץ על הלחצן והקוד יתבצע .אתה צריך את הפקד Labelמכיוון שכמה מדוגמאות הקוד כותבות מעט טקסט לדף. VB.NET )(Label1.Text = System.DateTime.Now.ToString C# ;)(Label1.Text = System.DateTime.Now.ToString דרך אחרת להמיר סוגי נתונים היא שימוש במחלקה .Convertמחלקה זו מכילה פונקציונליות מתאימה להמרת סוגי נתונים רבים לסוגים אחרים .להלן דוגמה פשוטה של המרת String שמכיל ערך שנראה כמו Booleanלסוג Booleanאמיתי: VB.NET מחזיר ערך ' True )"Dim myBoolean1 As Boolean = Convert.ToBoolean("True מחזיר ערך ' False )"Dim myBoolean2 As Boolean = Convert.ToBoolean("False C# מחזיר ערך // true ;)"bool myBoolean1 = Convert.ToBoolean("True מחזיר ערך // false ;)"bool myBoolean2 = Convert.ToBoolean("False דרך נוספת להמיר סוג אחד לאחר היא על ידי שימוש ב .casting-עם castingאתה למעשה כופה סוג מסוים להיות לאחר; זאת בשונה מהמרה ,שבה הערך היסודי של סוג נתונים עובר שינוי לערך חדש. castingפועלת רק על סוגים תואמים .לדוגמה ,אינך יכול לבצע castingשל DateTimeלתוך .Integerאתה כן יכול לבצע castingבין סוגים דומים ,כמו Doubleלתוך Integerאו String לתוך .Objectההיפוך של הדוגמה האחרונה אינו תמיד נכון .מוקדם יותר אמרתי שכל סוג נתונים בסביבת NETמבוסס על סוג הנתונים .Objectפירוש הדבר הוא ,לדוגמה ,ש String-הוא .Objectעם זאת ,לא כל Objectהוא גם .Stringזכור זאת כשאתה מנסה לבצע castingשל סוג אחד לאחר ומקבל שגיאת הידור .בפרקים מאוחרים יותר בספר תלמד כיצד לבצע castingשל סוגים תואמים זה לזה. VB.NETמעמידה לרשותך כמה דרכים לביצוע castingשל סוג אחד לאחר .ראשית ,אתה יכול להשתמש בשיטות CTypeו .DirectCast -שימוש ב CType-תאפשר לך גמישות רבה יותר בכך שהיא מאפשרת לך לבצע castingבין שני אובייקטים שנראים דומים .לעומת זאתDirectCast , מאפשרת להמיר רק בין סוגים תואמים ,אבל ביצועיה טובים יותר במידת מה .הדוגמה הבאה, ב ,VB.NET-מראה כיצד זה נעשה: Dim o1 As Object = 1 יעבוד ,כיוון שמשתנה o1הינו מסוג ' Integer )Dim i1 As Integer = DirectCast(o1, Integer יעבוד ,כיוון שמשתנה o1הינו מסוג ' Integer )Dim i2 As Integer = CType(o1, Integer Dim o2 As Double = 1 ייכשל ,כיוון שמשתנה o2הינו מסוג ' Integer )Dim i3 As Integer = DirectCast(o2, Integer )Dim i4 As Integer = CType(o2, Integer יעבוד ,כיוון שמשתנה o2מחזיק ערך שנראה כמו ערך מסוג ' Integer פרק :5תכנות דפי WebבASP.NET- 147 בחלק הראשון של הדוגמה ,מוכרז אובייקט בשם o1ומוקצה לו הסוג Integerוערך .1למרות ש o1-נראה כאובייקט ,הערך היסודי שלו הוא .Integerכשקוראים ל ,DirectCast-פעולת castingמצליחה ,מכיוון ש ,o1-אחרי הכל ,הוא למעשה .Integer בחלק השני של הדוגמה ,מוכרז אובייקט בשם o2כ ,Double-זהו סוג נומרי שנראה דומה מעט ל Integer-אבל אינו ממש כזה .במקרה זה נכשלת הקריאה ל DirectCast-מכיוון שלא ניתן לבצע castingשל Doubleל .Integer-לעומת זאת CType ,תפעל היטב מכיוון שהערכים היסודיים של o2נראים כ Integer-ולכן ניתן לבצע castingשלהם ל.Integer- האפשרות השלישית לביצוע castingב VB.NET-היא להשתמש במילת המפתח ,TryCastשדומה במקצת לשתי האפשרויות הקודמות .כאשר לא ניתן לבצע castingשל אובייקט בצורה נכונה, TryCastמחזירה ,Nothingבעוד DirectCastו CType-גורמות לכישלון של הקוד. C#מציעה שתי דרכים לביצוע castingשל אובייקטים .הדרך הנפוצה ביותר היא לשים את סוג הנתונים בסוגריים בחזית הביטוי שברצונך לעצב: ;object o1 = 1 עובד // ;int i1 = (int)o1 ;double o2 = 1 עובד // ;int i2 = (int)o2 לחילופין ,אתה יכול להשתמש במילת המפתח ,asשפעולתה דומה לזו של TryCastב,VB.NET- במובן זה שהקוד אינו נכשל אם ה casting-אינו מצליח .דוגמת הקוד הבאה מראה שאינך יכול להמיר Integerל) ArrayList-שאותו תפגוש מאוחר יותר בפרק( .במקום להיכשל ,המשתנה myListמכיל את הערך .null ;object o1 = 1 הנתון אינו מוחלף ,אך גם לא תתקבל שגיאה // ;ArrayList myList = o1 as ArrayList בפרקים הבאים בספר נמשיך ונפגוש בהמרה והחלפה. שימוש במערכים ) (Arraysואוספים )(Collections סוגי הנתונים שפגשת עד כה היו ברורים וחד משמעיים באופן יחסי ,ומורכבים מאובייקט אחד. לדוגמה ,אחסנת ערך של Trueאו Falseבסוג ,Booleanואחסנת מספר כמו 123בסוג .Integer אבל מה יקרה אם יתעורר הצורך לאחסן מספרים שלמים רבים ,כקבוצה? צורך כזה מתעורר, למשל ,כאשר רוצים לאחסן את ציון הקודקודים של צורה גרפית מורכבת כגון מצולע .ומה יקרה כשתרצה לאחסן במשתנה אחד את התפקידים ושמות המנהלים בארגון שלך ,כדי שתוכל להציגם בדף אינטרנט? זה המקום שבו מערכים ואוספים באים לעזרתך. הגדרה ועבודה עם מערכים )(Arrays אתה יכול לחשוב על מערך כעל שק גדול ,תיבה ,או רשימה שמכילים עצמים או דברים מאותו הסוג .סוג הנתונים של כל פריט במערך מוגדר כאשר אתה מכריז על המערך .כל פריט במערך 148 סדנת לימוד ASP.NET 3.5 החלת ערכות נושא יש שלוש אפשרויות להחיל ערכת נושא על אתר :ברמת הדף בהנחיה ,Pageברמת האתר על ידי שינוי הקובץ ,web.configועל ידי תכנות. ~ הגדרת ערכת הנושא ברמת הדף .קל להגדיר הדף :הגדר בהנחיה Pageשל הדף את המאפיין הרצוי. Theme או StyleSheetTheme ברמת "<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb >Inherits="_Default" Theme="DarkGrey" % כדי להחיל ערכת נושא שהגדרותיה יכולות להידרס על ידי הדף ,החלף את המאפיין Themeב .StyleSheetTheme-ברגע שתקליד "= ,Themeתציג VWDאת רשימת כל ערכות הנושא שהיא מוצאת בתיקייה .App_Themeראה תרשים .6-13 תרשים 6-13 ~ הגדרת ערכת הנושא ברמת האתר .כדי לאכוף ערכת נושא באתר כולו ,אפשר להגדיר את הערכה בקובץ .web.configכדי לעשות זאת :פתח את הקובץ ,web.configאתר את האלמנט > ,<pagesוהוסף לו את התכונה :theme >"<pages theme="DarkGrey ... ></pages מכיוון ש XML-בקובץ web.configרגישה לרישיות ,ודא שאתה מקליד themeבאותיות רגילות בלבד. ~ הגדרת ערכות נושא בתכנות .הדרך השלישית להגדרת ערכת נושא היא באמצעות קוד ,כלומר תכנות .בגלל הדרך שבה פועלת ערכת נושא ,עליך לעשות זאת מוקדם במחזור החיים של הדף .בתרגיל מאוחר יותר תראה כיצד זה פועל. תרגיל נסה זאת הבא מראה כיצד פועלות ערכות נושא .תלמד כיצד ליצור ערכה ,להוסיף את הוראות CSSהדרושות ,ולהגדיר את תצורת היישום כדי שישתמש בערכת הנושא החדשה. נסה זאת יצירת ערכת נושא חדשה עבור אתר אינטרנט בתרגיל זה תיצור שתי ערכות נושא Monochrome :ו .DarkGrey-לכל ערכה תוסיף את העיצוב והעריכה של ,CSSשיחולו על כל האתר באופן אוטומטי .תגדיר גם את האתר כך שישתמש באחת משתי הערכות ,ואז תעבור לערכה השנייה כדי לראות את ההבדלים. פרק :6יצירת אתרי Webבעלי מראה עקבי 227 .1הוסף לאתר את התיקייה המיוחדת .App_Themesכדי לעשות זאת :לחץ לחיצה ימנית על הפרויקט בסייר הפתרון ,ובחר .Theme ← Add ASP.NET Folderפעולה זו תיצור את התיקייה ,App_Themesוגם תגרום לכך שמייד תיווצר גם תת-תיקייה בשם ) Theme1ברירת המחדל( לערכת הנושא .הקלד Monochromeכשם חדש במקום שם ברירת המחדל .סייר הפתרון אמור להיראות עכשיו כמו בתרשים .6-14 .2העבר את הקובץ Styles.cssמהתיקייה Stylesלתיקייה החדשה .Monochromeאתה יכול לגרור את הקובץ ישירות אל התיקייה החדשה ,או להשתמש ב Ctrl+X-כדי לגזור את הקובץ ,ללחוץ על התיקייה ,Monochromeולהקיש Ctrl+Vכדי להדביקו בתוכה. עזוב את התיקייה הריקה ,Stylesנשתמש בה שוב מאוחר יותר. תרשים 6-14 מStyles.css- .3שנה את שם הקובץ לראות בבהירות מאין מגיע קוד .CSS ל ,Monochrome.css-כדי שמאוחר יותר תוכל .4מכיוון שהעיצוב והעריכה העיקריים יישלטו מכאן והלאה על ידי ערכת הנושא ,אין עוד צורך שהאלמנט > <linkבקטע > <headשל הדף הראשי יצביע על קובץ CSS הישן ,ואפשר להסיר אותו .לשם כך :פתח את הדף הראשי ,עבור לMarkup View - והסר מהקוד את השורה המוצללת הבאה. >"<head runat="server ><title>Welcome to Planet Wrox</title >"<asp:ContentPlaceHolder id="head" runat="server ></asp:ContentPlaceHolder ><link href="../Styles/Styles.css" rel="stylesheet" type="text/css" / ></head .5הצעד הבא הוא להחיל את ערכת הנושא על האתר כולו .כדי לעשות זאת :פתח את הקובץ web.configבשורש האתר ,אתר את האלמנט > <pagesוהוסף את התכונה .theme >"<pages theme="Monochrome .6כדי לבדוק את ערכת הנושא ,שמור את כל השינויים ובקש את הדף בדפדפן .עיצוב האתר חייב להיות זהה למה שהיה .אם מתקבלת הודעת שגיאה על כותרת דף לא חוקית ,חזור ל Visual Web Developer -ושנה את התכונה Titleשל ההנחיה Pageשל Default.aspxלמשהו כמו למשל."Welcome to Planet Wrox" : Default.aspx 228 סדנת לימוד ASP.NET 3.5 ~ במקום התקשרות לקובץ CSSמהדף הראשי ,קוד CSSכלול עכשיו במקור הדף באמצעות ערכת הנושא שהוגדרה בקובץ .web.configכדי לראות כיצד זה פועל ,פתח בדפדפן את קוד HTMLהמקורי של הדף .בראש תראה את הקוד הבא )העיצוב והעריכה שונו מעט כדי לשפר את הקריאות(. >"<html xmlns="http://www.w3.org/1999/xhtml ><head ><title>Untitled Page</title "<link href="App_Themes/Monochrome/Monochrome.css >type="text/css" rel="stylesheet" / ></head ><body ~ שים לב שלקטע > <headשל הדף הוכנס קישור מתיקיית ערכת הנושא Monochromeאל גיליון הסגנון ASP.NET runtime .עושה זאת לכל קובץ css שהוא מוצא בתיקייה של ערכת הנושא הפעילה .כדי למנוע מהדפדפן לכלול ולטעון קבצים לא נחוצים ,עליך לוודא שתיקיית ערכת הנושא נקייה .כמו כן תן את הדעת לכך שה <link>-התווסף בדיוק לפני תגית הסגירה >.</head הדבר מבטיח שקובץ הערכה יתווסף לאחר כל שאר הקבצים שאולי הוספת בעצמך )למשל באמצעות הדף הראשי( .הדבר נוגד את האופן שבו פועלת התכונה .styleSheetThemeמכיוון שסוג זה של ערכת נושא מאפשר להגדרות שלו להידרס ,הוא מיובא בראש הקובץ .על ידי כך ניתן מרחב פעולה לקבצי CSSאחרים שבאים בעקבותיו לשנות את המראה והתחושה של הדף. .7חזור אל Visual Web Developerופתח את קובץ הדף הראשי ב .Design View -שים לב שכל העיצוב נעלם ו VWD-מציגה עכשיו שוב את העיצוב והעריכה הבסיסיים של הדף .לרוע המזל VWD ,אינה מציגה את ערכת הנושא שהגדרת תוך שימוש בתכונה .themeאפשר להתגבר על מגבלה זו על ידי הגדרת styleSheetThemeבמקום .theme כדי לעשות זאת :פתח שוב את הקובץ ,web.configאתר את האלמנט > <pagesוהוסף את התכונה הבאה: >"<pages theme="Monochrome" styleSheetTheme="Monochrome .8שמור את כל השינויים שבוצעו ב ,web.config-סגור את הדף הראשי ופתח אותו שוב, ועבור ל .Design View -תראה שכעת VWDמחילה על הדפים את מידע העיצוב הנכון. .9כדי להוסיף ערכת נושא חדשה לאתר ,צור תיקייה חדשה תחת App_Themesוקרא לה .DarkGreyפתח את התיקייה שממנה שלפת את הקוד הנטען שמגיע עם הספר .אם עקבת אחר ההוראות בפרק ההקדמה ,תיקייה זו צריכה להיות ב .C:\BegASPNET\Resources-פתח את התיקייה Chapter 06ואחר כך את התיקייה .DarkGreyגרור את הקובץ DarkGrey.css מסייר הפתרון אל תיקיית ערכת הנושא DarkGreyב .VWD-סייר הפתרון צריך כעת להיות דומה לתרשים .6-15 בתרגיל מאוחר יותר תוסיף את התמונות שקובץ CSSפונה אליהן. פרק :6יצירת אתרי Webבעלי מראה עקבי 229 תרשים 6-15 .10פתח את הקובץ web.configפעם נוספת ,ושנה את שני המופעים של באלמנט > <pagesל .DarkGrey-שמור את השינויים שוב והקש .Ctrl+F5במקום הערכה Monochromeהירקרקה ,תראה עכשיו את האתר כשהערכה DarkGreyמוחלת עליו ,כפי שמוצג בתרשים .6-16 Monochrome תרשים 6-16 כיצד זה פועל בתרגיל זה החלת את ערכת הנושא Monochromeעל ידי שינוי האלמנט > <pagesבקובץ .web.configכשרכיב runtimeרואה שערכת נושא פעילה ,הוא סורק את תיקיית הערכה ומחפש קבצי ,cssוכולל בקטע > <headשל הדף קישור לכל הקבצים מסוג זה שמצא .במקרה של ערכת הנושא Monochromeהוא מוצא את הקובץ Monochrome.cssומוסיף אותו באופן אוטומטי לקטע > .<headתהליך זהה קרה כששינית את הערכה ל.DarkGrey- כדי לאפשר תמיכה בזמן עיצוב ב ,Visual Web Developer -עליך לשנות את גם בקובץ .web.configהחיסרון היחיד של צעד זה הוא שקובץ CSSהרלוונטי ייכלל עכשיו פעמיים :פעם אחת עבור Themeופעם שנייה עבור .styleSheetThemeמכיוון שאותו קובץ בדיוק נכלל פעמיים ,הדבר אינו משפיע על העיצוב והעריכה של האתר .כל הבוררים ) (selectorsבקובץ השני מבטלים את אלה של הקובץ הראשון .עם זאת ,אם אתה רואה בכפילות styleSheetTheme 230 סדנת לימוד ASP.NET 3.5 זו בזבוז של משאב המחשב ,מחק את התכונה שהאתר עולה לאוויר. styleSheetTheme מהקובץ web.config לפני העיצוב והעריכה של הדף השתנו באופן קיצוני כתוצאה מקוד CSSשבקובץ .DarkGrey.cssאם ברצונך לדעת איזה קוד CSSמכיל הקובץ ,ואיזה אלמנטים בדף שונו על ידו ,פתח את הקובץ ב .VWD-יש בו הערות רבות שמתארות כל בורר לפרטיו. הרחבת ערכות נושא פרט לקבצי cssו) skins-שבהם נדון לקראת סוף הפרק( ,ערכת נושא יכולה להכיל גם תמונות. השימוש הנפוץ ביותר של תמונות ערכת נושא הוא בהתייחסות אליהן מ .CSS-כדי שהשימוש בהן יהיה יעיל חשוב להבין כיצד CSSמתייחס לתמונות. בהתאם לעיצוב ,החיפוש אחר תמונה שבורר CSSמתייחס אליה הינו יחסי למיקום של קובץ ,CSSאלא אם כן אתה קובע נתיב חיפוש שמתחיל בלוכסן נטוי קדימה ) (/שמציין את שורש האתר .התבונן למשל ,בתיקייה App_Themesשמוצגת בתרשים .6-17 תרשים 6-17 כדי להתייחס לקובץ MenuBackground.jpgשבתיקייה Imagesשל ערכת הנושא ,Monochrome תוכל להוסיף את קוד CSSהבא לקובץ :Monochrome.css #MenuWrapper { ;)background-image: url(Images/MenuBackground.jpg } אם תרצה להתייחס לתמונה בתיקייה Imagesשבשורש האתר ,תשתמש בקוד CSSהבא: ;)background-image: url(/Images/MenuBackground.jpg שים לב ללוכסן הנטוי קדימה בחזית נתיב התמונה ,לציון שורש האתר .התחביר האחרון שימושי כשברצונך לשתף תמונות בין ערכות נושא שונות .שים את התמונות בתיקייה שמחוץ פרק :6יצירת אתרי Webבעלי מראה עקבי 231 פרק 10 ASP.NET AJAX הנושא "החם" בשנים האחרונות בתחום פיתוח webהוא ,ללא ספק) Ajax ,קיצור של .(Asynchronous JavaScript And Xmlלמרות שהטכנולוגיות שמניעות את Ajaxאינן חדשות ונמצאות בשוק כבר כמה שנים ,הרי שרק בתחילת 2005הן זכו לשם הרשמי .שימוש בAjax- מאפשר לדפי צד-לקוח להחליף נתונים עם השרת על ידי קריאות אסנכרוניות .קרוב לוודאי שהתכונה הפופולרית ביותר של Ajaxהיא נטרול ההבהוב שמתרחש עקב פעולת ה,postback- הדבר מתאפשר בזכות העברת נתונים חלקית לשרת מבלי לרענן את הדף כולו. כדי לשפר את האתר עם תכונות ,Ajaxבאפשרותך לבחור מבין כמה סביבות Ajaxשונות .רבות מסביבות אלו מציעות מערכת של תכונות וכלים שכוללת סביבת JavaScriptלצד-לקוח כדי לאפשר Ajaxבדפדפן ,קוד JavaScriptלתקשורת עם השרת ,ופקדי שרת שמיועדים לשילוב עם דפי .ASP.NETבמערכת ASP.NETזמינות כמה סביבות שונות של ,Ajaxאבל הבולטת ביניהן היא ,ASP.NET AJAXמכיוון שהיא מגיעה יחד עם סביבת העבודה ASP.NET 3.5וVisual Web - Developerומכילה כמה פקדים נוספים ליצירת ממשקי משתמש עשירים ואינטראקטיביים. בנוסף לחלק של Ajaxשמבוסס על פקדי שרת ,סביבת העבודה ASP.NET AJAXכוללת גם סביבת צד-לקוח עשירה .סביבת עבודה זו מאפשרת ל JavaScript-לתקשר עם השרת על ידי שירותי .Webהיא גם מאפשרת גישה לדף צד-לקוח בשלמותו ,תוך שימוש בדגם קוד אינטואיטיבי שפועל באופן שאינו תלוי בדפדפן היעד שלך. בגרסאות קודמות של ASP.NETושל Visual Web Developerהייתה Ajaxזמינה כתוסף שנטען בנפרד .כיום משולבת Ajaxלחלוטין ב VWD-וב ,ASP.NET-והדבר מקל על הפעלתה. בפרק זה תלמד בהרחבה על הנושאים הבאים הקשורים ל:Ajax- ~ שימוש בפקד UpdatePanelלמניעת הבהוב דף ).(page flicker ~ הבנת הפקד ScriptManagerשמאפשר את הפונקציונליות של .Ajax ~ שימוש בפקד UpdateProgressכדי ליידע את המשתמשים לגבי התקדמות פעולת .Ajax ~ שימוש ב ַמזנ ֵקים ) (triggersובפקד .UpdatePanel ~ יצירת שירותי Webנגישים לתסריט )סקריפט( צד-לקוח. 340 סדנת לימוד ASP.NET 3.5 Timer כדי לעורר את העדכון של פקדים מסוג עם סיום הלימוד בפרק זה ,תכיר היטב את פקדי השרת השונים שמציעה סביבת העבודה ASP.NET AJAXואת דרך הפעלתם .בנוסף ,תהיה לך הבנה בסיסית על יצירת שירותי Web בעולם של ,ASP.NETוכיצד ניתן לקרוא להם מקוד JavaScriptשל צד-לקוח תוך שימוש בסביבת העבודה Ajaxשל צד-לקוח. מבוא לAjax- המושגים שעומדים מאחורי Ajaxאינם חדשים ,וכבר ידועים מזה שנים .עוד מאז גרסת הדפדפן Internet Explorer 5כללו הדפדפנים את האובייקט XMLHttpRequestשמאפשר לJavaScript- לקרוא לשרת לצורך שליחה וקבלה של נתונים. הדברים תפסו תאוצה כשהוכנס המונח Ajaxלשימוש .במטרה להקדים את השאר ,החלה מיקרוסופט בבניית ,ASP.NET AJAXשהינה סביבת העבודה של Ajaxשמשולבת כיום לחלוטין ב ASP.NET-וב .Visual Web Developer 2008 -סביבת עבודה זו מציעה כמה תועלות שמתכנת אתרי אינטרנט יכול לנצל כדי ליצור יישומים שמגיבים היטב ASP.NET AJAX .מאפשרת במיוחד את הפעולות הבאות: ~ יצירת דפים חופשיים מהבהוב שמאפשרים רענון חלקי שלהם מבלי לטעון את הדף כולו מחדש ,ומבלי להשפיע על חלקים אחרים שלו. ~ אספקת משוב למשתמשים תוך כדי רענון הדף. ~ עדכון קטעים בדף וקריאה לקוד צד-שרת בהתאם ללוח זמנים קבוע. ~ גישה לשירותי Webבצד-שרת ,ועבודה עם הנתונים שהם מחזירים. ~ שימוש בסביבת העבודה העשירה של צד-לקוח כדי לגשת ולשנות אלמנטים בדף. במהלך הפרק תלמד כיצד להשתמש בסביבת העבודה ASP.NET AJAXכדי ליצור יישומי אינטרנט בעלי ממשק משתמש עשיר וידידותי Ajax .עצמה היא נושא רחב שלא ניתן למיצוי בפרק אחד .אם ברצונך לדעת יותר על ,ASP.NET AJAXתמצא מידע רב ברשת ,ובכתובת: www.asp.net/AJAXתוכל למצוא מאמרים וקטעי וידאו בנושא. היפה ב ASP.NET AJAX -הוא שקל מאוד להתחיל להשתמש בתוכנה .יצירת דף חופשי מהבהוב היא עניין של גרירת כמה פקדים מארגז הכלים ושחרורם בדף .כשתבין את יסודות סביבת העבודה ,Ajaxתוכל להרחיב את הידע שלך על ידי התבוננות בנושאים מתקדמים יותר ,כמו קריאה לשירותי Webושימוש בסביבת העבודה העשירה של צד-לקוח לעבודה אינטגרטיבית עם הדף. שימוש ב ASP.NET Ajax -בפרויקטים שלך בגרסאות קודמות של VWDושל ASP.NET AJAXהיית צריך לשנות את הקובץ באופן ידני כדי לאפשר את פעולת Ajaxביישום מבוסס .ASP.NETאם עבדת עם Ajaxבעבר בפרויקטים של ,ASP.NETתשמח ללמוד שהדבר אינו נחוץ עוד .בכל פעם שאתה יוצר אתר web.config פרק ASP.NET AJAX :10 341 אינטרנט חדש על ידי שימוש בתיבת הדו-שיח ,New Web Site ← Fileהאתר כבר מוגדר לעבודה מול ,Ajaxכלומר ,אתה יכול להתחיל להשתמש ב Ajax-מייד .ארגז הכלים מכיל כיום קטגוריה נוספת שכוללת את פקדי Ajaxהזמינים ,ואפשר להשתמש בהם מייד מההתחלה. יצירת דפים חופשיים מהבהוב ניתן להשתמש בפקד השרת UpdatePanelכדי למנוע postbacksמלאים של דפי ,ASPXוכדי לעדכן רק חלקים נבחרים בדף .כדי שפקד זה יפעל נכון ,אתה זקוק גם לפקד .ScriptManager אם בכוונתך להשתמש בפונקציונליות של Ajaxבדפי ASPXרבים ,כדאי להציב את הפקד ScriptManagerבדף הראשי .בדרך זו הוא יהיה זמין לכל הדפים שמבוססים על דף ראשי זה. פקד זה ופקדים אחרים שקשורים ל ,Ajax-נמצאים בקטגוריה AJAX Extensionsשל ארגז הכלים ,שמוצגת בתרשים .10-1סמוך לסיום הפרק תקבל הסבר מפורט על ,ScriptManager ותגלה מה הוא עושה ולמה הוא משמש. תרשים 10-1 אם אינך רואה את הפקדים ScriptManagerו UpdatePanel-בארגז הכלים ,לחץ לחיצה ימנית על הקטגוריה AJAX Extensionsשל ארגז הכלים ובחר .Choose Itemsאחר כך בחר בשני הפקדים מהרשימה שבכרטיסייה .NET Framework Components בשני הסעיפים הבאים תכיר את הפקדים ScriptManagerו .UpdatePanel-אחר כך תראה כיצד להשתמש בפקדים אלה בדפים שלך .בסעיפים מאוחרים יותר תכיר את הפקדים Timer ,UpdateProgressו.ScriptManagerProxy - הפקד UpdatePanel הפקד UpdatePanelהוא רכיב מפתח ביצירת דפים חופשיים מהבהוב .כדי ליישמו בצורה הבסיסית ביותר ,עטוף את התוכן שברצונך לעדכן בפקד ,והוסף לדף פקד ,ScriptManagerובזה סיימת .בכל פעם שאחד הפקדים שבתוך UpdatePanelגורם postbackלשרת ,תתבצע פנייה חלקית לשרת ורק התוכן שרשום בתוך UpdatePanelיעודכן. הבה נראה מהן הבעיות שפותר הפקד UpdatePanelואיך הוא מתנהג בדף לקוח .תרגיל נסה זאת הבא מציג דוגמה פשוטה של שימוש בפקד כדי למנוע הבהוב של דף במהלך .postbacks 342 סדנת לימוד ASP.NET 3.5 נסה זאת הוספת הפקד UpdatePanelלדף בתרגיל זה תוסיף את הפקדים Labelו Button-לדף .בכל פעם שתלחץ על הלחצן בדפדפן, יעודכן המאפיין Textשל Labelעם התאריך והשעה הנוכחיים של השרת .בדרך כלל מלווים postbacksבהבהוב של הדף .כדי למנוע זאת ,עטוף את הפקדים שבדף ב ,UpdatePanel-ותראה כיצד פקד זה משפיע על ההתנהגות. .1ב ,VWD-פתח את הפרויקט Planet Wroxבכתובת .C:\BegASPNET\Site .2צור קובץ חדש בשם UpdatePanel.aspxבתיקייה .Demosודא שהקובץ מבוסס על דף הבסיס המרכזי שיצרת קודם ,ושהוא משתמש בשפת התכנות שלך .קבע את Titleשל הדף ל.UpdatePanel Demo - .3העבר את הדף החדש למצב Design Viewוגרור פקד Labelופקד Buttonמארגז הכלים אל שומר המקום .cpMainContentאם ContentPlaceHolderנהיה קטן פתאום לגודל של ,Labelשחרר את Buttonמעל הפקד .Labelהפקד Buttonיוצב במקרה זה לפני ,Labelאבל אם תגרור כעת שוב את Labelעל הפקד ,Buttonהשניים יחליפו מקומות. לחילופין ,בחר את Labelעל ידי לחיצה אחת עליו ,ואז לחץ על מקש החץ הימני פעם אחת כדי להציב את הסמן ליד .Labelאם תקיש כעת Enterכמה פעמים ,תיצור יותר מקום ב.ContentPlaceHolder- .4השתמש בטבלת המאפיינים כדי לנקות את המאפיין Textשל הפקד .Labelלביצוע, לחץ לחיצה ימנית על המאפיין Textבטבלת המאפיינים ,ובחר .Resetכעת תקבל את סימני העריכה הבאים: >"<asp:Content ID="Content2" ContentPlaceHolderID="cpMainContent" runat="Server ><asp:Label ID="Label1" runat="server"></asp:Label ><asp:Button ID="Button1" runat="server" Text="Button" / ></asp:Content .5ב ,Design View -לחץ לחיצה כפולה על שטח הדף שצבעו אפור ומצביע על קריאה בלבד .הפעולה תגרום להגדרת מטפל לאירוע Loadשל הדף .הוסף את הקוד הבא למטפל שיצרה עבורך :VWD VB.NET _ )Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs Handles Me.Load )(Label1.Text = System.DateTime.Now.ToString End Sub C# )protected void Page_Load(object sender, EventArgs e { ;)(Label1.Text = System.DateTime.Now.ToString } פרק ASP.NET AJAX :10 343 פקדים חדשים שהוצגו בASP.NET 3.5 - יחד עם ,LINQהציגה מיקרוסופט ב ASP.NET 3.5 -שלושה פקדים חדשים שמאפשרים לבנות ממשקי אינטרנט עשירים בזמן קצר ביותר ועם מעט מאוד קוד ,אם בכלל .שניים מהם מספקים ממשק חזותי בדפי ,ASP.NETבעוד השלישי פועל כגשר בין הפקדים קשורי-הנתונים ומקור הנתונים הבסיסי .הטבלה הבאה מציגה בקצרה את שלושת הפקדים החדשים. פקד LinqDataSource ListView DataPager תיאור כמו עם SqlDataSourceשראית בפרקים קודמים ,גם הפקד פועל כגשר בין הפקדים קשורי-הנתונים לבין מקורות הנתונים הבסיסיים. מקור נתונים זה יכול להיות כל אחד מהסוגים שבהם תומכת ,LINQכולל בסיסי נתונים מסוג ,SQL SERVERמסמכי ,XMLואפילו מערכים ואוספים. פרק זה עוסק בפקד LinqDataSourceמנקודת המבט של LINQ to SQLבלבד. LinqDataSource הפקד ListViewמספק ממשק חזותי שמאפשר להציג ,להכניס ,לערוך ולמחוק פריטים בבסיס נתונים ,תוך מתן שירותי CRUDמלאים. משתמשים בפקד DataPagerביחד עם ,ListViewאשר מאפשר לעמד את הנתונים במקור הנתונים ולהזין למשתמש מדי פעם כמויות נתונים קטנות יותר ,ולא מספר רב של רשומות בבת אחת. הסעיפים הבאים מספקים מידע נוסף על פקדים חדשים אלה ,ובכמה תרגילי נסה זאת הבאים תלמד כיצד להשתמש בהם. הפקד LinqDataSource כפי שמשתמע משמו ,הפקד LinqDataSourceהוא קרוב משפחה של SqlDataSourceושל פקדי מקור נתונים אחרים .היחס בין הפקד LinqDataSourceלבין LINQהוא כמו היחס בין הפקד SqlDataSourceלבין מקורות נתונים מבוססי .SQL-הפקד מספק דרך הצהרתית לגשת למקורות נתונים מאופשרי .LINQ-בדיוק כמו הפקד ,SqlDataSourceגם הפקד LinqDataSourceמאפשר גישה קלה לפעולות ,CRUDוהוא גם מקל מאוד על מיון וסינון נתונים .הטבלה הבאה מתארת את המאפיינים העיקריים של פקד חדש זה .התיאורים אמורים לתת לך מושג טוב על יכולות הפקד. מאפיין EnableDelete EnableInsert EnableUpdate ContextTypeName תיאור מציין אם הפקד מספק יכולות אוטומטיות למחיקה ,הכנסה ועדכון נתונים אם לאו .כשהוא במצב מאופשר ,תוכל להשתמש בפקד יחד עם פקדים קשורי-נתונים כמו GridViewכדי לתמוך בניהול נתונים .תראה זאת בפעולה מאוחר יותר. השם של המחלקה DataContextשעל הפקד להשתמש בה .בדוגמאות שבספר זה ,שם הסוג הזה הוא .PlanetWroxDataContext פרק LINQ :13 469 תיאור מאפיין TableName שם הטבלה מתרשים LINQ to SQLשברצונך להשתמש בה ,למשל .Reviews ביחד עם פקד קשור-נתונים מספק LinqDataSourceבאמצעות LINQגישה מלאה לבסיס הנתונים .SQL SERVERהתרגיל הבא יראה לך כיצד להשתמש בפקד בדפי .ASPX נסה זאת יישום פשוט של LinqDataSource בתרגיל זה תתחיל לבנות את היכולת Gig Picsשל ,Planet Wroxחלק של אתר האינטרנט שבו המשתמשים יכולים להעלות את התמונות שצילמו בזמן הופעות של הלהקות האהובות עליהם. תלמד כיצד לאפשר למשתמש ליצור אלבום תמונות חדש שפועל כשומר מקום עבור התמונות שמועלות .תלמד כיצד להשתמש ב LinqDataSource-וב DetailsView-כדי ליצור ממשק משתמש שמאפשר למשתמש להכניס את שם האלבום למערכת .בתרגילים מאוחרים יותר תראה כיצד להוסיף תמונות לאלבום .בסיס הנתונים יכיל רק הפניה לתמונה; התמונה עצמה תאוחסן בדיסק, כפי שתראה מאוחר יותר. .1הוסף את שתי הטבלאות הבאות לבסיס הנתונים שלך תוך שימוש בחלון סייר בסיס הנתונים .לפרטים נוספים בדבר יצירת טבלאות ,מפתחות ראשיים ,ועמודות זהות ,פנה לפרק .11אם אין ברצונך ליצור את הטבלאות באופן ידני ,תוכל להשתמש בבסיס הנתונים שמגיע עם הקוד המקור של פרק זה. אלבום תמונות שם עמודה סוג נתונים מאפשר ?Nulls תיאור Id Int No IDייחודי )זהות ומפתח ראשי( של אלבום התמונות. Name )nvarchar(100 No שם אלבום התמונות. תמונה שם עמודה סוג נתונים מאפשר ?Nulls תיאור Id int No IDייחודי )זהות ומפתח ראשי( של התמונה. Description )nvarchar(300 No טקסט קצר שמתאר את התמונה. Tooltip )nvarchar(50 No תיאור כלי שמוצג כשעוברים על התמונה. ImageUrl )nvarchar(200 No הנתיב הווירטואלי אל התמונה בדיסק. PhotoAlbumId int No IDשל אלבום התמונות שתמונה זו שייכת אליו. 470 סדנת לימוד ASP.NET 3.5 עבור שתי הטבלאות ,הגדר את העמודה Idכמפתח ראשי ,על ידי לחיצה עליה פעם אחת ואז לחיצה על הסמל עם המפתח הצהוב בסרגל הכלים .Table Designerבנוסף ,הפוך עמודה זו לעמודת הזהות ) (Identityשל הטבלה על ידי הגדרת המאפיין Is Identityשלה ב Column Properties Grid -ל .Yes-פנה לפרק 11אם אינך זוכר כיצד לעשות זאת. .2בסייר בסיס הנתונים ,פתח את תרשים בסיס הנתונים שיצרת בפרק ,11והוסף אליו את שתי הטבלאות החדשות )כדי לעשות זאת ,לחץ לחיצה ימנית על התרשים ובחר Add .(Tableאחר כך גרור את העמודה Idמהטבלה PhotoAlbumאל העמודה PhotoAlbumId של הטבלה .Pictureלחץ OKפעמיים כדי לגרום למעצב ליצור קשר בין הטבלה PhotoAlbumלבין הטבלה ,Pictureכפי שמוצג בתרשים .13-8 תרשים 13-8 .3שמור וסגור את התרשים .לחץ בטבלאות PhotoAlbumו.Picture- OK כדי לאשר את השינויים שעומדים להיערך .4מהתיקייה ,App_Codeפתח את הקובץ PlanetWrox.dbmlשל .LINQ to SQL Classes מחלון סייר בסיס הנתונים גרור את שתי הטבלאות החדשות אל התרשים .התרשים שלך אמור להיראות כעת כמו תרשים .13-9שמור את השינויים וסגור את התרשים. .5צור קובץ ASPXחדש בשורש האתר ,וקרא לו .NewPhotoAlbum.aspxודא שהוא מבוסס על התבנית המותאמת אישית שגורמת למחלקה קוד ברקע לרשת מהמחלקה .BasePageקבע לדף את הכותרת .Create New Photo Album תרשים 13-9 פרק LINQ :13 471 תרשים 13-10 .6העבר את הדף למצב .Design Viewמהקטגוריה Dataשל ארגז הכלים גרור פקד DetailsViewושחרר אותו בשומר המקום .cpMainContentפתח את הלוח Smart Tasksשל הפקד ,DetailsViewומהרשימה הנפתחת Choose Data Sourceבחר >.<New data source בתיבת הדו-שיח Data Source Configuration Wizardלחץ על הסמל LINQואז לחץ .OK בתיבת הדו-שיח ,Choose a Context Objectודא שמחלקה PlanetWroxDataContext נבחרה ,ולחץ Nextכדי לעבור למסך ,Configure Data Selectionשמוצג בתרשים .13-10 מהרשימה הנפתחת Tableבחר .PhotoAlbums תיבת דו-שיח זו פועלת בצורה דומה לאשף SqlDataSourceשראית בפרקים קודמים. היא מאפשרת לבחור טבלה מהרשימה הנפתחת .Tableלצורך תרגיל זה ודא שמהרשימה הנפתחת בחרת .PhotoAlbumsבצד הימני מופיעים לחצנים שתפקידם ליצור מסננים )תוך שימוש בלחצן ,(Whereלקבוע את סדר המיון )תוך שימוש בלחצן ,(OrderByולומר ל LinqDataSource-אם לאפשר ,או לא לאפשר ,הכנסה ,עדכון ומחיקה של נתונים. ~ לצורך תרגיל זה נאפשר הכנסת נתונים .לפיכך ,לחץ על הכנסות ,כפי שמוצג בתרשים .13-11 תרשים 13-11 472 סדנת לימוד ASP.NET 3.5 Advanced ואפשר כדי לסגור אתFinish ולחץ,Advanced Options כדי לסגור את המסךOK לחץ .אשף התצורה בלוח Enable Inserting על ידי סימון הפריט,לבצע הכנסה DetailsView ~ אפשר לפקד.7 . של הפקדSmart Tasks ממצב DefaultMode ושנה את DetailsView פתח את טבלת המאפיינים של הפקד.8 .Insert- לReadOnly ועבור, פתח את טבלת המאפיינים שלו,LinqDataSource בחר בפקד,Design View - ב.9 .13-12 כפי שמוצג בתרשים,Inserted לחץ לחיצה כפולה על האירוע.Events לקטגוריה 13-12 תרשים הקוד מכוון את המשתמש לדף חדש ברגע. הכנס את הקוד הבא אל מטפל האירוע.10 . לאלבום התמונות בבסיס הנתוניםInsert שבוצעה פעולת VB.NET Protected Sub LinqDataSource1_Inserted(ByVal sender As Object, _ ByVal e As System.Web.UI.WebControls.LinqDataSourceStatusEventArgs) _ Handles LinqDataSource1.Inserted Dim myPhotoAlbum As PhotoAlbum = CType(e.Result, PhotoAlbum) Response.Redirect(String.Format("ManagePhotoAlbum.aspx?PhotoAlbumId={0}", _ myPhotoAlbum.Id.ToString())) End Sub C# protected void LinqDataSource1_Inserted(object sender, LinqDataSourceStatusEventArgs e) { PhotoAlbum myPhotoAlbum = (PhotoAlbum)e.Result; Response.Redirect(string.Format("ManagePhotoAlbum.aspx?PhotoAlbumId={0}", myPhotoAlbum.Id.ToString())); } הזן שם חדש. בדפדפןNewPhotoAlbum.aspx ובקש את הדף, שמור את כל השינויים.11 ולחץSonic Youth Playing Daydream Nation Live in London לאלבום התמונות כמו )מפני שטרם יצרת אתPage not found כעת תקבל הודעת שגיאה.Insert על הלחצן של אלבום התמונות בסרגלID- אבל תוכל לראות את ה,(ManagePhotoAlbum.aspx .הכתובת של הדפדפן 473 LINQ :13 פרק כיצד זה פועל התחלת תרגיל זה בהוספת הטבלאות Pictureו PhotoAlbum-הן לבסיס הנתונים והן למחלקה .to SQLטבלאות אלו משמשות לאחסון נתונים אודות אלבומי תמונות והתמונות שהם מכילים .כל אחת מהתמונות שייכת ל PhotoAlbum-שאליו היא פונה על ידי PhotoAlbumIdשלה שמצביע על העמודה Idשל הטבלה PhotoAlbumבבסיס הנתונים .הטבלה Pictureעוצבה כדי להחזיר נתונים אודות התמונה בלבד .קובץ התמונה עצמו מאוחסן בדיסק כפי שתראה מאוחר יותר. LINQ כדי לאפשר למשתמשים ליצור אלבום תמונות חדש ,הוספת לדף פקד .DetailsViewכדי לוודא שניתן להשתמש בפקד להכנסת אלבומי תמונות חדשים אפשרת הכנסה ,ואז הגדרת את DefaultModeל .Insert-הדבר כופה על הפקד לעבור למצב insertבמקום מצב ברירת המחדל שהוא קריאה-בלבד .אחר כך חיברת LinqDataSourceלפקד DetailsViewאשר דואג להכנסת אלבום התמונות לטבלה .PhotoAlbum הקוד עבור הפקד LinqDataSourceנראה דומה לזה: "<asp:LinqDataSource ID="LinqDataSource1" runat="server "ContextTypeName="PlanetWroxDataContext" EnableInsert="True >"OnInserted="LinqDataSource1_Inserted" TableName="PhotoAlbums ></asp:LinqDataSource אם אתה משתמש ב ,VB.NET-הקוד לא יכיל הגדרה של התכונה .OnInsertedשים לב עד כמה ישיר LinqDataSourceבתרחיש זה :כיוונת אותו אל ,DataContextובדוגמה שלנו אל ,PlanetWroxDataContextאפשרת הכנסה על ידי הגדרת EnableInsertל ,True-והגדרת את ,TableNameכדי שהפקד ידע באיזו טבלה ממודל האובייקטים להשתמש .להכנסת נתונים פשוטה ,זה כל מה שעליך לעשות .כשהדף נטען בדפדפן ,ה DetailsView-מרנדר ממשק משתמש שמאפשר להזין שם חדש עבור אלבום התמונות .כשלוחצים ,Insertנאספים הנתונים שהוזנו ומועברים ל .LinqDataSource-פקד זה ,בתורו ,יוצר מופע חדש של PhotoAlbumושומר אותו בבסיס הנתונים על ידי שליחת משפט INSERTשל SQLלבסיס הנתונים. התנהגות רגילה זו אינה מספקת במצבים רבים .ייתכן שתצטרך לאמת את הנתונים שמוכנסים, או שתצטרך לשנות את הנתונים הממשיים לפני שהם נשלחים לבסיס הנתונים .דוגמה למקרה האחרון תראה בתרגיל נסה זאת מאוחר יותר ,כשתעלה תמונות לשרת .דרישה שכיחה אחרת היא אחזור IDשל הפריט החדש שנוצר ,שנשלח אל הדף הבא .הדוגמה משתמשת בקוד שלהלן כדי להשיג זאת: VB.NET )Dim myPhotoAlbum As PhotoAlbum = CType(e.Result, PhotoAlbum _ Response.Redirect(String.Format("ManagePhotoAlbum.aspx?PhotoAlbumId={0}", )))(myPhotoAlbum.Id.ToString C# ;PhotoAlbum myPhotoAlbum = (PhotoAlbum)e.Result Response.Redirect(string.Format("ManagePhotoAlbum.aspx?PhotoAlbumId={0}", ;)))(myPhotoAlbum.Id.ToString 474 סדנת לימוד ASP.NET 3.5 הדבר היפה בפקד LinqDataSourceהוא שביכולתו לפעול עם אובייקטים בעלי סוג מובהק, כשהמבנה ממופה לטבלאות שהוספת למודל האובייקטים .במקרה זה אתה פועל עם מופעים ממשיים של ,PhotoAlbumהמחלקה שמייצגת את אלבומי התמונות באתר האינטרנט .הדבר מאפשר לאחזר את אלבום התמונות שהכנסת לבסיס הנתונים באירוע Insertשל פקד מקור הנתונים .הארגומנט ' 'eחושף מאפיין בשם Resultשמכיל הפניה לאלבום התמונות החדש .על ידי ) castingהמרה( של המאפיין לאובייקט PhotoAlbumממשי )תוך שימוש בCType- ב ,VB.NET-או כתיבת שם המחלקה בסוגריים לפניו ב ,(C#-תוכל לגשת למאפיינים של ,PhotoAlbumכולל ה ID-החדש שלו שנוצר על ידי בסיס הנתונים )על ידי הגדרות Identity בעמודה (IDואוחסן במאפיין Idשל ה .PhotoAlbum-השורה האחרונה במטפל האירוע מעבירה את המשתמש לדף הבא ושולחת את ה ID-של אלבום התמונות החדש במחרוזת השאילתה. כעת ,כשאתה יכול להכניס אלבומי תמונות חדשים ,הצעד הלוגי הבא הוא הוספת תמונות לאלבום התמונות .בתרגיל הבא תלמד כיצד ליצור ממשק משתמש עם הפקד ListViewשמאפשר למשתמש להעלות תמונות חדשות לאלבום התמונות. הצגת הפקד ListView עד כה ראית כמה פקדים קשורי-נתונים בפעולה .ראית את GridViewרב העוצמה שתומך בעדכונים ,מחיקות ,מיון ודפדוף נתונים ,אבל חסר יכולת הכנסת נתונים ומייצר כמות גדולה של סימני עריכה של .HTMLראית גם את הפקד Repeaterשנותן שליטה מדויקת על קוד HTMLשנוצר, אבל חסר את רוב התכונות המתקדמות שיש לשאר פקדי הנתונים כמו עדכון ומחיקה ,ויכולות מיון וסינון .ראית גם את DetailsViewשמאפשר להכניס או לעדכן רשומה אחת בכל פעם. הפקד ListViewהוא השילוב המנצח" :הטוב שבכל העולמות" .הוא משלב את קבוצת התכונות העשירה של GridViewעם השליטה בסימני העריכה שנותן .Repeaterפקד ListViewמאפשר להציג נתונים במגוון עיצובים ,כולל טבלה )שורות ועמודות כמו ,(GridViewכרשימת תבליטים )בדומה לאופן שבו הגדרת את Repeaterמוקדם יותר בפרק( ,ובפורמט ,Flowשבו כל הפריטים מוצבים ב HTML-בזה אחר זה ,וההחלטה בידך אם לכתוב CSSשיעצב את הנתונים. פקד ListViewמציג ומנהל את הנתונים שלו באמצעות תבניות שמאפשרות שליטה ברבות מהתצוגות השונות של הנתונים הבסיסיים שהוא מציג .הטבלה הבאה מתארת את כל התבניות הזמינות שביכולתך להוסיף בסימני העריכה של הדף כתולדה ישירה של הפקד .ListView תבנית ><LayoutTemplate תיאור התבנית משמשת את הפקד כמכולה .מאפשרת להגדיר את המקום שיוצבו בו כל הפריטים היחידים )למשל.(Reviews , פריטי הנתונים ,שמוצגים על ידי ItemTemplate ו AlternatingItemTemplate-מוספים כבנים של מכולה זו .יותר מאוחר תראה כיצד זה פועל. פרק LINQ :13 475 נספח ד' Silverlight )נכתב על ידי אלכס גולש( נספח זה עוסק בנושאים הבאים: ~ מהו ?Silverlight ~ XAML ~ סגנונות ותבניות ~ קישור נתונים מהו ?Silverlight Silverlightהוא יישום חדש של סביבת העבודה NETשמשמש לבניית הדור הבא מערכות אינטרנט ,המאפשרות חוויות מדיה וממשק משתמש עשיר .היישום ניתן להפעלה עם דפדפנים שונים ובפלטפורמות שונות .היישום מתבצע בכל הדפדפנים הנפוצים כולל Internet Explorer של מיקרוסופט Firefox ,של Safari ,Mozillaשל Appleו ,Google Chrome -באמצעות plug-in המותקן בדפדפן שהינו קטן מאוד )כ (4.5MB-ולפיכך התקנתו מהירה מאוד. Silverlightהוא שילוב של טכנולוגיות שונות לפלטפורמת פיתוח אחת ,שמאפשרת לבחור את הכלים ושפת התכנות שברצונך להשתמש בהם Silverlight .משתלב באופן חלק עם JavaScript וקוד AJAXקיימים ,כדי להשלים פונקציונליות שכבר יצרת. (eXtensible Application Markup Language) XAMLהיא הבסיס ליכולות התצוגה של ,Silverlightועקבית עם ,(Windows Presentation Foundation) WPFטכנולוגיית התצוגה בסביבת העבודה XAML .NET 3.0מאפשרת ליצור ממשק משתמש יוצא דופן -ממשק משתמש שמתבסס על גרפיקת וקטורים ,שכל חלק ממנה יכול לארח כמעט כל חלק אחר באופן טבעי. נספח ד'Silverlight : 747 יישום לדוגמה: 748 סדנת לימוד ASP.NET 3.5 ממשק משתמש עשיר: נספח ד'Silverlight : 749 להלן כמה מאפיינים בולטים של :Silverlight .1חווית וידאו מהאיכות הגבוהה ביותר .הייה נכון לצפות בכמה סרטי וידאו מהאיכות הטובה ביותר שראית אי-פעם ,כולם מוטבעים באתרי אינטרנט גרפיים באיכות גבוהה. טכנולוגיות ה streaming media -שבהן משתמשת מיקרוסופט כיום ,הן אותן טכנולוגיות ששימשו עבור ,VC-1ה codec-שהניע את BluRayו.HD DVD - .2מגוון פלטפורמות )מערכות הפעלה ודפדפנים( .סוף-סוף קיימת היכולת לבנות יישומי אינטרנט שיפעלו בכל דפדפן ובסביבת כל מערכת הפעלה .בעת שחרורו מבטיח Silverlightעבודה הן עם Macוהן עם !Windowsופרויקט Monoכבר הבטיח תמיכה ב!Linux- .3מפתחים ומעצבים גרפיים יכולים לשחק יחד! מפתחים שמכירים את וסביבת ,NETיוכלו לפתח במהירות יישומי Silverlightמדהימים .יישומים אלה יפעלו הן בסביבת Macוהן בסביבת .Windowsמפתחים יוכלו ,סוף-סוף ,להתמקד ב back-end-של ליבת היישום ,ולהשאיר את הפן החזותי לצוות העיצוב הגרפי שישתמש בעוצמת .XAML Visual Studio .4זול יותר Silverlight .הינו הדרך הזולה ביותר שקיימת כיום להזרמת קבצי וידאו באינטרנט ,ובאיכות הגבוהה ביותר האפשרית .הרישוי פשוט ביותר .כל מה שאתה צריך הוא IISבשרת .Windows .5תמיכה בשפות צד שלישי .מפתחים יוכלו מעתה להשתמש ב,Ruby- ו EcmaScript-כשהם משתמשים בעוצמה של .Dynamic Language Runtimeפירוש הדבר שמפתח Rubyיוכל לפתח יישומי Silverlightכשהוא נהנה מיתרונות סביבת העבודה .NET Python 750 סדנת לימוד ASP.NET 3.5
© Copyright 2024