2011-01-20 21 views
5

Điều tôi muốn nói là hướng này dường như đang hướng tới khách hàng nhiều hơn ... Tại sao không chỉ có một trang web chỉ là jquery/HTML ở mặt trước và không có gì ngoài dịch vụ web .NET ở mặt sau được gọi bằng lệnh jquery ajax?Có thể hoặc có ý nghĩa để tạo một trang web chỉ có dịch vụ jquery/.NET không?

Việc này có được thực hiện ở bất kỳ đâu không? Tôi không nhìn thấy nó được thực hiện .. làm thế nào đến? Có vẻ như một giải pháp đơn giản. Không cần phải đối phó với lớp trừu tượng ASP.NET ..

+1

Có lẽ vì điều đó không tuân thủ "sự xuống cấp duyên dáng" và "nâng cao tiến bộ" - nếu người dùng đã tắt JS, trang web không thể sử dụng 100%. – thirtydot

+1

Không bật JS giống như chạy Windows 3.1. Tất nhiên không có gì mới và thú vị sẽ làm việc :) Những người có tiền để chi tiêu tất cả đều sử dụng các trình duyệt hỗ trợ JavaScript. – jmort253

+0

Tôi quên mất JS. Tôi hy vọng vào năm 2011, bạn có thể yêu cầu mọi người để có một trình duyệt sử dụng nó – punkouter

Trả lời

0

Điều này là hoàn toàn có thể. Tôi có một trang web khi trang ban đầu tải máy chủ chỉ gửi dữ liệu JSON được hiển thị trên máy khách. (mặc dù máy chủ trong trường hợp này chạy php)

+0

Vì vậy, có vẻ như khái niệm này đã được thực hiện trong tất cả mọi thứ nhưng .NET. Nó thực sự là khó mà tôi tự hỏi? Tôi phải thiếu một số lý do lớn tại sao không ai làm điều này. – punkouter

+1

không có ý tưởng, tôi chắc chắn ai đó có, chỉ là tôi không biết về nó. Đó là điều tốt đẹp về việc có một protocall. Cả hai bên đồng ý gửi JSON qua HTTP và ngôn ngữ nào mỗi bên sử dụng là linh hoạt –

3

Google có bản trình diễn thể hiện phương pháp này mà bạn đang đề cập đến. Đó là Autoshoppe Demo cho Google App Engine. Mặc dù là Java, các khái niệm cũng áp dụng cho các ứng dụng .NET.

Ứng dụng chứa các trang HTML thuần tuý có các phần mở rộng .html. Không có công nghệ xem phía máy chủ nào làm phức tạp cuộc sống của lập trình viên HTML. Các trang HTML sử dụng JavaScript AJAX để tương tác với các Dịch vụ Web REST được xây dựng bằng cách sử dụng Spring 3.0, tương tác với một kho dữ liệu.

  • Dữ liệu yêu cầu được thông qua như là JSON trong yêu cầu
  • Các dữ liệu đáp ứng được trả về như JSON trong các phản ứng.

Điều này có nghĩa là bất kỳ ai cũng có thể xây dựng giao diện người dùng trên API này hoặc bạn có thể tạo dự án .NET tương tác với dữ liệu đó. REST là một kiến ​​trúc tuyệt vời để tạo các dịch vụ mở rộng, nhiều lớp. Tôi nghĩ rằng lý do kỹ thuật này không được sử dụng rộng rãi là bởi vì nhiều người bị mắc kẹt trên công nghệ xem khuyến khích các nhà phát triển sử dụng đánh dấu của nhà cung cấp công nghệ xem trong HTML, chẳng hạn như các tệp ASP (hoặc JSP cho Java). Đó là một thực tế đã được khoảng một thời gian bởi vì về cơ bản các nhà văn của các khuôn khổ này là các kỹ sư, không phải nhà thiết kế web và thiết kế giao diện người dùng.

