웹 응용 프로그램의 디자인에 대해 심각한 의문이 있습니다.
비즈니스 로직을 인터페이스와 분리하고 싶었으므로 데이터베이스에 대한 모든 요청을 처리하는 웹 API를 만들었습니다.
엔터티 프레임 워크와 작업 단위 및 일반 리포지토리 패턴이있는 ASP.NET 웹 API입니다. 지금까지 모든 것이 좋습니다.
문제
도움이 필요한 곳은 API와 응용 프로그램간에 객체를 효율적으로 공유하는 방법을 알 수 없다는 것입니다.
엔터티 개체를 직접 직렬화하고 싶지 않습니다. 엔터티 모델이 변경되면 아무런 이유없이 큰 개체를 직렬화 할 수 있기 때문에 나쁜 습관이라고 생각했습니다.
현재 구현 방법
내 인터페이스는 C #의 ASP.NET 웹 응용 프로그램이고 API는 C #이므로 공유하려는 모든 클래스의 정의를 사용하여 공통 라이브러리를 만들었습니다.
안드로이드 앱을 개발할 때 솔루션이 작동하지 않는다는 것을 알고 있습니다 .Java에서 클래스를 다시 만들어야하지만 가장 큰 문제는 아닙니다.
문제는 항상 객체를 변환하는 느낌입니다.
예
내 작업 흐름의 예는 다음과 같습니다.
모든 폼과 데이터 주석이있는 모델로 시작하여 사용자가 해당 모델을 컨트롤러에 게시합니다.
컨트롤러 에서이 모델을 공통 라이브러리의 클래스로 변환 한 다음 해당 객체를 API로 보내야합니다.
그런 다음 API의 컨트롤러가 호출을 포착하고 해당 객체를 엔티티 객체로 변환하여 데이터베이스를 업데이트합니다.
3 개 수업이 있습니다
- 유효성 검사를위한 모든 데이터 주석이있는 뷰 모델 (클라이언트)
- 객체를 공유하는 공통 라이브러리 클래스 (DLL)
- 엔터티 클래스 (API)
나는 내가 정말로 잘못하고 있다는 느낌이 든다. 더 우아한 것이 있습니까? 프로젝트가 너무 커지기 전에이 문제에 대한 좋은 해결책이 있는지 확인하고 싶습니다.