לגלישה באתר בגירסה המותאמת לסלולאר

בהנהלת:

אופן הצפייה:
הסתרת שרשור מעל   תגובות
עץ הודעות:


בשנת 2002 השיקה מיקרוסופט טכנולוגיה חדשה, NET. היה חוסר במקום בו ניתן לשאול שאלות בנושא NET. בארץ, ולכן הוחלט לפתוח את פורום זה. 

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

 



 

 

סרוויסים: wcf, webapi, odata וכו'
25/02/15 10:37
53צפיות
שלום וברכה.
 
1. תיאור המקרה
המקרה פשוט מאד: יישום שרת-לקוח, כשהלקוח הוא WPF. אני מפתח את השרת והלקוח באותו מחשב, באותו סולושיין, ואחר כך פורס את הסרוויס לIIS, ואת הקליינט למחשב היעד.
 
א. בתחילה בניתי את הסרוויס בWCF, ועשיתי בקליינט סרוויס-רפרנס. הכל טוב ויפה.
ב. אחר כך רציתי להוסיף כלכולייטד פרופרטיז למודלים, וזה לא אפשרי אם המודלים מוגדרים בסרוויס. [הסרוויס-רפרנס יוצר בקליינט מודלים עצמאיים, שאינם מכירים את הקוד של המודלים שבסרוויס]
לכן הוספתי פרוייקט שלישי - DAL - שבו מוגדרים המודלים, והוספתי רפרנס גם לסרוויס וגם לקליינט לפרוייקט הDAL.
גם זה עבד טוב ויפה, אם כי שאינני יודע האם זו הדרך הסטנדרטית.
 
ג. כל זה היה טוב ונוח כאשר הסרוויס היה בעיקר דוחות מנורמלים ומעובדים. אבל עכשיו אני צריך להוסיף גם גישה למודלים עצמם, CURD, ובעיקר תמיכה בLINQ.
למשל: בקליינט יש טופס טרנזקציות, והמשתמש יכול לפלטר לפי תאריך, סטטוס, שם וכו'. הפילטרים אמורים לעבור לסרוויס, שיפלטר את הORM.
 
השאלה שלי איך לעשות את זה.
 
2. דיון
ד. מחיפוש ברשת למדתי שיש דבר שנקרא OData שאמור לספק את הפונקציונליות הזו, והשילוב של זה בתוך WCF נקרא WCF Data Services, שהיום הוא כבר מיושן ולא מפותח. במקום זה, עדיף להשתמש בWebApi.
ה. פה בפורום, היה לא מזמן דיון בענין, ומשום מה זה הוצג כWebApi vs OData. לכאורה, לפי מה שראיתי, אינם דברים שונים, אלא OData מספק את הפונקציונליות הנדרשת לWebApi.
 
אודה לכם אם תעשו לי סדר, ותמליצו לי על הגישה הטובה
 
בברכה ובתודה.
תוכל לתת דוגמא חיה?
25/02/15 11:10
34צפיות
היי , 
אתה יכול לשלוח ל WEBAPI הכל
הבנתי ש ODATA זה עוד שכבת פילטור שאתה שולח
אבל לא יודע עד כמה זה מתוחזק היום ( עם דגש על לא יודע)
 
 
תן דוגמא אמיתי ( עד כמה שאפשר)
דוגמא חיה
25/02/15 11:30
38צפיות
 public class Transaction
{
   public int Id { get; set; }
   public int ProductId { get; set; }
   public int CustomerId { get; set; }
   public DateTime TranTime { get; set; }
   public decimal Price { get; set; }
}

public class TrannsactionListViewModel
{
   readonly IMyService service;

   public TrannsactionListViewModel(IMyService service)
   {
       this.service = service;
   }
   public int? ProductSelector { get; set; }
   public int? CustomerSelector { get; set; }
   public DateTime? TranTimeStart { get; set; }
   public DateTime? TranTimeEnd { get; set; }
   public List<Transaction> GetTransaction()
   {
       IQueryable<Transaction> tranQuery = service.GetTransaction();

       if (ProductSelector.HasValue)
           tranQuery = tranQuery.Where(t => t.ProductId == ProductSelector.Value);
       if (CustomerSelector.HasValue)
           tranQuery = tranQuery.Where(t => t.CustomerId == CustomerSelector.Value);
       if (TranTimeStart.HasValue)
           tranQuery = tranQuery.Where(t => t.TranTime >= TranTimeStart.Value);
       if (TranTimeEnd.HasValue)
           tranQuery = tranQuery.Where(t => t.TranTime >= TranTimeEnd.Value);
       List<Transaction> result = tranQuery.ToList();
       return result;
   }
}
 
השאלה שלי היא: מי מתאים להיות IMyService.
 
באשר לתחזוקה של WebApi, נראה לי שזה די מתוחזק, גירסאות חדשות יוצאות וגם מדריכים יפים ופשוטים באתר AspNet.
 
פרשת דרכים
25/02/15 11:59
56צפיות
היי לא אמור DLL משותף כזה בין שני הרכיבים
הקליינט צריך להיות הכי טיפש שאפשר
ולהשתמש באובייקטים ובמתודות של הסרביס
 
אתה בצומת הנכונה לבחור בין ODATA לבין WEBAPI
לשניהם שוחררה גרסאת עדכון ביחד  החודש
ונראה ששניהם מתוחזקות במקביל
אבל במקרה חדשתי קשר עם אחד הישראלים הכי חזקים בתחום הODATA בארץ (עוד כשהתחום היה בוסרי)
קוראים לו גיל פינק http://blogs.microsoft.co.il/gilf
שאלתי את שאלתך והוא המליץ ללכת על WEB API דרכם גם אתה יכול להחזיר ODATA
בהצלחה
 
תודה
25/02/15 13:20
41צפיות
אבל אינני מבין למה אתה מעמיד את OData מול WebApi.
זה כמו לשאול האם לפתח באנגולר או בJS.
 
לפי מה שראיתי, OData מספק פונקציונליות. הוא יכול לספק אותה לWcf וגם לWebApi.
 
תודה על ההבהרה באשר לDLL המשותף. הבעיה היא שאין טעם לתחזק את המודלים בשני פרוייקטים שונים. בWCF, מוסיפים סרוויס-רפרנס, וזה יוצר את המחלקות. אבל בWebApi, אין את היכולת הזו.
אז הנה עוד סיבה להשתמש בOData, כי הוא כולל גנרטור שיוצר בצד הלקוח את המחלקות של הסרוויס. אולי גם לWebApi יש את זה. אינני יודע.
>>
26/02/15 10:30
18צפיות
אני טרם מכיר את הנושא לעומק - אם יש לך שאלות נוספות מציע לך ליצור קשר עם גיל
 
I vote for OData
26/02/15 17:19
25צפיות
אחרי 24 שעות של OData, אני בהחלט בעד. אפשר להגדיר את Odata במילה אחת: Linq2Http.
 
RoyiNamir תמה "למה צריך את OData, הרי כלום לא חסר בWebApi".
 
ובכן, לפני כמה שנים היו שטענו "בשביל מה צריך Linq2Sql, כלום לא חסר בAdo.Net", וגם פרסמו השוואות שמוכיחות את הפרפורמנס הירוד של ORM. ובכל זאת, היום אף אחד לא מוותר על ORM, ועל Linq.
אז ORM עובד היטב בקטע שבין הדטהבייס לסרוויס, ושם זה נתקע. הקליינט לא יכול להריץ Linq מול הסרבר.
ועתה בא OData, וסוגר גם את הפינה הזו: אפשר לכתוב Linq [או JS] בצד לקוח, וזה עובר לסרבר שמעביר את זה לדטהבייס.
 
