1 / 41

מסע ה NET.

מסע ה NET. טכנולוגיה מבית היוצר של מיקרוסופט שמיועדת לפיתוח אפליקציות לרשת . הדפים שנוצרים מתורגמים בעזרת מנוע מיוחד המותקן בצד השרת ומוחזרים ללקוח כדפי HTML . כמו כל טכנולוגיות .NET גם ASP.NET היא OOP . מודל תכנות מונחה אירועים

imala
Download Presentation

מסע ה NET.

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. מסע ה NET. • טכנולוגיה מבית היוצר של מיקרוסופט שמיועדת לפיתוח אפליקציות לרשת . • הדפים שנוצרים מתורגמים בעזרת מנוע מיוחד המותקן בצד השרת ומוחזרים ללקוח כדפי HTML. • כמו כל טכנולוגיות .NET גם ASP.NET היא OOP . מודל תכנות מונחה אירועים • ASP.NET אינה שפת תכנות אלא טכנולוגיה שמשתמשת במספר שפות תכנות כמו C#, VB.NET J#, JSCRIPT.NET וכו...

  2. שכבת התצוגה ממשק המשתמש שכבת הביניים הלוגיקה העסקית שרות מסד הנתונים מודל שלוש השכבות בפיתוח יישומים המודל מחלק כל יישום לשלושה רבדים : *שכבת התצוגה (Presentation layer) או ממשק המשתמש (User interface) *שכבת הביניים – הלוגיקה העסקיתBusiness Logic Layer *שכבת המידע – מסד הנתונים + Data Access layer *שכבה נוספת- WS laye יתרונות גמישות מערכת , כך שניתן לשדרג כל אחת מהשכבות ללא תלות בשכבה אחרת. קלות פיתוח המערכת. עדכון קוד התכנית הוא פשוט ומרוכז במקום אחד. שימוש חוזר בקוד הופך את היישום לקטן ופשוט יותר. תחזוקת המערכת פשוטה יותר.

  3. כאשר הלקוח מבקש את הדף בפעם השנייה, ה- CLR בודק אם היה שינוי בקוד. אם כן asp.net תבצע טעינה מחדש לדף. • אם בבקשה השניה לא היה שינוי בקוד, asp.net לא תבצע טעינה וזמן החזרת הדף ללקוח יקטן בצורה משמעותית.

  4. MyPage.aspx – כתוב בפורמט HTML .-העיצוב –לקוח קוד לקוח מופעל בדפדפן DataTable dtin=DAL.user.User(this.Uname.Text,this.Pass.Text); if(dtin.Rows.Count==0) Response.Redirect ("error.aspx"); else if(this.Uname.Text=="ravituty" && this.Pass.Text=="123456") { Session["manager"]="ravituty"; Session["username"]="ravituty"; } else { Session["username"]=this.Uname.Text; } Response.Redirect ("userIndex.aspx"); } יתרון MyPage.aspx.cs – כתוב בשפת .NET כלשהיא.- Code Behind –שרת –קודשרץ בצד שרת מופעל בIIS תפקידו של קוד שרץ בצד שרת הוא לטפל באירועי הפקדים ואירועי היישום.

  5. יתרונות NET.ASP • מפתחים (developers) ומעצבים (Designers) יכולים לעבוד בנפרד. המעצב מתמקד בעיצוב הוויזואלי של הדף, בזמן שהמפתח מתמקד בכתיבת הקוד בלבד. • אחרי הקומפילציה ה- Code Behind הופך לקובץ MSIL עם הסיומת dllותוכנו מוסתר. יתרונותיו של קוד בצד שרת : הקוד מוסתר מהלקוח, מקומפל. • קריא וברור יותר. • תחזוקה קלה יותר, שינוי הקוד אינו משפיע על האלמנטים הויזואליים, ושינוי מראה הדף אינו משפיע על הקוד. • הקבצים קטנים ומסודרים יותר. • הקוד יכול להכתב בכל שפות הדוט.נט. לחץ כאן

  6. קובץ הקונפיגורציה הינו קובץ טקסט בפורמט XML סטנדרטי שמכיל את הגדרות התצורה של האפליקציה. • אחד החידושים ב- ASP.NET. • יכול לשמור הגדרות לדף בודד,לתיקיה שלמה או לכל האפליקציה. • הוא אופציונאלי ולא חייב להימצא באפליקציה.

  7. הוא קובץ טקסט המכיל מידע גלובלי על האפליקציה. • תפקידו העיקרי הוא הטיפול בשגרות האירועים של האפליקציה כמו למשל התחלה וסיום Session והתחלה וסיום האפליקציה. • אפשר להגדיר ולאתחל בו משתנים, אובייקטים ושגרות אירועים.

  8. חסרון או יתרון Stateless שרת Web הוא חסר מצב (Stateless) , מה שאומר שאחרי יצירת התגובה (Response) השרת אינו שומר שום מידע. כל האובייקטים שהשרת הקצה עבור יצירת התגובה נהרסים, כולל כל המידע שהמשתמש שלח לשרת בבקשה (Request) וכולל כל המידע שהשרת יצר בתהליך העיבוד. ניתן לומר שלאחר העברת התגובה ללקוח השרת מאבד ענין בלקוח, מנתק את התקשורת עימו והורס את כל האובייקטים והמידע הקשורים בו. אולם, לעיתים היישום מעוניין לשמור נתונים קודמים שהיו בדף לפני שליחתם לשרת. לדוגמה: אנו מעוניינים לספור את מספר הבקשות של הלקוח, במידה וערכו של המונה לא יוכל להשמר בין הבקשות, יהיה ערכו שווה תמיד ל-1. לצורך פתרון בעיה זו נוצרו אובייקטים מיוחדים שכל תפקידם לשמור על המידע בין הבקשות.

  9. Session["SeDt"]=G.SelectNameGame(Gname);

  10. פקדים

  11. נלחץ על HTML ונבחין כי כל פקד שגררנו webfrom יש לו תכונה runat="server"

  12. מצא את ההבדלים

  13. DataList צירת טבלה המסוגלת לאכלס נתונים פונה למחלקה המתאימה כדי לקבל את הנתונים במחלקה ישנה מתודה המכילה SQL וזו פונה למחלקה היוצרת קשר ישיר עם DB מחלקה היוצרת קשר ישיר עם המסד DB private void Page_Load(object sender, System.EventArgs e) { DataList1.DataSource=DAL.CDdetials.SelectCDnum(); DataList1.DataBind(); DataList2.DataSource=DAL.CDdetials.SelectCDRate(); DataList2.DataBind(); } מחזיר לי רשימת CD לפי שאילתא המופיע בclass CDdetials מדוע לא השתמשתי במאפיין Page.IsPostBack מתי כן נשתמש ?

  14. Page.IsPostBack • בכל בקשה (גם בבקשה חוזרת של אותו הדף) נוצר דף חדש. • האירוע Page_Load מתרחש בכל טעינה של הדף, לכן הקוד שנמצא באירוע הזה מופעל כל פעם מחדש. • בקשה חוזרת של אותו הדף מכונה (Round Trip). • לעיתים נרצה לבצע איתחולים רק בטעינה הראשונה של הדף ולהימנע מהם בבקשות חוזרות של אותו הדף. • בדף מוגדר מאפיין בוליאני בשם IsPostBack, ASP.NET משתמשת במאפיין זה על מנת לבדוק אם הוא נדרש בפעם הראשונה או לא (Round Trip). • כאשר הלקוח מבקש את הדף בפעם הראשונה, המאפיין IsPostBack יקבל את הערך false. מהבקשה השניה ואילך ערכו true.

  15. NET מספקת ממשק לגישה למקורות הנתונים ומאפשרת להתחבר, לאחזר, לתפעל ולעדכן אותם. • ADO.NET מציעה שתי גישות שונות למקורות המידע: • Disconnected • Full Connected • ADO.NET מבוססת על XML , כל תעבורת הנתונים היא בפורמט XML . • מה שמאפשר ליישום לעבוד עם יישומים שונים באינטרנט ללא חשש חסימת מידע על ידי Firewall וללא תלות בחומרה ובמערכת ההפעלה. • מותאמת לדרישות מודרניות ולארכיטקטורה מודרנית של טיפול במספר רב של מערכות מידע דרך האינטרנט .

  16. Data Providers. • המחלקות המרכזיות : • Connection - אובייקט המנהל ההתחברות למסד הנתונים. • Command- אובייקט ממחלקה זו מגדיר את הפקודה הנשלחת למסד הנתונים לצורך שליפה או עדכון נתונים. • DataReader- באמצעות אובייקט ממחלקה זו ניתן לבצע שליפה מהירה של נתונים . • DataAdapter - באמצעות אובייקט ממחלקה זו נעלה את הנתונים לזיכרון ונעדכן את מסד הנתונים בסיום העיבוד כאשר נבחר במודל נתונים מנותק (Disconnected) • Full Connected • יתרונות:תמיד עובדים עם המידע העדכני ביותר. • כמעט ואין צורך לטפל בקונפליקטים המתרחשים בין לקוחות שונים המטפלים באותו המידע. • הפעולות מול מקור המידע מתבצעות במהירות. • חסרונותלא ניתן להעביר בקלות יחידות מידע ממחשב לקוח אחד לשני.-קיימת תלות בנגישותו של מקור המידע.-עומס על שרת המידע. • טיפול במידע – Disconnected • במערכות מנותקות טוענים מה-DB לזיכרון המחשב את המידע הדרוש לתוכנית לצורך עיבוד • התוכנית ומתנתקים. כל העיבוד מתבצע על זיכרון המחשב, • בסיום העיבוד מתחברים חזרה ל- Database שומרים את המידע המעובד ב- Database ומתנתקים. • יתרונותניתן בקלות להעביר יחידות מידע ממחשב לקוח אחד לשני. • אין תלות בנגישותו של מקור המידע.-משפר את הגמישות של התוכנית.-משפר את הביצועים של התוכנית. • חסרונותלא תמיד עובדים עם המידע העדכני ביותר. • צריך לטפל בקונפליקטים המתרחשים בין לקוחות שונים המטפלים באותו המידע. • ה- DataSet הוא מטמון (cache) של נתונים שחלקם נשלפו ממסד הנתונים לצורך עבודה בצורה מנותקת. ל- DataSet אין יכולת לגשת למסד הנתונים בעצמו, לכך קיימת המחלקה DataAdapter .

  17. public void SqlP(string sqlSTR) { OleDbConnection connOBJ= new OleDbConnection(sqlHelper.ConnectionString); OleDbCommand CommandOBJ= new OleDbCommand (sqlSTR,connOBJ); connOBJ.Open(); CommandOBJ.ExecuteNonQuery(); connOBJ.Close(); } public DataTable ExecuteFind (string sqlSTR) { OleDbConnection connectObj=new OleDbConnection(sqlHelper.ConnectionString); OleDbDataAdapter dataAdapterObj=new OleDbDataAdapter(sqlSTR,connectObj); DataSet ds=new DataSet(); dataAdapterObj.Fill(ds); DataTable dt=ds.Tables[0]; return dt; }

  18. הפיתוח ב- ASP.NET הוא Event Driven . • אירועים מתרחשים כתגובה לפעילות משתמשים על הפקדים. • כדוגמה: לחיצה על כפתור, שינוי תוכן תיבת הטקסט, בחירת פריט מתוך תיבה משולבת וכו... . • כל אירוע ניתן לקשר למתודה המבוצעת בעת התרחשות האירוע, המתודה המטפלות באירועי פקדים מכונות Event handler. • המתודות הללו מוגדרת בקובץ ה- Code Behind ומורצות רק בשרת. • למתודות Event handler יש מבנה דומה. • הכותרת מורכבת משם הפקד והאירוע שהתרחש, לדוגמה: • utton1_Click, ListBox1_SelectedIndexChanged,TextBox1_TextChanged • המתודות יקבלו שני פרמטרים: • System.EventArgs e , object sender. • sender - מציין איזה פקד יצר את האירוע. • e - מכיל מידע נוסף לצורך הטיפול באירוע.

  19. private void Button3_Click(object sender, ystem.EventArgs e) { { oopמודל תכנות מונחה אירועים מאפשר לכל אובייקט להגדיר אירוע היכול להתרחש בהתאם לשינוי תכונה כל מתודה המאזינה לאירוע מסוים –נקראת מתודה טיפול אובייקט- אוסף של ערכים ותכונות שינוי באובייקט= שינוי בתכונה = שינוי זה גורם להתרחשות של אירוע = וזו קוראת למתודה המגיבה לשינוי Server control אובייקטים המשמשים כממשקי משתמש אירוע –אובייקט העושה כימוס- " משהו קרה לאובייקט משתמש לחץ על כפתור/או בחר באופציה כלשהיא בסביבת ASP.NET האירועים הם delegate הם מקבלים 2 פרמטרים : sender ו e Postback –מיצר בקשה לשרת – השרת יוצר מחלקה מדף זה –ומשחזר את ערכי הפקדים תוך שימוש במחרוזת הנסתרת viewstate- - ושהיגיע עם הבקשה מהלקוח בזמן הסריקה השרת בודק עבור כל פקד את חל בו שינוי

  20. sql SQL (Structured Query Language ) , היא שפה המשמשת לצורך עבודה עם מסדי נתונים. שפת SQL פותחה על ידי חברת IBM ואומצה כתקן הן על ידי מכון התקנים האמריקאי (ANSI -American National Standards Institute) והן על ידי ארגון התקינה הבינלאומי (ISO) . שפת SQL היא שפת שאילתות המתארת רקמה לבצעולאכיצד לבצע. '.

  21. שפה לטיפול בנתונים עצמם שפת DML משפט SELECT, המשפט המוכר ביותר בקטגוריה זו, מחזיר נתונים מתוך טבלה. משפט INSERT מוסיף רשומות חדשות לטבלה. משפט UPDATE מעדכן נתונים ברשומות הקיימות בטבלה. משפט DELETE מוחק רשומות נתונים מטבלה. פקודותSQL אינן רגישות לגודל האות Case Insensitive)) SELECT DISTINCT CustomerId FROM Orders הצגתרשומות ללא כפילות SELECT EmployeeId , FirstName, LastName FROM Employees Order by FirstName מיון התוצאות מיון בסדר יורד SELECT EmployeeId , FirstName, LastName FROM Employees Order by FirstName DESC

  22. קריאת מידע משפט SELECT – המשך שימוש ב- WHERE משפטי WHERE מאפשרים הגדרת תנאי לוגי שיקבע איזה שורות יישלפו מהטבלאות . האופרטורים האפשריים להגדרת תנאים לוגיים האם : • אופרטורים השוואתיים כגון : = , > , < , <> , => , =<. • אופרטורים לוגיים כגון : AND , OR , NOT • - IN בדיקת תוכן עמודה מול קבוצה מסויימת. • - BETWEEN בדיקת תוכן עמודה בתחום בין ערך כלשהו לבין ערך אחר כלשהו. • LIKE - בדיקת מחרוזת תווים. שים לב שתאריכים ומחרוזות יכתבו בין גרשים בתנאי.

  23. פונקציות סקאלריות - דוגמה: ספירת מספר הזמנות SELECT COUNT(OrderID)FROM ORDERS; שליפת מספר ההזמנה האחרון שבוצע : SELECT max(OrderId) FROM Orders; - עדכון רשומות שאילתת להעלאת מחיר של הספק Exotic Liquids (SupplierID=1) ב-10% UPDATE Products SET UnitPrice = UnitPrice*1.10 WHERE SupplierID=1

  24. צירופים • משפט INNER JOIN . כאשר יש צורך במידע המשולב ממספר טבלאות נעשה ביניהן פעולת JOIN . רשומות מטבלה אחת מצורפות לרשומות מטבלה אחרת בהתאם לערכים מתאימים בעמודות המקשרות בקשרי הגומלין. FROMtable1INNER JOINtable2 ONtable1.field1compopr table2.field2

  25. WS שרות רשת Web Services היא מחלקה אשר חושפת באמצעות רשת האינטרנט מתודות שניתן לזמנם ביישומים אחרים דוגמת יישומי ASP.NET Web Application . בהגדרה הנ"ל ניתן להבחין כי יש שרות Service ויש צרכן של שרות Consumer . משתמשים במבנה XML כדי להעביר מידע בין השרות לצרכן.

  26. <?xml version="1.0" encoding="utf-8" ?> - <wsdl:definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://tempuri.org/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://tempuri.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> - <wsdl:types> - <s:schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/"> - <s:element name="AdminCheck"> - <s:complexType> - <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="AdName" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="AdPass" type="s:string" /> </s:sequence> </s:complexType> </s:element> - <s:element name="AdminCheckResponse"> - <s:complexType> - <s:sequence> <s:element minOccurs="1" maxOccurs="1" name="AdminCheckResult • הוא הפרוטוקול שמבוסס XML • והוא זה שיעזור לנו איך הצרכן והשרות מדברים ביחד.

  27. SOSAPנחשב ללב לבו של מנגנון משלוח ההודעות בין שרות הרשת XML Web Services ליישומים אחרים דוגמת ASP.NET Web Application . -SOAP מתאר Xml Schema למשלוח הודעות בין שרת / לקוח Response/Request. - מתאר מבנה message בין השרת והלקוח.בדרך כלל message היא בקשה לזימון מתודה. - בעצם ובהתאם לכללי מסמך XML הroot element של הודעת SOAP הוא <envelope> - <header> אלמנטשמשמש לתת הסבר כללי להודעה אך אלמנט ה- <body> , יכול להכיל מבנה מקונן שמתאר איזומתודה יכולים להזמין, ואת מבנה הבקשה שצריך לשלוח. - חלק ה <body> יכול לתאר את מבנה הבקשה או התשובה מהמתודה שתוזמן

  28. SOAP WSDL הוא תבנית לייצור מבנה SOAP -נזכור כי WSDL הוא ממשק שרות הרשת. -WSDL הוא מסמך הבנוי בצורת XML שתפקידו בדיוק להוות כ-"מתווך" בין שרות הרשת לבין הצרכן. בצדו של הצרכן יהיה מתווך שיוכל לייצר אוטומטית מבנה SOAP בכדי להשלים את תהליך החלפת המידע עם השרת. לחץ כאן לחץ כאן

  29. SOAP דוגמה ל-WSDL שמשמש כתבנית לייצור מבנה SOAP - כפי שניתן לראות, המתודה ADD היא מתודה יחידה של השרות שאותה נרצה לראות איך ממשק המשתמש WSDL של שרות הרשת מאפשר למתווך לייצר SOAP של זימון מתודה זו.

  30. SOAP WSDLצעד אחד לפני קבלת

  31. נזכור כי WSDL הוא ממשק שרות הרשת. -WSDL הוא מסמך הבנוי בצורת XML שתפקידו בדיוק להוות כ-"מתווך" בין שרות הרשת לבין הצרכן. בצדו של הצרכן יהיה מתווך שיוכל לייצר אוטומטית מבנה SOAP בכדי להשלים את תהליך החלפת המידע עם השרת. לחץ כאן SOAP להלן מסמך WSDL שמשמש כתבנית למתווך בכדי לייצר SOAP

  32. SOAP המשך למסמך WSDL מהשקף הקודם: תבנית לייצור תגובה

  33. לחץ כאן SOAP לסיכום- מתי שצריך, תמיד תמונה שווה לאלף מלים! 3 s e r v e r 2 ב .NET המתווך נקרא Proxy. SOAP 1 Client internet Proxy 6 5 SOAP 4 1) הלקוח מבקש ממחלקה proxy לסכם שני המספרים 4 , 5 2) מחלקת ה- proxy שולח לשרת בקשת SOAP. 3) השרת משחזר desterilized את מעטפת ה- soap, ומזמין את המתודה Add עם הפרמטרים y = 4 x = 5 . 4) השרת שולח בחזרה מבנה Soap המתאר את התוצאה. 5) מחלקת ה- proxy מקבלת את ה- soap הנ"ל ומשחזרת (desterilized) אותוֹ למספר שלם 9. 6) מחלקת ה- proxy מחזירה ללקוח את התוצאה 9. - מקרא: Serialization De Serialization

  34. XML Web Services נעצור לרגע, ונחשוב -בעצם יש לנו שרות רשת שצריכים לפתח. -צריך גם לבנות יישום שצורך את השרות, נניח ASP.NET Web Application - צריך להבין איך הצרכן מבקש בקשה מהשרות ובמקביל להבין איך השרות עונה לצרכן. -כמובן נהוג קודם, לפתח את השרות לפני שצורכים אותו. שחקנים שפגשנו • SOAP הוא הפרוטוקול שמבוסס XML והוא זה שיעזור לנו איך הצרכן והשרות מדברים ביחד. • WSDLהוא ממשק המשתמש של השרות שבו נעזר המפתח בכדי להבין את מאפייני השרות. • Proxy היא מחלקת נציגות שתהיה בצד הצרכן ומטרתה תהיה לשוחח עם השרות.

  35. UML הוא קיצור של Unified Modeling Language . זהו סטנדרט תעשייתי המשמש כתיאור גרפי של מערכת תוכנה . כמובן תיאור מערכת תוכנה כולל בין היתר התייחסות למרכיבים הבאים : דרישות , מפרט , תיעוד וייחודיות של המערכת . טכניקת ה- UML משתמשת בתיאור גרפי של האובייקטים וצורת שילובם במערכת התוכנה. UML ידועה כטכניקה המאפשרת הצגה פשוטה של מערכת מורכבת , ומכאן הייחודיות שלה .

More Related