Sign in
|
Join
|
Help
שלמה גולדברג (הרב דוטנט)
מרצה בסלע ויועץ בעולם ה - net.
עמוד הבית
טופס יצירת קשר
RSS 2.0
Atom 1.0
RSS-תגובות ב
חפש
תגיות
AddIn
Ajax
ashx
asp net
Asp.Net
Asp.Net Controls
Attribute
authentication
azure
BI
C#
C# 4.0
Code Plex
config
Context Menu
Cookie
cross browser
CSS
css3
Culture
database
DataReader
DataTable
debug
DEV
DevAcademy3
dynamic
EF
Encoding
Entity Framework
Extension Method
Facebook
Generic
Global.asax
Hacking
html
html5
HttpHandler
HttpModule
IDCC
iE
IE8
ie9
IIS
iis7
Internet Explorer
internet Explorer 8
internet Explorer 9
ITPRO
JavaScript
jQuery
js
JSON
Linq
login
meta
mvc
OFFICE
OFFTOPIC
Optional Parameters
PageMethods
PostBack
Power Point
reflection
Reflector
Resource
SCC
Script Manger
SDP
Sela
Sela College Channel
silverlight
SQL Server
Static
stream
TECH
Teched_il
Telerik
Threading
UTF-8
Validators
video
Visual Studio
voice
VS2010
VSTO
WCF
Web
Web Service
Web Slice
WebApplication
WebMethod
WebService
Windows
Windows7
WinForms
xml
XMLHTTP
קוד נכון
תפוז
ארכיון
February 2012 (1)
January 2012 (9)
December 2011 (7)
November 2011 (13)
October 2011 (9)
September 2011 (1)
August 2011 (4)
June 2011 (8)
May 2011 (13)
April 2011 (14)
March 2011 (12)
February 2011 (8)
January 2011 (18)
December 2010 (10)
November 2010 (16)
October 2010 (11)
September 2010 (9)
August 2010 (21)
July 2010 (12)
June 2010 (11)
May 2010 (21)
April 2010 (19)
March 2010 (14)
February 2010 (17)
January 2010 (13)
December 2009 (16)
November 2009 (10)
October 2009 (12)
September 2009 (22)
August 2009 (9)
July 2009 (14)
June 2009 (19)
May 2009 (17)
April 2009 (9)
March 2009 (11)
February 2009 (10)
January 2009 (16)
December 2008 (23)
November 2008 (11)
ניווט
Home
All Posts
RSS
Popular Tags
Browse by Tags
All Tags
»
Reflector
(
RSS
)
Asp.Net
C#
config
DEV
Encoding
Hacking
html
Oracle
Performance
reflection
Telerik
User Control
UTF-8
Validators
VB.NET
Web
WebApplication
קוד נכון
עצלנות של מפתחים ואבטחת מידע - והפעם שימוש ב - reflector
17 November 11 08:43 AM
|
Shlomo
|
2 comment(s)
בפוסט הקודם תיארתי כיצד לעקוף את הבדיקה של טלריק האם המוצר נקנה או שהוא גרסת ניסיון - על הדרך הבטחתי לספר איך להשתמש ב - reflector. אמנם פוסט זה לא כל כך קשור לאבטחת מידע (או לעצלות של מפתחים) אבל הוא דומה לפוסט הקודם. למי שלא מכיר את reflector ה - reflector הוא אחד מהכלים המדהימים ביותר שיצאו אי פעם כדי לעזור למפתחים, לצערי הרב מתי שהוא הם החליטו לגבות כסף על התוכנה (35$ לגרסה הבסיסית ו - 95$ לגרסה המלאה). כרגיל אני אדגיש שאני חלילה לא מעודד לגנוב אותם, אלא רק מראה עד כמה חשוב לכתוב קוד נכון. במידה...
yield
26 April 11 10:39 AM
|
Shlomo
|
3 comment(s)
כמו שהבטחתי בפוסט הקודם אני אראה דרך קצרה יותר לממש את IEnumerable ללא מימוש עצמאי של IEnumerator בעזרת yield. ראשית נראה את הדוגמא ואז את ההסברים: הנה המחלקה מהפוסט הקודם: class PersonManager : IEnumerable { private List < Person > _persons; public PersonManager() { _persons = new List < Person >(); } public IEnumerator GetEnumerator() { } } כעת נממש את המתודה בעזרת yield. public IEnumerator GetEnumerator() { foreach ( var item in _persons) { yield return item; } } למעשה אפשר פשוט להשתמש...
because it is registered in web.config and lives in the same directory as the page
03 January 11 03:26 PM
|
Shlomo
|
2 comment(s)
הוספה של User Control לעמוד. במידה ואתם עובדים עם User Controls יש שתי דרכים להשתמש בהם בדפי ה - aspx שלנו. דרך אחת להוסיף שורת Register בתחילת העמוד: <% @ Register src ="~/UserControl.ascx" tagname ="UserControl" tagprefix ="uc1" %> דרך נוספת היא לרשום את ה - UserControl בקובץ ה - web.config, כך: < system.web > < pages > < controls > < add src = " ~/UserControl.ascx " tagName = " UserControl " tagPrefix = " uc1 "...
What is Reflector
24 September 10 12:07 AM
|
Shlomo
|
2 comment(s)
מה זה ואיך משתמשים ב - Reflector קבלתי שאלה במייל - "מה זה reflector?מה השימוש בו וכיצד" כדי לענות על השאלה חשבתי לכתוב פוסט שידגים את השימוש בו. לפני שנדבר על הכלי המופלא שנקרא ה - Reflector, צריך לוודא שאנחנו מבינים את תהליך העבודה ב - net. (התמונה לקוחה מהמצגות של סלע .) התהליך מתחיל כמובן בזה שאנחנו כותבים קוד באחת משפות NET. ממשיך לקומפילצייה במידה והתהליך עבר בהצלחה אנו מקבלים קובץ exe/dll (תלוי בסוג הפרויקט). מה שהקובץ באמת מכיל אינו קוד בינארי אלא קוד בשפה שמכונה intermediate language...
ArgumentOutOfRangeException - Value is not valid for OracleType: 0. Parameter name: oracleType
14 January 10 10:06 PM
|
Shlomo
| with
no comments
אם קבלתם את ההודעה הבאה: Value is not valid for OracleType: 0. Parameter name: oracleType מן הסתם כתבתם את הקוד הבא OracleParameter param = new OracleParameter ( "name" , 0); מה שאתם צריכים לעשות זה אחד מהשניים int num = 0; OracleParameter param = new OracleParameter ( "name" , num OracleParameter param = new OracleParameter ( "name" , Convert .ToInt32(0)); זה לא יעבוד OracleParameter param = new OracleParameter ( "name" , ( int )0); הסיבה לשגיאה זה הדרך שבה...
Set for WebClient.Encoding 1255
30 September 09 08:47 PM
|
Shlomo
|
3 comment(s)
בתפוז נשאלה השאלה הבאה: איך אפשר לגרום ל - WebClient לשלוח בקשה עם Encoding של 1255 ולא utf8. בהתחלה מישהו אמר שאפשר להשתמש במאפיין Encoding - כלומר הקוד הבא: WebClient client = new WebClient (); client.Encoding = Encoding .GetEncoding(1255); string str = client.DownloadString( http://www.google.co.il ); משום מה זה לא עבד - מעיון קצר ב - Reflector מסתבר שהמאפיין הזה משפיע אך ורק על תרגום הבתים שחוזרים מהבקשה, כלומר מאחורי הקלעים מפעילים את המתודה DownloadByte וכדי לדעת באיזה Encoding לתרגם את התוצאה...
מאחורי הקלעים של Nullable - או ?int
22 September 09 03:44 PM
|
Shlomo
| with
no comments
עמית לעבודה שאל אותי האם כשמגדירים nullable זה יושב ב - stack או ב - heap, בהתחלה עניתי בלי לחשוב שזה יושב ב - heap, אבל אז חשבנו שזה לא הגיוני כי אם זה יושב ב - heap אז מה כל החכמה בזה ? ואז הסתכלנו וראינו ש - nullable הוא למעשה struct ולא class, מה שאומר שהגדרה של ?int תשב ב - stack. ואז שאלנו את עצמנו איך יכול להיות שאפשר לתת את הערך null או לבדוק האם מופע של nullable הוא null. חקרנו קצת בעזרת ה - reflector ועלינו על הממצאים הבאים: אין ולא יכול להיות הערך null במופע של nullable , מה שקורה באמת...
Adding control to DetailsView dynamically
28 July 09 01:40 PM
|
Shlomo
|
4 comment(s)
בהמשך לפוסט הזה , (שהראה איך להוסיף Validator ל - DetailsView שנוצר בצורה דינמית) אני רוצה להדגים איך להוסיף פקדים בצורה דינמית. לפני הכל, את המאמר הבא - ASP.NET Page Life Cycle Overview כל מפתח ב - ASP.NET צריך להכיר בעל פה. נניח שבזמן Edit אנחנו רוצים להוסיף CheckBox לתא הראשון. הקוד יראה כך: protected void DetailsView1_ModeChanging( object sender, DetailsViewModeEventArgs e) { DetailsView1.ChangeMode(e.NewMode); Bind(); CheckBox chk = new CheckBox (); chk.ID = "CheckBox1" ; DetailsView1...
Creating RequiredFieldValidator for DetailsView dynamically
28 July 09 08:58 AM
|
Shlomo
|
2 comment(s)
אחד מהפקדים הנחמדים לעבוד עם מידע הוא ה - DetailsView, הוא יודע להציג מידע לאורך במקום לרוחב (כמו Grid) ומתאים מאוד לעידכון של שורה אחת. בדרך כלל מה שאני עושה זה להציג Grid עם כל הנתונים וכשבוחרים שורה מתוך ה - Grid אני מציג את הנתונים של אותה שורה ב - DetailsView. לאחרונה רציתי לעבוד איתו בצורה דינמית כלומר - לא להגדיר מראש ב - aspx את כל העמודות. ורציתי להוסיף לאחד העמודות RequiredFieldValidator. נשמע פשוט לא, אז נראה את הקוד. בהתחלה אני מקשר טבלה (עם שורה אחת) ל DetailsView protected void Page_Load...
"Nullable object must have a value" - IIF statement in VB.NET
02 June 09 03:40 PM
|
Shlomo
|
6 comment(s)
vb.net זה רע, אני נמצא כרגע בחברה מסוימת שלדאבוני כל הקוד שלהם הוא ב - vb.net ולא ב - #C, (הדבר היחיד הטוב שיוצא לי מזה, שאני יכול לכתוב בקורות חיים שיש לי גם נסיון ב - vb.net :) ) בכל מקרה יצא לי להיתקל בקוד הבא: (בערך) Dim j As Integer ? = Nothing Dim i As Integer = IIf(j.HasValue, j.Value, 6) Console.WriteLine(i) אם היינו משווים את הקוד הזה ל - #C זה היה נראה ככה: int ? j = null ; int i = j.HasValue ? j.Value : 6; Console .WriteLine(i); בפועל במקרה ש - j היה null תמיד היה נזרק שגיאה של "Nullable...
The Difference Between Equals and Static Equal
28 May 09 12:39 PM
|
Shlomo
| with
no comments
כשהראתי לסטודנטים שאני מלמד את הפוסט של ספיריטוס שמדבר על ההבדלים בין Equal ל - ==, שאלו אותי - מה ההבדל בין ה - Equal שיורשים מ - object לבין ה - Equal הסטטי ? במחשבה ראשונה עניתי - שלמעשה הקריאה - Equal(obj1, obj2 מפעילה את obj1.Equal(obj2. וכמובן שהשאלה הבאה הייתה, אז מה ההבדל ביניהם, והתשובה הייתה נפתח את ה - reflector ונראה. אז הנה הקוד של Equal public static bool Equals( object objA, object objB) { return ((objA == objB) || (((objA != null ) && (objB != null )) && objA.Equals...
CompareValidator Required RequiredFieldValidator
18 May 09 12:47 AM
|
Shlomo
|
6 comment(s)
נניח שיש לכם את הקוד הבא: < asp : TextBox ID ="TextBox1" runat ="server"></ asp : TextBox > < asp : TextBox ID ="TextBox2" runat ="server"></ asp : TextBox > < asp : RequiredFieldValidator ID ="RequiredFieldValidator1" runat ="server" ErrorMessage ="RequiredFieldValidator" ControlToValidate ="TextBox1"></ asp : RequiredFieldValidator > < asp : CompareValidator ID ="CompareValidator1"...
כשכותבים switch block, האם זה נשאר כך ? הנה התשובה
21 December 08 10:00 PM
|
Shlomo
|
2 comment(s)
אז דברנו על זה שהקומפיילר מרגיש חופשי לשחק עם הקוד שלנו איך שנראה לו, ולהפוך בלוקים של switch לבלוקים של if, ואנחנו לא ממש מבינים מה הקומפיילר מנסה לעשות. אז כשיש כאלו שאלות, למי פונים, כמובן ל סשה . אז שלחתי לו מייל עם השאלה, ואני מעתיק לכאן את התשובה שלו, ותודה על התשובה המפורטת. הקומפיילר רשאי לממש את זה באיזה אופן שמתחשק לו, כל עוד הסמנטיקה של הקוד שלך נשמרת. למשל, עבור switch על הרבה string -ים שונים הקומפיילר מייצר Dictionary ומשתמש בו כדי לבדוק לאיזה מקרה אתה מגיע (אתה יכול לבדוק את זה בקלות...
כשכותבים switch, האם זה נשאר כך ?
21 December 08 02:50 PM
|
Shlomo
|
6 comment(s)
טוב, כנראה החוויה הקשה שעברתי עם מחיקת הפוסט של ה FxCop בזמן publish, לא עוזבת אותי, כי אני ממשיך לכתוב אודותיו. בכל מקרה, המשכתי קצת לשחק עם הקוד, וגיליתי משהו מעניין, החוק שמחייב אותנו, לממש case עבור כל האפשריות ב enum, עובד רק עם ממשנו יותר מ case אחד, במדה וממשנו רק case אחד, ה Code Analysis יתעלם לגמרי מכל מה שאנחנו כותבים והוא יעביר את הקוד קומפילציה, אז כדי להבין מה קורה, כתבתי את הקוד הבא, והסתכלתי ב reflector, וגיליתי דברים חדשים, 1 public void f2( MyEnum myEnum) 2 { 3 switch (myEnum) 4...