אודה על האמת, שלי זה נראה די מסובך, בגלל שאני לא רגיל לעבוד עם WebApi. אבל מי שכבר יודע, בוודאי יסתגל מהר ועקומת הלמידה שלו תהיה חדה מאד.
ובאשר לתחזוקה, OData מתוחזק יפה מאד. לדוגמא: הבלוג של Odata Team מפרסם פוסט מדי שבוע.
מסכים אתך ברוב הדברים
26/02/15 18:45
21צפיות
הרעיון - פשוט מעולה. אפשרות לבצע שאילתות ברמת http.
נכון מה שרועי אמר (וגם אמר לי בפעמים קודמות שהנושא עלה לדיון) שיש לך הכל ב webapi, אבל! בהרבה יותר עבודה.
אתה צריך לעשות endpoint לכל סוג של שאילתה, וזה מאד לא גמיש. האפשרות לעשות סרביס אחד שמשרת כל שאילתה שיכולה לעלות על הדעת (על ישות מסוימת, והילדים שלה), היא אדירה.
הבעיה, שיש בעיות במימוש. סתם לדוגמה, דבר שניתקלתי בו לפני כמה שבועות: odata לא תומך בשדה datetime, אלא רק במשהו חדש שנקרא datetimeoffset . עכשיו, להמיר את כל הדטהבייס שלי בגלל החמורים האלה, לא נראה לי הגיוני. וכל כמה זמן קופץ איזה שיגעון חדש. אמנם יש תמיכה, אבל היא מאד לקויה וחלקית, ועדכונים מגיעים לעיתים רחוקות. יש איזה ועדה שדנה בשינויים...  בקיצור, בתחושה שלי זה קרוב מאד לבשלות ולשימוש בפרודקשן, אבל אנחנו עוד לא ממש שם. אני מאד רוצה להשתמש בזה, אבל עדיין יש מגבלות.  זה ברשימת ה TODO שלי לעשות ניסיון נוסף בזמן הקרוב.
 
מממ.
26/02/15 19:55
25צפיות
תהיתי לא בקטע של לשלול אלא יותר בקטע של ללמוד
אני מכיר דיי טוב WEBAPI ( ללא ODATA) ואני רוצה להגיד לך שODATA זה רעיון יפה אבל אני עדין לא רואה את ה MAGNITUDE שאתה מנסה להשוות כאן  - כמו המעבר בין ADO ל LINQ2SQL או יותר נכון EF.
 
המעבר של -
לכתוב שאילתת SQL ללא INTELLISENSE  ללא חיבור ל ENTITY ב SQL ,בלי לדעת אם היית יכול לכתוב את זה יותר טוב  ב SSMS
 
אל -
צורה שכבר עם אופטימיזצית אופרטורים , יחד עם הפונקציות של #C , יחד עם INTELLISENSE
 
ממש לא שקולה להכנסת מודול פילטורים ל WEBAPI שזו מפלצת בעצמה.
 
דרך אגב : "היום אף אחד לא מוותר על ORM"  : לא תמיד,  בחברה שהביצועים מאד חשובים שם ויש הרבה שליפות - אתה לא תשתמש ב ORM. אולי ב DAPPER. אבל זה לא באמת ORM.(בקטנה)
 
 
=> זה Linq ממש
27/02/15 00:23
15צפיות
[תשובה לרועי ודוד, בגלל ה"פריצה המזעזעת" לא הצלחתי לשרשר במקום]

OData מאפשר שימוש בLinq, וזה לא רק "מודול פילטורים לWebApi".

הנה קונטרולר פשוט של OData:
 // Controller in server
public class ProductsController : ODataController
{
   ProductsContext db = new ProductsContext();

   [EnableQuery]
   public IQueryable<Product> Get()
   {
       return db.Products;
   }
}
// client
void ListAllProducts(Container container)
{
   foreach (var p in container.Products)
   {
       Console.WriteLine("{0} {1} {2}", p.Name, p.Price, p.Category);
   }
}

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


 
תנסה ליצור קונטרולר odata
27/02/15 01:30
10צפיות
על טבלה שיש בה שדות datetime ותראה מה קורה.
 
בדקתי
27/02/15 09:04
8צפיות
ניסיתי רק GET ולא PUT, אבל זה עובד בסדר גמור.
לקליינט זה מגיע כדייטטייםאופסט. אז צריך להתאים את הקליינט אבל הדטהבייס בסדר גמור.
אולי זה תיקון בגירסא 5.
איפה הלינק פה ? קליינט ששולח פילטור , משהו ?
27/02/15 09:53
9צפיות
היה נחמד אם היית נותן דוגמא שיותר מראה את הכוח של זה
לעומת הקונטרולר הדיי פשוט כאן, עם קריאה סטנדרטית של קליינט
אה, אתה צודק
27/02/15 10:34
11צפיות
התכוונתי להראות רק את העקרון שהשרת חושף Querable, והקליינט משתמש בו.
הנה דוגמא ללינק קלאסי:
 var filtered = container.Products.Where(x => x.SupplierId== 124 && Name == "My name").OrderBy(x => x.ProductSupplierId).Take(25)
 
ודוד גילי צודק! הגירסא החדשה תואמת חלקית לדייטטיים: אפשר להחזיר רשומות, אבל לא לפלטר ולא למיין!
בקיצור, לא שווה כלום.
חבל.
מה עם לקוח js ?
27/02/15 10:48
11צפיות
איך הוא שולח ?
 
 
שאל את דוד גילי
27/02/15 11:15
9צפיות
אינני יודע JS.
התוצאה הסופית צריכה להיות שרשור הפרמטרים למחרוזת.
אני מאמין שיש ספריות שעושות את זה. למשל, גילי אומר שהפקדים של טלריק יודעים לעשות זאת.
º
אז ירדת מזה ?
27/02/15 11:16
5צפיות
כן
27/02/15 12:19
7צפיות
עד שלא תהיה תמיכה בתאריך, אין לזה שימוש.
יש פתרונות, אבל אני רוצה "מחוץ לקופסה".
 
הפתרון שמצאתי לבעיה, [העברת Query לשרת] הוא שימוש בFilterDesriptor [זה אובייקט של טלריק]
אני שולח לשרת את הפילטרים, ושם מחיל אותם על האוסף.
 
לקוח JS ישתמש ב Breeze
27/02/15 16:10
6צפיות
שיעשה בשבילו את כל העבודה הקשה.
פרופרציות ויחסיות - שאלה בעיקר מתמטית
הודעה זו מכילה תמונות
26/02/15 22:08
32צפיות
שאלתי גם בפורום בוני אתרים אך אני מאמינה שגם כאן ידעו את הפתרון
 

 
יש לי DIV, בגודל דינמי (בהתאמה למסך ) ויש לו תמונת  רקע ואני צריכה לאתר נקודה על תמונת הרקע
 
צרפתי קובץ שמדמה את הנושא
לדוגמא אני רוצה לאתר את מיקום הO האדום במילה  GOOGLE ביחסיות לDIV
 
פעם הוא TOP 20
ועם הוא TOP 180
פעם הוא LEFT 50
ופעם הוא LEFT 200
 
איזה תרגיל חישוב (בפרופרוציות) יוכל לתת לי את הנקודה הספציפית (הגדלים של התמונה כמובן ידועים מראש)
 
