2013-07-05 38 views
19

chúng tôi hiện đang đánh giá việc sử dụng AngularJS trong một ứng dụng doanh nghiệp (e-Banking) như một ứng dụng trang đơn. Nhiều người trong số các công ty devs @ đã bị thuyết phục rằng không có cách nào khác để đi. Đó là xu hướng, đó là bằng chứng trong tương lai (html, css và js) rất dễ làm, ít gánh nặng hơn cho máy chủ, v.v. Mặc dù phần thú vị của khung này, tôi không tin rằng có những yếu tố phải được cân nhắc trước khi đi trên con đường này. Đây có thể là:AngularJS và các ứng dụng doanh nghiệp

  • Bảo trì mã
  • Testability mã, không chỉ là một phần ui
  • hội nhập liên tục (như TeamCity hoặc TFS)
  • phát triển thân thiện với như gỡ lỗi, điều hướng thông qua mã
  • An ninh (nếu có rủi ro)

Có ai có kinh nghiệm về ứng dụng doanh nghiệp xây dựng như vậy không? Tôi thà đi với Asp.Net MVC4. Xin vui lòng không có câu trả lời giả định, tôi không muốn bắt đầu một cuộc chiến tranh. Trải nghiệm cuộc sống thực sự được đánh giá cao.

Trân

Trả lời

6

Tôi đã nghĩ về điều này khi kết hợp với góc vào ứng dụng doanh nghiệp của chúng tôi. Đầu tiên, một số thông tin nền tùy chọn. Tôi thực sự cần phải giữ tất cả trạng thái trang của mình ở phía máy khách vì việc tạo lại nó ở phía máy chủ là một nhiệm vụ chuyên sâu về tài nguyên. Tôi bắt đầu với việc xây dựng nó chỉ với JQuery, vì tôi chỉ cần một vài thứ, nhưng chẳng mấy chốc tôi thấy mình gặp khó khăn trong việc theo dõi các cuộc gọi lại mà tôi đã viết vào tuần trước. Do đó, tôi muốn tái cấu trúc. Trong khi tôi đang ở đó, Angular trông giống như phù hợp nhất cho phong cách lập trình của tôi.

Để giải quyết vấn đề của bạn:

Tôi nghĩ rằng đó là dễ bảo trì hơn, vì nó khuyến khích bạn chia mọi thứ lên. Điều này, tuy nhiên, phụ thuộc hoàn toàn vào nhóm của bạn và kỷ luật của bạn để giữ cho mọi thứ có thể duy trì.

Nhóm Góc chắc chắn đã nghĩ về thử nghiệm khi họ thực hiện. Mọi thứ rất dễ dàng để kiểm tra, từ thử nghiệm đơn vị đến thử nghiệm e2e. Những người khác thậm chí còn tìm thấy một nền tảng trung gian ở giữa.

Chúng tôi sử dụng Jenkins tại cửa hàng Microsoft để tích hợp liên tục vì chúng tôi dễ dàng cắm các chương trình của riêng mình để làm việc với các thiết lập môi trường phức tạp của chúng tôi. Tuy nhiên, tôi không nghĩ rằng điều này liên quan nhiều đến khung mà bạn quyết định đi với.

Đến từ Visual Studio, tôi thấy JavaScript nói chung để lại một cái gì đó mong muốn. Tôi thích chỉnh sửa và tiếp tục, mở ngăn xếp và kéo mũi tên màu vàng đó xung quanh. Thứ đó chỉ là phúc lạc thuần khiết. Gỡ lỗi trên trình duyệt chỉ không cung cấp cho bạn tất cả điều đó.

Bảo mật khá tốt. Nhìn qua các tài liệu, bạn có thể thấy rằng nhóm đang quan tâm đến các vấn đề bảo mật như các cuộc tấn công XSS và CSRF. Tuy nhiên, bất cứ điều gì được thực hiện trên trình duyệt đều khó bảo mật. Có những cuộc tấn công và lỗi mới được phát hiện mỗi ngày. Nếu bạn thực sự lo ngại về bảo mật, bạn sẽ không có ứng dụng trực tuyến. Bạn sẽ đảm bảo rằng khách hàng của bạn chỉ được ngân hàng trong chi nhánh có nhiều loại ID. Với điều đó đã nói, tôi không nghĩ rằng Angular kém an toàn hơn bất kỳ giải pháp JavaScript nào khác.

