מסע ה net
DESCRIPTION
מסע ה NET. טכנולוגיה מבית היוצר של מיקרוסופט שמיועדת לפיתוח אפליקציות לרשת . הדפים שנוצרים מתורגמים בעזרת מנוע מיוחד המותקן בצד השרת ומוחזרים ללקוח כדפי HTML . כמו כל טכנולוגיות .NET גם ASP.NET היא OOP . מודל תכנות מונחה אירועים - PowerPoint PPT PresentationTRANSCRIPT
טכנולוגיה מבית היוצר של מיקרוסופט שמיועדת לפיתוח אפליקציות לרשת . •הדפים שנוצרים מתורגמים בעזרת מנוע מיוחד המותקן בצד השרת ומוחזרים •
.HTMLללקוח כדפי . מודל תכנות מונחה אירועיםOOP היא ASP.NET גם NET.כמו כל טכנולוגיות •
•ASP.NET אינה שפת תכנות אלא טכנולוגיה שמשתמשת במספר שפות תכנות וכו...C#, VB.NET J#, JSCRIPT.NETכמו
מודל שלוש השכבות בפיתוח יישומים:המודל מחלק כל יישום לשלושה רבדים
( User interface)או ממשק המשתמש ( Presentation layer )*שכבת התצוגה Business Logic Layer*שכבת הביניים – הלוגיקה העסקית
Data Access layer*שכבת המידע – מסד הנתונים + WS laye*שכבה נוספת-
יתרונותיתרונותגמישות מערכת , כך שניתן לשדרג כל אחת מהשכבות ללא תלות בשכבה אחרת.
קלות פיתוח המערכת.עדכון קוד התכנית הוא פשוט ומרוכז במקום אחד.
שימוש חוזר בקוד הופך את היישום לקטן ופשוט יותר.תחזוקת המערכת פשוטה יותר.
שכבת התצוגהממשק המשתמש
שכבת הבינייםהלוגיקה העסקית מסד הנתונים שרות
ASP.NET -מבוא ל
(Request\Response)מודל ההרצה :תגובה/תהליך הבקשה
דפדפן שרת
שליחת בקשה לשרת עיבוד הבקשה
יצירת דף HTML
שליחת דף HTMLהצגת הדף לדפדפן
בניית בקשה
בודק אם היה שינוי בקוד. CLR- כאשר הלקוח מבקש את הדף בפעם השנייה, ה תבצע טעינה מחדש לדף.asp.net אם כן
לא תבצע טעינה וזמן החזרת asp.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שרת מופעל ב
היישום.
יתרון
( יכולים לעבוד בנפרד. Designers ומעצבים )(developers)מפתחים •המעצב מתמקד בעיצוב הוויזואלי של הדף, בזמן שהמפתח מתמקד
בכתיבת הקוד בלבד. dll עם הסיומת MSIL הופך לקובץ Code Behind -אחרי הקומפילציה ה•
ותוכנו מוסתר. יתרונותיו של קוד בצד שרת : הקוד מוסתר מהלקוח, מקומפל.
קריא וברור יותר.•תחזוקה קלה יותר, שינוי הקוד אינו משפיע על האלמנטים הויזואליים, •
ושינוי מראה הדף אינו משפיע על הקוד. הקבצים קטנים ומסודרים יותר.•הקוד יכול להכתב בכל שפות הדוט.נט.•
NET.ASPיתרונות
לחץ כאן
קובץ הקונפיגורציה הינו קובץ טקסט בפורמט
XML סטנדרטי שמכיל את הגדרות התצורה של
האפליקציה.אחד החידושים ב-
ASP.NET.יכול לשמור הגדרות לדף בודד,לתיקיה
שלמה או לכל האפליקציה.
הוא אופציונאלי ולא חייב להימצא באפליקציה.
הוא קובץ טקסט המכיל מידע גלובלי על האפליקציה.
תפקידו העיקרי הוא הטיפול בשגרות האירועים של האפליקציה כמו למשל התחלה וסיום
Session.והתחלה וסיום האפליקציה אפשר להגדיר ולאתחל בו משתנים, אובייקטים
ושגרות אירועים.
( Response( , מה שאומר שאחרי יצירת התגובה )Stateless הוא חסר מצב )Webשרת השרת אינו שומר שום מידע. כל האובייקטים שהשרת הקצה עבור יצירת התגובה
( וכולל כל המידע Requestנהרסים, כולל כל המידע שהמשתמש שלח לשרת בבקשה )שהשרת יצר בתהליך העיבוד.
ניתן לומר שלאחר העברת התגובה ללקוח השרת מאבד ענין בלקוח, מנתק את התקשורת עימו והורס את כל האובייקטים והמידע הקשורים בו.
אולם, לעיתים היישום מעוניין לשמור נתונים קודמים שהיו בדף לפני שליחתם לשרת. לדוגמה: אנו מעוניינים לספור את מספר הבקשות של הלקוח, במידה וערכו של המונה לא
.1יוכל להשמר בין הבקשות, יהיה ערכו שווה תמיד ל-לצורך פתרון בעיה זו נוצרו אובייקטים מיוחדים שכל תפקידם לשמור על המידע בין
הבקשות.
Stateless
Session["SeDt"]=G.SelectNameGame)Gname(;
HTMLנלחץ על
webfromונבחין כי כל פקד שגררנו
" runat="serverיש לו תכונה
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.IsPostBackבכל בקשה )גם בבקשה חוזרת של אותו הדף( נוצר דף חדש.
מתרחש בכל טעינה של הדף, לכן הקוד Page_Loadהאירוע שנמצא באירוע הזה מופעל כל פעם מחדש.
(.Round Tripבקשה חוזרת של אותו הדף מכונה )לעיתים נרצה לבצע איתחולים רק בטעינה הראשונה של הדף
ולהימנע מהם בבקשות חוזרות של אותו הדף. IsPostBack, ASP.NETבדף מוגדר מאפיין בוליאני בשם
משתמשת במאפיין זה על מנת לבדוק אם הוא נדרש בפעם (.Round Tripהראשונה או לא )
כאשר הלקוח מבקש את הדף בפעם הראשונה, המאפיין IsPostBack יקבל את הערך false מהבקשה השניה ואילך ערכו .
true.
NET ,מספקת ממשק לגישה למקורות הנתונים ומאפשרת להתחבר לאחזר, לתפעל ולעדכן אותם.
ADO.NET:מציעה שתי גישות שונות למקורות המידע Disconnected
Full Connected ADO.NET מבוססת על XML כל תעבורת הנתונים היא בפורמט , XML.
מה שמאפשר ליישום לעבוד עם יישומים שונים באינטרנט ללא חשש וללא תלות בחומרה ובמערכת ההפעלה. Firewallחסימת מידע על ידי
מותאמת לדרישות מודרניות ולארכיטקטורה מודרנית של טיפול במספר רב של מערכות מידע דרך האינטרנט .
Data Providers.המחלקות המרכזיות :
Connection.אובייקט המנהל ההתחברות למסד הנתונים - Command אובייקט ממחלקה זו מגדיר את הפקודה הנשלחת למסד הנתונים לצורך שליפה -
או עדכון נתונים.DataReader . באמצעות אובייקט ממחלקה זו ניתן לבצע שליפה מהירה של נתונים -
DataAdapter באמצעות אובייקט ממחלקה זו נעלה את הנתונים לזיכרון ונעדכן את מסד - (Disconnected )במודל נתונים מנותקהנתונים בסיום העיבוד כאשר נבחר
Full ConnectedFull Connected תמיד עובדים עם המידע העדכני ביותר.:יתרונות
כמעט ואין צורך לטפל בקונפליקטים המתרחשים בין לקוחות שונים המטפלים באותו המידע.הפעולות מול מקור המידע מתבצעות במהירות.
קיימת תלות בנגישותו של -לא ניתן להעביר בקלות יחידות מידע ממחשב לקוח אחד לשני. חסרונותעל שרת המידע.עומס -מקור המידע.
Disconnectedטיפול במידע – לזיכרון המחשב את המידע הדרוש לתוכנית לצורך עיבוד DBבמערכות מנותקות טוענים מה-
כל העיבוד מתבצע על זיכרון המחשב, התוכנית ומתנתקים. Database שומרים את המידע המעובד ב- Databaseבסיום העיבוד מתחברים חזרה ל-
ומתנתקים.ניתן בקלות להעביר יחידות מידע ממחשב לקוח אחד לשני. יתרונות
משפר את הביצועים של -משפר את הגמישות של התוכנית.-אין תלות בנגישותו של מקור המידע.התוכנית.
לא תמיד עובדים עם המידע העדכני ביותר. חסרונותצריך לטפל בקונפליקטים המתרחשים בין לקוחות שונים המטפלים באותו המידע.
( של נתונים שחלקם נשלפו ממסד הנתונים לצורך עבודה בצורה cache הוא מטמון )DataSetה- אין יכולת לגשת למסד הנתונים בעצמו, לכך קיימת המחלקה DataSetמנותקת. ל-
DataAdapter.
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;
}
.Event Driven הוא ASP.NETהפיתוח ב- אירועים מתרחשים כתגובה לפעילות משתמשים על הפקדים.
כדוגמה: לחיצה על כפתור, שינוי תוכן תיבת הטקסט, בחירת פריט מתוך תיבה משולבת וכו... .
כל אירוע ניתן לקשר למתודה המבוצעת בעת התרחשות האירוע, המתודה .Event handlerהמטפלות באירועי פקדים מכונות
ומורצות רק בשרת.Code Behindהמתודות הללו מוגדרת בקובץ ה- יש מבנה דומה.Event handlerלמתודות
הכותרת מורכבת משם הפקד והאירוע שהתרחש, לדוגמה:utton1_Click, ListBox1_SelectedIndexChanged,TextBox1_TextChanged
המתודות יקבלו שני פרמטרים: System.EventArgs e , object sender.
sender .מציין איזה פקד יצר את האירוע - e.מכיל מידע נוסף לצורך הטיפול באירוע -
oopמודל תכנות מונחה אירועיםמאפשר לכל אובייקט להגדיר אירוע היכול להתרחש בהתאם לשינוי תכונה
כל מתודה המאזינה לאירוע מסוים –נקראת מתודה טיפולאובייקט- אוסף של ערכים ותכונות
שינוי באובייקט= שינוי בתכונה = שינוי זה גורם להתרחשות של אירוע = וזו קוראת למתודה המגיבה לשינוי
Server controlאובייקטים המשמשים כממשקי משתמש
אירוע –אובייקט העושה כימוס- " משהו קרה לאובייקטמשתמש לחץ על כפתור/או בחר באופציה כלשהיא
delegate האירועים הם ASP.NETבסביבת e ו sender פרמטרים : 2הם מקבלים
Postback מיצר בקשה לשרת – השרת יוצר מחלקה מדף זה –ומשחזר את ערכי הפקדים תוך– - ושהיגיע עם הבקשה מהלקוח - viewstateשימוש במחרוזת הנסתרת
בזמן הסריקה השרת בודק עבור כל פקד את חל בו שינוי
private void Button3_Click(object sender, ystem.EventArgs e) {{
SQL )Structured Query Language (.היא שפה המשמשת לצורך עבודה עם מסדי נתונים ,
ואומצה כתקן הן על ידי מכון התקנים האמריקאי IBM פותחה על ידי חברת SQLשפת (ANSI -American National Standards Institute והן על ידי ארגון התקינה הבינלאומי )(ISO. )
כיצד לבצע. ולא מה לבצע רק היא שפת שאילתות המתארת SQLשפת
.'
שפת 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
מיון בסדר יורד
קריאת מידע – המשךSELECTמשפט
WHEREשימוש ב- מאפשרים הגדרת תנאי לוגי שיקבע איזה שורות יישלפו WHEREמשפטי
מהטבלאות . האופרטורים האפשריים להגדרת תנאים לוגיים האם :
.<= , >= , >< , < , > , = : אופרטורים השוואתיים כגון : אופרטורים לוגיים כגוןAND , OR , NOT - IN.בדיקת תוכן עמודה מול קבוצה מסויימת - BETWEEN.בדיקת תוכן עמודה בתחום בין ערך כלשהו לבין ערך אחר כלשהו LIKE.בדיקת מחרוזת תווים -
שים לב שתאריכים ומחרוזות יכתבו בין גרשים בתנאי.
פונקציות סקאלריות - דוגמה:
ספירת מספר הזמנות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
.INNER JOINמשפט 1.
צירופים
FROM table1 INNER JOIN table2 ON table1.field1 compopr table2.field2
כאשר יש צורך במידע המשולב ממספר טבלאות . JOINנעשה ביניהן פעולת
רשומות מטבלה אחת מצורפות לרשומות מטבלה אחרת בהתאם לערכים מתאימים בעמודות
המקשרות בקשרי הגומלין.
היא מחלקה אשר חושפת באמצעות רשת האינטרנט Web Servicesשרות רשת ASP.NET Webמתודות שניתן לזמנם ביישומים אחרים דוגמת יישומי
Application .
. Consumer ויש צרכן של שרות Serviceבהגדרה הנ"ל ניתן להבחין כי יש שרות
כדי להעביר מידע בין השרות לצרכן.XMLמשתמשים במבנה
?<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הוא הפרוטוקול שמבוסס - והוא זה שיעזור לנו איך הצרכן והשרות מדברים ביחד.-
-SOAP מתאר Xml Schema למשלוח הודעות בין שרת / לקוח Response/Request.
בדרך כלל בין השרת והלקוח.message- מתאר מבנה message .היא בקשה לזימון מתודה
של הודעת root element הXML- בעצם ובהתאם לכללי מסמך SOAP הוא <envelope >
< -headerשמשמש לתת הסבר כללי להודעה אך < אלמנטמתודה < , יכול להכיל מבנה מקונן שמתאר איזוbodyאלמנט ה- >
יכולים להזמין, ואת מבנה הבקשה שצריך לשלוח.< יכול לתאר את מבנה הבקשה או התשובה body- חלק ה >
מהמתודה שתוזמן
•SOSAP נחשב ללב לבו של מנגנון משלוח ההודעות בין שרות ליישומים אחרים דוגמת XML Web Servicesהרשת
ASP.NET Web Application .
WSDL הוא תבנית לייצור מבנה SOAP
הוא ממשק שרות הרשת.WSDL-נזכור כי -WSDL בצורת הבנוי מסמך הוא XML שתפקידו
לבין הרשת שרות בין כ-"מתווך" להוות בדיוק לייצר שיוכל מתווך יהיה הצרכן של בצדו הצרכן.
בכדי להשלים את תהליך SOAPאוטומטית מבנה החלפת המידע עם השרת.
SOAP
לחץ כאן לחץ כאן
SOAPSOAP שמשמש כתבנית לייצור מבנה WSDLדוגמה ל-
המתודה לראות, שניתן כפי -ADD מתודה היא איך לראות נרצה שאותה השרות של יחידה
המשתמש הרשת WSDLממשק שרות של לייצר למתווך מתודה SOAPמאפשר זימון של
זו.
SOAPWSDL צעד אחד לפני קבלת
SOAP SOAP שמשמש כתבנית למתווך בכדי לייצר WSDLלהלן מסמך
הוא ממשק שרות הרשת.WSDLנזכור כי -WSDL הוא מסמך הבנוי בצורת XML שתפקידו בדיוק להוות
כ-"מתווך" בין שרות הרשת לבין הצרכן. בצדו של הצרכן יהיה בכדי להשלים את SOAPמתווך שיוכל לייצר אוטומטית מבנה
תהליך החלפת המידע עם השרת.
לחץ כאן
SOAP מהשקף הקודם:WSDLהמשך למסמך
תבנית לייצור תגובה
לסיכום- מתי שצריך, תמיד תמונה שווה לאלף מלים!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
לחץ כאן
XML Web Services
נעצור לרגע, ונחשוב-בעצם יש לנו שרות רשת שצריכים לפתח.
ASP.NET Web Application-צריך גם לבנות יישום שצורך את השרות, נניח - צריך להבין איך הצרכן מבקש בקשה מהשרות ובמקביל להבין איך השרות עונה לצרכן.
-כמובן נהוג קודם, לפתח את השרות לפני שצורכים אותו.
שחקנים שפגשנו-SOAP הוא הפרוטוקול שמבוסס XML והוא זה שיעזור לנו איך הצרכן והשרות מדברים
ביחד.-WSDL הוא ממשק המשתמש של השרות שבו נעזר המפתח בכדי להבין את מאפייני
השרות.-Proxy.היא מחלקת נציגות שתהיה בצד הצרכן ומטרתה תהיה לשוחח עם השרות
UML הוא קיצור של Unified Modeling Language. של מערכת תוכנה .כתיאור גרפיזהו סטנדרט תעשייתי המשמש
כמובן תיאור מערכת תוכנה כולל בין היתר התייחסות למרכיבים הבאים : דרישות , מפרט , תיעוד וייחודיות של המערכת .
משתמשת בתיאור גרפי של האובייקטים וצורת שילובם UMLה- טכניקת במערכת התוכנה.
UML ידועה כטכניקה המאפשרת הצגה פשוטה של מערכת מורכבת , ומכאן הייחודיות שלה .