דוגמא לקוד
http://jsfiddle.net/e31fLedp/
 
 
תודה
 
 
º
O זה תמונה , לא תוו. למה אתה מתכוונת ?
26/02/15 22:23
10צפיות
º
אני רוצה למקם DIV על הO לדוגמא
26/02/15 22:23
12צפיות
את לא יכולה להתוויחס ל O כאות O
26/02/15 22:24
12צפיות
בקוד שלך יש תמונה  , לא O
את יכולה להתייחס לזה שאת רוצה את מיקום אמצע התמונה בתוך ה DIV.
 
 
יש ?
דוגמא לתוצאה שאני רוצה
הודעה זו מכילה תמונות
26/02/15 22:31
16צפיות
 
כאשר הרוחב והגובה של האלמנטים ידוע
ורוחב וגובה התמונה ידוע
משו כזה ?
26/02/15 22:35
16צפיות
כן
26/02/15 22:39
11צפיות
אבל לא נקודת האמצע אלא נקודה פרופרציונית כמו שאמרתי ללכוד את הO האדום
פעם LEFT X ופעם LEFT Y
כנ"ל לגבי הTOP
מה נתון לך ?
26/02/15 23:01
9צפיות
בהינתן שהתמונה היא *אותה התמונה* רק בגדלים שונים ואותן הפרופורציות אז אם מרכז ה O שאת מחפשת הוא ב X,Y מהפינה השמאלית העליונה של התמונה אז בגודל החדש של התמונה שנקרא לו x2,y2 ולגודל הישן נקרא x1,y1 אזי
x2/x1 = t
והמיקום החדש של מרכז ה O הוא:
t*X
בדומה לזה גם ה Y.
טוב בגלל שזה לא פשוט
26/02/15 23:14
11צפיות
ולא הצלחתי למרות כל הנסיונות והשרטוטים
 
הלכתי בכיוון שונה.
אין לי פתרון סופי אבל יש כיוון
 
תודה בינתיים, ולא צריך לחשוב על זה.
 
 
 
בסך הכל קצת מתמטיקה
26/02/15 23:47
19צפיות
בהנחה שאת לא מעוותת את יחס הגובה רוחב של התמונה, והתמונה תמיד במרכז ה-DIV, זה לא מסובך.
 
אם יש לך תמונה ברוחב W וגובה H, אז היחס גובה - רוחב הוא כמובן H/W.
תמצאי את המיקום של הפינה השמאלית העליונה-O בתמונה המקורית. נניח שהוא במיקום A,B כאשר A מיקום על ציר X ו-B מיקום על ציר Y.
 
עכשיו את צריכה את הפרופורציות של הDIV שבתוכו התמונה.
נניח ורוחב ה-DIV הוא C וגובה ה-DIV הוא D.
עכשיו את צריכה לבדוק את 3 האפשרויות הבאות:
1) יחס גובה רוחב של ה-DIV זהה לשל התמונה (כלומר D חלקי C שווה ל-H חלקי W)
במצב הזה את צריכה לחשב את ההיסט של התמונה מהפינה השמאלית העליונה של ה-DIV מול היחס.
נגדיר E כיחס. אפשר במקרה הזה לחשב אותו לפי הגובה או לפי הרוחב - זה לא משנה כי הפרופורציות נשמרות.
נניח שנחשב לפי הרוחב, אז E שווה ל-W חלקי C אם מתקיים C קטן מ-W, אחרת E שווה ל-C חלקי W.
עכשיו צריך להוסיף את מיקום האות O בתמונה המקורית, בהתאמה ליחס E.
מכאן נוסחה סופית למיקום X,Y:
  [X=E*A, Y=E*B]
 
2) יחס הגובה רוחב של ה-DIV גדול יותר משל התמונה (כלומר D חלקי C גדול מ-H חלקי W)
במקרה הזה את צריכה לחשב בכמה אחוזים הוא קטן יותר, נקרא לזה E ואותו נקבל ע"י C חלקי W.
  E=C/W
בגלל שהרוחב קטן יותר, אז בהכרח התמונה תהיה צמודה לקצה השמאלי של ה-DIV, ולכן על מנת למצוא את המיקום של O בציר ה-X פשוט נכפול את A ב-E.
מכיוון שהגובה לא יותר קטן, אך התמונה שומרת על יחס הגובה רוחב שלה, נחשב את היסט התמונה בציר ה-Y בדומה לסעיף א' אך עם הוספת היחס לגובה התמונה, כלומר ע"י D פחות (H כפול E) חלקי 2, ולחישוב הזה נוסיף את ההיסט של ה-O בציר ה-Y, אבל עם התאמה לשינוי בגודל, כלומר נוסיף את B כפול E.
מכאן נוסחה סופית למיקום X,Y:
  [X=E*A, Y=((D-H*E)/2)+B*E]
3) יחס הגובה רוחב של ה-DIV קטן יותר משל התמונה (כלומר D חלקי C קטן מ-H חלקי W)
החישוב מאד דומה למקרה 2, אך הפעם נחשב את היחס על ערכי הגובה, כלומר E יהיה שווה D חלקי H.
כעת החישובים מתהפכים - מה שחושב במקרה 2 לציר ה-Y עובר לחישוב בציר ה-X (בהתאמה כמובן), ומה שחושב בציר ה-X עובר לחישוב בציר ה-Y, ולכן:
  [X=((C-W*E)/2)+A*E, Y=E*B]
 
מקווה שיעזור ושלא עשיתי טעות כלשהי בדרך, אני כבר קצת עייף :)
אם זה נכון זה גאוני
27/02/15 00:33
9צפיות
העניין הוא שכפי שכתבתי פתרתי את הנושא בצורה שונה.
 
אחרי הרבה מאוד זמן ושרטוטים למצוא נוסחה מתאימה. :(
 
עם הרבה התנצלות, אבל אפילו אין לי כוח לבדוק :)
 
תודה על המאמץ
התוצאה הסופית
27/02/15 10:15
14צפיות
במקום להתייחס לתמונה כרקע הכנסתי אותה לDIV
באמצעות ג'אווה סקריפט בדקתי אם הפרופרציות של הDIV העוטף גדולות אז גובה התמונה הוא 100%
אחרת רוחב התמונה 100%.
ברגע שיש לי אלמנט אין בעיה להתייחס אליו ולמצוא את הנקודות שלו.
    var map = $(".map");
   var img = $("#img");
   if ((map.width() / map.height()) > (265 / 900)) {
       img.addClass("b").removeClass("a");
   } else {
       img.addClass("a").removeClass("b"); ;
   }
   .agritech-main .side-col .map img.a
{
  width:100%;
  vertical-align:middle;
  text-align:center;
}
.agritech-main .side-col .map img.b
{
   height:100%;
  vertical-align:middle;
}
 
התוצאה הסופית נמצאת כאן netafim.com/agritech - המפה האמצעית.
תודה לכולם
ענייני DLL
26/02/15 15:22
28צפיות
אני מקמפל את הפרוייקט (webforms) ל Any CPU'
יש לי בפרוייקט reference  ל DLL מסויים שקיים בשתי גרסאות 32 ו 64
כשאני מנסה לחבר את ה 64  המכונה שלי (64 ביט) לא מצליחה להריץ את הפרוייקט, עם 32 היא כן מצליחה.
כשאני עושה פבליש לשרת (64 ביט) עם ה 32 ביט המערכת לא עובדת.
 
