DCSIMG
I Love C#
Sign in | Join | Help

I Love C#

Eyal Vardi

למה לא לקנות מניות של פייסבוק

פורסם בתאריך May 22 2012, 05:33 AM על ידי Vardi

אני חושב שכל החברות שעושות כסף מהמידע של המשתמשים כמו פייסבוק לינקאין וגוגל+ צריכות לעבור מהעולם. זה לא רק שהם עושות כסף מהמידע האישי שלי הם גם סוחרות במידע הזה עם מפרסמים. לכן אני רוצה להציג לפניכם את הרשת החברתית הבאה...

נקודות למחשבה:

1. הטלפונים החדשים עובדים עם 4 ליבות ואחד גיגה RAM.

2. בארה"ב הטלפונים עובדים ב-G4 עם חבילות גלישה של מחיר קבוע.

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

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

ומכאן עלה לי הרעיון הבאה:

במקום לעלות את המידע שלנו לאתרים כמו פייסבוק, המידע יהיה בטלפון שלנו ואנחנו נהיה הבעלים של המידע ונוכל לקבוע מי ראשי לראות את המידע. הדרך שבא ימצאו אותנו ברשת ע"י P2P. כך נשיג שליטה על המידע שלנו. ( אני לא מרחיב על האפשרויות הגלומות בשיטה כאני רוצה לראות את עצמי בונה מוצר כזה בעתיד. )

שסיפרתי את זה לרן לוינסקי הוא סיפר לי על פרויקט( Diaspora , לינק נוסף ) אני מאמין שזה השלב הבא ברשתות החברתיות.

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

Building Web App’s with ASP.NET MVC, EF and HTML5

פורסם בתאריך May 21 2012, 01:57 PM על ידי Vardi

aspשנת 2012 היא שנה שבה אתם צריכים לקבל החלטה, האם להמשיך לפתח ולתחזק את האתר ב-ASP.NET Web Forms או לעבור ל-MVC. ביום עיון זה נכיר את ההבדלים בין ASP.NET MVC לבין Web Forms במספר תחומים: מהירות פיתוח, פשטות, הפרדות ויכולות של בדיקות אוטומטיות.כמו כן נראה שהעבודה עם MVC, Entity Framework, HTML 5 בויזואל סטודיו מאפשר לבנות אתרים שעומדים בכל האתגרים החדשים שהשווק מציב בתקופה זו.

ב-6.6.2012 אני מעביר את יום העיון בירושלים. וב-11-6-2012 אני מעביר את יום העיון במיקרוסופט רעננה.
סדר יום:

8:30-9:00 התכנסות

9:00-10:30 ASP.NET MVC לעומת Web Forms

 מה זה ASP.NET MVC?
 במה זה שונה מ- ASP.NET Web Forms
 איך מפתחים עם זה UI  מורכב, אם אין פקדים? איפה ה-GRID שלי?
MVC & HTML 5  סיפור האהבה.

10:30-11:00הפסקה

11:00-12:30 ASP.NET MVC  ו- Entity Framework ועוד

 איך כותבים AJAX עם MVC?
 איך כותבים Validations בצד השרת וה-Client.
MVC  ו- Entity Framework  סיפור האהבה.

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

משחקי סיפור לטלפונים ולטאבלטים

פורסם בתאריך May 07 2012, 10:32 AM על ידי Vardi

שני משחקי-סיפור ראשונים מתוך 12. את האנימציה תכנן ובנה ארט-דירקטור מדיסני , הפלטפורמה שבנינו יכולה לארוז כל סיפור חדש כמעט ללא שינוי בקוד. אחד המכשולים העיקריים של אפליקציות מהסוג הזה הוא מהירות התגובה של האנימציות והצורך להקטין עד כמה שאפשר את נפח האפליקציה. אנחנו פיתחנו מתודולוגיה מיוחדת שמאיצה את האנימציות תוך שמירה על נפח מינימאלי.

האנימציות נבנו שהן יתאימו מודל מסך של מכשיר סלולארי, דרך טאבלטים ועד מסכי טלוויזיה HD ללא איבוד של איכות. ( אני חייב להגיד באופן אישי שאנחנו מאוד גאים בתוצאה )

 

