אז מה טוב בווב של דוטנט.
אני בזמנו רציתי לעשות שידור וידאו באינטרנט. שאני מעלה וידאו מהמחשב שלי והשרת מוריד את הודיאו לכולם.
בphp זה ממש מסובך בגלל שכל דף זה דף נפרד. ותהליך נפרד מה שאין כן בקובץ ashx זה עובד ממש יפה תסכלו על הקובץ לדוגמה.
<%@ WebHandler Language="C#" Class="Handler" %>
using System;
using System.Web;
public class Handler : IHttpHandler {
public void ProcessRequest (HttpContext context) {
// Comment out these lines first:
// context.Response.ContentType = "text/plain";
// context.Response.Write("Hello World");
context.Response.ContentType = "image/png";
context.Response.WriteFile("~/Flower1.png");
}
public bool IsReusable {
get {
return false;
}
}
}
שרת iis יריץ את הקובץ אם נלך לנתיב שלו זה דומה לphp בקטע הזה.
וכשהוא יריץ אז הוא טוען את הקובץ ומריץ את הפונקציה ProcessRequest עם context שזה אובייקט שמכיל את כל מה שקשור לבקשה ולתשובה של הhttp.
עכשיו מה שהכי מרתק פה שהשטח שמחוץ לפונקציה הוא שטח משותף כלומר אפשר להשים שם משתנה שיהיה זמין גם לבקשה הבאה שתבוא ממקום אחר.
מה שטוב פה לשידור וידאו שאני העלתי כל פעם קטע מהמחשב שלי ושמרתי אותו בקובץ כדי שהוא יהיה זמין למשתמשים הבאים. פה לא צריך את זה מספיק לשמור מחוץ לפונקציה.
אז דוד זה לא כל כך נכון ש "אם ווב מוצא חן בעיניך בגלל המודלריות שלו שכל דף זה עולם נפרד".כי זה לא כל כך עולם נפרד.
אז למה אני לא מתכנת בדוטנט.
בגלל שאפשר לעשות את כל זה גם בnodejs. וגם אני לא אוהב את הקשיחות של C#. בjs אני יכול להוסיף אלמנטים לאובייקט איך שבא לי.
var person = {};
person.firstname="John";
person.lastname="Doe";
person.age=50;
person.eyecolor="blue";
פורסם במקור בפורום CODE613 ב20/01/2014 18:32 (+02:00)