מה הצורה הנכונה לעבוד, בהנחה שיש עוד מכונה של 32 ביט שגם מפתחים אליה?
הצורה הנכונה לעבוד היא
26/02/15 20:12
15צפיות
להבין למה אתה בונה ב64 למחשב 64 והקוד לא רץ.
 
Build everything targeting x86 - best solution
27/02/15 08:39
11צפיות
All altenatives are much worse - s.a creating separate installers (like I have on my project - don't do that if you don't have to).
שאלה מראיון
27/02/15 07:53
15צפיות
נניח שאני צריך לבנות איזה תשתית שתפעיל קלאס של המשתמש.
המשתמש יזרוק dll ואני (בלי לדעת מראש) יצטרך להפעיל אותו. (אני לא יכול לעשות לו new) כי אני לא יודע מה הוא...
 
מה שהצעתי זה שאני אבנה interface ואשתמש ברפלקשיין... אבל זה לא היה מדיווק.
אשמח לפרוט איך עושים את זה.
לא עושים את זה. רק מתראיינים על זה.
27/02/15 08:22
26צפיות
    // bad
var dyn = Assembly.LoadFrom ("ouch.dll").CreateInstance ("namespace.doh") as dynamic;
dyn.DoSomething ();
// ugly
Assembly.LoadFrom ("ouch.dll").GetType ("namespace.typeName")
.GetMethod ("methodName")
.Invoke (null /*static, hopefully*/, null /*arguments, if any*/);
 
תודה. אבל אולי הייתי צריך להגיד פקטורי?
27/02/15 08:38
16צפיות
מתי משתמשים בfactory ומתי בreflection?
לא בטוח אם קשור לפה
26/02/15 15:48
26צפיות
האם יש אפשרות בוורד להגדיר מילות מפתח שכשאני כותב אותן במסמך הוא מזהה שזו מילת מפתח ומשנה אותה אוטומטית לפי ההגדרה שאני יצרתי?
º
בטוח שלא.
26/02/15 16:37
8צפיות
עדיפות לסוג הפרופרטי
24/02/15 15:35
41צפיות
הי רציתי לדעת מה כדאי לי לעשות.
יש לי קלאס שיש בו ארבעה פרופרטי.
ב-UI יש לי ארבעה כפתורים שבלחיצה על כל אחד מהם,  הערך הטקסטואלי של הכפתור משתנה בין שני ערכים קבועים.
כל כפתור binded לכל אחד מהפרופרטי של הקלאס.
השאלה שלי היא: מאיזה סוג כדאי לי לעשות את הפרופרטי האלה.
חשבתי בהתחלה ליצור 4 אינאם שלכל אחד שני ערכים שאותם אני רוצה לקבוע ואז עבור כל פרופרטי להחליף כל פעם בין שני הערכים האלה.
אפשרות שניה שחשבתי היה לעשות מערך קבוע של 4 סטרינגים במקום 4 פרופרטי נפרדים ובהתאם למה שרשום בכפתור להכניס את הערכים למקומות קבועים במערך.
איזו סביבה?
25/02/15 16:32
18צפיות
זה נראה ונשמע כמו זאמל, אבל לפעמים זה רק נשמע-כמו.
 
בנוסף, יעזרו דוגמאות, כמו למשל האם אלו כפתורים רגילים או טוגל-באטנז? בין מה למה משתנה הטקסט עליהם ומתי? מה מייצג הטקסט על הכפתור?
 
בברכה,
זיו
º
זה אכן בזאמל WPF.
הטקסט מייצג אינאם שבאמצעות
26/02/15 14:44
19צפיות
º
בדיקה <br> 123
26/02/15 14:48
5צפיות
º
בדיקה <br>קקק
26/02/15 14:49
7צפיות
º
בדיקה <br/> ה
26/02/15 15:13
7צפיות
º
h<br/>f
26/02/15 15:13
4צפיות
º
gggggggggggggggggggggggggggggggg gggggggggggggggggggggggg g
26/02/15 15:13
7צפיות
º
זה אכן בזאמל WPF. הטקסט מייצג אינאם שבאמצעות
26/02/15 15:14
6צפיות
לסיכום
26/02/15 15:16
12צפיות
זה ממש מוזר שירדה לו שורה באמצע הכותרת.
זה עד כדי כך חשוב/משנה..?
26/02/15 15:39
16צפיות
��
זה חסר שימוש לחלוטין
26/02/15 15:45
12צפיות
רועי הצליח לגרות לי את הסקרנות.
למדתי שכמתכנת אחד הכלים הכי חזקים שיש לי זה הסקרנות. אני אל מתכנן לדכאות אותה.
º
האמת ? כן
26/02/15 15:48
6צפיות
º
איך עשית ירידת שורה?
26/02/15 14:49
6צפיות
לא עשיתי פשוט רשמץמ כנראה יותר מידי
26/02/15 14:53
14צפיות
אני מהאפלקיצה לא מהאתר אז אולי בגלל זה
התבלבלתי בין הכותרת לתוכן
26/02/15 14:50
12צפיות
זה אכן בזאמל WPF
הטקסט של הכפתורים מייצג אינאם שבאמצעות קונברטר מומר לטקסט אבל כמו שציינתי, בביינדינג זה פרופרטי מסוג אינאם.
עשיתי ארבעה פרופרטי כאלו וכל אחד מהם מתחלף בין שני הערכים האלה.
השאלה היא האם זה נכון /חכם /כדאי לעשות את זה בצורה הזאת או שיש דרך מומלצת אחרת?
|*|נפתח פורום כבדי שמיעה וחרשים|*|
26/02/15 13:29
2צפיות
|שמאל|אנו שמחים לבשר על פתיחתו המחודשת של פורום כבדי שמיעה וחרשים.
אז איך מתמודדים עם ליקויי שמיעה? מהם הזכויות והשירותים שרלוונטיים לאוכלוסיית החרשים? ומהם מכשירי השמיעה שהכי מתאימים?

אתם מוזמנים להיכנס לפורום כבר עכשיו ולהעלות נושאים לדיון, לשאול ולשתף!
http://www.tapuz.co.il/forums2008/forumpage.aspx?f...
F You...Pay me...לפרילנסרים מבנינו
24/02/15 00:58
69צפיות
הגעתי להרצאה הזו איכשהו, ולמרות שמדובר על WEB DESIGNERS ולא מתכנתים,
העיקרון לדעתי זהה...אז החלטתי לשתף.
 
תודה,
24/02/15 04:17
42צפיות
למרות שזו הרצאה מלפני 4 שנים.
מעולה
26/02/15 13:11
17צפיות
אמנם לפני 4 שנים אבל תמיד רלוונטי :)
הסבה לBI
25/02/15 21:24
24צפיות
שלום
אני לא יודעת אם זה המקום הנכון
אבל שמעתי שיש מקומות שמלמדים קורס BI וניתן להתחייב לשנתיים בתחום.
 
אני באה מהכלכלה ומעוניינת להסבת מקצוע למנתחת BI.
 
האם מישהו מכיר דרך להגיד לקורס על חשבון חברה כלשהי? 
נ.ב אני מהדרום.
טבלאות דינמיות
23/02/15 19:10
55צפיות
שלום,
אני צריך לבנות אתר למישהו כשחלק מהאפשרויות שהמנהל רוצה זה להגדיר את העמודות שיהיו לטבלאות מסוימות. זה לא יהיה שימוש נפוץ אך מדי פעם הוא ירצה להוסיף עמודות לטבלאות.
חשבתי על שלושה דרכים לעשות את זה.
א. כל פעם שהוא יוריד עמודה אני אריץ פקודת drop על העמודה וכשהוא יוסיף אריץ add.
ב. הטבלה תהיה מנורמלת ובכל פעם שארצה לתשאל את הטבלה אשתמש בשאילתת unpivot שתחזיר לי טבלה שטוחה.
ג. אשתמש במסד נתונים מסוג mongo ואז אני לא צריך להגדיר את סכמת העמודים.
 