Eee08ge9Oh_c6WLQaZ_pCccrMp6XEN-lsN7zknHgUwjGxfqW7HaXNlAEmgJIJ2ZlEA=w705

Adorable children book with educative, interactive touch. Kids love this app!

"One day a little girl with a red hood got a basket of fresh cookies and was asked to bring them to her ill granny. Who did she meet on her way and what did she do? Did the granny enjoyed the cookies?"

Little Red Riding Hood is one of the most kids apps that kidEbook LTD produce. It has all the lovable features that a touch screen device can give to your kid.

kidEbook’s interactive kids apps provide a fun, interactive reading experience for the most beloved children's stories. Packed with engaging, innovative activities, each storybook immediately connects with young children's imagination and creativity.

SrD2h6rtyfP2zEEIaw5fp_uHHZXdzPISKSXyZKxkXfT7_sEjGUoOt6Fl20Z_enEl0g=w705

Adorable children book with educative, interactive touch. Kids love this app!

" One day the quick rabbit and the slow tortoise had a debate. They arranged a contest to check out - who is really the fast one. Wonder who won?”

Rabbit & Turtle is one of the most kids apps that kidEbook LTD produce. It has all the lovable features that a touch screen device can give to your kid.

kidEbook’s interactive kids apps provide a fun, interactive reading experience for the most beloved children's stories. Packed with engaging, innovative activities, each storybook immediately connects with young children's imagination and creativity.

גירסאות למכשירים נוספים יצאו בימים הקרובים.

SPRNuget Open Source Project

פורסם בתאריך Apr 22 2012, 05:47 AM על ידי Vardi

heroהכל התחיל במפגש יעוץ שעשיתי בבנק הפועלים. הם עובדים בסביבת עבודה שאין להם גישה לאינטרנט, והם רצו ליהנות מהיכולות של Nuget. מיקרוסופט מאפשרת להוריד שרת שאפשר להתקין אותו בארגון, אך הוא מאוד פשוט בלי הרבה יכולות. מכאן בא לי הרעיון לנהל את זה על SharePoint. יוני (ה-CTO  של החברה בתחום SP ) מיד התנדב לפתח את זה.

ניתן להוריד את הקוד מכאן: http://sprnuget.codeplex.com/
נשמח לקבל פידבקים.

 

What is it all about?

SPRNuGet combines SharePoint 2010 powerful features such as item security, publishing and UI to help you organize your code packages using build-in features of SharePoint such as folders, item level forms, ratings and enterprise keywords. The following screenshot shows an example for the repository folder:

SprNuget

Once a NuGet package is uploaded to the SPRNuGet folder in SharePoint you'll be able to edit all of the metadata of the package using the following form:

SPRNuget Form

The form allows you to edit the following package metadata fields:

  • Title
  • Description
  • Summary
  • Language
  • Copyrights
  • Version
  • Icon URL
  • Both the Latest Version and Absolute Latest version fields
  • The project URL
  • The project's License URL
  • Release notes
  • The license acceptance field
  • Tags (from a SPRNuGet term store created during the installation process)
  • Rating

Using NuGet's powerful integration with Visual Studio you'll be able to install packages straight from your local SharePoint repository!

Known issues

  1. Using NuGet Package Manager 1.7, packages from SPRNuGet will only show when "Include Prerelease" is selected. In NuGet Package Manager 1.6 there is no such issue.
  2. Search is not yet implemented. 
  3. Download count is not implemented yet and will always show '0'.
  4. Dependencies are not implemented yet and are not functioning at all.
  5. No support for multiply authors for packages yet.

Whats next for SPRNuGet?

In the coming releases of SharePoint Repository for NuGet you can expect the follows:

  1. Fix the issues with NuGet Package Manager 1.7
  2. Implement the search method.
  3. Implement dependencies.
  4. Implement download count and create a usage dashboard with statistics on packages, users etc.
  5. Fix multiply authors bug.
  6. Implement integration with FAST for SharePoint search engine. 
  7. Fix icon for NuGet packages inside the repository folder.
  8. Much much more ;)

