DCSIMG
ASP.NET - בלוג MSDN ישראל

אנחנו בפייסבוק

Browse by Tags

פורסם בתאריך 21/03/2013 04:40 על ידי Eran Sharvit

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

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

מכיוון שעל מנת לממש תקשורת דו-כיוונית על בסיס פרוטוקול http, לא צריך לחכות ל- WebSockets, ניתן לעבוד עם SignalR.

 

מה זה SignalR

SignalR היא ספריה חדשה לפיתוח בסביבת Asp.Net אשר מאפשרת בצורה מאוד פשוטה לממש התנהגות real-time במערכת שלכם. כלומר, הספריה מאפשרת לשרת ה- Asp.Net "לדחוף" הודעות לצרכנים (כאשר הצרכן יכול להיות java script או .Net desktop app).

SignalR מאפשרת ביצוע תקשורת דו-כיוונית בין שרת ה- Asp.Net לבין הקוד הרץ בדפדפן (ע"י קוד javascript). בנוסף, הספריה מספקת API מאוד פשוט על מנת לממש הן את צד השרת והן את צד הצרכן.

 

תרחישים המתאימים לשימוש ב- SignalR

ניתן לעשות שימוש ב- SignalR בכל מקום בו נדרש לקבל חיווי מהשרת על פעולה מסויימת (notification), לדוגמא:

Chat  – בכל פעם שאחד מהחברים הנמצאים בחדר, כותב הודעה, ההודעה "עולה" לשרת, והשרת "שולח" את ההודעה לכל החברים האחרים בחדר. שימו לב, החברים האחרים אינם "מושכים" את ההודעה, אלא השרת "שולח" אליהם את ההודעה.

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

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

 

איך זה עובד

SignalR מפעילה מנגנון של fallback, עבור שיטת התקשורת. SignalR יודעת לבצע את התקשורת על בסיס 4 שיטות, כאשר בשלב ההתחברות של הצרכן (client) לשרת, מתבצע "משא ומתן" (negotiation) שקובע מה תהיה שיטת התקשורת – אם שיטה ראשונה לא אפשרית, בודקים האם השיטה השנייה נתמכת, וכו'.

להלן 4 שיטות התקשורת, על פי סדר העדיפות, למימוש ההתקשרות:

  1. WebSockets – אפשרי רק אם גם השרת וגם הדפדפן תומכים.
  2. Server Sent Events – תלוי בתמיכה של הדפדפן. רוב הדפדפנים תומכים בשיטה זו, פרט ל- Internet Explorer.
  3. Forever Frame – נתמך רק ב- Internet Explorer
  4. Ajax long polling – נתמך ברוב הדפדפנים.

WebSockets היא הטכניקה היחידה שמספקת תקשורת דו-כיוונית (duplex) אמיתית, ולכן שיטה זו בעדיפות ראשונה.

שאר השיטות הן טכניקות המאפשרות לדפדפן לקבל מידע מהשרת, אך הדפדפן, מתקשר מול השרת בפניות Ajax "רגילות".

עבור 4 השיטות האלו, ה- API של SignalR מספק הפשטה (abstraction), כך שה- API אחיד לכל אחת מהשיטות, ועבורינו המשתמשים, המימוש פשוט וקל.

 

איך משתמשים ב- SignalR

על מנת לעבוד עם SignalR, יש להתקין את צד השרת של SignalR בפרויקט מסוג Web Application. הדרך הקלה:

- יצירת פרויקט Web Application חדש (ניתן גם בפרויקט קיים)

- שימוש ב- NuGet לטעינת SignalR ע"י הפקודה הבאה: Install-Package Microsoft.AspNet.SignalR –pre.
לאחר מכן, נגדיר PersisitentConnection. מחלקה זו מהווה אחת מאבני הבניין המרכזיות של  SignalR. מחלקה זו חושפת את השירותים הבסיסים של SignalR, לדוגמא: קבלת הודעה מ"מנויים", שליחת הודעות ל"מנויים", אירועים של התחברות והתנתקות של "מנויים" וכיו"ב. בד"כ, נעבוד עם מחלקה אחרת - Microsoft.AspNet.SignalR.Hub, המספקת מעטפת מעל PersisitentConnection.

- הגדירו מחלקה היורשת מהמחלקה Microsoft.AspNet.SignalR.PersistentConnection

- נגדיר Override function אשר "דורסת" את הפונקציה המקורית OnReceived, ונממש בה שליחה של כל הודעה המתקבלת ממנוי כלשהוא, אל כלל המנויים (משהו בסגנון chat):

protected override Task OnReceived(IRequest request, string connectionId, string data)

{

// Broadcast data to all clients

return Connection.Broadcast("server is sending: " + data);
}


- ב- Application_Start בקובץ Global.asax, נגדיר את ה- Route של ה"Connection":
RouteTable.Routes.MapConnection<SamplePersistentConnection>("echo", "/echo");

- עכשיו נוסף "מנוי":

זו האפליקציה ה"נרשמת" ל- "Connection" של SignalR, ויכולה לשלוח הודעת ולקבל הודעות מה-"Connection".

- הוסיפו דף Html

- העתיקו את הקוד הבא לדף ה- Html:

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<title></title>

</head>

<body>

<script src="http://code.jquery.com/jquery-1.7.min.js" type="text/javascript"></script>
   1:  
   2:  
   3: <script src="Scripts/jquery.signalR-1.0.0-rc2.min.js" type="text/javascript">
   1: </script>
   2:  
   3: <script type="text/javascript">
   4:  
   5:       $(function () {
   6:  
   7: var connection = $.connection('/echo');
   8:  
   9:           connection.received(function (data) {
  10:  
  11:               $('#messages').append('<li>' + data + '</li>');
  12:  
  13:           });
  14:  
  15:           connection.start().done(function () {
  16:  
  17:               $("#broadcast").click(function () {
  18:  
  19:                   connection.send($('#msg').val());
  20:  
  21:               });
  22:  
  23:           });
  24:  
  25:       });
  26:  
</script>

<input type="text" id="msg" />

<input type="button" id="broadcast" value="broadcast" />

<ul id="messages">

</ul>

</body>

</html>


כעת, הריצו את הפרויקט (Ctrl+F5) ופתחו מספר מופעים שונים של דף ה- Html (ע"י בחירה ב- File->New Session בתפריט של ה- Internet Explorer).
ברגע שתזינו טקסט בדף אחד ותלחצו על כפתור ה-send, הטקסט יופיע בכל אחד מהדפים הפתוחים (כלל ה"מנויים").

 

לסיכום

אין צורך לחכות ל- WebSockets על מנת לתמוך בתקשורת דו-כיוונית באפליקציות Asp.Net.

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

כמו כן אתם מוזמנים להוריד את ה- EBook החינמי בנושא מכאן.

 

רוצים להתייעץ בנושאי פיתוח לווב? כנסו לפורום שלנו בעברית!

 

imageהפוסט נכתב ע"י טל בן שלום, יועץ בכיר בקבוצת היועצים של מיקרוסופט
(MCS ) העוסק בייעוץ בתחומי ארכיטקטורה, פיתוח, Azure ו- ALM.

פורסם בתאריך 16/12/2012 04:37 על ידי Eran Sharvit

asp-netהשבוע שחררנו גרסה חדשה לסט כלי הפיתוח שנועדו למפתחי ווב, סט כלים אשר מרחיב את יכולות ASP.NET ומציע כלי פיתוח חדשים. בין אם אתם משתמשים ב- Web Forms, MVC, Web API או כל טכנולוגיה אחרת של ASP.NET, יש משהו חדש גם בשבילכם בעדכון זה.

 

שיפורים חדשים ב- ASP.NET

העדכון מוסיף תבניות ופיצ’רים חדשים ל-ASP..NET ביניהן:

  • New ASP.NET MVC Templates
    • רוצים ליצור אפליקציית פייסבוק?תבנית חדשה תאפשר לכם במספר צעדים פשוטים ליצור אפליקציית פייסבוק באמצעות שימוש ב- ASP.NET MVC ותאפשר לכם לקבל מידע על פרופיל הפייסבוק שכרגע Logged in ולקבל מידע על גרף הרשת שלו. (עוד על כך בפוסט נפרד בקרוב).
    • תבנית חדשה של Single Page Application מאפשרת לכם לבנות אפליקציית ווב שעושה שימוש בצד הקליינט ב- Knockout, jQuery ו- ASP.NET Web API
  • תמיכה בתקשורת בזמן אמת באמצעות SignalIR. מאפשר לכם להנות מהיתורנות של התמיכה החדשה ב- WebSocket שהתווספה ב- .NET 4.5 תוך כדי תמיכה אוטומטית לאחור בפרוטוקולים ישנים יותר של תקשורות, לקליינטים שעדיין לא עברו לפריימוורק החדש. אם עד היום לא עשיתם שימוש ב- SignalIR – זה הזמן לנסות ולראות כמה שזה מגניב.
  • פונקציונליות חדשה ל- Web API, כולל תמיכה ב- OData, integretad tracing וחילול אוטומטי של תיעוד ל- API שלכם.
  • פונקציונליות חדשה של Friendly URL’s המאפשרת למפתחי Web Forms לייצר כתובות ידודתיות יותר ולעבור בין גרסאות תצוגה של מובייל ודסקטופ בקלות.
  • שיפור במנגנון ה- web publishing. לפרוייקטים מסוג web sites יש עכשיו אותה חווית פיבלוש כמו פרוייקטים מסוג web applications (כולל Azure web sites) ואתם גם יכולים כעת לפבלש רק קבצים מסויימים, לראות הבדלים בין הקבצים באתר המרוחק ובמכונה המקומית ועוד.
  • שיפור ב- VS 2012 Page Inspector. הוספה תמיכה ב- JS selection mapping וכעת גם ניתן לראות עדכונים ב- CSS בזמן אמת.
  • הוספה תמיכה בעורך של VS 2012 ל- Knockout IntelliSence והדבקה של JSON כמחלקה של .NET (מה שהופך את הצריכה של API חיצוניים לקלה יותר)
  • עדכונים לכל התבניות האחרות של ASP.NET – תמיכה בגרסאות החדשות של jQuery, jQuery UI, Modernizer ועוד..

 

 

כיצד להתקין את העדכון?

אתם יכולים להוריד כעת את העדכון ולהתקין אותו מכאן: http://www.asp.net/vnext

כמובן שאתם צריכים Visual Studio 2012 מותקן במחשב שלכם, לא משנה מאיזה גרסה.


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

 

יש לכם שאלות נוספות בנושא ASP.NET או פיתוח לווב? כנסו לפורום שלנו בעברית!

פורסם בתאריך 22/08/2012 12:11 על ידי Eran Sharvit

ASP_Netלאחרונה שמחנו לבשר על שחרור גרסה 5 של Entity Framework ביחד עם Visual Studio 2012, כחלק מן הרעיון לשחרר טכנולוגיות ומוצרים חדשים בו זמנית עם כלי פיתוח.

EF5 מגיעה ביחד עם התקנת VS 2012 או כחבילת Nuget עצמאית.

Entity Framework או בקיצור EF היא כלי Object/Relational Mapping המיועד לעזור למפתחי אפליקציות דוטנט לפתח בצורה קלה ונכונה יותר שכבת גישה לנתונים. לאחרונה EF הצטרף לרשימת הפרוייקטים ששוחררו בקוד פתוח לקהילת המפתחים, פרוייקטים כמו Azure SDK, ASP.NET MVC, Web API ו- Web pages with Razor ועוד היד נטויה..

 

מה חדש בגרסה 5

EF5 כוללת מספר פיצ’רים חדשים כמו גם תיקוני באגים לגרסה 4.3. רוב הפיצ’רים החדשים רלוונטים רק באם האפליקציה שלכם עושה שימוש ב- .NET Framework 4.5 ששוחררה ביחד עם EF5. בהמשך הפוסט פרטים נוספים אודות התאמה.

חלק מן התכונות והיכולות החדשות בספרייה: (כולל לינקים לסרטונים)

  • Enum Support – מאפשר לכם תמיכה של Enums properties במחלקות.
  • Spatial data types – יכולים להחשף על ידי המודל שלכם בעזרת שימוש ב- DbGeography ו- DBGeometry.
  • ביצועים משופרים. פרטים נוספים כאן.
  • CodeFirst יזהה אם על המכונה שלכם ניתן להשתמש ב- LocalDb או SQL Express על מנת לצור בסיסי נתונים חדשים. VS 2012 כולל LocalDB ואילו VS 2010 כולל SQL Express.
  • Code First יוסיף טבלאות חדשות לבסיס הנתונים אם הוא לא כולל את הטבלאות שהמודל דורש.

ה- Designer החדש של VS 2012 כולל עוד מספר תכונות חדשות

  • DbContext code generation – מודלים חדשים שתייצרו באמצעות ה- EF Designer ייצרו מחלקות POCO שיורשות מ- DBContext כברירת המחדל.
  • Multipile Diagram עבור כל מודל – אפשרות לייצר מספר דיאגרמות עבור כל מודל.
  • Tabled-Valued Functions אשר קיימות בבסיס הנתונים ניתנות להוספה למודל שלכם בקלות.
  • Batch import of stored procedures – בעת חילול הקוד מבסיס הנתונים ניתן להוסיף למודל את כל ה- SP’s.

כנסו לדף הרשמי של EF על מנת ללמוד הכל אודות ספרייה נפלאה זאת.

 

מה בדיוק השתנה מהגרסה הקודמת

אתם יכולים לבדוק את רשימת הבאגים שתיקנו מגרסת EF5 RC.

גרסת חבילת ה- Nuget תעבוד ללא בעיה מול VS 2012 או VS 2010 ויכולה לעבוד מול .NET Framework 4 או 4.5. שימו לב שחלק מן הפיצ’רים החדשים יעבדו רק לאפליקציות המיועדות לגרסת 4.5 כמו למשל enum support, spatial data types, table-valued functions ושיפורים מסויימים בביצועים.

צריכים עזרה נוספת עם EF?
מומחי הקהילה שלנו ישמחו לעזור לכם בפורום Web Development בעברית!

פורסם בתאריך 22/07/2012 14:45 על ידי Eran Sharvit

aspConf היא וועידה וירטואלית הפתוחה לציבור הרחב ללא עלות ומוקדשת כולה לנושאי פיתוח שונים ב- ASP.NET. יומיים שלמים מוקדשים למגוון נושאים עם יותר מ- 60 מצגות.

השנה הפכנו את וועידת aspConf הפופלרית לקצת שונה – תוכלו למצוא בה עוד יותר נושאים וטכנולוגיות במגוון נושאים הנוגעים בפלטפורמת פיתוח הווב המיקרוסופטית – נושאים כמו Windows Azure ו- MS Web Platform.

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

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

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

צפייה נעימה.

פורסם בתאריך 01/04/2012 13:17 על ידי Eran Sharvit

VS11-Beta_h_rgbבין שלל החידושים של גרסת VS 11 Beta ששוחררה לאחרונה, הוצגה יכולת חשובה בעבודה עם נתונים: Strongly Typed Data Controls. במאמר זה נזכיר את "תבניות" הנתונים הללו ואת השיטה הנוכחית לביצוע Data Binding, נחקור את האתגרים שאנו נתקלים בהם כיום ונראה כיצד באמצעות VS 11 Beta ניתן להתמודד עם האתגרים האלה, לשפר גם את הפרודוקטיביות ואף להינות מביצועים טובים יותר.

הורידו והתנסו ללא תשלום בגרסה החדשה של Visual Studio 11 Beta

 

Data Binding – המצב כיום

כל מפתח WebForms מכיר את ה"תבניות" (Templates) שקיימות מהגרסה הראשונה של ASP.NET. תבניות אלו מאפשרות לנו לשנות את ה-markup המיוצר על ידי קונטרולים התומכים בהן, כגון GridView או Repeater, בהתאם לנתונים שאליהם הקונטרול מקושר (bound). על מנת לבצע את הקישור משתמשים במתודות עזר ()Eval עבור קישור חד-כיווני, ו- ()Bind עבור קישור דו-כיווני. שתי המתודות מקבלות בתור פרמטר מחרוזת שחייבת להיות זהה לשם המאפיין אליו נרצה לבצע את הקישור:

<asp:GridView runat="server" ID="lateBoundGrid" AutoGenerateColumns="false" >
    <Columns>
        <asp:TemplateField HeaderText="Id">
            <ItemTemplate>
                <span><%# Eval("Id") %></span>
                      
           
</ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Title">
                <ItemTemplate>
                    <asp:TextBox runat="server" Text='<%# Bind("Title") %>' Id="title"/>
                       
               
</ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Author">
                <ItemTemplate>
                    <asp:TextBox runat="server" Text='<%# Bind("Author") %>' Id="author"/>
                       
               
</ItemTemplate>
        </asp:TemplateField>
        </Columns
>
</
asp:GridView
>

 

בזמן ריצה, יתבצע שימוש ב-Reflection כדי "להזריק" את ערכי המאפיינים מתוך האובייקטים המקושרים לתוך ה-markup. להלן הקוד (בצורה מפושטת), שיווצר מאחורי הקלעים כדי לבצע קישור של שדה Title ל- TextBox בשם title:

if ((this.Page.GetDataItem() != null))
{
  title.Text = Convert.ToString(
this.Eval("Title"), CultureInfo.CurrentCulture);
}

נזכור כי הקישור מוגדר בעזרת מחרוזות המיצגות את שמות המאפיינים. כלומר, אנו משתמשים ב-Late Bound Expressions, מה שמספק לנו מספר אתגרים:

  • חוסר בטחון בזמן קידוד – המחרוזות המוקלדות אינן נבדקות לא בזמן פיתוח ולא בזמן קומפילציה, כך שבמידה וטעינו, את השגיאה נקבל רק בזמן ריצה. 
  • מחסור ב-Intellisense – חייבים להקליד את שמות המאפיינים במדויק באופן ידני – אין עזרה של Visual Studio.
  • רגישות לשינויים – שינוי בשם מאפיין לא יגרום לשום התראה בזמן פיתוח וקומפילציה – את השגיאה נגלה רק בזמן ריצה (בשאיפה בבדיקות).
  • השפעה על ביצועים – בשל שימוש ב-Reflection. למרות שמנגנון ה-Binding עושה שימוש ב-Caching של מאפיינים, וחיפוש המאפיין מתבצע רק פעם אחת על כל פעולת ה-DataBind, עדיין קיימת השפעה על ביצועיי הדפים (עוד על כך בהמשך המאמר).

 

הפתרון – Strongly Typed Data Controls

גרסת ASP.NET 4.5 המותקנת עם VS 11 Beta, מציגה את Strongly Typed Data Controls בתבניות, המאפשר הגדרת טיפוס האובייקט המקושר באמצעות מאפיין חדש: ItemType.

מאפיין זה קיים בכל קונטרול שיורש מתוך System.Web.UI.WebControls.DataBoundControl (כגון: GridView, FormView, CheckBoxList, DropDownList, ListBox ואחרים), וכן ב-Repeater שלא יורש מהנ"ל. כאשר מוגדר ה-ItemType, אנו יכולים להשתמש בביטוי Item ולקבל השלמה אוטומאטית (Intellisense) ב- VS 11 Beta:

עבודה עם נתונים ב- Visual Studio 11 Beta: כיצד להשתמש ב- Strongly Typed Data Controls

 

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

מכיוון שכעת אנחנו עובדים Strongly Typed כל הקוד נבדק הן בזמן הקידוד והן בזמן הקומפילציה, וכך נקבל התראה אם משהו לא תקין מיד עם הופעת התקלה:

עבודה עם נתונים ב- Visual Studio 11 Beta: כיצד להשתמש ב- Strongly Typed Data Controls

הביטוי Item מאפשר לנו קישור חד-כיווני. על מנת לבצע קישור דו-כיווני, עלינו להשתמש בביטוי BindItem, שגם הוא מספק לנו Intellisense מלא. להלן הדוגמא שהצגתי קודם אך הפעם עם שימוש ב-Strongly Typed Data Controls:

<asp:GridView runat="server" ID="stronglyBoundGrid" 
AutoGenerateColumns="false" ItemType="BookStore.Book" >
    <Columns>
        <asp:TemplateField HeaderText="Id">
            <ItemTemplate>
                <span><%# Item.Id %></span>
                      
           
</ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Title">
                <ItemTemplate>
                    <asp:TextBox runat="server" Text='<%# BindItem.Title %>' Id="title"/>
                       
               
</ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Author">
                <ItemTemplate>
                    <asp:TextBox runat="server" Text='<%# BindItem.Author %>' Id="author"/>
                       
               
</ItemTemplate>
        </asp:TemplateField>
    </Columns
>
</
asp:GridView
>

ומה לגבי הביצועים? בשימוש ב-Item, כלומר בקישור חד-כיווני, שהוא השימוש הנפוץ ביותר, אין שימוש ב-Reflection. מנוע ה-ASP.NET יתרגם את הקישור לקוד הדומה לקוד הבא:

Item = ((BookStore.Book)(Container.DataItem));           

target.SetDataBoundString(0, Convert.ToString(Item.Id, CultureInfo.CurrentCulture));

מהניסיונות שביצעתי*, הפעלת ()DataBind תוך שימוש ב-Item עורכת כמחצית מהזמן בהשוואה לשימוש
ב- ()Eval
. לצערי, כאשר משתמשים בקישור דו-כיווני, המנגנון נשאר זהה לשימוש ב-()Bind, כך שלא מרוויחים בביצועים, אך עדיין מקבלים השלמה אוטומאטית.

 

* הנתונים הנ"ל הן תוצאות של ניסויים שלי בלבד ואינם נתונים רשמיים. בניסויים אחרים ובתסריטים אחרים התוצאה עשויה להיות שונה.

 

הורידו והתנסו ללא תשלום בגרסה החדשה של Visual Studio 11 Beta

 

Strongly Typed Data Controls ב- Visual Studio 11הפוסט נכתב ע"י ולאד אזארכין ,מהנדס תמיכת Premier למפתחים (PFE), וכן מוביל טכנולוגי בתחום פיתוח Web ב-EMEA. בין יתר ההתמחויות, ולאד הוא מומחה בתחום ביצועים, ניטור, health, ו-troubleshooting של מערכות Web. בעבר ולאד היה יועץ פיתוח תוכנה, שימש בתפקידי ניהול טכנולוגי בכירים, הציג בכנסים וניהל קבוצת משתמשים.

פורסם בתאריך 28/03/2012 11:18 על ידי Eran Sharvit

ASP_Netאנחנו מתרגשים להודיע שמאתמול העברנו מספר טכנולוגיות מרכזיות לרישיון קוד פתוח המאפשר למעשה לקהילה להיות מעורבים ולהשפיע על עתיד הטכנולוגיות בהם אתם משתמשים יום יום. ASP.NET MVC 4, ASP.NET Web API, ASP.NET Web Pages v2 – כל אלו מעתה ברישיון קוד פתוח!

בפעם הראשונה יתאפשר למפתחים מחוץ למיקרוסופט לתרום קוד, Patches ותיקוני באגים לטכנולוגיות אלו, שכמובן יעברו ביקורת  של מיקרוסופט על מנת לשמור על איכות הקוד הגבוהה. כמו כן כל אחד יוכל לעקוב אחר הפרוייקט ולראות אילו Check-in’s המפתחים שלנו עושים!

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

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

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

בדצמבר שעבר נקטנו בגישה דומה עם מוצר אחר – Windows Azure SDK ששוחרר ברישיון דומה מה שהוכח כהחלטה נבונה שתרמה לפיתוח מוצר איכותי יותר.

אתם כבר עכשיו יכולים לבחון את הקוד, להוריד אותו, לקמפל ולהשתתף בפיתוח באופן פעיל של ASP.NET MVC, Web API ו- Razor

ב- CodePlex שאגב אנו מזכירים לכם שלא מזמן גם תומך גם ב- Git (-:

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

ההכרזה הרשמית בפוסט של סקוט גוטרי, בכיר במיקרוסופט.

פורסם בתאריך 20/02/2012 09:48 על ידי Eran Sharvit

חם מהתנור: שוחררה ASP.NET MVC 4 Betaלפני מספר ימים שוחררה גרסת הבטא של פלטפורמת הפיתוח ASP.NET MVC 4, גרסה שכוללת פיצ’רים חדשים ומלהיבים כמו ASP.NET Web API.

בספטמבר האחרון בכנס /BUILD// הכרזנו על שחרור גרסת ASP.NET MVC 4  Developers Preview. היום אנו גאים להכריז על גרסת הבטא.

לקבלת כל המידע והורדת הגרסה החדשה, הציצו כאן: http://asp.net/mvc/mvc4

אז מה חדש בגרסה זאת? להלן כמה מן הפיצ’רים המרכזיים בגרסה החדשה:

  • ASP.NET Web API
  • Bundling and Minification
  • Database Migration
  • Mobile Web
  • שיפורים במנוע Razor
  • NuGet Project Installation
  • תמיכה באסינכרוניות ו- WebSockets
  • ועוד!

 

ASP.NET Web API

זוהי היכולת החדשה המשמעותית ביותר מאז הגרסה האחרונה ששוחרה.
ASP.NET MVC תוכננה לאינטראקציה בין בני אדם (המשתמשים) לדפי האינטרנט של האפליקציה שלכם.  צורת התקשורת היא  קבלת קלט מהמשתמש (באמצעות שליחת טפסים, לחיצה על כפתורים וכו’) והחזרת פלט HTML.

ASP.NET Web PI תוכננה לאינטראקציה בין האפליקציה שלכם למכונות ולא לבני אדם. למשל, לשירותים אשר מתקשרים עם האפליקציה שלכם כמו למשל קריאת Ajax מדף חיצוני. במקרה זה, הבקשה מגיעה מתוך הקוד, ומצפה לקבל מבנה נתונים מסויים וקוד סטטוס בפרוטוקול HTTP.

בעזרת תשתית Web PI המשולבת מעתה ב- ASP.NET MVC,  יהיה הרבה יותר קל לבנות HTTP Services באפליקציית MVC שלכם תוך כדי שימוש בפרדיגמות תכנות HTTP המוכרות לכם.

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

Bundling and Minification

שיפור ביצועים באתרי אינטרנט הוא מרכיב חשוב בתהליך הפיתוח, שמטרתו לשפר את חווית המשתמש ולהעלות את תפוקת האתר. ישנן שיטות רבות לשיפור ביצועי אתרי אינטרנט כגון שימוש ב- Cache, הקטנת תמונות, שיפור הקוד ועוד.
2 שיטות יעילות ביותר המתאימות לאתרים מודרניים העושים שימוש בקבצי Script וקבצי CSS הן Bundling ו- Minification (בעברית: איחוד ומזעור) וגרסה זאת של ASP.NET MVC כוללות יכולות מובנות אלו.

יכולות אלו יהיו כלולות גם ב- ASP.NET 4.5 וכתבנו על זה בעבר בבלוג שלנו. אתם מוזמנים לקרוא עוד פרטים על יכולות ה- Bundling and Minification בפוסט הזה.

Database Migration

גרסה זאת כוללת את Entity Framework 4.3, כלי ה O/RM הכולל פיצ’רים ויכולות חדשות רבות.
EF משתמשת בגישת convention-over-configuration ומאפשרת לנו לפתח את סכמת בסיס הנתונים מתוך הקוד והמודל העסקי ולא ההפך.
אחת מן היכולות החדשות הבולטות של EF, היא היכולות לבצע עדכון של סכמת בסיס הנתונים בהתאם לקוד של האפליקציה, מה שנקרא Migration. שיטה זאת נחשבת “ידידותית” יותר למפתחים וגם מאפשרת לייצר בצורה אוטומטית סקריפט SQL המשמש לעדכון בסיס הנתונים, אותו ניתן למסור ל- DBA במקרה הצורך. אתם יכולים לראות כאן מדריך צעד אחר צעד כיצד להשתמש ביכולת החדשה.

Mobile Web

גרסה זאת כוללת שיפורים ויכולות רבות נוספות המאפשרות פיתוח יותר קל של אפליקציות מותאמות למכשירים ניידים כגון מובייל וטאבלטים. הגרסה כוללת את ספריית jQuery Mobile ויכולת תמיכה חדשה אשר מאפשר לנו להגדיר באיזה View Template ייעשה שימוש, בהתאם להתקן אשר ניגש לאפליקציה, שימוש דיפולטיבי ב- Media Queries ועוד

שיפורים ב- Razor

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

נראה לדוגמא את יכולת הרינדור הסלקטיבית שהוצגה:
אם נכתוב את השורה הזאת:

<div class="@myClass">Content</div>

והמשתנה myClass@ הוא ריק, אז הפלט יהיה <div>Content</div>

ישנן עוד שיפורים רבים במנוע הרייזור שכמובן נוכל לראותם גם בגרסת 2 ASP.NET Web Pages.

תבניות פרוייקט מבוססות NuGet

כאשר תצרו פרוייקט ASP.NET MVC 4 תבחינו שויז’ואל סטודיו יתקין בצורה אוטומטית מספר חבילות NuGet בצורה אוטומטית. הסיבה לכך היא שתבנית הפרוייקט מבוססת על חבילות NuGet. למעשה, תשתית ASP.NET MVC בעצמה יכולה להיות מותקנת בתור חבילת NuGet..

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

עוד עובדה חשובה שחשוב להזכיר – למי שעובד עם Source Control אנו מזכירים לכם על היכולת החדשה של NuGet שנקראת Package restore ומאפשרת לפרוייקט שלכם למנוע מחבילות ה- NuGet לעלות ל- Source Control, אך בקלות לרדת לשאר מחשבי המפתחים על מנת שיוכלו לקמפל את האפליקציה.

תמיכה באסינכרוניות ו- WebSockets

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

מה נדרש על מנת להתקין ASP.NET MVC 4 Beta

גרסת ASP.NET MVC 4 Beta עובדת עם VS 2010 / .NET 4.
(כל מה שנדרש הוא Visual Studio 2010 SP1  או Visual Web Developer Express SP1)

כמו כן גרסה זאת תהיה כבר כלולה בתוך VS 11 / .NET 4.5 שבקרוב תשוחרר בגרסת הבטא.
(כרגע לא עובד עם גרסת  Developers Preview).

ניתן להתקין את הגרסה לצד גרסאות קודמות של ASP.NET MVC וניתן להשתמש כבר בייצור באמצעות רישיון go-live שכבר כלול.

 

להרצאת וידאו מאד מומלצת של סקוט גוטרי על היכולות החדשות של ASP.NET MVC 4 Beta הכנסו לכאן או להוריד אותה ישירות.

ASP.NET MVC 4 Beta

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

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

 

פורסם בתאריך 01/02/2012 09:57 על ידי Guy Burstein

asp.netמיקרוסופט ממשיכה בגישתה ה-אג'ילית (Agile) כלפי ASP.NET MVC ומוציאה גרסת Developer Preview ל- ASP.NET MVC 4. גרסא 4 מצטיינת בשיפורים ושכלולים המאפשרים לנו להביא את עולם ה-Mobile אל תוך פיתוח ה-Web תוך שמירה על המודל התכנותי אליו התרגלנו ב- ASP.NET MVC. אם תהית כיצד נראה הפיתוח בעזרת jQuery Mobile הרי שגרסת ASP.NET MVC 4 הינה כלי מצוין לבחון שיטת פיתוח שכזו המאפשרת לנו ליצור אפליקציות Cross Platform המסוגלות לרוץ על iPhone, Android וכן Windows Phone.

יום העיון בנושא ASP.NET MVC 4 שהתקיים ב- 30.1.2012 מחולק לשני חלקים מרכזיים:

בחלקו הראשון הוצגו המרכיבים המרכזיים של ASP.NET MVC וכיצד הם מייצרים חווית פיתוח מרשימה.

קישור ישיר להורדת הסרטון  

בחלקו השני הוצגו רשימת החידושים של גרסא 4 לרבות: Mobile Project Template, Display Modes, jQuery Mobile, View Switcher, Recipes, Task Support for Asynchronous Controllers.

קישור ישיר להורדת הסרטון

הורדת הדמויים והמצגת

פורסם בתאריך 02/01/2012 15:52 על ידי Eran Sharvit

ASP_Netהעדכון מתקן פרצת אבטחה אפשרית אשר מעמידה את שרת האינטרנט בסיכון להתקפה מסוג מניעת שירות (DOS).

תוכלו לקרוא עוד על העדכון כאן.

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

העדכון כבר שוחרר להורדה ישירה או וכן באמצעות שירותי עדכון התוכנה של Windows ו- Windows Server.

מידע נוסף אודות עדכון האבטחה

בתאריך 28.11.11 בוועידה אשר עסקה באבטחת מידע, תוארה שיטה חדשה לתקיפת שרתי אינטרנט ואפליקציות המשתמשות במבנה נתונים מסוג HashTable. סוג ההתקפות אשר מנצלות פרצה מסוג זה נקראות “hash collision attacks”.

התקפות מסוג זה מנסות לגרום לאפליקציית הווב לייצר HashTables המכילים אלמנטים רבים אשר מייצרים את אותו hash code. כאשר זה קורה בנפח גבוהה והאפליקציה “עסוקה” בלייצר ולעבד אלמנטים רבים, השרת יכול לבזבז דקות רבות ואפילו שעות, בניסיון עיבוד וחישוב, מה שמונע ממנו לקבל בקשות ולתת שירות למשתמשים אחרים, גורם לא להיות איטי ולא להגיב או בקיצור - Deniel of Service.

למד עוד אודות עדכון האבטחה

תוכלו למצוא כאן מידע נוסף אודות עדכון האבטחה.

אם אתם מעוניינים לדווח ולשמוע דיווחים נוספים בנוגע לאבטחת מידע, אתם מוזמנים לפורום Security Vulnerability באתר ASP.NET.

פורום אבטחת מידע בעברית באתר TechNet

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

 

פורסם בתאריך 19/12/2011 00:21 על ידי Eran Sharvit

Visual Studio 11 Developer Preview Training Kit December 11בעזרת ערכת הלימוד תוכלו ללמוד כיצד לנצל את היכולות החדשות של VS 11 ושל NET Framework 4.5. וכמובן ללכלך את הידיים במעבדות תרגול שונות.

עדכון דצמבר 2011 כולל עדכון למעבדות תרגול קיימות (hand-on labs)  וכן מעבדות תרגול חדשות לגמרי.

איך להוריד את ערכת הלימוד החינמית

ערכת הלימוד נתנת להורדה ב-2 סוגי חבילות להורדה וכן גם ניתנת לצפייה אונליין באתר MSDN.

זאת אומרת, שאתם יכולים להוריד את הערכה בשלמותה (37.2mb), להוריד את ה- Web Installer ששוקל 2.5mb בלבד ומאפשר לכם לבחור להוריד רק את התכנים המעניינים אותכם או שאתם יכולים פשוט לדפדף אונליין באתר MSDN ולצפות ולהוריד רק את המעבדות שמעניינות אתכם.

 

אילו תכנים הערכה מכילה

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

סביבת הפיתוח של Visual Studio 11

  • סקירת תכונות מרכזיות בסביבת הפיתוח Visual Studio 11
  • מה חדש בסביבת הפיתוח למתכנתי ++C (חדש)

 

שפות תכנות

 

תכנות לסביבת אינטרנט

  • מה חדש ב- Visual Studio 11 למתכנתי אינטרנט ומה חדש ב- ASP.NET
  • תכונות חדשות ב- Web Forms ב- ASP.NET 4.5
  • מה חדש ב- ASP.NET MVC 4 (חדש)
  • איך משתמשים בכלי  Page inspector (חדש)
  • איך לבנות RESTful APIs בעזרת שימוש ב- WCF Web API

 

NET Framework.

 

Application Lifecycle management

  • כיצד לבנות תהליך פיתוח תוכנה נכון ויעיל באמצעות שימוש בכלים ש- Visual Studio 11 מציע לנו
  • ניהול פרוייקטים במתודולוגית Agile בעזרת הכלים ש- Team Foundation Server 11 מציע לנו
  • כיצד לייעל את עבודתם של המתכנתים בעזרת Team Foundation Server 11
  • אבחון תקלות בסביבת ייצור בעזרת Visual Studio 11 והכלי IntelliTrace
  • בדיקות תוכנה באמצעות Microsoft Test Manager 11
  • איך לבצע Unit Testing בעזרת הכלים ש- Visual Studio 11 מציע לנו

 

פיתוח אפליקציות מטרו

  • מעבדת תרגול בנושא Windows 8 Developers Preview. המעבדה הוצגה בכנס BUILD.

 

הורידו כעת את ערכת הלימוד החינמית והתנסו עוד היום במגוון הכלים שסביבת הפיתוח Visual Studio 11 וה- NET Framework 4.5. מציעים לכם.

קישור ישיר לדף ההורדה: http://www.microsoft.com/download/en/details.aspx?id=27738

תהנו!

פורסם בתאריך 09/12/2011 18:45 על ידי Eran Sharvit

web pi screenshotהכלי החינמי Web Platform Installer או בקיצור Web PI, מאפשר לכם להתקין בקלות וללא קונפיגורציה מסובכת מגוון כלים ורכיבים הדרושים לפיתוח והרצת אפליקציות ווב במחשב המקומי או בשרת.

בעזרת הכלי תוכלו להתקין בקלות את כל הרכיבים החדשים ביותר של  פלטפורמת האינטרנט של מיקרוסופט הכוללת שרת אינטרנט IIS, שרת בסיס נתונים SQL Server Express, כלי הפיתוח Visual Studio Web Developer וכמובן NET Framework.

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

כדי להתקין את Web PI בצורה המהירה ביותר ובחינם, לחצו על כפתור ההתקנה:

web-platform-installer


Web PI – הרבה מעבר למנהל הורדות

ה- Web PI מאפשר לכם גם להתקין ולהריץ בקלות מגוון אפליקציות אינטרנט חינמיות: מערכות בלוגים, מערכות ניהול תוכן, מערכות ניהול לקוחות ועוד, באמצעות גלרית האפליקציות המובנית בכלי הנקראת Windows Web Application Gallery.

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

מה שדרש בעבר ידע טכני רב, שעות של קונפיגורציה, ביצוע התאמות וכו’ – מסתכם היום בתהליך פשוט, קל ומהיר של דקות בודדות, תהליך שרובו אוטומטי וכולל בעיקר לחיצה על כפתור “הבא”.
זה עד כדי כך פשוט, ואתם יכולים לנסות בעצמכם.

גלרית האפליקציות - Windows Web Application Gallery

גלרית האפליקציות אינטרנט של מיקרוסופט היא למעשה אתר אינטרנט המרכז אפליקציות אינטרנט שונות שהועלו על ידי מפתחים וגולשים. כל האפליקציות בגלריה חינמיות ללא הגבלת זמן, חלקן הגדול בקוד פתוח וכולן יכולות לרוץ בסביבת Shared Hosting (עם הרשאות Medium Trust).
האפליקציות השונות הועלו על ידי מפתחים וגולשים מכל רחבי העולם, כמו גם רכיבים וכלים שונים הנדרשים לפיתוח באינטרנט שהועלו על ידי מיקרוסופט. 

כל אפליקציה בגלריה עברה בדיקות והתאמה לכלי Web PI בידי הצוות של מיקרוסופט, כך שכל אפליקציה שנמצאת בגלריה, מותאמת להתקנה מהירה באמצעות ה- Web PI ומותאמת להפצה באמצעות פרוטוקול Web Deploy.
ניתן למצוא בגלריה אפליקציות מסוגים שונים: אפליקציות דוטנט וותיקות כגון Umbraco CMS ו- DotNetNuke, אפליקציות חדשות כגון SpelndidCRM ו- Atlas ואפילו אפליקציות PHP מוכרות כגון WordPress, דרופל וג’ומלה. וכן, למי שלא יודע - כבר מזמן ניתן להריץ אפליקציות PHP על שרתי Windows ללא שום בעיה באמצעות מגוון הכלים והאפשרויות שפלטפורמת האינטרנט של מיקרוסופט מעניקה לנו. ועכשיו, הכלי Web PI מאפשר לנו גם להתקין ולקנפג אפליקציות כאלה בקלות.

באמצעות שיטוט בגלריה המובנית בכלי Web Platform Installer או בשיטוט ישיר באתר הגלריה, תוכלו לחפש ולסנן אפליקציות במגוון חיתוכים כגון: כמות הורדות הגבוה ביותר, סוג האפליקציה (CMS, בלוג, פורום וכו’), ניקוד גולשים הכי גבוה ואפילו לפי שפות.

אפליקציות אינטרנט בעברית בגלריה

Web PI – השער לפלטפורמת האינטרנט של מיקרוסופט למפתחיםהגלריה מכילה אפליקציות חינמיות במגוון שפות, וגם כמובן אפליקציות בעברית.
בין האפליקציות המעוברתות הקיימות בגלריה, ניתן למצוא את WordPress ,Drupal, Umbraco CMS ועוד. כפי שכבר הזכרנו, הגלריה לא מיועדת רק לאפליקציות דוטנטיות, אלא לכל אפליקציה אשר מסוגלת לרוץ על שרת Windows.
אגב, גם אתם מוזמנים להעלות את האפליקציה שלכם או אפליקציה שאתם משתמשים בה לגלריה: מדובר בתהליך פשוט למדי וקיים כמובן תיעוד בנושא. ברגע שהאפליקציה שלכם תהיה בגלריה, מיליוני גולשים יוכלו להנות ולהתקין אותה באמצעות הכלי Web PI, על המחשב המקומי שלהם או על שרת האינטרנט.

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

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

עוד תכונה מעניינת בשילוב בין כלי ה- Web PI לגלרית האפליקציות היא, שישנן ספקי איחסון אשר מטמיעים את הכלי בממשק (פאנל) הניהול של השרת, מה שמאפשר לכם להתקין בקלות אפליקציות הנמצאות בגלרייה, ישירות על שרת האיחסון שלכם, בדיוק באותה צורה שאתם מתקינים על המחשב המקומי, ללא קונפיגורציה והגדרות מסובכות. אנו רואים יותר ויותר סוגים של ממשקי ניהול אשר מטמיעים יכולות אלו ומאפשרים לגולשים ללא ידע טכני, להתקין בקלות אפליקציות שנמצאות ב- Windows Web Application Gallery.

סביבת הפיתוח WebMatrix והקשר שלה ל- Web PI

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

ה- WebMatrix הוא סביבת פיתוח חינמית המיועדת למפתחי ווב. באמצעות הכלי Web PI, ניתן להתקין את סביבת הפיתוח. כמו כן, אפליקציות רבות בגלריה מתקינות אוטומטית את הכלי WebMatrix, כחלק מרשימת הרכיבים הנדרשים על מנת להריץ את האפליקציה. 
אם תתקינו את מערכת ניהול התוכן Umbraco למשל באמצעות ה- Web PI, ברשימת הרכיבים ש- Umbraco ידרוש להתקין, אתם תראו גם את WebMatrix.

WebMatrix היא סביבת פיתוח אשר מכילה את כל מה שמפתח ווב צריך על מנת להתחיל לפתח אפליקציות: עורך קוד מובנה, מנהל בסיסי נתונים, מנהל הפצה ועוד כלים. בקיצור, לא עוד לקפוץ בין כלי לכלי – יש לכם  עכשיו סביבת פיתוח אשר מאחדת ומרכזת את כל מה שאתם צריכים.

חלק מן התכונות המעניינות ששוה להזכיר: עורך הקוד מזהה ומשלים אוטומטית קוד JS, דוטנט, CSS ואפילו PHP. כבר הזכרנו שה- Windows Web Application Gallery מכילה גם אפליקציות PHP כמו וורדפרס, דרופל ועוד. אז באמצעות ה- WebMatrix אתם יכולים לפתח בקלות גם אפליקציות PHP ולהנות מהכלים המתקדמים שמיקרוסופט מציעה למפתחי ווב כמו השלמת קוד אוטומטית, ניהול בסיס הנתונים מתוך התוכנה ועוד.

עוד תכונה מעניינת ששווה להזכיר היא, שבאמצעות הכלי ניתן לבצע הפצה (Publish) קלה לשרת האיחסון שלכם. לא רק העלאה פשוטה של קבצים כמו כל תוכנת FTP, אנו מדברים על העלאה וסינכרון מלא גם של בסיס הנתונים בצורה דו-כיוונית: זאת אומרת, שלא רק ניתן לבצע הפצה מהמחשב המקומי אל השרת, אלא גם ניתן לבצע סינכרון הפוך מהשרת למחשב המקומי. ואנו מדברים כאמור על סינכרון קבצים ו-DB!

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

כדי להתקין את  WebMatirx בצורה המהירה ביותר ובחינם באמצעות ה- Web PI, לחצו על כפתור ההתקנה:

install webmatrix

כאן תוכלו למצוא מידע נוסף כמו גם סרטון וידאו קצר.

סיכום

ראינו שהכלי Web PI, מאפשר לנו להתקין אפליקציות אינטרנט חינמיות שנמצאות בגלריה של מיקרוסופט, בקלות, במהירות ובנוחות, כמו גם רכיבים וכלי פיתוח חינמיים ופשוטים לשימוש כגון WebMatrix.

אז בואו נזכיר את הנקודות המרכזיות שבזכותן אנחנו בטוחים שאתם הולכים לאהוב את הכלי הזה:

  • זה חינם.
    לחלוטין, בלי שום אותיות קטנות, וכך גם כל האפליקציות והרכיבים שניתן להתקין באמצעות הכלי.
  • זה חכם.
    הכלי מזהה כבר מה מותקן, מה עוד לא והאם הכל תואם, על מנת לעשות לכם התקנה קלה ופשוטה ככל הניתן.
  • זה קטן.
    הכלי Web PI שוקל פחות מ- 2 מגה בייט.
  • קיים במגוון שפות.
    כרגע יש מגוון אפליקציות ב-9 שפות שונות, והרשימה רק גדלה.
  • מאפשר התקנה קלה של כל מה שצריך על מנת לפתח לווב:
    Web Server, Framework, בסיס נתונים, כלי פיתוח, מגוון אפליקציות ועוד!

Web Platform Installer הוא הכלי המושלם להתקנת רכיבים ואפליקציות אינטרנט, בין אם אתה מפתח ווב מתחיל שמחפש התחלה קלה, ובין אם אתה מפתח עתיר ניסיון, אשר מחפש חיים קלים.

ניתן להוריד את ה- Web Platform Installer מכאן, ולהסתכל בגלרית האפליקציות המובנית בתוכו:

web-platform-installer

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

תהנו!

פורסם בתאריך 27/10/2011 15:25 על ידי Guy Burstein

Bundling and Minification של ASP.NET שיפור ביצועים באתרי אינטרנט הוא מרכיב חשוב בתהליך הפיתוח, שמטרתו לשפר את חווית המשתמש ולהעלות את תפוקת האתר. ישנן שיטות רבות לשיפור ביצועי אתרי אינטרנט כגון שימוש ב- Cache, הקטנת תמונות, שיפור הקוד ועוד.

2 שיטות יעילות ביותר המתאימות לאתרים מודרניים העושים שימוש בקבצי Script וקבצי CSS הן Bundling ו- Minification (בעברית: איחוד ומזעור) אותן אציג בפוסט זה, ע”י שימוש ביכולות חדשות ב- ASP.NET 4.5 שקיימות גם כחבילת NuGet עבור Visual Studio 2010 ו- ASP.NET 4.0.

הקדמה – מה הבעיה שאנחנו רוצים לפתור?

אם נסתכל על אתר מודרני טיפוסי, נראה את התמונה הבאה:

  • ספריית Scripts המכילה את קבצי ה- Script של האתר. ניתן למצוא ספריות JavaScript מוכרות וכן קבצי Script ספציפיים של הפרוייקט.
  • ספריית Styles ובה קבצי ה- css שבשימוש בפרוייקט.

Bundling and Minification של ASP.NET

עוד ניתן למצוא בדף טיפוסי רשימת הפניות רבות לקבצים חיצוניים (קישור לסקריפטים וקבצי css), למשל:

<head>
  ...

 
<link href="Styles/content.css" rel="stylesheet" type="text/css" />
  <link href="Styles/styles.css" rel="stylesheet" type="text/css" />
  <link href="Styles/forms.css" rel="stylesheet" type="text/css" />
  <link href="Styles/globals.css" rel="stylesheet" type="text/css" />
  <link href="Styles/menu.css" rel="stylesheet" type="text/css" />
  <link href="Styles/reset.css" rel="stylesheet" type="text/css" />
 
 
<script src="Scripts/a.js" type="text/javascript"></script>
  <script src="Scripts/jquery.tools.js" type="text/javascript"></script>
  <script src="Scripts/b.js" type="text/javascript"></script>
  <script src="Scripts/jquery-1.6.2.js" type="text/javascript"></script>
  <script src="Scripts/jquery-ui.js" type="text/javascript"></script
>
...
</
head
>

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

קבצי ה- css:

Bundling and Minification של ASP.NET

וכן קבצי ה- BLOCKED SCRIPT

Bundling and Minification של ASP.NET

אם נסתכל בטאב ה- Network של כלי הפיתוח של אינטרנט אקספלורר, נוכל לראות:

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

Bundling and Minification של ASP.NET

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

Bundling and Minification של ASP.NET

 

הפיתרון: ASP.NET 4.5 Bundling and Minification

ASP.NET 4.5 מכילה תשתית לפיתרון הבעיה, ושמה ASP.NET 4.5 Bundling and Minification (או לפי שם ה- dll בה נמצאת התשתית: Microsoft.Web.Optimization). התשתית מבצעת 2 פעולות:

  • מזעור הקבצים (Minification) – צמצום הגודל הפיזי של הקובץ ע”י הקטנת שמות המשתנים, הורדת מעברי השורה וההערות בקוד.
  • איחור הקבצים (Bundling) – איחוד מספר קבצים לקובץ פיזי אחד מאפשר לקבל את כל התוכן בבקשה בודדת מהדפדפן במקום במספר גדול יותר של בקשות שמופעלות זו אחר זו.

כדי להפעיל את אפשרות ה- Bundling and Minification עלינו להשתמש ב- ASP.NET 4.5 או לחילופין, במידה ואנחנו עובדים עם ASP.NET 4.0, עלינו להוריד את חבילת ה- NuGet ששמה ASP.NET Optimization – Bundling.

Bundling and Minification של ASP.NET

הוספת החבילה לאתר תוסיף את ה- dll ששמו: Microsoft.Web.Optimization.dll ותעדכן את פרטי החבילה בקובץ packages.config.

Bundling and Minification של ASP.NET

נפעיל את ספריית האופטימיזציה ע”י קריאה עליה מתוך ה- Global.asax.

נוסיף את ה- Namespace הרלוונטי:

<%@ Import Namespace="Microsoft.Web.Optimization" %>

ואת הפקודה הבסיסית להפעלת ה- Bundles הסטנדרטיים נוסיף לאירוע ה- Application_Start:

void Application_Start(object sender, EventArgs e) 
{
 
BundleTable.Bundles.EnableDefaultBundles();
}

כעת, נחזור לדפי ה- Web שלנו ובמקום לציין את רשימת כל קבצי ה- CSS וה- JavaScript בזה אחר זה, נוכל לפנות אליהם באופן הבא:

<head>
  ...
  <link href="Styles/css" rel="stylesheet" type="text/css" />
  <script src="Scripts/js" type="text/javascript"></script>
...
</head
>

כל שורה כזאת היא איחוד (Bundle) סטנדרטי של קבצים. ההפנייה ל- Styles/css משמעותה פנייה לספרייה Styles מזעור כל קבצי ה- css ואיחודם לחבילה אחת.

לדוגמא, אם ננסה לפנות לכתובות של ה- Bundles האלה (לדוגמא: http://localhost:54008/Styles/css) נקבל בחזרה קובץ css מוקטן שנראה כך:

Bundling and Minification של ASP.NET

התוצאות

אם נריץ שוב את אותן בדיקות שביצענו קודם נראה את התמונה הבאה:

Bundling and Minification של ASP.NET

  • קובץ ה- HTML שלנו קטן במעט, כיון שהורדנו הפניות רבות לקבצי CSS ו- JavaScript.
  • 5 קבצי JavaScript בגודל 231Kb הצטמצמו לקובץ אחד של 116.7Kb
  • 6 קבצי CSS במשקל 13Kb הצטמצמו לקובץ בודד של 11Kb.

 

סיכום

תשתית ה- Bundling and Minification של ASP.NET מאפשרת לשפר בקלות ביצועי אתרי אינטרנט. בפוסט זה ראינו את השימוש הבסיסי ביותר בתשתית שהסתכם בהוספת שורת קוד אחת. בפוסטים הבאים נכיר אפשרויות נוספות של התשתית.

תהנו!

פורסם בתאריך 18/10/2011 14:42 על ידי Eran Sharvit

Visual Studio 11 Developer Preview

היום שוחררה הגרסה הראשונה של ערכת הלימוד, Visual Studio 11 Developer Preview Training Kit.

הערכה כוללת מעבדת תרגול (hands-on lab) על מנת ללמוד איך לנצל את מגוון היכולות החדשות והשיפורים ב-Visual Studio 2011 שהוצגה לא מזמן, ב- NET Framework 4.5., איך לנהל את מחזור החיים של האפליקציה בצורה יעילה וכמובן איך לבנות אפליקציות מטרו ל- Windows 8.

ערכת הלימוד מכילה את התכנים הבאים:

  • סביבת פיתוח ל- Visual Studio
    • סקירת התכונות החדשות בסביבת הפיתוח של Visual Studio 11
  • שפות תכנות
    • תכנות אסינכרוני ב- .NET 4.5 ב- #C וב- Visual Basic
  • פיתוח לאינטרנט
    • מה חדש ב- ASP.NET וב- Visual Studio 11 Developer Preview
    • מה חדש ב- ASP.NET Web Forms 4.5
    • בניית ממשקי תכנות (APIs) בארכיטקטורת RESTful עם WCF Web API
  • ניהול מחזור החיים של האפליקציה
    • לבנות תוכנה בצורה הנכונה: איסוף דרישות ופידבקים מהלקוחות באמצעות Visual Studio 11.
    • ניהול פרוייקטים בשיטת Agile באמצעות Team Foundation Server 11
    • איך מפתחים יכולים להנות מתפוקה טובה יותר באמצעות Team Foundation Server 11
    • אבחון תקלות בסביבת ייצור באמצעות IntelliTrace ו- Visual Studio 11
    • ביצוע בדיקות ושיפורים באמצעות - Microsoft Test Manager 11
    • Unit Testing באמצעות Visual Studio 11 כגון: MSTest, NUnit, xUnit.NET ו-Code Clone
  • אפליקציות מטרו:

אתם יכולים להוריד ישירות את ערכת הלימוד מכאן. אם תסתכלו בקישור, אתם תבחינו ב-2 קבצים להורדה: הקובץ הראשון בנפח של 37 מגה (VS11TrainingKitOctober2001.Setup.exe) מכיל את ערכת הלימוד במלואה.
הקובץ השני, בנפח 2 מגה (VS11TK_WebInstaller_Preview.exe), משתמש ב-installer החדש. כאשר תריצו קובץ זה, תוכלו לבחור איזה מעבדת להתקין מתוך ערכת הלימוד. אפשרות זאת נותנת לכם לבחור את המעבדות שמעיינות אותכם בלבד. בעתיד הקרוב, תוכלו להשתמש ב-installer החדש על מנת להתקין מעבדות נוספות מבלי להתקין את ערכת הלימוד במלואה.

 ערכת לימוד Visual Studio 11 Developer Preview

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

פורסם בתאריך 02/09/2011 15:08 על ידי Guy Burstein

HTML Editor Smart Tasks ויצירת Event Handlers בגירסא הבאה של ASP.NETבחודשים הקרובים נתחיל לשמוע יותר ויותר על הגירסא הבאה של Visual Studio, וזו הזדמנות טובה להתחיל לדבר על החידושים הצפויים בו. הגירסא הבאה של Visual Studio תכיל המון חידושים ושיפורים למגוון חלקים בסביבת הפיתוח ולטכנולוגיות השונות ב- .NET Framework, אך בפוסטים הקרובים אתמקד במה חדש בגירסא הבאה של ASP.NET.

בפוסט הזה אני אספר על שיפורים ב- Editor של Visual Studio שמאפשרים לבצע משימות פופולריות בצורה קלה יותר. באופן ספציפי, Visual Studio הבא ישלב Smart Tasks עבור ASP.NET Server Controls בתוך חלון הקוד / עורך ה- HTML מבלי צורך לעבור ל- Design View.

טיפה רקע: מה קיים היום?

Smart Tasks קיימות כבר מגירסאות קודמות של Visual Studio ומאפשרות למפתחי ASP.NET Web Forms לבחור פקדים כלשהם בתצוגת ה- Design ולבצע עליהם פעולות נפוצות.

לדוגמא: בחירת GridView, תביא להצגת מספר פעולות נפוצות בהן בחירת Data Source, עיצוב ועוד.

HTML Editor Smart Tasks ויצירת Event Handlers בגירסא הבאה של ASP.NET

בגירסא הבאה

הגירסא הבאה של Visual Studio תתמוך ב- Smart Tasks גם ב- Design View וגם בחלון עריכת הקוד. כאשר נוסיף ASP.NET Server Control יופיע קו קטן מתחתיו:

HTML Editor Smart Tasks ויצירת Event Handlers בגירסא הבאה של ASP.NET

כשנלחץ עליו ונפתח אותו (אפשר גם בקיצור מקלדת Ctrl + .), נקבל את אותה רשימת משימות שראינו קודם, אך חסכנו את המעבר ל- Design View.

יצירת Event Handler לטיפול באירוע של פקד

אחת הפעולות הנפוצות ביותר שמפתחים עושים היא לקשר בין אירוע של פקד למתודה בצד השרת שתטפל בו. כיום, אפשר לעשות זאת מתוך ה- Design View ע”י דבל קליק (עבור טיפול באירוע ברירת המחדל) או ברשימת האירועים של הפקד.

בגירסא הבאה של Visual Studio נוכל, בדומה לאופן שבו עושים זאת ב- WPF ו- Silverlight להוסיף Event Handler ישירות מתוך עורך ה- HTML.

HTML Editor Smart Tasks ויצירת Event Handlers בגירסא הבאה של ASP.NET

תהנו!