מה חדש ב .net 3.0

46
הה הה ההה ההה ה ה.NET .NET 3.0 3.0 ףףףף ףףףף ףףףף ףףףף[email protected] [email protected] www.DrDotNet.com www.DrDotNet.com 17 17 ףףףףףף ףףףףףף2006 2006 . . ףףףףף ףףף ףףףףףף ףףףףף ףףףףףף ףףףףף ףףף ףףףףףף ףףףףף ףףףףףף ףףףףף ףףףףף. . הההההה ההההההה ההה ההה הההההה ההההההה ההה ההה. .

Upload: guy

Post on 05-Jan-2016

44 views

Category:

Documents


2 download

DESCRIPTION

מה חדש ב .NET 3.0. בלאן יוסף [email protected] www.DrDotNet.com 17 לדצמבר 2006. כנס המורים הארצי השביעי למדעי המחשב. המכללה האקדמית בית ברל. מה חדש ב .NET 3.0. 1 - WCF - Windows Communication Foundation : מימוש מערכות מבוזרות. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: מה  חדש  ב  .NET  3.0

NET.NET 3.0 3.0. ב בחדשחדשמה מה

בלאן יוסףבלאן יוסף

[email protected][email protected]

www.DrDotNet.comwww.DrDotNet.com

20062006לדצמבר לדצמבר 17 17 ....כנס המורים הארצי השביעי למדעי המחשבכנס המורים הארצי השביעי למדעי המחשב

..המכללה האקדמית בית ברלהמכללה האקדמית בית ברל

Page 2: מה  חדש  ב  .NET  3.0

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 גרסה גרסה

Page 3: מה  חדש  ב  .NET  3.0

WCFWCF NETNET 3.0 3.0.. בב

Page 4: מה  חדש  ב  .NET  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הלוגית של המערכת הלוגית של המערכת

להיות נגישה לאפליקציות אחרות שחלקם רץ להיות נגישה לאפליקציות אחרות שחלקם רץ לחברה. לחברה.מחוץמחוץ אותה חברה וחלקם אותה חברה וחלקם מתוךמתוך

תסריט

Page 5: מה  חדש  ב  .NET  3.0

חדשחדשNETNET 3.0 3.0.. בב

WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation

ולכן הוחלט לבנות את השכבה הלוגית כשכבה ולכן הוחלט לבנות את השכבה הלוגית כשכבה Service OrientedService Orientedאשר מספקת שרות: אשר מספקת שרות:

ואשר יחשפו בפני אפליקציות אחרות.ואשר יחשפו בפני אפליקציות אחרות.

:מכאן יש לנו מערכת של:מכאן יש לנו מערכת של

Application To ApplicationApplication To Application

Page 6: מה  חדש  ב  .NET  3.0

חדשחדש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תקשורת הדדית

חשובה ביותר

Page 7: מה  חדש  ב  .NET  3.0

חדשחדשNETNET 3.0 3.0.. בב

התשובה

WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation

!!!איך מחברים הכל ביחד

WCF

Page 8: מה  חדש  ב  .NET  3.0

חדשחדש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

Page 9: מה  חדש  ב  .NET  3.0

חדשחדשNETNET 3.0 3.0.. בב

WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation

משתמשים

רק ב

WCF

ולמה?

אם המערכת נבנית היום :אזי

Page 10: מה  חדש  ב  .NET  3.0

חדשחדש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

איחוד שלאיחוד של

Page 11: מה  חדש  ב  .NET  3.0

חדשחדש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

Page 12: מה  חדש  ב  .NET  3.0

חדשחדש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מערכת בסיסית של

Page 13: מה  חדש  ב  .NET  3.0

חדשחדש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ב

Page 14: מה  חדש  ב  .NET  3.0

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

של מספר מודלים למטרת בניית אפליקציות מונחות של מספר מודלים למטרת בניית אפליקציות מונחות איחודאיחוד- 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

Page 15: מה  חדש  ב  .NET  3.0

תוכל לתקשר עם תהליכים תוכל לתקשר עם תהליכים 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אפליקציה מבוססת אפליקציה מבוססת

Page 16: מה  חדש  ב  .NET  3.0

חדשחדשNETNET 3.0 3.0.. בב

WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation

TangoTango מחליטה לרקוד ביחד עם מיקרוסופט SUN , 2006ביוני

באולם שהרצפה שלו היא לוח שחמט.

Page 17: מה  חדש  ב  .NET  3.0

חדשחדש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בניית יישומי

Page 18: מה  חדש  ב  .NET  3.0

חדשחדשNETNET 3.0 3.0.. בב

WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation

Process

Application

WCF

Methods

Host

Service Classendpoint

מבנה כל שרותמבנה כל שרות

Page 19: מה  חדש  ב  .NET  3.0

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

Page 20: מה  חדש  ב  .NET  3.0

::מתחילים פרויקט חדשמתחילים פרויקט חדש --11שלבשלב

חדשחדשNETNET 3.0 3.0.. בב

WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation

Page 21: מה  חדש  ב  .NET  3.0

::הצצה למבנה הפרויקט הצצה למבנה הפרויקט --11המשך שלבהמשך שלב

