מסע ה net

41
תתתתתתתתת תתתת תתתתת תת תתתתתתתתת תתתתתתת תתתתתת תתתתתתתתת תתתת . תתתתת תתתתתתת תתתתתתתת תתתתת תתתת תתתתת תתתתתת תתת תתתת תתתתתתתת תתתתת תתתתHTML . תתת תת תתתתתתתתתת. NET תתASP.NET תתתOOP . תתתת תתתתת תתתתת תתתתתתתASP.NET תתתת תתת תתתתת תתת תתתתתתתתת תתתתתתת תתתתת תתתת תתתתת תתתC#, VB.NET J#, JSCRIPT.NET תתת...

Upload: montana

Post on 19-Mar-2016

80 views

Category:

Documents


2 download

DESCRIPTION

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

TRANSCRIPT

Page 1: מסע ה  NET

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

.HTMLללקוח כדפי . מודל תכנות מונחה אירועיםOOP היא ASP.NET גם NET.כמו כל טכנולוגיות •

•ASP.NET אינה שפת תכנות אלא טכנולוגיה שמשתמשת במספר שפות תכנות וכו...C#, VB.NET J#, JSCRIPT.NETכמו

Page 2: מסע ה  NET

מודל שלוש השכבות בפיתוח יישומים:המודל מחלק כל יישום לשלושה רבדים

( User interface)או ממשק המשתמש ( Presentation layer )*שכבת התצוגה Business Logic Layer*שכבת הביניים – הלוגיקה העסקית

Data Access layer*שכבת המידע – מסד הנתונים + WS laye*שכבה נוספת-

יתרונותיתרונותגמישות מערכת , כך שניתן לשדרג כל אחת מהשכבות ללא תלות בשכבה אחרת.

קלות פיתוח המערכת.עדכון קוד התכנית הוא פשוט ומרוכז במקום אחד.

שימוש חוזר בקוד הופך את היישום לקטן ופשוט יותר.תחזוקת המערכת פשוטה יותר.

שכבת התצוגהממשק המשתמש

שכבת הבינייםהלוגיקה העסקית מסד הנתונים שרות

Page 3: מסע ה  NET

ASP.NET -מבוא ל

(Request\Response)מודל ההרצה :תגובה/תהליך הבקשה

דפדפן שרת

שליחת בקשה לשרת עיבוד הבקשה

יצירת דף HTML

שליחת דף HTMLהצגת הדף לדפדפן

בניית בקשה

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

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

Page 4: מסע ה  NET

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["manager"]="ravituty";Session["username"]="ravituty";Session["username"]="ravituty";

}else{Session["username"]=this.Uname.Text;}Response.Redirect )"userIndex.aspx"(;

}

MyPage.aspx כתוב בפורמט –HTML העיצוב –לקוח-. קוד לקוח מופעל בדפדפן

MyPage.aspx.cs כתוב בשפת – .NET -.כלשהיא Code Behindשרץ בצד קוד – –שרת תפקידו של קוד שרץ בצד שרת הוא לטפל באירועי הפקדים ואירועי IISשרת מופעל ב

היישום.

יתרון

Page 5: מסע ה  NET

( יכולים לעבוד בנפרד. Designers ומעצבים )(developers)מפתחים •המעצב מתמקד בעיצוב הוויזואלי של הדף, בזמן שהמפתח מתמקד

בכתיבת הקוד בלבד. dll עם הסיומת MSIL הופך לקובץ Code Behind -אחרי הקומפילציה ה•

ותוכנו מוסתר. יתרונותיו של קוד בצד שרת : הקוד מוסתר מהלקוח, מקומפל.

קריא וברור יותר.•תחזוקה קלה יותר, שינוי הקוד אינו משפיע על האלמנטים הויזואליים, •

ושינוי מראה הדף אינו משפיע על הקוד. הקבצים קטנים ומסודרים יותר.•הקוד יכול להכתב בכל שפות הדוט.נט.•

NET.ASPיתרונות

לחץ כאן

Page 6: מסע ה  NET
Page 7: מסע ה  NET

קובץ הקונפיגורציה הינו קובץ טקסט בפורמט

XML סטנדרטי שמכיל את הגדרות התצורה של