E4D SharePoint 2012

פורסם בתאריך Apr 10 2012, 07:10 AM על ידי Vardi

השנה E4D פתחה חטיבה חדשה בניהולו של Idan Goldshlager וה-CTO הוא Johnny Tordgeman. החטיבה תתמקד באירגוניים הגדולים שעובדים עם SP ורוצים לשדרג את הכלי ע"י תוספות או מוצרים קיימים. ההתמחות ב-FAST והמוצרים ש-E4D מייצגת נותנים לנו את האפשרות לתת פתרונות אירגוניים בזמן קצר ובעלות סבירה.

רשימת המוצרים החמים:

Smart List Pro
Advanced tab, column and view permissions for SharePoint lists and document libraries

Smart Alert Pro
Upgrade your SharePoint alerts with conditions, templates and much more

Enterprise Capacity Solution
Security-trimmed cross-site collection navigation for SharePoint 2007/2010

Associated Tasks Field
Create and manage relationships between SharePoint items and documents

Connected Field
Cascading relation between two or more lookup columns in SharePoint lists

Smart Print Pro
Print and export SharePoint lists and items in your custom layout

Electronic Signature Field
Enables signing SharePoint list columns for regulatory purposes

Smart Action Pro
Save on development time by configuring advanced actions in your browser

Smart Import Pro
Automatically import emails and database items into SharePoint lists

מה חסר לי ב-Configuration Management בויזואל סטודיו

פורסם בתאריך Apr 06 2012, 11:16 AM על ידי Vardi

image

כאשר עובדים עם הרבה פרויקטים ולא רוצים לקמפל את כל ה-Solution אנחנו משתמשים ב-configuration management כדי להוריד את הפרויקטים שאנחנו לא רוצים שהוא יבנה מחדש כדי לחסוך זמן. הבעיה שיש הרבה פרויקטים להוריד או להוסיף פרויקטים ל-Build זה מציק. הפתרון שלי לבנות פרופילים בצורה של תיקיות, בתוך התיקיות היו הפרויקטים שאת רוצה לבנות. כלומר ב-configuration management אתה תבחר את התיקייה שאתה רוצה ובתוכה יהיו כל הפרויקטים. כך יהיה אפשר לבחור בין פרופילים של Server או Client. מה דעתכם?

WPF In or Out?

פורסם בתאריך Apr 05 2012, 06:42 AM על ידי Vardi

שנת 2012 היא שנה של צומת דרכים ענקית בתעשיית התוכנה. הטלפונים החכמים ומחשבי ה- Tablet מתחילים להופיע בכל מקום ולהשפיע על חוקי המשחק. מכאן שיש בלבול רב בקרב האנשים במה לפתח את הפרויקט הבא? WPF או HTML 5? בפוסט זה אני רוצה לפרוס את האני מאמין שלי לגבי מתי להשתמש בכל טכנולוגיה.

WPF יתרונות חסרונות

WPF היא טכנולוגיה הכי טובה שיש כיום בשוק כדי לבנות Desktop Application, היא מאפשרת לבנות מסכים עשירים בגרפיקה בביצועים טובים וכל זאת עם הפרדה טובה בין השכבות ע"י ה-Pattern של M-V-VM. סה"כ בשוק הישראלי בנינו איתה הרבה מערכות שו"ב גדולות, שאני בספק אם היינו יכולים לעשות את זה עם טכנולוגיה אחרת.

החסרונות של טכנולוגיה זו היא ביתרונות שלה... למה הכוונה?

1. האם אנחנו באמת צריכים את כל הגרפיקה המשוכללת הזו או אפשר להתכוון לכיוון פשוט כמו למשל המטרו, כלומר למסכים "נקים" ופשוטים. צריך לזכור שהאפקטים עולים לנו בהרבה זמן וכסף, ולא בטוח שזה מה שהלקוח באמת צריך למערכות מידע.

