우리는 .net Winforms 응용 프로그램을위한 API 계층을 작성할 계획입니다. 나는 몇 가지 모범 사례에 대한 좋은 예를 들어 주위에 구글하려고했지만 내 질문에 대답 할 수있는 많은 것을 찾지 못했습니다. 우리는 현재 다음 구조를 가지고 있습니다 :.net API best pratice
비즈니스 로직은 비즈니스 영역을 기반으로 별도의 어셈블리에 있습니다. 따라서 ST.Invoice.Business.dll
, ST.Order.Business.dll
등등. 그런 다음 ST.Invoice.Bussiness.DC.dll
, ST.Order.Business.DC.dll
등이 있습니다 (DC는 모든 인터페이스가있는 데이터 계약을 의미합니다). 우리는 데이터 레이어 (ST.Invoice.Data.dll
)에 대해 동일한 구조를 가지고 있습니다.이 어셈블리는 런타임에 서비스 팩토리를 통해로드되며 ServiceFactory.InvoiceBusinessService.GetInvoices(...)
을 통해 액세스 할 수 있습니다. 이제 다른 타사 응용 프로그램에 기능을 공개해야합니다. 만약 내가 그들에게 송장을 말하게하는 모든 기능을 제공한다면, 위의 어셈블리를 송장과 관련시켜 주거나, ST.Invoice.BusinessAPI.dll
이라고하는 다른 어셈블리를 만들어야 할 필요가있다. ST.Invoice.Business.dll
의 방법은 작품은 그냥 API를 작성하는하고
보안에 대한 권장 사항 : "블랙리스트"를 작성하지 말고 "허용 목록"을 작성하십시오. 라이브러리에서 처음부터 시작하여 API가 필요하다고 생각하는 메소드 만 추가하십시오. 그런 식으로 사람들은 당신이 수정하고 생각한 것을 할 수 있기 때문에 사람들이 불쾌한 일을하는 것을 피합니다. –