אשמח להמלצות.
 
Content management system
25/02/15 16:38
29צפיות
במערכת ניהול תוכן מבנה המידע גמיש, ויש עליו יחסית מעט לוגיקה, זה בערך ההפך ממערכת מידע.
 
יש את אומבראקו שכתבו עליו פה שהוא טוב, יחסוך לך שנים של עבודה ללמוד לקיים אותו במקום לבנות משהו בעצמך מכלום
 
בברכה,
זיו
אבל.. למה?
26/02/15 21:33
10צפיות
אתה באמת רוצה לתת ללקוח לשנות לך את ה db? את הסכמה עצמה?
אתה צריך לבעוט ולצרוח מול דרישה כזו. הסכמה של ה db זה אחד הדברים היחידים שהם כמעט כמו ה executable עצמו.

אם נדרש מבנה נתונים נטול סכמה, אז פתרון כמו מונגו (כמו שזיו הציע) זה הרבה יותר מתאים.
תודה ושאלה
26/02/15 21:44
4צפיות
איך אתה משווה את מונגו מול טבלאות מנורמלות?
אגב, את המונגו אני הצעתי, זיו הציע מערכת מוכנות.
אופס. סליחה
27/02/15 05:04
4צפיות
אכן, מונגו היה רעיון שלך, זיו הציע אומבראקו. טעות, טעיתי, טועים.
 
אני לא משווה מונגו מול רלציוני. זה כמו להשוות תפוחים לבננות.
אני טוען שפתרון כמו לשנות סכמה של db זה פתרון מסוכן, וצריך לשקול פתרונות אחרים לפני שניגשים לממש אותו.
 
כמו שאני מבין את זה, יכול להיות שהפתרון לדרישות הפרוייקט הוא שילוב של db רלציוני (ללא שינויים בסכמה אחרי deployment) עם משהו גמיש יותר. הבאסה העיקרית היא שלא תוכל לשלוף הכל באותה שאילתה.
 
אני מציע לך אלטרנטיבות:
1. כשהלקוח ירצה להוסיף עמודות - הוא יקנה שעות פיתוח, תוסיף את העמודות ותעשה deployment מחדש
2. להוסיף מראש X עמודות לכל טבלה ורק לתת ללקוח את האפשרות להציג או להסתיר אותן.
מה ללמוד ב .net?
25/02/15 09:23
49צפיות
היי
 
אני מתכנתת ASP.NET עם מעל 5 שנות ניסיון אבל חסר לי הרבה ידע וטכנולוגיה חדשה כמו ANGULARJS, MVC ,ENTITIES,BOOTSTRAP .
אני מאוד רוצה בבית ללמוד ולעשות TUTORIALS ויש לי מנויי גם ב PLURALSIGHT. אני בחיפוש עבודה ואני לא יודעת במה להתחיל.
אמרו לי וראיתי בדרושים ש MVC חם. אז חשבתי להתחיל עם MVC 5. יש לי את הסביבה עבודה שדרוש.
עכשיו ראיתי שיש TUTORIALS עם MVC ו BOOTSTRAP גם באותו קורס. אני לא יודעת איך להתחיל ומה ללמוד.
מישהו יכול לתת לי כיוון עם מה ואיך להתחיל ללמוד?
 
תודה
ובכן
25/02/15 10:25
43צפיות
ראשית שלחי אלינו קו"ח, מגייסים כרגע
 
שנית bootstrap' angular זה טכנולוגיות צד לקוח, כך שכדאי להתחיל מהתחלה, הנבנה בסיסית בJS, JQUERY, ואכן לאחר מכן להכיר היטב את אנגולר
 
נראה לי שאם את מנוסה בASP.NET אז רוב טכנולוגיות הצד שרת תוכלי לתפוס יחסית מהר, ולעומת זאת עולם הWEB עובד לצד לקוח אז הייתי ממליץ לך ללמוד JS  
3 חלקים
 
 
שלחתי עכשיו קו"ח
25/02/15 11:59
28צפיות
תודה רבה.
אז אם אני מבינה נכון אתה ממליץ להתרכז על צד הלקוח?
אני גם חושבת שאם אני יודעת ASP.NET לא יהיה לי בעיה לתפוס טכנלוגיות צד שרת יחסית מהר עוד שאת מה שאני יודעת ועשיתי בעבודות עד היום זה תוך כדאי למידה עצמאית ותוך כדאי עבודה.
התחלתי עם MVC- אתה ממליץ לעזוב את זה כרגע ולעבוד ל JS/JQUERY/ANGULARJS?
ואם MVC האם בעולם האמיתי מפתחים לפי code first approach? או Database First?  נראה לי שבדרך כלל כבר יש את המסד נתונים שמשמשים אפליקציות אחרות בחברה. לא מכירה מניסיון שמפתחים ושאין את המסד נתונים.
 