חדשחדשNETNET 3.0 3.0.. בב

WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation

Page 22: מה  חדש  ב  .NET  3.0

CarRentalCarRentalבניית מחלקת השרות בניית מחלקת השרות --22שלבשלב

חדשחדשNETNET 3.0 3.0.. בב

WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation

שימוש במרחבי השמות הבאים:

using System.ServiceModel; //WCF

using System.Runtime.Serialization; //Data

Page 23: מה  חדש  ב  .NET  3.0

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);

}

Page 24: מה  חדש  ב  .NET  3.0

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;

} }

Page 25: מה  חדש  ב  .NET  3.0

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; }} }

Page 26: מה  חדש  ב  .NET  3.0

מחלקת השרותמחלקת השרות --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; }} .………… .………… }

Page 27: מה  חדש  ב  .NET  3.0

חדשחדשNETNET 3.0 3.0.. בב

WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation

הכל ביחדהכל ביחד --22סיכום שלבסיכום שלב

Page 28: מה  חדש  ב  .NET  3.0

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>

Page 29: מה  חדש  ב  .NET  3.0

endpointendpoint –תסריט ל –תסריט ל 33המשך שלבהמשך שלב

חדשחדשNETNET 3.0 3.0.. בב

WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation

CallerCaller ServiceService

MessageMessageEndpointEndpoint EndpointEndpoint

EndpointEndpoint

Page 30: מה  חדש  ב  .NET  3.0

חדשחדשNETNET 3.0 3.0.. בב

WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation

Web.ConfigWeb.Config דרך דרך endpointendpoint –הגדרת –הגדרת 33סוף שלבסוף שלב

Page 31: מה  חדש  ב  .NET  3.0

חדשחדש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שלבשלב

Page 32: מה  חדש  ב  .NET  3.0

חדשחדשNETNET 3.0 3.0.. בב

WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation

– מריצים ובודקים – מריצים ובודקים55שלבשלב

Page 33: מה  חדש  ב  .NET  3.0

חדשחדש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

Page 34: מה  חדש  ב  .NET  3.0

חדשחדשNETNET 3.0 3.0.. בב

WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation

ASP.NETASP.NET – בונים אפליקצית – בונים אפליקצית 77שלבשלב

Page 35: מה  חדש  ב  .NET  3.0

חדשחדשNETNET 3.0 3.0.. בב

WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation

ASP.NETASP.NET – בונים אפליקצית – בונים אפליקצית 77המשך שלבהמשך שלב

Page 36: מה  חדש  ב  .NET  3.0

חדשחדשNETNET 3.0 3.0.. בב

WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation

של מחלקת השרות של מחלקת השרותProxyProxy – מוסיפים את ה- – מוסיפים את ה- 77המשך שלבהמשך שלב

Page 37: מה  חדש  ב  .NET  3.0

חדשחדשNETNET 3.0 3.0.. בב

WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation

של מחלקת השרות של מחלקת השרותProxyProxy – מוסיפים את ה- – מוסיפים את ה- 77המשך שלבהמשך שלב

Page 38: מה  חדש  ב  .NET  3.0

חדשחדשNETNET 3.0 3.0.. בב

WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation

של מחלקת השרות של מחלקת השרותProxyProxy – מוסיפים את ה- – מוסיפים את ה- 77המשך שלבהמשך שלב

Page 39: מה  חדש  ב  .NET  3.0

חדשחדשNETNET 3.0 3.0.. בב

WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation

של מחלקת השרות של מחלקת השרותProxyProxy – מוסיפים את ה- – מוסיפים את ה- 77המשך שלבהמשך שלב

Page 40: מה  חדש  ב  .NET  3.0

חדשחדשNETNET 3.0 3.0.. בב

WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation

– מוסיפים הגדרת השיחה של הלקוח – מוסיפים הגדרת השיחה של הלקוח 77המשך שלבהמשך שלבendpointendpoint

Web.ConfigWeb.Configבקובץ בקובץ

Page 41: מה  חדש  ב  .NET  3.0

חדשחדשNETNET 3.0 3.0.. בב

WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation

ProxyProxy – משתמשים ב – משתמשים ב88שלבשלב

Page 42: מה  חדש  ב  .NET  3.0

חדשחדשNETNET 3.0 3.0.. בב

WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation

ProxyProxy – משתמשים ב – משתמשים ב88המשך שלבהמשך שלב

Page 43: מה  חדש  ב  .NET  3.0

חדשחדשNETNET 3.0 3.0.. בב

WCFWCF -- WWindows indows CCommunication ommunication FFoundationoundation

ProxyProxy – הצצה למחלקת ה – הצצה למחלקת ה88המשך שלבהמשך שלב

Page 44: מה  חדש  ב  .NET  3.0

חדשחדש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)

Page 45: מה  חדש  ב  .NET  3.0

חדשחדש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

רשימה חלקיתרשימה חלקית

Page 46: מה  חדש  ב  .NET  3.0

תודה על ההקשבהתודה על ההקשבה

WCFWCF NETNET 3.0 3.0.. בב