Trước khi trả lời, câu hỏi này rất phức tạp:Tách mặt lôgic khách hàng từ phía máy chủ logic trong một cách tái sử dụng sử dụng MVC
- Chúng tôi đang phát triển trong asp.net/asp.net MVC/jQuery nhưng tôi mở cho các giải pháp trên bất kỳ nền tảng nào sử dụng khung bất kỳ
- Tôi nghĩ rằng logic như sắp xếp/ẩn cột/sắp xếp lại cột/xác thực (ở vị trí hợp lý) phải ở phía máy khách
- Tôi nghĩ logic như tìm kiếm/cập nhật luồng công việc db/đang chạy phải ở phía máy chủ (chỉ vì lý do bảo mật/gỡ lỗi)
Điều chúng tôi đang cố gắng làm là KHÔNG TẠO MESS trong giao diện người dùng của chúng tôi bằng cách viết một loạt JavaScript để xử lý cùng tính năng trong các ngữ cảnh khác nhau. Tôi hiểu rằng tôi có thể sử dụng một tệp JavaScript + JavaScript hướng đối tượng, tôi đang tìm mẫu làm cho nó dễ dàng hơn nhiều.
Một giải pháp được đề xuất là có mô hình MVC ở cả phía máy khách và máy chủ, nơi chúng tôi có thể đóng gói chức năng JavaScript trong các bộ điều khiển phía khách, sau đó sử dụng chúng ở các phần khác nhau của trang web. Tuy nhiên, điều này có nghĩa là chúng tôi có 2 triển khai MVC!
Đây có phải là quá mức cần thiết không? Làm thế nào bạn sẽ mở rộng về giải pháp này? Có những giải pháp nào khác?
Tôi thích ý tưởng ở đây - về cơ bản một cách tiếp cận đơn giản, điều duy nhất tôi đã cố gắng tránh là rất nhiều "dây nó lên", nơi các phương pháp javascript trên giao diện điều khiển chỉ đơn giản là giao cho logic phía máy chủ. Tuy nhiên, nó có thể chỉ là thứ mà tôi không thể tránh được. Cảm ơn! –
Có các khung công tác JavaScript cho phép bạn truy cập DB. Làm điều này tương tự như việc sử dụng ASP.NET Data Controls, nhưng không có khả năng mở rộng. Số lượng JavaScript bạn sẽ phải sử dụng để đến với một cấy ghép khả năng mở rộng nó sẽ chỉ đi xuống đến lý do tại sao? C#, LINQ, EF/các ORM khác ánh sáng nhiều năm trước JavaScript. PHP và ASP.NET MVC là hai thế giới phát triển khác nhau. Ngoài ra trong ASP.NET MVC chúng tôi không có điều khiển. Chúng tôi gần gũi hơn với phía khách hàng và JavaScript nên cách tiếp cận của bạn thay đổi và mang đến cho bạn nhiều tự do hơn. – LCarter