클라이언트 측에서 많은 JavaScript를 사용하여 사용자가 목록의 드래그 앤 드롭 재정렬, 항목 조회 등의 작업을 수행 할 수 있도록하는 ASP.NET 웹 응용 프로그램을 만들고 있습니다. 목록에 추가 (목록에 항목 추가, 목록에서 항목 삭제 등).JavaScript와 C# 개체 모델 간의 일관성 유지
클라이언트 항목마다 각 목록 항목을 저장하는 데 사용하는 JavaScript 클래스가 있습니다. 사용자가 항목에 대해 수행 한 작업 (추가, 편집, 삭제, 이동)에 대한 정보. 페이지가 서버에 게시되는 유일한 시간은 사용자가 완료 될 때입니다. 페이지가 제출되기 바로 전에 JSON에 대한 변경 사항에 대한 모든 정보를 직렬화하고 페이지의 숨겨진 필드에 저장합니다.
내가 찾고있는 것은 C#으로 내 수업을 만드는 방법에 대한 일반적인 조언입니다. JavaScript 클래스와 일치하는 C# 클래스를 사용하는 것이 좋을 것 같아서 JSON을이 클래스의 인스턴스에 deserealize 할 수 있습니다. 조금 이상하게 보일지라도, JavaScript 클래스를 직접 복제하고 자바 스크립트 UI 구현을 지원하기 위해 존재하는 클래스를 서버 측에 두는 것 같습니다.
이것은 추상적 인 질문입니다. 난 그냥 일치하는 클라이언트 및 서버 쪽 개체 모델을 유지 측면에서 비슷한 일을 다른 사람들이지도 양식을 찾고 있어요.
감사합니다. RelaxNG를 사용하는 것은 흥미로운 아이디어입니다. 나는 최근에 Google 프로토콜 버퍼를 사용하여 자신의 언어를 사용하여 클래스를 정의하므로 코딩하는 언어에 관계없이 적절한 버전을 생성 할 수 있습니다. 이와 같은 아이디어를 적용하는 방법은 흥미 롭습니다. 다양한 시나리오와 기술에서 나는 이것을하기 전에 생각하지 않았다는 것을 믿을 수 없다. –
예, 나는 protobufs도 생각했습니다. Protobufs .idl에서 나온 생성 된 코드가 protobufs serializer없이 사용할 수 있는지 궁금합니다. 그렇다면 .NET에서 protobufs 도구가 생성하는 C# 코드를 사용하여 JsonSerializer를 사용할 수 있습니다. – Cheeso
그래서 C# 클래스의 직렬화 된 인스턴스를 내 데이터 구조를 나타내는 JSON이 포함 된 정적 문서와 비교할 것을 제안합니다. 일치하는 경우 나는 C# 클래스가 옳다는 것을 안다. 그런 다음 JavaScript에서 동일한 클래스의 인스턴스를 JSON 문서와 비교하고 일치하는 경우 직렬화 및 비 직렬화 문제없이 클라이언트에서 서버로 데이터를 앞뒤로 교환 할 수 있는지 확인합니다. –