DCSIMG
April 2010 - Posts - I Love C#
Sign in | Join | Help

I Love C#

Eyal Vardi

April 2010 - Posts

Windows Server AppFabric Beta 2 Refresh

פורסם בתאריך Apr 29 2010, 06:40 AM על ידי Vardi

AppFabric_73AA59F3

סוף סוף… אפשר גם לעבוד עם דוט-נט 4.0 גירסה RTM וגם עם AppFabric. להורדה לחצו כאן.

הוצאתי גם גירסה מעודכנת בקודפלקס של AppFabric Caching Admin Tool. החידוש המרכזי שעליו אני מתחיל לתת גז, זה חיפוש ע"פ מפתח או Tag. אני רוצה לבנות מודול שלם של BI שיעזור לנו להבין איזה אברים יש ב-Cache ומה המדינות של כל איבר ואיבר.

 Search

יום רביעי 28 אפריל 2010 08:30 - What’s New in WCF and Workflow Services 4.0

פורסם בתאריך Apr 25 2010, 05:14 PM על ידי Vardi

ביום רביעי 28 אפריל 2010 08:30 - יום רביעי 28 אפריל 2010 12:30 (GMT+02:00) אני עושה יום עיון.

מבט כולל על אירוע

במסגרת סדרת המפגשים בנושא הטכנולוגיות החדשות ב- Visual Studio 2010 ו- Net Framework 4.0. נקיים מפגש נוסף בנושא החידושים ב- WCF 4.0. נציג חידושים בתחום הקונפיגורציה, איתור השירותים (Discovery) והחיבור ל- Windows Workflow Foundation.

לוח זמנים:
8:30 – 9:00 התכנסות

9:00 – 10:30 What’s new in WCF 4.0
מה חדש ב-  WCF 4.0 ששווה לחכות לו בקוצר רוח? בחלק זה של היום נכיר את החידושים בטנולוגיה ונראה איך הם משפרים את חויית השימוש בה. 
Simplified Configuration 
Discovery 
Routing Service 
10:30 – 11:00 הפסקה

11:00 – 12:30 Web Programming and Workflow Services
בחלק זה של היום נראה איך WCF 4.0 עוזרים לנו בפיתוח אפליקציות ל- Web מבוססות REST וכיצד ניתן לפתח שירותים בעזרת חיבור ל- Windows Workflow Foundation.
Improved REST Support 
Workflow Services 
Miscellaneous Advanced Features 

12:30 סיום משוער

ספירת מלאי ומועמדות לקורס WPF & SilverLight

פורסם בתאריך Apr 11 2010, 06:53 PM על ידי Vardi

אז לכבוד האביב שהגיע עשינו קצת סדר בפעילות ה- UI Applications שלנו והתארגנו לספירת מלאי.

גילינו  שאחרי כמעט שנתיים של צבירת ניסיון ב- WPF, SilverLight, XAML    ו- PRISM זה הסטטוס שלנו

· יש לנו במאגר למעלה מעשרים לקוחות עבורם תכננו, ליווינו ופיתחנו פתרונות בתחום

· העברנו למעלה מ- 30 הדרכות וקורסים (בבית הלקוח ובמכללה שלנו)

· מרכז הפיתוח שלנו ייצר כמעט עשרה פרוייקטי Turn Key

· סיימנו בהצלחה את קורס ההכשרה הפנימי הראשון ושילבנו בהצלחה את כל בוגריו בפעילות אצל לקוחותינו.

המסקנה המתבקשת היא שהגיע הזמן  לפתוח את הקורס הפנימי השני (אני מלמד את הקורסים הפנימיים של המסלול)

לקורס מתקבלים אך ורק אנשים שעונים לתנאים הבאים:

2-3 שנות נסיון בפיתוח בסביבת .NET  (Winforms או ASP.NET )

ידע מצויין בעבודה עם בסיסי נתונים

אהבה גדולה לטכנולוגיה

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

נמצאים בשלב של חיפוש עבודה ואינם מועסקים!

אז אם אתם עונים לכל התנאים, אתם מוזמנים לפנות ישירות אליי או לשלוח קורות חיים ל- jobs@e4d.co.il ולהגיש את המועמדות שלכם לקורס הקרוב, שיפתח אחרי החג.

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

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

ומה בסוף? אפשרות להשתלב בצוות ה- Experts שלנו ולפתח באחת או יותר מטכנולוגיות הUI של דור ה4.0

Silverlight 4 & WCF

פורסם בתאריך Apr 11 2010, 12:05 PM על ידי Vardi

ב-SL4 מיקרוסופט הוסיפה את יכולות ההרחבה ל-SL4. כמו למשל הממשקים : IServiceBehavior , IContractBehavior & IOperationBehvior  כלמור אנחנו מתחילים לקבל כמעט את כל מה שאחנו מכירים מ-WCF דוט-נט.

בעקבות התוספות האלו כתבתי ZipMessageInspector, השתמשתי ב – ComponentOne Zip library. בשורה התחתונה קבלנו שיפור ענק בביצועים.

הקוד ב-SL:

Code Snippet
  1. public class ZipClientMessageInspector : IClientMessageInspector
  2.     {
  3.         public void AfterReceiveReply( ref Message reply , object correlationState )
  4.         {
  5.             //TODO: UnZip by Header.
  6.             var reader = reply.GetBody<Byte[]>();
  7.             using ( var ms  = new MemoryStream( reader ) )
  8.             using ( var zip = new C1ZStreamReader( ms ) )
  9.             using ( var sr  = new StreamReader( zip ) )
  10.             {
  11.                 var result = sr.ReadToEnd();
  12.                 var xml = XElement.Parse( result );
  13.                 reply = Message.CreateMessage(
  14.                     reply.Version ,
  15.                     reply.Headers.Action ,
  16.                     xml
  17.                     );
  18.             }
  19.         }
  20.         public object BeforeSendRequest( ref Message request , IClientChannel channel )
  21.         {
  22.             //TODO: Zip by Header.
  23.             var reader = request.GetBody<XElement>()
  24.                             .ToString(SaveOptions.DisableFormatting);
  25.             using ( var ms = new MemoryStream() )
  26.             using ( var zip = new C1ZStreamWriter( ms ) )
  27.             using ( var writer = new StreamWriter( zip ) )
  28.             {
  29.                 writer.Write( reader );
  30.                 writer.Flush();
  31.                 var zipresult = ms.ToArray();
  32.                 request = Message.CreateMessage(
  33.                     request.Version ,
  34.                     request.Headers.Action ,
  35.                     zipresult
  36.                     );
  37.             }
  38.             return null;
  39.         }
  40.     }

הקוד ב-צד השרת:

Code Snippet
  1. public class ZipDispatchMessageInspector : IDispatchMessageInspector
  2.     {
  3.         public object AfterReceiveRequest( ref Message request , IClientChannel channel , InstanceContext instanceContext )
  4.         {
  5.            //TODO: UnZip by Header.
  6.             var reader = request.GetBody<byte[]>();
  7.             using( var ms  = new MemoryStream( reader ) )
  8.             using( var zip = new C1ZStreamReader( ms ) )
  9.             using( var sr  = new StreamReader( zip ) )
  10.             {
  11.                 var result = sr.ReadToEnd();
  12.                 var xml = XElement.Parse(result);
  13.                 request = Message.CreateMessage(
  14.                     request.Version,
  15.                     request.Headers.Action,
  16.                     xml
  17.                     );
  18.             }
  19.             return null;
  20.         }
  21.         public void BeforeSendReply( ref Message reply , object correlationState )
  22.         {
  23.             //TODO: Zip by Header.
  24.             var reader  = reply.GetBody<XElement>().ToString(SaveOptions.DisableFormatting);
  25.             using ( var ms = new MemoryStream() )
  26.             using ( var zip = new C1ZStreamWriter( ms ) )
  27.             using ( var sw = new StreamWriter( zip ) )
  28.             {
  29.                 sw.Write( reader );
  30.                 sw.Flush();
  31.                 var zipresult = ms.ToArray();
  32.                 reply = Message.CreateMessage(
  33.                                 reply.Version ,
  34.                                 reply.Headers.Action ,
  35.                                 zipresult
  36.                                 );
  37.             }
  38.         }
  39.     }

ניתן לשפר ולהוסיף עוד את ה-ZIP אך זה לפוסט הבא.

MEF Visualizer

פורסם בתאריך Apr 03 2010, 09:02 PM על ידי Vardi

תמיד רציתי לעשות ל-MEF ויזואליזציה של הקטלוג והחלקים בתוך הקטלוג. התחלתי את העבודה ב- WPF , ע"י לקחת את TreeView ולשנות לו את העיצוב… יותר מדי עבודה.

image

כאשר רציתי לראות את הקשרים השונים בין Part ל-Part זה התחיל להיות מורכב. לכן חיפשתי טכנולוגיה אחרת, הגעתי ל- DGML שנמצא ב- Visual Studio 2010 Ultimate, ואפשר לעשות עם זה הרבה דברים נחמדים.

ממליץ לקרוא את:

אז התחלתי לעבוד על ה- MEF Visualizer הפעם בטכנולוגית DGML, יצא מגניב לעבודה של כמה שעות, עדין יש הרבה עבודה אבל כבר זה נותן המון להבנת ה- CompositionContainer.

FileDownload

מה אנחנו רואים – את החלקים בתוך הקטלוגים ואת הקשרים בין ה- Export  וה- Import.

http://mefvisualizer.codeplex.com/

NXT LOGO ROBOT

פורסם בתאריך Apr 01 2010, 10:15 AM על ידי Vardi

בעקבות הסדנאות שהעברנו על הרובוטים, השאלה שתמיד חזרה היכן אפשר לקנות את הערכה? הצלחנו לארגן מחיר קבוצתי של 2,000 ש"ח כולל מע"מ, הנחה של 500 ש"ח ממחיר השוק. אז מי שרוצה שאשלח מייל :-).

נ.ב בעקבות הביקוש הרבה לסדנא פתחנו מחזור – 4 לסדנא ביום שלישי ה-6 לאפריל לרישום לחץ כאן.

סרטון קצר מפרויקט הסיום של הילדים.

Robotika