2. אפלקציות Desktop Application רצות בדר"כ ב-Process אחד, וככול שהאפליקציה גדלה האמינות שלה יורדת, דבר המביא לקריסות המערכת. אפלקציות שרצות ב-32 ביט בכלל בבעיה. להבדיל מריצה בדפדפן ששם קריסת טאב אחד לא מפילה את כל האפליקציה. נכון שאפשר לתכנן את האפליקציה שלנו טוב יותר או לא לכתוב באגים, אך המציאות מלמדת אחרת...

3. להפיץ עדכונים להרבה Clients זה לא פשוט בכלל. תוסיפו לזה שבערך כל שנתיים יש דוט-נט חדש ותקבלו שצריך תשתית חזקה מאוד שיכולה לתמוך בכל ההפצות של העדכונים. צריך לזכור שבארגונים גדולים החומרות ומערכות ההפעלה לא אחידות. בקיצור הפצת עדכונים למערכות Desktop Application זה אפשרי אך זה כאב ראש אחד גדול.

4. אחד הפרמטרים להצלחתה של טכנולוגיה היא גודל הקהילה שנוצרת סביב הטכנולוגיה וכמות המוצרים המשלימים שיש בטכנולוגיה זו.WPF בגלל גודל השוק שלו ("יחסית קטן") מאבד את הקהילה לטובת פלטפורמות ווב ומוביל. טכנולוגיה שהקהילה שלה לא גדולה יכולה להיסגר או להינטש בגלל חוסר פוטנציאל עסקי מצד מיקרוסופט, למשל Silverlight.

image

סיכום WPF

כתיבת Desktop Application בטכנולוגית WPF מתאימה ביותר כאשר מדברים על כמות קטנה של תחנות עם מערכת הפעלה של מיקרוסופט שצריכה את הכוח הגרפי ש-WPF נותן ושליטה מלאה במחשב.

במקומות שרוצים שהערכת תוכל לרוץ גם על סביבות אחרות כמו Apple או Android במילים אחרות כותב התוכנה / המוצר לא יכול להכתיב לצרכן את החומרה ומערכת ההפעלה WPF לא מתאים.

תודה על ה-MVP :-)

פורסם בתאריך Apr 02 2012, 08:23 AM על ידי Vardi

מיקרוסופט חידשה את ה-MVP, תודה !!!MVP Logo

הרבה אנשים שואלים אותי איך הופכים ל-MVP, מה צריך לעשות? התשובה היא פשוטה לתרום לקהילה, תרומה משמעותית ואיכותית.

אחרי 7 שנים ברציפות החלטתי לעשות בדיקת בית מה התרומה שלי לקהילה:

1. מרצה בכנסים של מיקרוסופט:

  • 2005 - Ready to Rock the Launch ,VSTO
  • 2006 - TechEd Eliat ,Data Binding
  • 2007 - Developers Academy ,VSTO
  • 2008 - Developer Academy ,WCF
  • 2008 – Developer Academy III,Web Service Programming with WCF 3.5
  • 2008 – Teched Eliat WCF
  • 2010 - Developer Academy 4, WCF 4.0
  • 2010 - Developer Academy 4, C# 4.0
  • 2010 - Microsoft Patterns & Practices
  • 2010 – TechEd Eliat, WPF & Prism

2. בתים פתוחים \ ימי עיון, כל שנה בין 2-3. לינק למצגות.

3. כלים בקוד פתוח, CodePlex:

והכלי שאני הכי גאה בו… שאנשי מיקרוסופט בחו"ל לקחו אותו והרחיבו אותו ומציגים אותו ללקוחות הגדולים שלהם, 8000 הורדות.

AppFabric Caching Admin Tool

בנוסף אפשר לקבל את כל המצגות שעשיתי במשך השנים כולל קורסים בלינק הבא. למעלה מ-15 קורסים ויותר מ-100 מצגות.

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

ASP.NET Web API Course–One Day

פורסם בתאריך Mar 29 2012, 06:58 AM על ידי Vardi

בעקבות השאלות הרבות למה להשתמש ב-Web Api ולא ב- WCF או MVC, החלטתי לבנות על החומרים של מיקרוסופט סדנא שתראה את היתרונות הרבים שיש בצורת עבודה זו.