האפליקציה.אחד החידושים ב-

ASP.NET.יכול לשמור הגדרות לדף בודד,לתיקיה

שלמה או לכל האפליקציה.

הוא אופציונאלי ולא חייב להימצא באפליקציה.

Page 8: מסע ה  NET

הוא קובץ טקסט המכיל מידע גלובלי על האפליקציה.

תפקידו העיקרי הוא הטיפול בשגרות האירועים של האפליקציה כמו למשל התחלה וסיום

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

ושגרות אירועים.

Page 9: מסע ה  NET

( Response( , מה שאומר שאחרי יצירת התגובה )Stateless הוא חסר מצב )Webשרת השרת אינו שומר שום מידע. כל האובייקטים שהשרת הקצה עבור יצירת התגובה

( וכולל כל המידע Requestנהרסים, כולל כל המידע שהמשתמש שלח לשרת בבקשה )שהשרת יצר בתהליך העיבוד.

ניתן לומר שלאחר העברת התגובה ללקוח השרת מאבד ענין בלקוח, מנתק את התקשורת עימו והורס את כל האובייקטים והמידע הקשורים בו.

אולם, לעיתים היישום מעוניין לשמור נתונים קודמים שהיו בדף לפני שליחתם לשרת. לדוגמה: אנו מעוניינים לספור את מספר הבקשות של הלקוח, במידה וערכו של המונה לא

.1יוכל להשמר בין הבקשות, יהיה ערכו שווה תמיד ל-לצורך פתרון בעיה זו נוצרו אובייקטים מיוחדים שכל תפקידם לשמור על המידע בין

הבקשות.

Stateless

Page 10: מסע ה  NET

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

Page 11: מסע ה  NET
Page 12: מסע ה  NET
Page 13: מסע ה  NET
Page 14: מסע ה  NET

HTMLנלחץ על

webfromונבחין כי כל פקד שגררנו

" runat="serverיש לו תכונה

Page 15: מסע ה  NET
Page 16: מסע ה  NET

private void Page_Load)object sender, System.EventArgs e({

DataList1.DataSource=DAL.CDdetials.SelectCDnum)(;DataList1.DataBind();

DataList2.DataSource=DAL.CDdetials.SelectCDRate)(;DataList2.DataBind)(;

}

class לפי שאילתא המופיע בCDמחזיר לי רשימת CDdetials

Page.IsPostBackמדוע לא השתמשתי במאפיין

מתי כן נשתמש ?

DataListצירת טבלה

המסוגלת לאכלס נתונים פונה למחלקה המתאימהכדי לקבל את הנתונים

במחלקה ישנהSQLמתודה המכילה

וזו פונה למחלקה DBהיוצרת קשר ישיר עם

מחלקה היוצרת קשר ישיר עם המסד

DB

Page 17: מסע ה  NET

Page.IsPostBackבכל בקשה )גם בבקשה חוזרת של אותו הדף( נוצר דף חדש.

מתרחש בכל טעינה של הדף, לכן הקוד Page_Loadהאירוע שנמצא באירוע הזה מופעל כל פעם מחדש.

(.Round Tripבקשה חוזרת של אותו הדף מכונה )לעיתים נרצה לבצע איתחולים רק בטעינה הראשונה של הדף

ולהימנע מהם בבקשות חוזרות של אותו הדף. IsPostBack, ASP.NETבדף מוגדר מאפיין בוליאני בשם

משתמשת במאפיין זה על מנת לבדוק אם הוא נדרש בפעם (.Round Tripהראשונה או לא )

כאשר הלקוח מבקש את הדף בפעם הראשונה, המאפיין IsPostBack יקבל את הערך false מהבקשה השניה ואילך ערכו .

true.

Page 18: מסע ה  NET
Page 19: מסע ה  NET

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

ADO.NET:מציעה שתי גישות שונות למקורות המידע Disconnected

Full Connected ADO.NET מבוססת על XML כל תעבורת הנתונים היא בפורמט , XML.

מה שמאפשר ליישום לעבוד עם יישומים שונים באינטרנט ללא חשש וללא תלות בחומרה ובמערכת ההפעלה. Firewallחסימת מידע על ידי

מותאמת לדרישות מודרניות ולארכיטקטורה מודרנית של טיפול במספר רב של מערכות מידע דרך האינטרנט .

Page 20: מסע ה  NET

Data Providers.המחלקות המרכזיות :

Connection.אובייקט המנהל ההתחברות למסד הנתונים - Command אובייקט ממחלקה זו מגדיר את הפקודה הנשלחת למסד הנתונים לצורך שליפה -

או עדכון נתונים.DataReader . באמצעות אובייקט ממחלקה זו ניתן לבצע שליפה מהירה של נתונים -

DataAdapter באמצעות אובייקט ממחלקה זו נעלה את הנתונים לזיכרון ונעדכן את מסד - (Disconnected )במודל נתונים מנותקהנתונים בסיום העיבוד כאשר נבחר

Full ConnectedFull Connected תמיד עובדים עם המידע העדכני ביותר.:יתרונות

כמעט ואין צורך לטפל בקונפליקטים המתרחשים בין לקוחות שונים המטפלים באותו המידע.הפעולות מול מקור המידע מתבצעות במהירות.

קיימת תלות בנגישותו של -לא ניתן להעביר בקלות יחידות מידע ממחשב לקוח אחד לשני. חסרונותעל שרת המידע.עומס -מקור המידע.

Disconnectedטיפול במידע – לזיכרון המחשב את המידע הדרוש לתוכנית לצורך עיבוד DBבמערכות מנותקות טוענים מה-

כל העיבוד מתבצע על זיכרון המחשב, התוכנית ומתנתקים. Database שומרים את המידע המעובד ב- Databaseבסיום העיבוד מתחברים חזרה ל-

ומתנתקים.ניתן בקלות להעביר יחידות מידע ממחשב לקוח אחד לשני. יתרונות

משפר את הביצועים של -משפר את הגמישות של התוכנית.-אין תלות בנגישותו של מקור המידע.התוכנית.

לא תמיד עובדים עם המידע העדכני ביותר. חסרונותצריך לטפל בקונפליקטים המתרחשים בין לקוחות שונים המטפלים באותו המידע.

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

DataAdapter.

Page 21: מסע ה  NET

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;

}

