מה חדש ב .net 3.0
DESCRIPTION
מה חדש ב .NET 3.0. בלאן יוסף [email protected] www.DrDotNet.com 17 לדצמבר 2006. כנס המורים הארצי השביעי למדעי המחשב. המכללה האקדמית בית ברל. מה חדש ב .NET 3.0. 1 - WCF - Windows Communication Foundation : מימוש מערכות מבוזרות. - PowerPoint PPT PresentationTRANSCRIPT
NET.NET 3.0 3.0. ב בחדשחדשמה מה
בלאן יוסףבלאן יוסף
[email protected][email protected]
www.DrDotNet.comwww.DrDotNet.com
20062006לדצמבר לדצמבר 17 17 ....כנס המורים הארצי השביעי למדעי המחשבכנס המורים הארצי השביעי למדעי המחשב
..המכללה האקדמית בית ברלהמכללה האקדמית בית ברל
NETNET 3.0 3.0.. ב ב חדשחדשמה מה 11 - -WCFWCF - - Windows Communication FoundationWindows Communication Foundation : :
מימוש מערכות מבוזרות.מימוש מערכות מבוזרות.
22 - - WPFWPF- - Windows Presentation Foundation Windows Presentation Foundation ClassesClasses .פיתוח אפליקציות חלונאיות. פיתוח אפליקציות חלונאיות
33--Windows Workflow Foundation Classes Windows Workflow Foundation Classes -- WFWF ..
44 - -Info SpacesInfo Spaces ..
55 – השימוש ב – - השימוש ב -AjaxAjax ולמה בכלל נצטרך ולמה בכלל נצטרך AtlasAtlas !!
66-- כלים חדשים שהוכנסו לשפת כלים חדשים שהוכנסו לשפת ##CC 3.03.0 גרסה גרסה
WCFWCF NETNET 3.0 3.0.. בב
חדשחדשNETNET 3.0 3.0.. בב
WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation
נניח כי נניח כיCarRentalCarRental היא אפליקציה להשכרת היא אפליקציה להשכרת רכב.רכב.
היות ואפליקציה זו תרוץ על מערכת היות ואפליקציה זו תרוץ על מערכתWindowsWindows אזי ארכיטקט המערכת בחר אזי ארכיטקט המערכת בחר
NET framework NET framework..לפתח אותה תוך שימוש לפתח אותה תוך שימוש 2.02.0
בנוסף, ארכיטקט המערכת יודע כי השכבה בנוסף, ארכיטקט המערכת יודע כי השכבה חייבת חייבת Logic LayerLogic Layerהלוגית של המערכת הלוגית של המערכת
להיות נגישה לאפליקציות אחרות שחלקם רץ להיות נגישה לאפליקציות אחרות שחלקם רץ לחברה. לחברה.מחוץמחוץ אותה חברה וחלקם אותה חברה וחלקם מתוךמתוך
תסריט
חדשחדשNETNET 3.0 3.0.. בב
WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation
ולכן הוחלט לבנות את השכבה הלוגית כשכבה ולכן הוחלט לבנות את השכבה הלוגית כשכבה Service OrientedService Orientedאשר מספקת שרות: אשר מספקת שרות:
ואשר יחשפו בפני אפליקציות אחרות.ואשר יחשפו בפני אפליקציות אחרות.
:מכאן יש לנו מערכת של:מכאן יש לנו מערכת של
Application To ApplicationApplication To Application
חדשחדשNETNET 3.0 3.0WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation.. בב
CarRental
Application.NET Framework
CallCenter
Client App
J2EE App Server
CallCenter
Client App
פלטפורמות אחרות
Travel 1 APP
האינטרנט
אפשרויות התקשורת , השונות אינן פשוטות
הפלטפורמות שונות, מערכות ההפעלה
ולכן איך שונות, !!!מחברים הכל ביחד
יעילות חשובה ביותר
תקשורת הדדית חשובה ביותר
.NET Frameworkתקשורת הדדית
חשובה ביותר
חדשחדשNETNET 3.0 3.0.. בב
התשובה
WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation
!!!איך מחברים הכל ביחד
WCF
חדשחדשNETNET 3.0 3.0WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation.. בב
CarRental
Application.NET Framework
CallCenter
Client App
J2EE App Server
CallCenter
Client App
פלטפורמות אחרות
Travel 1 APP
האינטרנט
נחזור שוב
לתסריט: הצוות WCFבלי
לשלביצטרך (5מספר כלים )
remoting.NET-To-.Net
Asp.net web services
+WSE
Asp.net web services
+Enterprise services(COM+)
Message-Oriented
Programming
.NET Framework
חדשחדשNETNET 3.0 3.0.. בב
WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation
משתמשים
רק ב
WCF
ולמה?
אם המערכת נבנית היום :אזי
חדשחדשNETNET 3.0 3.0.. בב
WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation
מפני ש:
WS with other platforms
ASMX
Attribute- Based
Programming
Enterprise Services
WS-ProtocolSupport
WSE
Message-Oriented
Programming
System.Messaging
Location transparency
.NET Remoting
איחוד שלאיחוד של
חדשחדשNETNET 3.0 3.0.. בב
-WCF בעבר היה מוכר Indigo .-WCF . היא קבוצה של מחלקותNET Framework 2.0.ממומשות מעל -
NET Framework 2.0. מרחיב את WCFמכאן -
NET. בכדי לפתח אפליקציות מבוססי OOPבדומה לכך שהשתמשנו ב--Framework בצורה דומה נשתמש במחלקות של אזי WCF בכדי
.SOAלפתח מערכות מבוזרות שרות המתנהגים כ CLRמאפשר לבנות ולחשוף טיפוסי -
Services.
WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation
:WCFאז, מה זה בדיוק
WCF
.NET Framework
My Application
חדשחדשNETNET 3.0 3.0.. בב
WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation
WCF Client/Serverהתרשים הנ"ל מתאר מערכת -
.SOAP- מתקשרים באמצעות
WCF
.NET Framework
WCF
Client
WCF
.NET Framework
WCF
ServiceSOAP
WCFמערכת בסיסית של
חדשחדשNETNET 3.0 3.0WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation.. בב
CarRental
Application
WCF
.NET Framework
WCF
.NET Framework
CallCenter
Client App
J2EE App Server
CallCenter
Client App
פלטפורמות אחרות
Travel 1 APP
האינטרנט
נחזור שוב
לתסריט:הצוות ישתמש רק
WCFב
התקשורת בין אפליקציה אחת לשנייה מהווה תפנית בפיתוח התקשורת בין אפליקציה אחת לשנייה מהווה תפנית בפיתוח -תוכנה.תוכנה.
של מספר מודלים למטרת בניית אפליקציות מונחות של מספר מודלים למטרת בניית אפליקציות מונחות איחודאיחוד- SOASOAשרות שרות
-WCFWCF את ה- את ה-מרחיבמרחיב FrameWorkFrameWork בכדי לאפשר למפתחים בכדי לאפשר למפתחים לבנות שרותי רשת מאובטחים ואשר יכולים להשתלב לבנות שרותי רשת מאובטחים ואשר יכולים להשתלב
בפלטפורמות אחרות ולפעול ביחד.בפלטפורמות אחרות ולפעול ביחד.-WCFWCF שתוכל לכלול: שתוכל לכלול:מערכות מבוזרותמערכות מבוזרות מרחיב את היכולת לבנות מרחיב את היכולת לבנות
-Enterprise Service-Enterprise Service-System.Messaging-System.Messaging-Remoting-Remoting--ASMX-Web ServicesASMX-Web Services-WSE-WSE
חדשחדשNETNET 3.0 3.0.. בב
WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation
תוכל לתקשר עם תהליכים תוכל לתקשר עם תהליכים WCFWCFאפליקציה מבוססת אפליקציה מבוססת -ProcessProcess ים אחרים על אותו מחשב מבוסס מערכת -ים אחרים על אותו מחשב מבוסס מערכת-
..WindowsWindowsהפעלה הפעלה
תוכל לתקשר עם אפליקציה תוכל לתקשר עם אפליקציה WCFWCFאפליקציה מבוססת אפליקציה מבוססת -אחרת הרצה על מחשב אחר מבוסס מערכת הפעלה אחרת הרצה על מחשב אחר מבוסס מערכת הפעלה
WindowsWindows..
תוכל לתקשר עם אפליקציה תוכל לתקשר עם אפליקציה WCFWCFאפליקציה מבוססת אפליקציה מבוססת - שרצה על שרצה על J2EEJ2EEאחרת הרצה על פלטפורמות אחרות דוגמת אחרת הרצה על פלטפורמות אחרות דוגמת
Sun Solaris,LinuxSun Solaris,Linuxמערכת מערכת httphttp://://javajava..sunsun..comcom//developerdeveloper//technicalArtictechnicalArtic
lesles//glassfishglassfish//ProjectProjectTangoTango//
חדשחדשNETNET 3.0 3.0.. בב
WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation
TangoTango ו ו WCFWCFאפליקציה מבוססת אפליקציה מבוססת
חדשחדשNETNET 3.0 3.0.. בב
WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation
TangoTango מחליטה לרקוד ביחד עם מיקרוסופט SUN , 2006ביוני
באולם שהרצפה שלו היא לוח שחמט.
חדשחדשNETNET 3.0 3.0.. בב
WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation
.Serviceמלת המפתח שיש להתרגל אליה – שרות -.Client ויש צרכן שרות-לקוח Serviceיש שרות -השרות והצרכן מסכימים ביניהם על חוזה -
Interface.:כל שרות מורכב מ-
.Service Class-מחלקת 1
שבאמצעותו יכול process ותהליך Host-סביבה 2השרות לרוץ.
שמטרתם להנחות את endpoint- אחת או יותר של 3 איך לצרוך או לגשת לשרות.Clientהלקוח
:WCF ב SOAבניית יישומי
חדשחדשNETNET 3.0 3.0.. בב
WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation
Process
Application
WCF
Methods
Host
Service Classendpoint
מבנה כל שרותמבנה כל שרות
System.ServiceModelSystem.ServiceModelמשתמשת במרחב השמות משתמשת במרחב השמות - אשר משנים את אשר משנים את מספר תוספותמספר תוספותזוהי מחלקה רגילה עם זוהי מחלקה רגילה עם -
הצורה שבה אנחנו מתייחסים אליה.הצורה שבה אנחנו מתייחסים אליה.
attributesattributesתוספות אלו הם תוספות אלו הם - - למחלקה וב- למחלקה וב- , ,ServiceContractServiceContract משתמשים ב משתמשים ב WCFWCFב ב -
OperationContractOperationContract למתודות בכדי לאפשר ללקוח למתודות בכדי לאפשר ללקוח לגשת אליהן.לגשת אליהן.
לפני המחלקה שנרצה לפני המחלקה שנרצהDataContractDataContractמשתמשים ב- משתמשים ב- - להעביר ממנה אובייקט ובנוסף משתמשים ב להעביר ממנה אובייקט ובנוסף משתמשים ב
DataMemberDataMember לפני כל תכונה שנרצה לכלול אותה לפני כל תכונה שנרצה לכלול אותה בתעבורת המידע של אותו אובייקט.בתעבורת המידע של אותו אובייקט.
חדשחדשNETNET 3.0 3.0.. בב
WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation
WCF Service Class AttributesWCF Service Class Attributes
::מתחילים פרויקט חדשמתחילים פרויקט חדש --11שלבשלב
חדשחדשNETNET 3.0 3.0.. בב
WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation
::הצצה למבנה הפרויקט הצצה למבנה הפרויקט --11המשך שלבהמשך שלב
חדשחדשNETNET 3.0 3.0.. בב
WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation
CarRentalCarRentalבניית מחלקת השרות בניית מחלקת השרות --22שלבשלב
חדשחדשNETNET 3.0 3.0.. בב
WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation
שימוש במרחבי השמות הבאים:
using System.ServiceModel; //WCF
using System.Runtime.Serialization; //Data
CarRentalCarRentalבניית מחלקת השרות בניית מחלקת השרות --22המשך שלבהמשך שלב
חדשחדשNETNET 3.0 3.0.. בב
WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation
[ ServiceContract] public interface IServiceCarRental
{ [ OperationContract]
bool Check(Rent rnt);
[ OperationContract] int Reserve(Rent rnt);
}
CarRentalCarRentalבניית מחלקת השרות בניית מחלקת השרות --22המשך שלבהמשך שלב
חדשחדשNETNET 3.0 3.0.. בב
WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation
public class CarRental : IServiceCarRental{
public bool Check(Rent rnt)// { connect to data base service
return true;}
public int Reserve(Rent rnt)// { connect to data base service
int confirmationNumber = 77676; return confirmationNumber;
} }
CarRentalCarRentalבניית מחלקת השרות בניית מחלקת השרות --22המשך שלבהמשך שלב
חדשחדשNETNET 3.0 3.0.. בב
WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation
[DataContract] public class Rent
{ string carName; string location; string date;[ DataMember]
public string CarName { get { return carName; }
set { carName = value; }}
[ DataMember] public string Location
{ get { return location; } set { location = value; }
} [ DataMember]
public string Date { get { return date; }
set { date = value; }} }
מחלקת השרותמחלקת השרות --22 שלב שלבסיכוםסיכום
חדשחדשNETNET 3.0 3.0WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation.. בב
using System.ServiceModel;using System.Runtime.Serialization;
[ServiceContract] public interface IServiceCarRental
{ [ OperationContract]
bool Check(Rent rnt);}
public class CarRental : IServiceCarRental
{ public bool Check(Rent rnt)
{ // connect to data base service
return true;} }
[DataContract] public class Rent
{ string carName; string location ;
string date;[ DataMember]
public string CarName{
get { return carName; } set { carName =
value; }} .………… .………… }
חדשחדשNETNET 3.0 3.0.. בב
WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation
הכל ביחדהכל ביחד --22סיכום שלבסיכום שלב
Web.ConfigWeb.Config דרך דרך endpointendpoint –הגדרת –הגדרת 33שלבשלב
חדשחדשNETNET 3.0 3.0.. בב
WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation
<services><service name="CarRental>..………… "
< endpoint address="" binding="wsHttpBinding " contract="IServiceCarRental>/"
/< service>/<services>
endpointendpoint –תסריט ל –תסריט ל 33המשך שלבהמשך שלב
חדשחדשNETNET 3.0 3.0.. בב
WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation
CallerCaller ServiceService
MessageMessageEndpointEndpoint EndpointEndpoint
EndpointEndpoint
חדשחדשNETNET 3.0 3.0.. בב
WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation
Web.ConfigWeb.Config דרך דרך endpointendpoint –הגדרת –הגדרת 33סוף שלבסוף שלב
חדשחדשNETNET 3.0 3.0.. בב
WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation
@ %<ServiceHost Language=C# Debug="true "Service="CarRental" CodeBehind="~/App_Code/CarRental.cs>% "
SVCSVC – הגדרת קובץ – הגדרת קובץ 44שלבשלב
חדשחדשNETNET 3.0 3.0.. בב
WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation
– מריצים ובודקים – מריצים ובודקים55שלבשלב
חדשחדשNETNET 3.0 3.0.. בב
WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation
SVCUTIL.EXESVCUTIL.EXE תוך שימוש בשרות תוך שימוש בשרות ProxyProxy – מיצרים – מיצרים 66שלבשלבsvcutil.exe http://localhost:1209/WCFServiceForCarRental/Service.svc?wsdl
חדשחדשNETNET 3.0 3.0.. בב
WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation
ASP.NETASP.NET – בונים אפליקצית – בונים אפליקצית 77שלבשלב
חדשחדשNETNET 3.0 3.0.. בב
WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation
ASP.NETASP.NET – בונים אפליקצית – בונים אפליקצית 77המשך שלבהמשך שלב
חדשחדשNETNET 3.0 3.0.. בב
WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation
של מחלקת השרות של מחלקת השרותProxyProxy – מוסיפים את ה- – מוסיפים את ה- 77המשך שלבהמשך שלב
חדשחדשNETNET 3.0 3.0.. בב
WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation
של מחלקת השרות של מחלקת השרותProxyProxy – מוסיפים את ה- – מוסיפים את ה- 77המשך שלבהמשך שלב
חדשחדשNETNET 3.0 3.0.. בב
WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation
של מחלקת השרות של מחלקת השרותProxyProxy – מוסיפים את ה- – מוסיפים את ה- 77המשך שלבהמשך שלב
חדשחדשNETNET 3.0 3.0.. בב
WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation
של מחלקת השרות של מחלקת השרותProxyProxy – מוסיפים את ה- – מוסיפים את ה- 77המשך שלבהמשך שלב
חדשחדשNETNET 3.0 3.0.. בב
WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation
– מוסיפים הגדרת השיחה של הלקוח – מוסיפים הגדרת השיחה של הלקוח 77המשך שלבהמשך שלבendpointendpoint
Web.ConfigWeb.Configבקובץ בקובץ
חדשחדשNETNET 3.0 3.0.. בב
WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation
ProxyProxy – משתמשים ב – משתמשים ב88שלבשלב
חדשחדשNETNET 3.0 3.0.. בב
WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation
ProxyProxy – משתמשים ב – משתמשים ב88המשך שלבהמשך שלב
חדשחדשNETNET 3.0 3.0.. בב
WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation
ProxyProxy – הצצה למחלקת ה – הצצה למחלקת ה88המשך שלבהמשך שלב
חדשחדשNETNET 3.0 3.0.. בב
WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation
תסריט תסריט
Address, Binding, ContractAddress, Binding, Contract
CallerCaller ServiceService
MessageMessageAABBCC AA BB CC
AA BB CC
AddressAddress BindingBinding ContractContract
(Where)(Where) (How)(How) (What)(What)
חדשחדשNETNET 3.0 3.0.. בב
WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation
BindingsBindingsאפשרויות קישור אפשרויות קישור
BasicHttpBindingBasicHttpBinding
WsHttpBindingWsHttpBinding
NetTcpBindingNetTcpBinding
NetNamedPipesBindingNetNamedPipesBinding
SOAP over HTTP
SOAP over HTTP, J2EE
Binary SOAP: WCF-to-WCF over Tcp
Binary SOAP: WCF-to-WCF in same pc
רשימה חלקיתרשימה חלקית
תודה על ההקשבהתודה על ההקשבה
WCFWCF NETNET 3.0 3.0.. בב