ASP.NET Web API is a framework that makes it easy to build HTTP services that reach a broad range of clients, including browsers and mobile devices. ASP.NET Web API is an ideal platform for building RESTful applications on the .NET Framework.

Module 1: ASP.NET Web API Overview

clip_image001 ApiController Class
clip_image001[1] Calling the HTTP Service
clip_image001[2] Understanding Routing

HOL: Web API Hello World

In this tutorial, you will create your first HTTP service using ASP.NET Web API. The service itself will be trivial, but it will give you a quick introduction of ASP.NET Web API. After that, you can follow some of the more detailed tutorials and samples.

Module 2: Web API CRUD Operations

HOL: Web API that Supports CRUD Operations

I This tutorial shows how to support CRUD operations in an HTTP service using ASP.NET Web API. CRUD stands for "Create, Read, Update, and Delete," which are the four basic database operations. Many HTTP services also model CRUD operations through REST or REST-like APIs.

Module 3: Web API Routing

clip_image001[3] Routing Tables
clip_image001[4] Routing Variations
clip_image001[5] Routing by Action Name

Module 4: Working with HTTP

clip_image001[6] HttpClient
clip_image001[7] Self-Host a Web API
clip_image001[8] HTTP Message Handlers

Module 5: ASP.NET Web API Extensibility

clip_image001[9] Web API Dependency Resolver
clip_image001[10] ApiController Internals
clip_image001[11] Format and Model Binding
clip_image001[12] Validations

HOL: Using the Web API Dependency Resolver

This tutorial shows how to inject dependencies into your ASP.NET Web API controller, using the Web API dependency resolver

HOL: Media Formatter

This tutorial shows how support additional media formats in ASP.NET Web API.

ASP.NET MVC Services Part II

פורסם בתאריך Feb 18 2012, 03:26 PM על ידי Vardi

ASP.NET MVC Services Part II

בפברואר שנה שעברה, 2011 כתבתי את הפוסט הראשון שלי בנושא. היום ראיתי שמיקרוספט שינתה את השם של WCF Web API ל- ASP.NET Web API אני לא חושב שזה רק שינוי שם... זה הכרה בעובדה הרבה יותר חשובה ש-WCF היא טכנולוגיה בבעיה... לפני שאתם קוטלים אותי, זכרו אני אחד הגרופים של הטכנולוגיה אז תקראו עד הסוף בבקשה.

10 שנים לקח בין הפרוטוקול הראשון של WS 1.0 (asmx) לגרסה החדשה,הרבה מלחמות היו שם בין החברות הגדולות. WCF תוכנן למממש את WS-*. פרוטוקולים אלו תוכננו על SOAP. כלומר ה"שפת אם" של WCF היא SOAP. הבעיה היחידה ש-SOAP טוב לעבודה בין דוט-נט לדוט-נט או JAVA, אך הווב לא יכול לעבוד עם הפרוטוקולים האלו. מכאן שכל נסיונות האחייה:

1. WCF Web Programming, יצאה בגרסת הדוט-נט 3.5. לצפייה בהרצאה שנתתי בנושא בכנס של MS.

2. WCF Data Services

3. WCF RIA Services

לא עונים על הצורך של מפתחי הווב, פשטות... בתכנות, בהתקנה, בהכול... בעיקר עם הפרוטוקול היחיד שהם צריכים זה HTTP.

אני מאמין שבסופו של יום כל סוגי הפרוטוקולים (REST, OData) יהיו סוג של Controller, ראו את הפוסט שלי בנושא WCF Workflow. לכן אני מברך על ASP.NET Web API, עם חששות שלא ניצור פה אינפלציה של סוגים שונים של Controllers שיהיה קשה להבדיל בניהם (Controller, ApiController & DataController).

להתנתק מטכנולוגיות

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

Dynamic Interface in C# ,Wish List

פורסם בתאריך Jan 14 2012, 06:59 AM על ידי Vardi

הקדמה