Page 22: מסע ה  NET

.Event Driven הוא ASP.NETהפיתוח ב- אירועים מתרחשים כתגובה לפעילות משתמשים על הפקדים.

כדוגמה: לחיצה על כפתור, שינוי תוכן תיבת הטקסט, בחירת פריט מתוך תיבה משולבת וכו... .

כל אירוע ניתן לקשר למתודה המבוצעת בעת התרחשות האירוע, המתודה .Event handlerהמטפלות באירועי פקדים מכונות

ומורצות רק בשרת.Code Behindהמתודות הללו מוגדרת בקובץ ה- יש מבנה דומה.Event handlerלמתודות

הכותרת מורכבת משם הפקד והאירוע שהתרחש, לדוגמה:utton1_Click, ListBox1_SelectedIndexChanged,TextBox1_TextChanged

המתודות יקבלו שני פרמטרים: System.EventArgs e , object sender.

sender .מציין איזה פקד יצר את האירוע - e.מכיל מידע נוסף לצורך הטיפול באירוע -

Page 23: מסע ה  NET

oopמודל תכנות מונחה אירועיםמאפשר לכל אובייקט להגדיר אירוע היכול להתרחש בהתאם לשינוי תכונה

כל מתודה המאזינה לאירוע מסוים –נקראת מתודה טיפולאובייקט- אוסף של ערכים ותכונות

שינוי באובייקט= שינוי בתכונה = שינוי זה גורם להתרחשות של אירוע = וזו קוראת למתודה המגיבה לשינוי

Server controlאובייקטים המשמשים כממשקי משתמש

אירוע –אובייקט העושה כימוס- " משהו קרה לאובייקטמשתמש לחץ על כפתור/או בחר באופציה כלשהיא

delegate האירועים הם ASP.NETבסביבת e ו sender פרמטרים : 2הם מקבלים

Postback מיצר בקשה לשרת – השרת יוצר מחלקה מדף זה –ומשחזר את ערכי הפקדים תוך– - ושהיגיע עם הבקשה מהלקוח - viewstateשימוש במחרוזת הנסתרת

