그래서 저는 .Net에서 일합니다. .Net에서 오픈 소스 프로젝트를 만듭니다. 내 가장 큰 문제 중 하나는 .Net의 필요성이 아니라 주변의 커뮤니티 및 프레임 워크입니다. 마법의 이름 지정 체계와 문자열이 모든 것을 수행하는 가장 좋은 방법으로 취급되는 것처럼 보입니다. 대담한 진술이지만 살펴보십시오.
ASP.Net MVC :
안녕하세요 세계 노선 :
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
이것이 의미하는 것은 ASP.Net MVC가 어떻게 든 HomeController
코드에서 조회된다는 것 입니다. 어떻게 든 새로운 인스턴스를 만든 다음 일종의 매개 변수를 Index
사용하여 분명히 함수를 호출합니다 id
. 그리고 다음과 같은 다른 것들이 있습니다.
RenderView("Categories", categories);
...or..
ViewData["Foobar"]="meh";
그리고 XAML에도 비슷한 것들이 있습니다. DataContext
은 대상으로 취급되며 원하는 유형으로 해석되기를 희망하고기도해야합니다. DependencyProperties는 마법의 문자열과 마법의 명명 규칙을 사용해야합니다. 그리고 이런 것들 :
MyData myDataObject = new MyData(DateTime.Now);
Binding myBinding = new Binding("MyDataProperty");
myBinding.Source = myDataObject;
캐스팅 및 다양한 마술 런타임 지원에 더 의존합니다.
어쨌든, 나는 여기서 끝까지 모든 것을 말합니다 : 왜 이것이 .Net 세계에서 그렇게 잘 견딜 수 있습니까? 정적 유형의 언어를 사용하여 거의 항상 유형이 무엇인지 알지 못합니까? 리플렉션과 타입 / 메소드 / 속성 / 어떤 이름 (문자열)이 제네릭이나 델리게이트 또는 코드 생성에 비해 선호되는 이유는 무엇입니까?
ASP.Net의 라우팅 구문이 경로를 처리하는 방법을 실제로 해결하기 위해 거의 독점적으로 리플렉션에 의존하는 이유에 대해 내가 누락 된 이유가 있습니까? 메서드 또는 속성의 이름을 변경하면 갑자기 문제가 발생하지만 갑자기 해당 메서드 또는 속성에 대한 참조가 없으며 컴파일러 오류가 없습니다. 왜 마술 현의 편의가 "가치"로 간주 되었습니까?
나는 일반적으로 어떤 것들에 대해 정적으로 유형이 지정된 대안이 있다는 것을 알고 있지만, 일반적으로 뒷좌석을 가지고 자습서 또는 다른 초보자 자료에는 결코없는 것 같습니다.
var
.