לאחר אין ספור כיתות לימוד שהסברתי להם את הכוח וה"יופי" של שפות Strongly Type , כשראיתי בפעם הראשונה את Anders Hejlsberg מציג את dynamic, הרגשתי תסכול רב ,איך הוא בא ומציג את dynamic ,שסותר תפיסה זו. הזמן עבר, וביקשו ממני להרצות על C# 4.0 ונוכחתי שוב,שהעולם לא "שחור ולבן"...

מתי להשתמש ב- dynamic?

כאשר אני רוצה לצרוך שרות שאין לי הסכם איתו (Interface משותף) או שאני לא מכיר את ה-,Type אבל אני יודע שיש לו מתודה שאני רוצה לעבוד מולה, dynamic יעשה את החיים קלים יותר.

דוגמאת קוד בלי dynamic:

clip_image002

דוגמאת קוד עם dynamic:

clip_image004

למידע נוסף על dynamic ניתן למצוא באינטרנט. ( בפוסט זה אני לא מנסה להסביר את dynamic לכל פרטיו )


הרעיון שלי לשיפור ה Dynamic

לאחר שנתים של עבודה עם dynamic הצלחתי להגדיר מה מפריע לי ואיך הייתי רוצה שמיקרוסופט יפתרו את הנושא.

clip_image006

קוד זה נראה רגיל אך לא... ה- ICalculator הוא Interface דינמי. כלומר GetCalculator לא חייב להחזיר מחלקה שמממשת את ICalculator .אלא, שיש לה חלק מהדרישות של ה- ICalculator. כלומר בואו נניח ש- GetCalculatorמחזיר מחלקה עם מתודה אחת בלבד ADD במקום 4 מתודות שמגדיר ה-Interface. במקרה כזה הקוד הנ"ל יעבוד, אבל אם גם הייתי משתמש בעוד מתודה כמו חיסור אז בזמן ריצה הקוד היה מקבל טעות (Exception).

איך מגדירים Interface דינמי?

clip_image008

למה זה טוב?

Dynamic Interface מתנהג בדיוק כמו dynamic רגיל. ההבדל הוא , שהצד שכותב בדוט – נט (צורך השירות) מרגיש שיש לו עבודה עם strong type interface ,על יתרונותיו, למשל , Intellisense. בנוסף, יהיה יותר קל לכתוב לזה TDD. אם חושבים על זה זה בדיוק כמו WCF, שני הצדדים, השרת והלקוח לא צריכים לממש אותו ממשק והם יכולים לעבוד אחד עם השני.

סיכום

