Browse by Tags
All Tags »
WebService (
RSS)
אחד הדברים המעצבנים בעבודה עם ajax, זה הדרך שבה חוזר אובייקט DateTime. בהנחה שהאובייקט נראה כך: Code Snippet public class Person { public int MyProperty { get ; set ; } public DateTime Time { get ; set ; } } ויש לנו Action הנראה כך: Code Snippet [ HttpGet ] public JsonResult GetPerson() { return Json( new Person () { MyProperty = 2, Time = DateTime .Now }, JsonRequestBehavior .AllowGet); } כשנקרא ל – action בעזרת jQuery ajax: Code Snippet var personFromServer = null ; // Get data from server $.getJSON...
תוכנת magic היא מחולל יישומים בדומה ל – access, יש עדיין הרבה חברות שמפתחות את היישומים שלהם ב – magic (שמעתי לאחרונה שהגרסה הבאה של magic תהיה מוטמעת ב – net (כלומר הם מתממשקים עם visual studio ויאפשרו ליצור פרייקט חדש מסוג magic). אחת מהיכולות של magic נקראת RIA – הגדרה של פרוייקט כ – RIA מאפשרת בעצם לכתוב יישומי magic לאינטרנט, בשרת שבו magic מותקנת קיים רכיב מיוחד הנקרא ברוקר, שהוא המתווך בין IIS לבין היישום. לאחרונה קבלתי קובץ wsdl וכמה קבצי xsd של פרוייקט magic כלשהו (מסתבר שהם יודעים לייצא...
בתפוז עלתה השאלה כיצד מתחילים לעבוד עם web services, בפוסט זה אני אדגים את השלבים צעד אחר צעד לאלו המתחילים את דרכם בעולם ה - web. בפרוייקט ה - web צריך להוסיף item חדש מסוג web service (סיומת asmx) - נקרא לו MyWebService. יווצרו שני קבצים - הראשון MyWebService.asmx שאם תלחצו עליו עם העכבר ותבחרו ב - View Markup תראו שיש בו את השורה הבאה בלבד <% @ WebService Language ="C#" CodeBehind ="MyWebService.asmx.cs" Class ="WebApplication10.MyWebService" %> שכל מה שכתוב...
אחד מהדברים שאנחנו כמפתחי WEB נתקלים בהם מידי פעם, היא כיצד לדעת מתי הדפדפן נסגר, בדרך כלל הסיבה שאנחנו רוצים לדעת זאת היא בכדי לנקות Session שאין צורך בו עוד, אך לא רק. הבעייה הגדולה עם הרצון לדעת מתי המשתמש לחץ על ה - X הוא שזה נוגד את חוקי ה - Security של הדפדפן, הפיתרון הלכאורה פשוט הוא להרשם לאירוע unload ולכתוב קוד כלשהו, הבעייה עם השיטה הזו היא שאירוע זה קורה בכל PostBack מה שאומר שאם יש טופס עם לחצנים כל לחצן יפעיל את הקוד שלכאורה אמור להתבצע רק בזמן סגירת הדפדפן. באחד הייעוצים בהם הייתי...
בס"ד המדריך המלא ל – ASP.NET AJAX הורדת המדריך בגרסת PDF . הורדת קבצי המקור של דוגמאות הקוד שבמדריך . תוכן העניינים: · דרישות קדם. · מטרת המדריך. · מה זה בכלל AJAX . · Native AJAX – איך עבדו פעם ואיך הכול מתבצע מאחורי הקלעים. o עבודה עם XmlHttpRequest . o ...
כיצד ניתן להפעיל מתודות של WebService שה - Proxy שלו נוצר בזמן ריצה. בפוסט הקודם הראיתי שני דרכים לעבוד עם WebService שיש לנו את הכתובת שלו רק בזמן ריצה. קבלתי שאלה במייל כיצד ניתן לקבל את רשימת המתודות שלו ולהפעיל אותם. התשובה היא כמובן בעזרת reflection . ואני אדגים כאן איך עושים את זה. את דוגמת הקוד ניתן להוריד כאן . הפתרון של בניית ה - WebService בצורה דינמית מתבסס על התשובה כאן נתחיל: נגדיר מחלקה בשם WsProxy. ויהיו בו המתודות הבאות: GetWebService Methods GetPartameters Inovke נעבור על המתודות...
ב - WebService כדי לדעת מה ה - IP של ה - client שהפעיל את המתודה אנחנו כותבים: HttpContext .Current.Request.UserHostAddress; כדי לדעת את זה ב - WCF צריך לכתוב את הקוד הבא: var context = OperationContext .Current; var prop = ( RemoteEndpointMessageProperty ) context.IncomingMessageProperties[ RemoteEndpointMessageProperty .Name]; string ip = prop.Address;
כתבתי כמה פוסטים על הפעלה של WebService מתוך JavScript ומקבלים תוצאות ב - JSON. זה עובד מעולה בתוך אותו דומיין. כלומר אם אני גולש ל - http://www.MyDomain.co.il/App/MyPage.aspx ובתוך הדף יש JavaScript שמנסה לגשת ל - WebService בכתובת http://www.MyDomain.co.il/Services/Person.asmx הכל יעבוד כמו שצריך. אבל אם ה - JavaScript ינסה להגיע ל - Service בדומיין אחר http://www.OtherDomain.co.il/Services/Person.asmx אחת דינו של הקריאה להכשל ולהציג הודעת שגיאה (או אזהרה) של חוסר הרשאות Microsoft JScript runtime...
נניח שיש לכם WebService שנראה ככה: public class Service1 : WebService { [ WebMethod ] public MyClass HelloWorld() { return new MyClass (); } } public class MyClass { public int MyProperty { get ; set ; } public string MyProperty1 { get ; set ; } public void Func() { } } כשתוסיפו WebRederence בפרויקט שלכם ל - WebService - תגלו שה - MyClass שמגיע מהמתודה HelloWoeld חסר מתודות, כלומר יש לו רק את המאפיינים הסיבה היא די פשוטה - אין דרך להעביר מתודות - מה שיכול לעבור ברשת זה רק מידע, ולמעשה כשמוסיפים WebService...
בהמשך ל - Web Service -> JSON -> JavaScript. קל פשוט ונהדר ו - שליחה של Complex Type ו - Array ל - Web Service בפורמט JSON רציתי להראות שימוש נחמד בדבר הזה. אפשר להוריד את הפרויקט - מכאן . סיפור לקוח: הוא מוציא עבודה לגרפיקאים שמחזירים לו דפי html ו - css שהוא משלב באתר שלו - באותם טפסים יש הרבה פעמים שליחה של מיילים - הוא לא רוצה לקחת את מה שהוא מקבל מהגרפיקאים ולהמיר את זה ל - asp.net, הוא רוצה להשתמש בהם כמו שהוא קיבל - והכי הרבה הוא מוכן לכתוב פונקציית JS שתאסוף את הנתונים מהדף ותשלח אותם...
בהמשך לפוסט Web Service -> JSON -> JavaScript. קל פשוט ונהדר אני מדגים שם איך לפנות ל - WebSerive ולקבל את התשובות בפורמט JSON, בפוסט הנוכחי אני אדגים איך פונים ל - WebService שמצפה לקבל טיפוס שהוא לא מה - Primitive Types. נניח שיש WebService שנראה כך: (לא לשכוח להוריד את ההערה מ - ScriptService - אחרת אי אפשר להפעיל מ - JS) [ WebService (Namespace = "http://tempuri.org/" )] [ WebServiceBinding (ConformsTo = WsiProfiles .BasicProfile1_1)] [ ToolboxItem ( false )] [ ScriptService ...
אחרי דיון ארוך עם אחד מהקוראים (החביבים) והמגיבים הקבועים שלי ( עמירם ) כתבתי את הדוגמא הבאה שהיא חיקוי (עלוב) של ה - AutoComplete של Ajax. הדוגמא מגיעה כדי להראות נכונות של הקוד, ומכאן אפשר לקחת את זה קדימה. המטרה היא לעשות משהו דומה ל - AutoComplete ב - JavaScript שניגש ל - WebService. את הדוגמא המלאה ניתן להוריד מכאן . (נ.ב. הדוגמא עובדת רק ב - IE מכיון שב - FF צריך לכתוב את הגישה לשירות בצורה שונה - ותודה לברוך על ההערה) אז ככה: נתחיל ב - WebService [ ScriptService ] public class WebService1...
נניח שאנחנו רוצים להוסיף ב ajax ערכים ל dropDownList (לא על ידי UpdatePanel). נראה את הקוד הבא: דבר ראשון נייצר WebService שאפשר לקרוא לו מ Ajax, 1 [ WebService (Namespace = "http://tempuri.org/" )] 2 [ WebServiceBinding (ConformsTo = WsiProfiles .BasicProfile1_1)] 3 [ ToolboxItem ( false )] 4 [ ScriptService ] 5 public class WebService1 : System.Web.Services. WebService 6 { 7 [ WebMethod ] 8 public string [] GetListByText( string text) 9 { 10 return new string [] { "A" , "B"...