Tôi đang làm việc trên ứng dụng web ASP.NET sử dụng nhiều JavaScript ở phía máy khách để cho phép người dùng thực hiện những việc như kéo thả sắp xếp lại danh sách, tra cứu các mục để thêm vào danh sách (như các đề xuất trong thanh tìm kiếm của Google), xóa các mục khỏi danh sách, v.v.Duy trì tính nhất quán giữa các mô hình đối tượng JavaScript và C#
Tôi có một "lớp" JavaScript để sử dụng để lưu trữ từng mục danh sách ở phía máy khách cũng như thông tin về hành động mà người dùng đã thực hiện trên mục (thêm, chỉnh sửa, xóa, di chuyển). Thời gian duy nhất trang được đăng lên máy chủ là khi người dùng hoàn tất, ngay trước khi trang được gửi, tôi sắp xếp lại tất cả thông tin về các thay đổi đã được thực hiện thành JSON và lưu trữ nó trong các trường ẩn trên trang.
Điều tôi đang tìm kiếm là một số lời khuyên chung về cách xây dựng các lớp học của tôi trong C#. Tôi nghĩ rằng nó có thể là tốt đẹp để có một lớp trong C# phù hợp với một JavaScript vì vậy tôi chỉ có thể deserealize JSON cho các trường hợp của lớp này. Có vẻ hơi lạ khi có các lớp ở phía máy chủ vừa sao chép trực tiếp các lớp JavaScript và chỉ tồn tại để hỗ trợ triển khai UI JavaScript.
Đây là một câu hỏi trừu tượng. Tôi chỉ đang tìm kiếm một số hướng dẫn hình thức những người khác đã làm những việc tương tự trong việc duy trì phù hợp với khách hàng và các mô hình đối tượng phía máy chủ.
Cảm ơn, điều đó nghe có vẻ thú vị khi sử dụng RelaxNG. Gần đây tôi đã thực hiện một số công cụ với Bộ đệm giao thức của Google, sử dụng ngôn ngữ của riêng chúng để xác định một lớp như vậy để bạn có thể tạo phiên bản thích hợp cho bất kỳ ngôn ngữ nào bạn đang mã hóa. trong nhiều kịch bản và công nghệ khác nhau. Tôi không thể tin rằng tôi đã không nghĩ đến việc này trước đây. –
ya, tôi cũng nghĩ về protobuf. Tôi tự hỏi nếu các mã được tạo ra mà đi ra khỏi một protobufs .idl là có thể sử dụng mà không có bộ nối tiếp protobufs. Nếu có, bạn có thể sử dụng JsonSerializer trong .NET, với mã C# mà công cụ protobufs tạo ra. – Cheeso
Vì vậy, bạn đang gợi ý rằng tôi so sánh một thể hiện tuần tự của lớp C# với một tài liệu tĩnh chứa JSON đại diện cho cấu trúc dữ liệu của tôi. Nếu chúng khớp nhau thì tôi biết lớp C# là đúng. Sau đó, tôi sẽ so sánh các thể hiện của cùng một lớp trong JavaScript với tài liệu JSON và nếu chúng khớp với nhau thì xác minh rằng tôi sẽ có thể trao đổi dữ liệu qua lại từ máy khách đến máy chủ mà không gặp trục trặc và deserializing. –