כאשר אנחנו רוצים לצרוך שרות מ"עולמות אחרים" (Com,JavaScript וכו' ) אנחנו לא יכולים לכפות עליהם את תפיסת עולמנו, כמו למשל Interface ו-Base Class ולכן אנחנו עובדים עם dynamic אבל... אין שום סיבה שאת הצד שלנו בדוט-נט לא "נקשיח" ונגדיר לעצמנו חוזה על פיו אנחנו רוצים לעבוד.

"עייפות הקוד / התוכנה"

פורסם בתאריך Jan 08 2012, 07:30 AM על ידי Vardi

בתקופה האחרונה אני מלווה מספר פרוייקטים גדולים שעובדים שם מספר קבלני תוכנה. הלקוח של התוצרים בודק את התוצרים רק ע"י "Acceptance Tests" כלומר עובד / לא עובד ובכמה זמן. הבעיה בשיטה זו שלא בטוח בכלל שהבדיקות הנ"ל יעבדו לאחר פרק זמן T. כלומר ככול שפרק הזמן T יהיה ארוך יותר אפשר להגיד שקיבלנו מוצר טוב יותר. השאלה מה קורה לאורך הזמן ש"מקלקל" לנו את התוכנה. המושג הבא הוא ניסיון שלי להגדיר מדוע, בשלב כלשהו, לאורך ציר הזמן ,התוכנה תפסיק לעבוד.

"עייפות הקוד / התוכנה" – היא תופעה של קוד שלאחר תקופה מסויימת לא מצליח למלא את המצופה ממנו (Spec) כתוצאה ממספר סיבות:

1. נתונים שגדלים לאורך תקופת העבודה עם הקוד, לדוגמא קבצי לוגים, מבני נתונים...

2. כמות משתמשים שגדלה

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

4. שינויים שנעשו בקוד מאז הגירסה המקורית.

5. הצרכים של הצרכן של התוכנה השתנו במידה כזאת שהקוד המקורי כבר לא מתאים, ולא ניתן לשינוי או להתאמה לצרכים החדשים.

6. הטכנולוגיה השתנתה כך שהקוד מיושן ולא עונה יותר לצרכים של הלקוח בצורה הטובה ביותר שאפשר
לקבל ע"י טכנולוגיה חדשה יותר.

שאלות שאנחנו צריכים לשאול את עצמנו:

נניח שקוד א' ו-ב' עושים את אותו דבר אבל קוד ב' ממשיך לעבוד בדרישות לאורך זמן ארוך יותר.

1. האם אנחנו יכולים להגיד שקוד ב' כתוב יותר טוב מקוד א, איכותי יותר?

2. האם אנחנו יכולים לחזות מראש איזה קוד ישרוד לתקופה ארוכה יותר?

התשובות שלי לשאלות אלו הם בפוסט הבא סמיילי.

אשמח לקבל תגובות…

איך עובדים עםWCF בסביבה מרובת פרוטוקלים

פורסם בתאריך Dec 17 2011, 03:57 PM על ידי Vardi

כאשר WCF יצא הוא תוכנן לעבוד ב-SOAP. ורוב הדוגמאות היו לממש Interface שהוסיפו לו Attributes.

לדוגמא הקוד שנוצר שמתחילים פרוייקט ב-WCF:

image

 

ואז לרשת את ה- Interface ונוצרה לנו מחלקה שיכולה לממש כ-WCF Service. כאשר השוונו את זה ל- WS  רגיל (asmx) הטענה היתה,שזה הרבה יותר טוב כי אנחנו מגדירים את ה- Interface שמשמש גם לעולם הדוט-נט וגם לאיך יעבדו עם השירות (WSDL). כיום ב- WCF יש מספר רב של סוגים:

1.     WCF REST (JSON or POX)

2.     WCF Data Services (OData)

3.     WCF RIA Services

4.     WCF Web API

מהר מאוד אנחנו מגלים שלכל סוג אנחנו רוצים טיפה לשנות את ה- API כדי שיהיה יותר נוח לעבוד עם הממשק. מכאן הגעתי למסקנה הבאה:

image

1.     כל Getaway מתוכנן לעבוד מול פרוטוקול שונה וחושף את ה-API  הנוח לעבודה עם אותו פרוטוקול, למשל העבודה ב-SOAP  תיהיה שונה לגמרי מה-API  של העבודה עם OData.

 

2.     Getaway יכול לרשת מ- Base Class אבל אין עוד טעם לעבוד עם Interfaces ו- Attribute של WCF, כי ה- Getaway עצמו מגדיר את הממשק לעולם החיצוני ולא צורת מימוש לעולם הפנימי של דוט-נט.

 

3.     ה- Getawayיכירו רק את הממשק Ixxx , המימוש שלו יוזרק להם (Dependency injection( כלומר התפקיד שלהם זה לתווך בין העולם החיצוני לעולם הפנימי.

 

4.     כתוצאה מתכנון זה אנחנו יכולים להוריד את ה- Attributes WCF מהממשק Ixxx . היתרון: פחות צמידות לטכנולוגיה WCF.

 

סיכום:

כאשר יצא WCF  הוא תוכנן לעבודה עם SOAP  אבל כיום בעקבות ריבוי הצרכנים השונים של ה-Services כמו למשל Smart Phone למיניהם ו-JS  יש ביקוש לפרוטוקולים שונים לצריכת השרותים ועם API  נוחים יותר. שינוים אלו מחייבים אותנו לעשות חושבים ולבדוק אם מה שלימדו אותנו עד עכשיו בעבודה עם WCF  "מחזיק מים". אשמח לשמוע את דעתכם J.

More Posts Next page »