컨텍스트를 호출 할 수있는 API를 노출. 이 컴퓨터에서는 이러한 장치를 제어 할 수있는 프로그램을 만들고 각 장치에 명령을 보내어 구성을 변경하거나 주어진 시간대에 대해 기록 된 데이터를 검색하는 프로그램을 만들 예정입니다.네트워크 클라이언트가
은이 프로그램의 모든 기능은 또한 네트워크의 다른 컴퓨터에 사용할 수있게하려면. 는 "개념의 증거"를 들어 나는 그런 내가 WCF가 자동으로 Visual Studio에서 서비스에 대한 프록시 클래스를 만들 수 있으며, 직접 작업 할 수 있었다으로 좋아 무엇
void SetTime(string comPort, DateTime time)
DateTime GetTime(string comPort)
List<string> GetSensors(string comPort)
List<LoggedValue> GetLoggedData(string comPort, string sensorName, DateTime start, DateTime stop)
void RestartDevice(string comPort)
같은 기능을 가진 간단한 WCF 서비스를 만든 서비스에 정의 된 사용자 정의 클래스 (예 : LoggedValue
).
그러나 WCF가 너무 복잡하고 높은 오버 헤드가 있으며 asp.net 웹 API (또는 mvc 웹 API 2 또는 무엇이든간에)가 API를 만드는 방법이라고 주장하는 많은 주장이 있습니다. (간단한 HTTP 요청)과 낮은 오버 헤드를 호출하기 쉽습니다. 이 두 가지 점에 동의 할 수는 있지만 WCF의 강력한 형식의 클래스를 사용하면 많은 이점을 잃어 버리게됩니다.
또한 "CRUD
"- 작동이 내가하고 싶은 모든 작업을 항상 잘 수행하지는 않습니다. Create
또는 Delete
작업을 절대로 수행하지 않으며 로깅 간격 설정과 같이 구성 값을 변경하는 경우에만 Update
이 변경됩니다. void RestartDevice(string comPort)
과 같이 API에서 값을 반환하지 않는 함수를 호출하면 웹 API에서 부자연스러워 보일 수도 있습니다. 어떻게 수행할까요?
두 기술 중 어느 것에도 너무 많은 경험이 없으므로 가장 자연스럽게 사용합니까? 이것은 많은 클라이언트가 액세스 할 수있는 서비스가 아니며 요청 비율이 매우 낮습니다. 당신은 개념의 증거를 수행하는 경우
에 따라 다릅니다. WCF는 여전히 계약 바인딩, 프로토콜 등을 제공하는 옵션으로 인해 갈 수있는 방법입니다. WebAPI는 클라이언트 JSON 용입니다 (어떤 유형의 데이터를 보낼 수 있는지 변경할 수 있다고 생각합니다.)/수신하지만 JSON이 주요한 것입니다.) HTTP 호출 ... 무엇보다 모바일 세상을 위해 잘하고 실제로 목표로 삼습니다.WCF는 개발자가 할 수있는 일을 감안할 때 여전히 IMHO를 사용하는 방법입니다. –