Tôi muốn nêu thêm một vấn đề khác với tất cả các khung/thư viện JavaScript này. Tất cả chúng đều khá mới và không ngừng phát triển. Hãy xem có bao nhiêu hàm mà JQuery đã không dùng gần đây, và bạn sẽ hiểu được mức độ khó giữ trên các thư viện của mình. Nhiều người trong số này cũng bị lãng quên và còn lại để thối. Góc cạnh là một trong những sản phẩm của Google cũng khiến tôi hơi sợ hãi, vì họ đã hủy bỏ các đợt dự án của họ. Hy vọng rằng, Angular không trở thành một trong số đó.

Tài liệu cũng thiếu. Mặc dù cộng đồng là tốt, tài liệu không phải là. Nhiều trang được thực hiện một nửa. Một lần nữa, so với những thứ mới nhất từ ​​Microsoft, tài liệu này khá thưa thớt.

Đây là một trong những điều mới mẻ, khó có thể thuê ai đó giúp đỡ/tiếp quản công cụ này.

Mặc dù tất cả những hạn chế này, tôi thực sự thích nó, và tôi chắc chắn sẽ thúc đẩy công ty của tôi hướng tới việc áp dụng nó.

+0

Cảm ơn rất nhiều vì câu trả lời của bạn. Cuối cùng, ai đó chỉ có thể hy vọng rằng một số thứ sẽ thắng thế. Nó là đáng sợ khi ai đó nhận ra có bao nhiêu khuôn khổ được ra khỏi đó bây giờ, và trong hai năm một nửa trong số họ đã biến mất. Điều này rất quan trọng, đặc biệt khi một dự án rất lớn và sẽ mất 1-2 năm để hoàn thành. Có thực sự là nhiều lợi ích để không sử dụng Asp.Net MVC4 thay vào đó? Nếu lợi ích loại bỏ sự cần thiết cho một máy chủ khác hoặc một cái ôm nhưng sau đó bạn cần gấp đôi thời gian để phát triển, thử nghiệm (Chi phí phát triển)? – Mantzas

+0

asp.net mvc4 khuyến khích "tách" quá, và làm cho nó khó khăn hơn để bắn vào bàn chân của bạn. không góc cạnh và spa nói chung lớn hơn chi phí xử lý máy chủ cao? ngay cả với góc cạnh, bạn phải có nhiều hơn 1 máy chủ cho các lý do chuyển đổi dự phòng. Tại sao không phải 1 hoặc 2 máy chủ nhiều hơn và đi với mvc4 mà làm cho nó đến phiên bản 4 và 5 đang đến? Nếu tôi cần thêm thời gian để phát triển, chi phí đó quá !!! – Mantzas

+1

@Mantzas Tôi thực sự thích MVC. Lý do lớn nhất tôi muốn sử dụng thư viện phía máy khách là do rất nhiều tương tác của người dùng của tôi không cần phải quay lại máy chủ và việc xác thực nhập của người dùng mất nhiều thời gian cho ứng dụng của tôi. –

0

Có, tôi đã sử dụng góc với Asp.net WebAPI cùng với MongoDB pls tìm phát hiện của tôi

1) Testability là hoàn toàn fantatic .Bạn có thể dễ dàng kiểm tra bạn kiểm tra đơn vị sử dụng nghiệp và hoa nhài

2) CI. Lồng ghép Jenkins có sẵn với Karma

3) Dễ dàng để gỡ lỗi tương tự như javascript gỡ lỗi có thể sử dụng phần mở rộng chrome Bartrang để gỡ lỗi các ứng dụng một cách dễ dàng góc

+1

bảo trì, bảo mật? đây phải là một trang web rất an toàn! – Mantzas

+0

@Ajay Im mới với AngularJS và muốn triển khai nó với ASP.NET WEB API, bất kỳ hướng dẫn nào bạn đề xuất cho tôi? Cảm ơn rất nhiều – VAAA

+0

Còn về bảo trì? Điều hướng thông qua mã (ví dụ: "Tìm tham chiếu" hoặc "Đi tới khai báo" các hàm kiểu trong Java/Eclipse)? Làm thế nào về thiết kế giao diện người dùng? Nếu đây là một ứng dụng ngân hàng nội bộ (không phải khách hàng phải đối mặt), giao diện người dùng có thể trở nên khá phức tạp và sau đó bạn muốn một số cách để nhanh chóng xem trước/xem bố cục của các thành phần bạn đang đặt. Ví dụ: nếu bạn thay đổi nhãn hoặc đổi kích thước thành phần, bạn có thể xác nhận rằng thay đổi có thể chấp nhận được nhanh không (chắc chắn, không chỉ đoán)? – User

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