הכנסת סיסמא מוצפנת לדטה בס
24/02/15 13:33
65צפיות
שלום,
אני בונה אתר (ב- C#) שהלקוח רוצה להכניס סיסמא לדטה בס (sql server) מבלי שאני אוכל לראות את הסיסמא שהוא הכניס
האם  ניתן להכניס סיסמא שהיא מוצפנת בדטה בס?
דבר נוסף אני צריכה לפנות אליה אחר כך. כשהלקוח עושה log in אני צריכה לשאול האם הסיסמא שהוא הכניס ב-log in שווה לסיסמא המוצפנת
שנמצאת בדטה בס. זאת אומרת שאני צריכה גם את האפשרות לגשת לסיסמא זו
אשמח לתשובה
מירה
 
 
>
24/02/15 14:27
142צפיות
צריכה הסברים
24/02/15 15:18
35צפיות
שלום,
לא הבנתי מה זה : Key_of_Lie
האם זהו מפתח שבעזרתו אני יכולה לגשת לערך השדה בדטה בס?
ואיך אני מוודא שהערך שהוכנס ב- log in(על ידי asp:Login) שווה לערך המוצפן בשדה בדה בס
תודה מירה
הסבר
24/02/15 15:38
37צפיות
את יוצרת HASH לא סתם , אלא על פי KEY
ה KEY הזה זה Key_of_Lie ( סתם שם)
 
לגבי ASP:LOGIN , לא מכיר אותו ( וגם לא רוצה)
אבל על כל ססמא שיוזר מכניס , את מריצה את ה ומשווה את זה למה שרשום ב DB
זקוקה להסבר נוסף
24/02/15 16:03
33צפיות
בכדי לבדוק האם הסיסמא שהוכנסה ב- log in שווה לסיסמא המוצפנת בדטה בס אני משתמשת ב- key שיצרתי? לא הבנתי למה משמש ה- key?
דבר נוסף, הקוד שכתבת נופל על השגיאה הבאה:
string' does not contain definition for 'Dump' and no extension  method  Dump accepting a first argument of type string
תודה מירה
שני את
24/02/15 16:06
68צפיות
 Change
"123".Dump();
to
Console.WriteLine ("123");
 
הסבר 2
24/02/15 17:53
48צפיות
כשהמשתשמש נרשם בפעם הראשונה את מפעילה את הקוד הנל ושמורת את התוצאה ב DB
 
עוברים ימים , והוא בא לעשות LOGIN
 
את באה ל INPUT של ה PASSWORD , מפעילה עליו את אותה לוגיקה ומקבלת את ה HASH החדש שנוצר , אם הססמא נכונה , הוא יתן לך את אותה תוצאה כמו שהוא נרשם איתה
 
ואז אם ה STRINGS שווים , אז הססמא נכונה
º
תודה רבה. עכשיו הבנתי. השתמשתי בקוד וזה הצליח
24/02/15 21:40
7צפיות
דבר נוסף
24/02/15 15:24
27צפיות
איזה שדה אני יוצרת בדטה בס . האם הוא מסוג nvarchar(MAX)?
º
כן , לא חייב MAX , אפשר גם 100
24/02/15 15:39
15צפיות
מה נקרא מקום שמור בשביל לשמור על ה-key?
24/02/15 15:31
31צפיות
אני לא מדבר עכשיו על אפליקציה לפנטגון אלא על אפליקציה עסקית סטנדרטית שזה יהיה לא נעים אם מישהו זר יראה את המידע.
אם לענות
24/02/15 15:35
48צפיות
תשובה פלצנית : ה KEY אמור להיות מובא מ SERVICE כלשהו חיצוני וה SALT  גם ממקום אחר , בשביל למנוע RAINBOW TABLES 
 
תשובה מציאותית : יאללה , בכלל לא צריך SALT , שים ערך ב WEBCPONFIG והוא יהיה ה KEY שלך ושלום על ישראל.
ומה באמת
24/02/15 15:45
38צפיות
השימוש של הsalt. אני לא מבין למה הוא מחזק את ההצפנה.
סיסמת הגישה ל-DB גם היית שומר ב-WEB CONFIG?
>
24/02/15 15:55
42צפיות
נלך לקיצוני :
 
חברה שכבר 30 שנה קיימת :
יש להם את אותו KEY שנים
ויש להם מליון יוזרים
ונגיד יש כמה יוזרים מאד תמימים שהססמא שלהם :"Password"
מספיק שתדע יוזר אחד שאמר למישהו שהססמא שלו זה Password , והוא יוכל לבוא ישר ולדעת שה HASH של PASSWORD זה #@#!$@#$@$
ואז הוא יכול לדעת בוודאות שלמשתמשים שגם יש להם את אותו HASH  של #@#!$@#$@$ , יש להם גם אותה ססמא PASSWORD
 
SALT מוסיף, עוד שכבת הגנה ,  ,,,, כי יההיו פחות יוזרים ( אם בכלל - תלוי מה איפיון ה SALT שלך) שתוכל להשוות להם HASH
 
 
ססמאת ה DB ב CONFIG ?
מה אני יגיד לך  , אפשר , אבל לא RAW
אפשר להצפין
אבל זה יצפין על פי MACHINEKEY
אפשר לעשות ENCRPYT WEB CONFIG SECTION
רק שים לב , שאני לא בטוח ש CACHE DEPENDENCY יעבוד עם זה
כי הוא מצפה ל CONNECTION STRIND ID
ואחרי שעשית הצפנה - הוא מוריד את ה ID ( אאלט) צריך לבדוק את זה.
סתכל כאן : 
 
 
º
תודה.
24/02/15 16:07
11צפיות
ואם נלך רחוק יותר
24/02/15 23:24
26צפיות
בשביל "להגביר" את האבטחה עוד יותר,
מכיוון שנפח איחסון של מחרוזות כאלה הוא לא כל כך שיקול היום,
אני יודע שהיום כבר מייצרים SALT אקראי לכל משתמש,
עדיף שה-SALT יהיה כגודל המחרוזת HASH שנוצרת,
כלומר - למשל אם משתמש ב-SHA256 אז ה-SALT יהיה סוג של "GUID" בגודל 64 תווים,
ומאחסנים את ה-SALT של המשתמש גם כן ב-DB.
 
המטרה היחידה של זה היא והיה והצליחו איכשהו כן להגיע לרשומות של ה-DB, והצליחו לשלוף את רשומות המשתמשים, אז כמובן שיש את הסיבה שצוינה ע"י רועי למעלה (גם אם הסיסמא זהה, ה-HASH שונה),
בנוסף שימוש בDICTIONARY של HASH לא יהיה יעיל, כיוון שכל סיסמא מקבלת בנוסף שרשרת דיי גדולה של תווים שמוצמדת אליה לפני שעושים את ה-HASH.
בנוסף, זה מעלה זמן של ניסיונות BRUTE FORCE לזמן לא יעיל לחלוטין (נניח והסיסמא היא באורך 10 תווים, סה"כ עם הSALT היא כבר 74 תווים...מספר האפשרויות שBRUTE FORCE יצטרך לבדוק הוא עצום).
 
ככה אני מבצע היום בכל אופן את המנגון אבטחה הזה לאיחסון הסיסמאות.
האשינג
24/02/15 15:46
34צפיות
את יכולה להשתמש בשיטה שנקראת האשינג (Hashing) לצפות מידע. יש הרבה מידע על השיטה הזאת באינטרנט אז אני משאיר את החיפוש והלמידה על זה לך.
בכללי זאת מתודה שלוקחת את הנתונים שאתה מעבירה לה ומייצרת מהם משהו אחר. כשאת רוצה לעשות השוואה בין סיסמה בשדה להגיע לבין הסיסמה ששמורה בבסיס הנתונים שלך את עושה האשינג לאינפוט ומשווה את התוצאה למידע בבסיס הנתונים
שרת VPS ?
23/02/15 02:42
38צפיות
למישהו יש ניסיון עם bluehost? אני רואה reviews טובים עליהם, אבל באינטרנט הזה אי אפשר להאמין לאף אחד, כולם שקרנים. מישהו ניסה בפועל? אולי שרת אחר? שרת windows (מה לעשות, סוחבים גיבנת), תקציב עד $50 בחודש.
תודה.
 
שרת וירטואלי
23/02/15 09:15
28צפיות
שלום דוד
אין לי ניסיון אישית עם bluehost. כן יש לי ניסיון עם אמזון ec2 עובד מצויין והתקציב מתאים.
בנוסף מן הסתם אני יכול להמליץ לך על החברה שלנו drp.co.il . השרתים שלנו נמצאים בארץ ומן הסתם התמיכה בעברית והתקציב הזה גם יספיק, אגב לא רק אצלנו גם בחברות מתחרות
 
בהצלחה
שאלה על ec2
23/02/15 17:40
19צפיות
אני רואה שהתוכנית הזולה ביותר שלהם שאיכשהו באה בחשבון, זה t2.medium, וזה בערך 52 דולר לחודש.
זה לשרת windows בלי דטה בייס. אני כמובן צריך sql server. השאלה אם אני יכול להתקין אותו בעצמי מדיסק שלי, או שאני חייב לרכוש את האימאג' שלהם עם sql  שעולה יותר מכפול?
תשובה לגבי ec2
24/02/15 12:48
16צפיות
למיטב ידיעתי לא אמורה להיות בעיה, זה בדיוק כמו להתקין כל תוכנה אחרת ברישיון.
 
בנוסף אתה יכול להתקין sql express שהוא ללא תשלום.
 
צריך לקחת בחשבון שבאמזון אם אתה צריך מעבד אחד אז תיקח שם 2 מעבדים כי הביצועים שם פחות טובים
השרת השיתופי של bluehost נוראי
23/02/15 09:48
25צפיות
לא יודע אם זה כי הוא שיתופי או כי הוא פשוט גרוע.
מציע לבדוק את digital ocean (לא זוכר אם יש להם image של ווינדוס)
º
(זה לא בהכרח מעיד על הVPS שלהם)
23/02/15 09:50
12צפיות
מספר רב של קריאות HTTP משרת בודד. עזרה קטנה.
21/02/15 17:35
66צפיות
היי.
שאלה קטנה:
אני צריך לבצע מספר גדול של 700 קריאות HTTP משרת בודד בוז.
אם זה היה 10 קריאות אני פשוט פותח 10 Tasks ומבצע.
אבל האם אני עושה כך גם ב 700?
חשבתי נניח ליצור 100 Tasks, וכל פעם להריץ 100 במבקביל.
אבל אז אני שואל את עצמי למה 100 ולא 400?
 
אז איך לדעתכם אני אמור לבצע את זה?
 
תודה.
זה פעולת IO
21/02/15 17:51
55צפיות
אם אתה עושה את זה נכון , ומשתמש ב מתודות הנכונות , לא יפתח לך אפילו THREAD אחד
וכשמדברים על TASK , אז כן , יפתחו לך 1000 TASKS אבל הם לא יהיו THREADS.
הם יהיו במעטפת של TASK
במילים אחרות  TaskCompletionPort
ממש כמו שב JQUERY יש $.deferred
בעתיד הוא יקבל RESOLVE.
כמו שה TCS יקבל SETRESULT
אכן
21/02/15 18:39
43צפיות
פשוט תעשה TASKS, זה אמור לדעת לנהל את עצמו כראוי ביחס למשאבי המערכת ולשאר הדברים שעובדים
 
ואם אני צריך לבתע 10000 קריאות?
21/02/15 18:54
37צפיות
עדיין להרים 10000 TASKS?
אני מבצע את הכל בצורה אסינכרונית אבל בכל אופן...
(משתמש ב async).
מבחית משאבים
22/02/15 19:07
17צפיות
כן, זה הדבר האופטימלי.
 
השאלה היא מה קורה עם רוחב הפס שלך...
בוודאי שיפתחו טקסקים חדשים
21/02/15 20:37
38צפיות
אומנם לא אלף, אבל הכל תלוי במהירות התגובה של השרת הנבדק.
בכל אופן היתי עושה את זה PLINQ. זה יהיה הכי מהיר לביצוע, וגם די נכון לפי דעתי.
º
תקרא שוב . טסקים כן . טרדים לא
21/02/15 20:40
20צפיות
º
אפשרי עם פלינק אבל עם degreeofparlism
21/02/15 20:42
12צפיות
במילים אחרות , לפעולות ה io
21/02/15 20:48
35צפיות
לא יווצרו טרדים שירדו מהטרד פול
פעולת ה io תתבצע על הדיוויס עצמו וברגע שיסתיימו המערכת תקבל סיגנל מ קופלישין פורט ותמשיך את ההרצה
אני מניח שהוא יצטרך להשתמש ב whenall
או משו בסיגנון
שאני אבין
21/02/15 23:20
44צפיות
נניח והפקודה שלנו היא הורדה אסינכרונית של 3K (נניח..) מדף אינטרנט. במידה ואני עושה לולאה שעושה 1000 הורדות אסינכרוניות (או לחילופין אני אקרא ל WHENALL) לא יפתח אף טראד חדש? כי לפי הבנתי כל קריאה יווצר טראד מהטראד פול (לפחות בהתחלה) קריאות אמצעיות יקבלו כבר טראדיים ששוחרו מהקריאות הקודמות וכו' וכו'. בכל מקרה כמה יוקצו למשימה כמה וכמה טראדים...
 
לא ?
>
23/02/15 10:36
27צפיות
בזמן הקריאה ולפניה , בהנחה שאתה מריץ קריאת IO ASYNC , הוא ישתמש בפנים ב TCS - הוא לא יפתח THREAD חדש.
אולם (!)
לאחר סיום הקריאה , הוא יביא THREAD מה THREADPOOL שיקרא את הערך (IOCP THREAD)
תודה
23/02/15 13:40
17צפיות
לא הכרתי את כל מנגנון ה IOCP. החכמתי.
 
מציע לך לחשוב קצת על throttling
21/02/15 21:31
52צפיות
נניח שאתה יכול לבצע את המשימה הזו בעלות זניחה של משאבים מהשרת שלך - כדאי לחשוב על מה קורה בצד השני של ה request: האם השרת המקבל יכול לטפל בעצמו בכל כך הרבה פניות בו זמנית?
בקיצור, שווה לחשבו על ויסות (throttling) של שליחת הבקשות היוצאות, כנראה לווסת לכל דומיין (או לכל IPEndpoint).
דווקא הוא פטור מזה
22/02/15 01:11
68צפיות
בהנחה שהוא משתמש בלקוח הסטנדרטי (WebClient / HttpRequest) הוא מוגבל כמו ש-IE מוגבל ולא יעזור כמה נימים הוא יפתח. ברירת מחדל 2 חיבורים בו זמנית פר domain.
 
אפשר בקלות לשנות את זה, אבל זו ברירת המחדל...
צודק - זה כבר קיים ברמת הפריימוורק
22/02/15 08:36
34צפיות
שכחתי מזה לגמרי.
כתבתי טסט ולא הבנתי למה התוצאות כ״כ מחפירות
22/02/15 09:22
65צפיות
עד שקראתי את ההודעה שלך.
 using System.Diagnostics;
using System.Net.Http;
using System.Linq;
using System.Threading.Tasks;
using System;
namespace test
{
class Program
{
public static void Main()
{
new HttpTest (@"http://httpbin.org/delay/10").Run (100);
}
}

class HttpTest
{
public HttpTest(string url)
{
_url = url;
}
public void Run(int numRequests)
{
var watch = Stopwatch.StartNew ();

var client = new HttpClient ();

var req = Enumerable.Range (1, numRequests)
.Select (i => GetAsync_ (client, i));
Task.WaitAll (req.ToArray ());

Console.WriteLine ("\nCompleted {0} requests in {1} ", numRequests, watch.Elapsed);
}
async Task GetAsync_(HttpClient client, int id)
{
Console.WriteLine ("Preparing request {0}...", id);
await client.GetAsync (_url)
.ContinueWith( r =>
Console.WriteLine ("Request {0} completed", id));
}

private string _url;
}
}

 
תנסה לעשות את זה
22/02/15 13:29
45צפיות
System.Net.ServicePointManager.DefaultConnectionLimit = 1000;
º
למה זה משפר?
22/02/15 14:07
18צפיות
º
כי אתה מאפשר פתיחה של יותר מCONNECTIONS 2
22/02/15 14:24
17צפיות
אלה הבדלי מהירות
22/02/15 13:43
39צפיות
ללא: 00:01:40.2347242
עם:  00:00:14.3183542
º
למה חשבתי זה רק מגבלה של BROWSER ???
23/02/15 15:29
13צפיות
º
whatttt?
23/02/15 21:15
12צפיות
לא יודע למה חשבתי זה רק מגבלה של דפדפן
23/02/15 21:27
16צפיות
עכשיו אני רואה שזה גם לא קשור לדפדפן ...
מסתבר שזה יותר מ-2. כי הדפדפנים האחרונים כבר לא מצייתים לתקן
23/02/15 23:43
18צפיות
אז רגע , זה לדפדפן ?? או לקונקשין http
23/02/15 23:48
19צפיות
כי הדוגמא של אדמיני לא קשורה לדפדפן אלא לסרבר סייד
 
כן אבל הHTTPCLIENT משתמש במנוע של IE כנראה
24/02/15 00:19
26צפיות
ולכן יש לו את אותה המגבלה כמו של IE
 
לא, אתה צודק - מקריאה נוספת
24/02/15 00:28
30צפיות
אני מבין שהWebClient  מוגבל בDEFAULTS ל-2 חיבורים כנראה בגלל שרצו שהוא יהיה מותאם לתקן RFC
אבל גוגל קצר מראה שאפשר לשכתב לו את המקס' חיבורים למשל
 
HttpWebRequest req = (HttpWebRequest)base.GetWebRequest(address);
   req.ServicePoint.ConnectionLimit = 10;
 
או בקונפיג
 
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.net>
<connectionManagement>
 <add address="*" maxconnection="100" />
</connectionManagement>
</system.net>
</configuration>
 
º
+1
22/02/15 10:26
11צפיות
ASP.NET שמירת נתונים במשתנה Static
22/02/15 10:38
58צפיות
היי,
 
אני צריך לשמור כמה רשימות Lookups מה DB לשימוש קבוע ע"י האפליקציה.
 
1. האם יש ייתרון לשמירת הנתונים ב Static Variables על פני שמירה באמצעות אובייקט ה Cache?
מתיעוד שקראתי, הבנתי שכבר לא מומלץ להשתמש במשתנה Application כך שזה לא רלוונטי.
 
2. האם למישהו יש דוגמא מקצועית ליישום השמירה באמצעות SingleTone?
 
תודה
web caching
22/02/15 14:33
48צפיות
שאלה לגבי המאמר
22/02/15 15:14
38צפיות
היי,
 
במאמר מצויין כי כאשר משתמשים ב Cache מתבצעת נעילה גליבלית לאומר Static Variable בו מתבצעת נעילה "רק על הנתון הרלוונטי".
 
למיטב הבנתי גם ב Cache אני צריך להשתמש ב lock ואני יכל לבצע את ה Lock על Object ספציפי..  לא?
תסתכל על ה cache כמו dictionary חכם
22/02/15 16:20
30צפיות
מכיוון שהוא נגיש מכל מקום באפליקציה, תמיד מתבצעת בו נעילה על *כל* גישה לאיבר תחת מפתח מסויים.
ה scope של הנעילה הזו הוא *כל* ה dictionary הנ"ל.

קצת קשה להסביר את זה בצורה קצרה כאן בפורום :-\
אז גם כשאני מכניס ערך חדש הנעילה מתבצעת אוטומטית?
22/02/15 17:05
25צפיות
או שאני צריך להשתמש ב LOCK בכל מקרה?
º
הנעילה מתבצעת אוטומטית גם בהכנסה (כתיבה) ל cache
22/02/15 17:43
14צפיות
ההמלצה לcache תקפה
23/02/15 18:51
16צפיות
גם ל-ASP.NET MVC 5?
 
,usv/
º
איפה קראת שApplication לא מומלץ ולא רלוונטי?
22/02/15 17:25
22צפיות
לא מומלץ מ 2 בחינות
23/02/15 15:28
24צפיות
1) EXCEPTION WITHIN LOCK
2) LOCK AROUND LONG OPERATIONS
 