בזמן הסריקה השרת בודק עבור כל פקד את חל בו שינוי

private void Button3_Click(object sender, ystem.EventArgs e) {{

Page 24: מסע ה  NET

SQL )Structured Query Language (.היא שפה המשמשת לצורך עבודה עם מסדי נתונים ,

ואומצה כתקן הן על ידי מכון התקנים האמריקאי IBM פותחה על ידי חברת SQLשפת (ANSI -American National Standards Institute והן על ידי ארגון התקינה הבינלאומי )(ISO. )

כיצד לבצע. ולא מה לבצע רק היא שפת שאילתות המתארת SQLשפת

.'

Page 25: מסע ה  NET

שפת DML

, המשפט המוכר ביותר בקטגוריה זו, מחזיר נתונים מתוך טבלה. SELECTמשפט מוסיף רשומות חדשות לטבלה. INSERTמשפט

מעדכן נתונים ברשומות הקיימות בטבלה. UPDATEמשפט מוחק רשומות נתונים מטבלה. DELETEמשפט

שפה לטיפול בנתונים עצמם

((Case Insensitive אינן רגישות לגודל האות SQLפקודות

SELECT DISTINCT CustomerId FROM Ordersרשומות ללא כפילות הצגת

SELECT EmployeeId , FirstName, LastName FROM Employees Order by FirstName

מיון התוצאות

SELECT EmployeeId , FirstName, LastName FROM Employees Order by FirstName DESC

מיון בסדר יורד

Page 26: מסע ה  NET

קריאת מידע – המשךSELECTמשפט

WHEREשימוש ב- מאפשרים הגדרת תנאי לוגי שיקבע איזה שורות יישלפו WHEREמשפטי

מהטבלאות . האופרטורים האפשריים להגדרת תנאים לוגיים האם :

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

שים לב שתאריכים ומחרוזות יכתבו בין גרשים בתנאי.

Page 27: מסע ה  NET

פונקציות סקאלריות - דוגמה:

ספירת מספר הזמנותSELECT COUNT)OrderID(FROM ORDERS;

שליפת מספר ההזמנה האחרון שבוצע :SELECT max)OrderId( FROM Orders;

- עדכון רשומות

10% ב-)Exotic Liquids )SupplierID=1שאילתת להעלאת מחיר של הספק

UPDATE Products SET UnitPrice = UnitPrice*1.10 WHERE SupplierID=1

Page 28: מסע ה  NET

.INNER JOINמשפט 1.

צירופים

FROM table1 INNER JOIN table2 ON table1.field1 compopr table2.field2

כאשר יש צורך במידע המשולב ממספר טבלאות . JOINנעשה ביניהן פעולת

רשומות מטבלה אחת מצורפות לרשומות מטבלה אחרת בהתאם לערכים מתאימים בעמודות

המקשרות בקשרי הגומלין.

Page 29: מסע ה  NET
Page 30: מסע ה  NET

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

Application .

. Consumer ויש צרכן של שרות Serviceבהגדרה הנ"ל ניתן להבחין כי יש שרות

כדי להעביר מידע בין השרות לצרכן.XMLמשתמשים במבנה

Page 31: מסע ה  NET
Page 32: מסע ה  NET

?<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="AdminCheckResultXMLהוא הפרוטוקול שמבוסס - והוא זה שיעזור לנו איך הצרכן והשרות מדברים ביחד.-

Page 33: מסע ה  NET

-SOAP מתאר Xml Schema למשלוח הודעות בין שרת / לקוח Response/Request.

בדרך כלל בין השרת והלקוח.message- מתאר מבנה message .היא בקשה לזימון מתודה

של הודעת root element הXML- בעצם ובהתאם לכללי מסמך SOAP הוא <envelope >

< -headerשמשמש לתת הסבר כללי להודעה אך < אלמנטמתודה < , יכול להכיל מבנה מקונן שמתאר איזוbodyאלמנט ה- >

יכולים להזמין, ואת מבנה הבקשה שצריך לשלוח.< יכול לתאר את מבנה הבקשה או התשובה body- חלק ה >

מהמתודה שתוזמן

•SOSAP נחשב ללב לבו של מנגנון משלוח ההודעות בין שרות ליישומים אחרים דוגמת XML Web Servicesהרשת

ASP.NET Web Application .

Page 34: מסע ה  NET

WSDL הוא תבנית לייצור מבנה SOAP

הוא ממשק שרות הרשת.WSDL-נזכור כי -WSDL בצורת הבנוי מסמך הוא XML שתפקידו

לבין הרשת שרות בין כ-"מתווך" להוות בדיוק לייצר שיוכל מתווך יהיה הצרכן של בצדו הצרכן.

בכדי להשלים את תהליך SOAPאוטומטית מבנה החלפת המידע עם השרת.

SOAP

לחץ כאן לחץ כאן

Page 35: מסע ה  NET

SOAPSOAP שמשמש כתבנית לייצור מבנה WSDLדוגמה ל-

המתודה לראות, שניתן כפי -ADD מתודה היא איך לראות נרצה שאותה השרות של יחידה

המשתמש הרשת WSDLממשק שרות של לייצר למתווך מתודה SOAPמאפשר זימון של

זו.

Page 36: מסע ה  NET

SOAPWSDL צעד אחד לפני קבלת

Page 37: מסע ה  NET

SOAP SOAP שמשמש כתבנית למתווך בכדי לייצר WSDLלהלן מסמך

הוא ממשק שרות הרשת.WSDLנזכור כי -WSDL הוא מסמך הבנוי בצורת XML שתפקידו בדיוק להוות

כ-"מתווך" בין שרות הרשת לבין הצרכן. בצדו של הצרכן יהיה בכדי להשלים את SOAPמתווך שיוכל לייצר אוטומטית מבנה

תהליך החלפת המידע עם השרת.

לחץ כאן

Page 38: מסע ה  NET

SOAP מהשקף הקודם:WSDLהמשך למסמך

תבנית לייצור תגובה

Page 39: מסע ה  NET

לסיכום- מתי שצריך, תמיד תמונה שווה לאלף מלים!SOAP

server4

Client Proxy internet

32

5

1

6

5 , 4 לסכם שני המספרים proxyהלקוח מבקש ממחלקה ( 1. SOAP שולח לשרת בקשת proxyמחלקת ה- (2, ומזמין את המתודהsoap את מעטפת ה- desterilizedהשרת משחזר (3

Add עם הפרמטרים y = 4 x = 5. המתאר את התוצאה.Soapהשרת שולח בחזרה מבנה (4( אותוֹ למספר desterilized הנ"ל ומשחזרת )soap מקבלת את ה- proxyמחלקת ה- (5

.9שלם .9 מחזירה ללקוח את התוצאה proxyמחלקת ה- (6Serialization De Serialization מקרא: -

NET.ב המתווך

נקרא Proxy.

SOAP

SOAP

לחץ כאן

Page 40: מסע ה  NET

XML Web Services

נעצור לרגע, ונחשוב-בעצם יש לנו שרות רשת שצריכים לפתח.

ASP.NET Web Application-צריך גם לבנות יישום שצורך את השרות, נניח - צריך להבין איך הצרכן מבקש בקשה מהשרות ובמקביל להבין איך השרות עונה לצרכן.

-כמובן נהוג קודם, לפתח את השרות לפני שצורכים אותו.

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

ביחד.-WSDL הוא ממשק המשתמש של השרות שבו נעזר המפתח בכדי להבין את מאפייני

השרות.-Proxy.היא מחלקת נציגות שתהיה בצד הצרכן ומטרתה תהיה לשוחח עם השרות

Page 41: מסע ה  NET

UML הוא קיצור של Unified Modeling Language. של מערכת תוכנה .כתיאור גרפיזהו סטנדרט תעשייתי המשמש

כמובן תיאור מערכת תוכנה כולל בין היתר התייחסות למרכיבים הבאים : דרישות , מפרט , תיעוד וייחודיות של המערכת .

משתמשת בתיאור גרפי של האובייקטים וצורת שילובם UMLה- טכניקת במערכת התוכנה.

UML ידועה כטכניקה המאפשרת הצגה פשוטה של מערכת מורכבת , ומכאן הייחודיות שלה .