DCSIMG
טריקים - שחר.נט

שחר.נט

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

ספרים מומלצים

Browse by Tags

All Tags » טריקים (RSS)
פרסום: אפליקציית קוד פתוח קטנה ושימושית ליצירת Data Transfer Objects באופן אוטומטי על בסיס LINQ to SQL Data Classes
הקדמה באחד הפוסטים הקודמים כתבתי על Data Transfer Objects והשימוש בהם לעבודה נכונה ונוחה עם LINQ to SQL ו- ADO.NET Entity Framework. בין התגובות שקיבלתי בפורום “תכנות .NET” בתפוז שבתגובה לשאלה שעלתה בו פורסם הפוסט, עלה העניין שלמרות שמדובר בכתיבה יותר נוחה, היא דורשת למעשה עבודה כפולה בהתחלה, וגם ציינתי זאת בפוסט. כשמתחילים לכתוב, יש צורך לכתוב DTO נפרד לכל אחת מהישויות עם תחילת העבודה, וגם בד”כ לכתוב מתודות שמבצעות העברה בין הDTO לאובייקט שנמצא ב DAL (האובייקט שמופה ע”י הORM) ולהיפך – לכתוב מתודה...
טיפ קצר: ייצוא מלא של הנתונים ב DB כולל סכמה ונתונים
אפשרות חמודה שקיימת ב SQL Manegment Studio 2008 היא להגדיר לאופציית ה” GEnerate Scripts” של הדטאבייס גם לייצא את הנתונים (כלומר, לייצר משפטי INSERT לטבלאות). האפשרות הזאת לא קיימת בגרסא 2005 (יש Generate Scripts – אין Data – כלומר שלמדתי על בשרי כשלא הבנתי לאן נעלמה האפשרות), אבל אין שום מגבלה על התקנה ושימוש ב Management Studio 2008 גם מול instance של SQL Server 2005. השימוש העיקרי של האפשרות הזאת, הוא העברת מידע משרתי הפיתוח לפרודקשן כאשר רוצים להעביר טבלאות חדשות מסויימות או אובייקטים חדשים מסויימים...
טיפ קצר: גישה ל Controls הנמצאים ב FooterTemplate של Repeater
בעקבות שאלה שקיבלתי, כמה מילים על FooterTemplate ב Repeater: ה FooterTemplate מאפשר לקבוע תבנית עיצובית שתופיע בתחתית ה Repeater לאחר כל ה DataBound Items. ניתן, כמובן, כמו כל מקום, לשלב שם כל Control שאתם רוצים. וכעת, לשאלה – איך ניגשים אליהם בלי להשתמש באף אחד מה events של ה Repeater? קצת מגושם, לא מורכב. בדוגמא הזאת, נניח של Repeater קוראים rpSample, ל control שאחנו מחפשים קוראים calDate והוא מהסוג Calendar. ככה הקוד ייראה:   Calendar myCal = (Calendar)rpSample.Controls[rpSample.Controls...
טיפ לעבודה מול LINQ to SQL ו- ADO.NET Entity Framework: שימוש ב FactoryMethod כדי לקבל מופע של ה DataContext או ה Entities
כשעובדים מול LINQ to SQL או ADO.NET Entities Framework, אנחנו עובדים הרבה מאד מול אובייקט ה DataContext / Entities. דוגמא מאד נפוצה בדוגמאות ובמדריכים של הטכנולוגיות הללו היא ליצור מופע של המודל בכל מתודה וכל פעם שמשתמשים בו. למשל: 1: public static void Method1() 2: { 3: using (var data = new DataClassesDataContext()) 4: { 5: //Code 6: } 7: } 8: public static void Method2() 9: { 10: using (var data = new DataClassesDataContext()) 11: { 12: //Code 13: } 14: } וכך יש הרבה מתודות, כל אחת עושה new DataClassesDataContext...
יצירת Thumbnail (צלמיות) בקלות
אם רוצים ליצור צלמית של תמונה (גרסא מוקטנת שלה), ניתן כמובן לחתוך אותה באופן ידני. אולם, למי שלא מכיר (והרבה, כנראה, לא מכירים) הפונקציונאליות הזאת כבר מובנת ב BCL במחלקה System.Drawing.Image. השימוש במתודה הזאת, GetThumbnailImage מאד פשוט. הנה לדוגמא קוד של Console Application שיוצר גרסא מוקטנת לכל התמונות בפורמט jpg שבתיקייה: נעבור שנייה על הקוד הזה (שכפי שאתם רואים, הוא להדגמה בלבד): 1: ... 2: using System.Drawing; 3: using System.IO; 4: ... 5:   6: string dir = @"C:\Users\Public\Pictures...
איך לקבל ערכים מ Query String של URL שנמצא במשתנה string?
שאלה : יש לי כתובת URL הנמצאת במשתנה מסוג string. לא מדובר בכתובת URL של העמוד שבו אני נמצא כעת. אני רוצה לנתח את הURL הנמצא במשתנה, ולקבל את אחד מערכי ה query string. הכיצד? תשובה: תכירו את System.Uri. מדובר במחלקה המשמשת לייצוג כתובות (URL, כתובות לוקאליות, כתובות של usenet – הכל). באמצעות System.Uri ניתן לקבל חלק ספיציפי מהכתובת, במקרה שלנו את כל מה שאחרי הסימן שאלה (כולל) עם System.Uri.Query. לאחר מכן, כדי לקבל את הערך של משתנה מסויים, נשתמש במתודה חביבה שנמצאת ב System.Web.HttpUtility ששמה ParseQueryString...
[טיפ] שחזור והעברת פוסטים שנכתבו ב Windows Live Writer
כשאתם כותבים פוסט ב Windows Live Writer ושומרים אותו כ draft או אפילו עושים לו publish, הפוסט נשמר עדיין במחשב שלכם. בד"כ, הוא נשמר בתיקיית המשתמש, אבל גם אם לא, פשוט חפשו קבצים עם הסיומת wlp. אם נמחק לכם פוסט, אתם פשוט צריכים למצוא את הקובץ של הפוסט ולעשות פליש מחדש. עוברים בלוג? פשוט שנו את הבלוג אליו אתם עושים פבליש ותפרסמו לבלוג החדש. ממש בנוחות. כך, גם אפשר לגבות את כל הפוסטים שכתבתם באמצעות התוכנה.
.NET Framework גם לסקריפטינג
מאמר מצויין שפורסם ב TechNet Magazine בנושא שילוב .NET Framework בקוד Scripting. מומלץ לכולם: http://www.microsoft.com/technet/technetmag/issues/2007/01/HeyScriptingGuy/default.aspx
עדכונים מהבלוג ישירות ל Visual Studio שלכם
אני מניח שכולנו מכירים את מסך הפתיחה של Visual Studio: במרכז המסך, יש עדכונים, שמגיעים בRSS כברירת מחדל מMSDN. אבל ברור שMSDN זה כלום ביחס לבלוג שלי (ציניות...), ושאתם תרצו לקבל עדכונים מעניינים מהבלג שלי ולא את המאמרים הללו מהMSDN שמדווחים לכם בעיקר על אירועים ומוצרים חדשים ודברים חדשים להורדה (מדי פעם גם משהו מעניין). הפעולה פשוטה מאד, לכו לתפריט Tools->Options: ברירת המחדל נראית כך (לכו ל Stratup): כל מה שצריכים לעשות, זה למחוק את הכתובת המסומנת (כתובת פיד RSS) ולהחליף בRSS המבוקש שאתם רוצים...
שלב אתרך בחיפוש המהיר של IE7
לפני לא מעט זמן, כתבתי הסבר על איך בונים קובץ הגדרת חיפוש Open Search בצורה שתאפשר לאינטרנט אקספלורר 7 ולפיירפוקס לתת למשתמשים לעשות חיפוש מהיר באתר שלך בדפדפן. מי שלא הסתדר עם זה, עכשיו מיקרוסופט השיקו מנגנון שעושה את זה בשבילכם. פשוט מאד. http://www.microsoft.com/windows/ie/searchguide/en... שחר.
שימוש ב My Namespace ב C#
אחד החידושים ב Visual Studio 2005, ובגרסא 2 של הפרימוורק, ובגרסא 8 של VB.NET, היה הוספה של דבר חדש ומגניב, שנקרא My Namespace. מדובר למעשה בכלי שמאפשר לגשת בצורה הרבה יותר פשוטה, תוך חיסכון בשורות קוד לפעולות ומאפיינים שבלעדי ה My Namespace היה צריך לעבוד קצת יותר בשביל ליישם אותם. החל מדברים פשוטים כמו קבלת משתני מערכת כאלה ואחרים, וכלה בדברים יותר מורכבים שאיפשרו ביצוע פעולות וגישה לנתונים של המחשב, הרשת, האפליקציה, WebServices ועוד - בקלות רבה מאד. האפשרות הזאת, הופיע בצורה אוטומטית בכל פרוייקט...
הוספת ה Dynamic Help ל IDE
מסיבבות השמורות עימם, ועימם בלבד, מיקרוסופט הסירו את כלי העזרה המשולב (ה MSDN, שגם מתעדכן מהאינטרנט), DynamicHelp מסביבת הפיתוח ב VisualStudio.NET 2005. עבור מי שלא אוהב לגלוש ל MSDN כשיש לו בעייה, או לפתוח בחלון נפרד את ה MSDN Library, יש פיתרון פשוט וקל להוספת ה Dynamic Help ל IDE. לכו לתפריט Tools-->Options-->Help, משמה ניתן לשלוט על מאפייני העזרה. בבחירה של המקטע Show Help Using:, תבחרו "Integrated Help Viewer" תאתחלו את הIDE. כנסו ל Help-->Dynamic Help עכשיו, התווסף לכם ה Dynamic Help...