תקרא את התשובה לשאלה שלי כאן :
 
לא משכנע..
23/02/15 16:21
31צפיות
הוא הצביע על היכולות של זה מול היכולות של זה
כמובן שCACHE יותר משוכלל - הוא נועד למטרה מסוימת - לשמור תוכן עם זמן תפוגה
בעוד APPLICATION נועד להוות מחסן שאינו מתחדש בתדירות גבוהה ונשאר לאורך כל חיי האפליקציה
לא ראיתי מקום רציני שאומר שאין מה להשתמש בAPPLICATION
גם הסיבה של LEGACY זה מופרך כל מה שבFRAMEWORK 2 זה כבר LEGACY? כי יש תחליפים משוכללים יותר?
בולשיט, אם זה עושה את מה שאתה רוצה שישעשה ולזה הוא נועד אין סיבה ללכת להשתמש במחסן משוכלל אם אני צריך מחסן טיפש.
אם אני צריך לוח שנה גריגוריאני ל100 השנים הבאות אני אטען אותו לאפליקשיין ולא אטען אותו לקאש
כי אין לי שום סיבה לרענן את המידע שם בעתיד הנראה לעין...
 
 
 
?
23/02/15 16:35
18צפיות
אף אחד לא אמר שאין להשתמש
הוא הביא סיבות יותר משמעותיות מאשר "יכולות"
דרך אגב 
"בעוד APPLICATION נועד להוות מחסן שאינו מתחדש בתדירות גבוהה ונשאר לאורך כל חיי האפליקציה" -- תשתמש ב STATIC DICTIONARY
אם כבר...
 