Nó cũng có một sự hiểu biết khá mạnh mẽ về REST để xem những lợi thế mà phương pháp này cung cấp, và các nhà phát triển trẻ đôi khi đấu tranh với những khái niệm này.

Nếu bạn giải quyết vấn đề này trong .NET, sử dụng bản demo AutoShoppe làm hướng dẫn, bạn có thể muốn sử dụng trình ánh xạ đối tượng có thể chuyển đổi JSON của bạn thành đối tượng .NET và quay lại JSON. Đây là một cách tiếp cận rõ ràng hơn nhiều so với việc tự phân tích cú pháp JSON.

Ưu điểm của phương pháp RESTful này là nội dung, hành vi và bản trình bày của bạn hoàn toàn tách biệt 100% đến mức bạn có thể cho lập trình viên web các tệp HTML và họ có thể chạy chúng hoàn toàn bên ngoài. Môi trường NET. Sau đó, các nhà thiết kế của bạn có thể sử dụng các công cụ và tập trung vào các điểm mạnh của họ, không bao giờ phải cài đặt, cấu hình hoặc chạy Visual Studio.NET. Trên thực tế, các tệp sẽ chạy ngay từ màn hình.

EDIT: Có lẽ bất lợi là không có nhiều hỗ trợ cho điều này trong nhiều khung MVC, chủ yếu là vì nó là một khái niệm mới. Cầu nối giữa phía máy khách và phía máy chủ hiện tại phải được viết bởi nhà phát triển.Trong bản demo AutoShoppe, các nhà phát triển đã viết một lớp nguyên mẫu trong JavaScript để xử lý chuyển đổi dữ liệu thành JSON trước khi gửi đến máy chủ, và họ phải viết mã JavaScript để marshall JSON thành các đối tượng JavaScript và thao tác dữ liệu đó trở lại HTML . Về phía máy chủ, họ đã sử dụng một Object Mapper để deserialize JSON thành các đối tượng. Hầu hết sự phức tạp là trên máy chủ.

Ưu điểm của việc biến thành phần phía máy chủ thành dịch vụ RESTful có thể tái sử dụng 100% mà nhà thiết kế và khách hàng có thể dễ dàng tương tác với có thể vượt quá những bất lợi, tùy thuộc vào tình huống. Một ví dụ điển hình có thể là một dịch vụ mà khách hàng của bạn được khuyến khích mã hóa giao diện người dùng của riêng họ hoặc có toàn quyền kiểm soát nhãn danh sách sản phẩm. Đây là một trong nhiều lý do why I won't use server side view technologies.

+0

vậy tại sao dịch vụ web REST thay cho các dịch vụ web xà phòng thông thường? Tôi giả định phần khó nhất sẽ làm các mẫu phía khách hàng và phải làm trong jquery những gì đã được thực hiện tự động cho bạn với viewstate có thể? Kỳ lạ là có bằng chứng .NET mới về các khái niệm về điều này do sự phân tách mối quan tâm cực kỳ tốt đẹp. – punkouter

+0

Và .NET MVC ở đâu phù hợp với điều này? Không có khái niệm biểu mẫu web .. nhưng thay vì gọi một dịch vụ web để điền HTML ở phía máy khách, nó tải lại toàn bộ HTML từ phía máy chủ – punkouter

+0

@punkouter - REST linh hoạt hơn và đơn giản hơn nhiều so với SOAP. REST có thể hỗ trợ một hệ thống phân lớp phức tạp hoặc một dịch vụ đơn giản có thể truy cập thông qua chỉ một URL. Một bất lợi là hiện tại không phải là một cách đơn giản để xử lý các khung nhìn tự động. Tôi sẽ cập nhật câu trả lời của mình để phản ánh. Đối với biểu mẫu web, bạn sẽ sử dụng AJAX để POST yêu cầu và sử dụng phương thức gọi lại để cập nhật các trường biểu mẫu. Không cần phải làm mới đầy đủ, làm cho trang web trở thành một ứng dụng Internet phong phú hơn. – jmort253

Các vấn đề liên quan