Vì vậy, tôi làm việc trong .Net. Tôi thực hiện các dự án nguồn mở trong .Net. Một trong những vấn đề lớn nhất của tôi với nó không phải là cần thiết với .Net, nhưng với cộng đồng và các khuôn khổ xung quanh nó. Dường như ở khắp mọi nơi, các kế hoạch đặt tên và chuỗi ma thuật được coi là cách tốt nhất để làm mọi thứ. Tuyên bố táo bạo, nhưng nhìn vào nó:
MVC MVC:
Xin chào lộ trình thế giới:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
Điều này có nghĩa là ASP.Net MVC bằng cách nào đó sẽ tra cứu HomeController
mã của bạn. Bằng cách nào đó tạo một thể hiện mới của nó, và sau đó gọi hàm Index
rõ ràng với một id
tham số nào đó. Và sau đó là những thứ khác như:
RenderView("Categories", categories);
...or..
ViewData["Foobar"]="meh";
Và sau đó cũng có những điều tương tự với XAML. DataContext
được coi là một đối tượng và bạn phải hy vọng và cầu nguyện rằng nó sẽ giải quyết theo loại bạn muốn. DependencyProperies phải sử dụng chuỗi ma thuật và quy ước đặt tên ma thuật. Và những thứ như thế này:
MyData myDataObject = new MyData(DateTime.Now);
Binding myBinding = new Binding("MyDataProperty");
myBinding.Source = myDataObject;
Mặc dù nó phụ thuộc nhiều hơn vào việc truyền và các hỗ trợ thời gian chạy ma thuật khác nhau.
Dù sao, tôi nói tất cả những điều đó để kết thúc ở đây: Tại sao điều này được dung nạp tốt trong thế giới .Net? Không phải chúng ta đang sử dụng các ngôn ngữ gõ tĩnh để hầu như luôn biết loại sự vật là gì? Tại sao sự phản chiếu và kiểu / phương thức / thuộc tính / bất kỳ tên nào (dưới dạng chuỗi) được ưa thích hơn nhiều so với khái quát và đại biểu hoặc thậm chí tạo mã?
Có những lý do kế thừa mà tôi thiếu vì lý do tại sao cú pháp định tuyến của ASP.Net hầu như chỉ dựa vào sự phản chiếu để thực sự giải quyết cách xử lý một tuyến đường? Tôi ghét khi tôi thay đổi tên của một phương thức hoặc thuộc tính và đột nhiên mọi thứ bị phá vỡ, nhưng dường như không có bất kỳ tham chiếu nào đến phương thức hoặc thuộc tính đó và tất nhiên không có lỗi biên dịch. Tại sao sự tiện lợi rõ ràng của các chuỗi ma thuật được coi là "đáng giá"?
Tôi biết cũng có những lựa chọn thay thế thường được gõ tĩnh cho một số thứ, nhưng chúng thường có hàng ghế sau và dường như không bao giờ có trong hướng dẫn hoặc tài liệu mới bắt đầu khác.
var
.