נמשיך : 
 
ברור ( כמו שידוע) ש CACHE יותר משוכלל
אבל אם לרגע מתעלמים מהשכלול , יש כאן כמה בעיות עמוקות יותר : 
 
ברגע שיש לך EXCEPTION בתוך ה APPLICATION LOCK , --- ה LOCK לא ישתחרר ! 
אתה תצטרך לשים TRY FINALLY ושם לקרוא ל Application.UnLock()
לעומת זה ב LOCK מסביב ל CACHE - אין לך את הבעיה הזו
נגיד יש לך ערך לשים והערך בא בעקבות פעולה ארוכה והמתודה מוציאה EXCEPTION
 
 
 if(Cache["someData"] == null)
{
   lock(myLockObject)  // or other shared lock for that single value
   {
       if(Cache["someData"] == null)
       {
           Cache["someData"] = getLongComputedValue();
       }
   }
}
אם היית משתמש ב APPLICATIO LOCK , ה LOCK לא היה משתחרר
בדוגמא שלהלן , הוא כן.
 
כן קראתי את הפוסט
23/02/15 17:06
24צפיות
לגבי STATIC DICTIONARY - לא אמרתי שאין חלופות דומות.. אלא שעדיף להשתמש במשהו אחיד ולא שכל אחד ימציא גלגל משלו
לגבי הLOCKING זה נכון - זה נקודה שצריך לב אליה כמו הרבה דברים כשכותבים קוד
בינתיים הAPPLICATION לא מיותר ולא - לא מומלץ לשימוש
 
חיפשת מקום רציני .... אז מצאתי
23/02/15 22:13
25צפיות
א. APPLICATION נמצא בגלל LEGACY. למרות שאמרת שזה בולשיט ( הדגשתי בצהוב)
ב. ממליצים כאן בפירוש להשתמש ב  DIC STATIC במקום ב APPLICATION
ג. מסתבר ש  APPLICATION אפילו יותר איטי ( מה שלא ידעתי)
 
בקיצור הכל מודגש כאן בצהוב
זה מכאן 
וזה של MS
 
 
 
 
לגבי ב ו ג
23/02/15 23:19
19צפיות
זה די הגיוני האמת מדובר על גישה למשתנים סטטים לעומת חיפושם במילון
º
יפה! החכמנו
23/02/15 23:37
6צפיות
º
שחקת אותה רועי כל הכבוד
23/02/15 23:39
5צפיות
organic, קידום אתרים

קידום אורגני בגוגל

בקידום אתרים אין מקום לבינוניות! לפרטים נוספים כנס>>>


עסקים נבחרים

עוד...
רוצה שהעסק שלך יופיע בתפוז עסקים?

האזור שלי בפורום
עוד בנושא הפורום


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