Trộn api góc và ASP.NET MVC / Web?


40

Tôi đến từ việc sử dụng ASP.NET MVC / Web API và bây giờ tôi bắt đầu sử dụng Angular nhưng tôi không rõ cách thức phù hợp để trộn chúng.

Khi tôi đang sử dụng Angular, các khái niệm phía máy chủ MVC vẫn cung cấp bất kỳ giá trị nào? Hoặc tôi hoàn toàn nên sử dụng API Web hoàn toàn để lấy dữ liệu cho các cuộc gọi HTTP góc cạnh?

Có lẽ tôi nên sử dụng điểm bắt đầu bị loại bỏ nhiều hơn nếu mẫu VS đang thêm nhiều thứ tôi không cần?

Tôi thích ý tưởng phân chia chặt chẽ phía máy chủ = dữ liệu thuần túy và phía máy khách = xử lý HTML thuần túy.


Câu trả lời:


17

Cách dễ nhất để nghĩ về nó là máy chủ phục vụ một trạng thái. Angular có thể quản lý thu thập các bản cập nhật cho trạng thái đó và gửi nó đến một web / api trên máy chủ. Nếu bạn muốn đi thêm ứng dụng trang đơn, thì mã phía máy chủ sẽ chỉ là trạng thái ban đầu của ứng dụng của bạn.

API Web là một nơi tuyệt vời để bắt đầu cho việc kéo dữ liệu của bạn vào ứng dụng của bạn. Cuối cùng, bạn sẽ cập nhật các phân đoạn mặc định để đáp ứng các yêu cầu thiết kế môi trường của bạn và nếu bạn muốn, phải được nghỉ ngơi đầy đủ.

Có một vài thư viện mà ASP4 được bao gồm theo mặc định và những thư viện đó cũng được bao gồm trong các mẫu MVC4. Thực sự có rất nhiều thứ được bao gồm trong trang không cần thiết, vì các giếng như được bao gồm trong dự án và thậm chí không bao giờ được tham chiếu bởi các trang mặc định của chúng. Bạn nên an toàn loại bỏ mọi thứ trừ jQuery và tôi thậm chí còn đi xa hơn khi lấy ra jQueryUI. Nhiều mặc định có nghĩa là tốt nhưng một khi bạn bắt đầu điền vào kiến ​​thức tên miền của mình, bạn sẽ sử dụng libs đáp ứng nhu cầu cụ thể của bạn.

Ngay cả với sự phân chia nghiêm ngặt, bạn sẽ thấy mvc phía máy chủ vẫn là một bản sao lưu rất rõ ràng cho một ứng dụng trang duy nhất. Định tuyến hiệu quả trong việc phân phối trang của bạn và các cuộc gọi api của bạn là một ví dụ điển hình. Một tính năng hữu ích khác là các bộ điều khiển trả về các chế độ xem không sử dụng trang chính hoặc chỉ là một phần xem. Angular có một "khung nhìn" rằng nó có thể điền vào một mẫu, có thể là một tệp tĩnh hoặc một phần từ một trong các tuyến của bạn.

Tôi đọc bạn bình luận sớm hôm nay và cùng nhau đưa ra một giải pháp demo để hiển thị những gì tôi đã đề cập ban đầu. Giải pháp cũng có một số "lông tơ" ban đầu bị loại bỏ mặc dù khi thêm Angular và Bootstrap bạn sẽ có được các thư viện cốt lõi và mọi dẫn xuất ở đó. Đó là sự đánh đổi bằng cách sử dụng nuGet.

Hãy xem thử: https://github.com/Queueoutmer/AngularWithPartialViewViews

Khi học Angular tôi thấy chương trình Angular-Seed khá hữu ích. Đặc biệt là sau khi tôi đã thử các bản demo trên trang web của họ. Dự án mẫu chỉ khác nhau đủ để nó giúp bạn học hỏi. Sau đó tôi đã xem Angular-Require-Seed nhưng đó là một bài viết khác. Từng góc cạnh http://docs.angularjs.org/tutorial Hạt góc: https://github.com/angular/angular-seed


Vì vậy, sẽ có ý nghĩa khi có một vài Chế độ xem phía máy chủ, đó là cách MVC hoạt động bình thường .. và sau đó với mỗi chế độ xem đó sẽ có nhiều chế độ xem góc phía máy khách (có thể là tạo / chi tiết / chỉnh sửa cho một số thực thể cụ thể) .. Nếu vậy, tôi ước tôi có thể tìm thấy một mẫu như thế để đưa tôi vào một con đường tốt để sử dụng MVC và góc cạnh với nhau
punkouter

Đã thêm một liên kết đến dự án demo và nơi đầu tiên tôi bắt đầu tìm hiểu về Angular. Tôi sẽ viết blog về các SPA nói chung và một số mô hình / thư viện tốt hơn để giải quyết các thách thức kiến ​​trúc của họ trong vài tháng tới. Tôi sẽ cập nhật bài viết của mình khi tôi làm.
Queue Hammer

chỉ cần có liên kết của bạn .. nhìn vào bản demo. có vẻ tốt .. câu hỏi đầu tiên là .. vì vậy .. Bạn đang giữ chức năng ASP.NET MVC ở vị trí như trang chính bạn bắt đầu .. ngoài trang đó mọi thứ khác là các góc nhìn một phần .. Bạn có thể có HAI chính ASP không. NET MVC xem? nói cách khác .. khung nhìn ASP.NET MVC là cha mẹ của các khung nhìn một phần góc cạnh .. ví dụ .. có lẽ tôi không muốn TẤT CẢ các khung nhìn một phần dưới dạng xem MỘT ASP.NET .. điều đó có hợp lý không? Bạn có thể chỉ cho tôi điều đó? Đó là những gì đặt tôi vào một điểm tốt cho một điểm khởi đầu tôi nghĩ .... hoặc có thể những gì tôi đang nói không có ý nghĩa?
punkouter

và điểm của partialsControll.cs là gì vì nó không bao giờ gọi bất kỳ thứ nào trong số này?
punkouter

Bạn có thể đặt các partials gần như bất cứ nơi nào. Bạn có thể tạo ra nhiều bộ điều khiển hơn với một hành động cho mỗi lượt xem, tôi đã sử dụng một "partialsControll.cs", các phần trong dự án khớp với các khung nhìn được xác định trong mô-đun ứng dụng góc. Vì vậy, một phần / view1 đang gọi trình điều khiển partials và nhận viewOne hành động mà sau đó sẽ có view ViewOne. Trong các hành động bạn có thể gọi View (); với một tham số chuỗi vượt qua vị trí của chế độ xem của bạn. Vì vậy, bạn có thể linh hoạt để tổ chức nó gần như bất kỳ cách nào bạn muốn.
Queue Hammer

18

Có lẽ tôi nên sử dụng điểm bắt đầu bị loại bỏ nhiều hơn nếu mẫu VS đang thêm nhiều thứ tôi không cần?

Các mẫu VS này rất tốt để cắt giảm thiết lập ban đầu và đường cong học tập, tuy nhiên bạn sẽ cần tùy chỉnh chúng cho nhu cầu dự án thực sự của bạn.

Ví dụ: trên trang web này http://www.reviewstoshare.com , bạn tôi đang sử dụng AngularJScùng với ASP.NET MVC. Hãy nhớ rằng trang web này đã được xây dựng bằng cách sử dụng ASP.MVC + Jquery để tương tác với trang khi cần.

Mặt khác, vẫn có một số tính chất "Aj Wax" cho trang web như bình luận, bỏ phiếu, gắn cờ, v.v. Không quá khác biệt so với chính Stackoverflow. Trước AngularJS, đó là một mớ hỗn độn của các plugin và chức năng của Jquery trong $(document).ready()cuộc gọi lại, chưa kể mã JS không thể kiểm tra được nhiều.

Nhìn chung, có một kết hợp thích hợp của cả hai làm cho trang web của bạn trơn tru và chức năng.

nhập mô tả hình ảnh ở đây

Một số tài liệu tham khảo tốt để xem:


Hoặc nếu dưới một tập hợp các trang một phần góc cạnh, có một vài khung nhìn MVC thông thường sẽ không giúp ích gì (như tôi đã đề cập trong nhận xét trên của tôi)
punkouter

Đây là sự thật, các vấn đề SEO đã được giải quyết bằng các bản cập nhật mới.
EL Yusubov

3
Vì vậy, không chỉ trích nhưng các tuyên bố tiêu cực trên biểu đồ có thực sự nằm dưới trục x không? Điều đó sẽ làm cho biểu đồ trông giống như một làn sóng tội lỗi ngày càng mở rộng. Tôi biết nó không phải là biểu đồ của bạn, nhưng khoa học xấu của nó.
Queue Hammer

12
Queue Hammer bạn phải vui vẻ thực sự tại các bữa tiệc. :-)
Thomas Stock

1
Tôi hoàn toàn bị mắc kẹt ở hai điểm thấp hơn của sóng ở hai bên của 'Rất tuyệt!' bong bóng, như một kết hợp địa ngục góc shitty.
MetaGuru
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.