2008-11-12 28 views
11

Nhóm của chúng tôi đang phát triển một dự án web ASP.NET khá lớn mà ban đầu bắt đầu trong ASP.NET 1.0 và được chuyển nhiều lần đến tất cả các phiên bản mới của .NET.ASP.NET ascx so với aspx - Bạn có sử dụng lại các điều khiển của người dùng không?

Chúng tôi đã sử dụng rộng rãi Điều khiển người dùng (ascx). Nhưng nhìn lại tôi nghi ngờ rằng đó là một quyết định tốt. Một tỷ lệ rất nhỏ của các điều khiển được tái sử dụng (resuable) thông qua các trang khác nhau. Chỉ có lớp phức tạp này được thêm vào ứng dụng làm cho một số thứ phức tạp hơn.

Để sử dụng lại, các điều khiển nhỏ và chuyên dụng, chúng tôi sử dụng Điều khiển máy chủ (được kế thừa từ lớp WebControl), hoạt động tốt.

Vì vậy, câu hỏi của tôi: bắt đầu một dự án mới, có được không loại bỏ ascx và tự thực hiện tất cả trong các trang (aspx)? Có lẽ ngoại trừ nếu bạn làm rất nhiều tải động (chúng tôi không) của điều khiển người dùng? Kinh nghiệm của bạn là gì và bạn sẽ lời khuyên gì?

Trả lời

16

Chúng tôi có một số dự án sử dụng các điều khiển ASCX rộng rãi và các dự án khác không sử dụng các điều khiển ASCX. Theo kinh nghiệm của tôi, bạn phải quyết định từng trường hợp cụ thể.

My hai lý do yêu thích cho việc sử dụng điều khiển ascx là:

  1. Bạn đang thực hiện một mảnh chức năng giao diện người dùng sẽ xuất hiện trên nhiều trang khác nhau (hoặc nhiều lần trên cùng một trang).
  2. Bạn muốn đóng gói một số chức năng phức tạp để giữ cho nó khác biệt với phần còn lại của trang, do đó làm cho mã của bạn dễ đọc hơn và dễ bảo trì hơn.

Điều khiển ASCX có thể hữu ích, nhưng bạn thực sự cần đảm bảo bạn chỉ sử dụng chúng khi có lý do chính đáng - nếu bạn nói, bạn có thể thêm sự phức tạp không cần thiết vào mã nguồn của mình.

+1

Nếu bạn thực sự triển khai một số giao diện người dùng sẽ xuất hiện thường xuyên/đóng gói, tại sao không sử dụng * trang chính * thay vào đó và bạn đã hoàn thành? –

2

Tôi sẽ sử dụng usercontrols, và chủ yếu là vì bạn có thể tách liên kết nội dung khỏi thiết kế theo cách này dễ dàng hơn và cuối cùng sẽ giúp ích rất nhiều khi bạn thay đổi thiết kế của ứng dụng.

Nó cũng giúp việc di chuyển các điều khiển xung quanh trang dễ dàng hơn một chút so với khi bạn phải cắt/dán mã trên toàn bộ địa điểm.

2

Nó hoàn toàn đi xuống đến loại ứng dụng web đang được thiết kế. Tại nơi làm việc, một trong các ứng dụng của chúng ta có thể cấu hình được, do đó hoạt động trên một trang (default.aspx) và tải trong các điều khiển tùy thuộc vào cách cấu hình của nó cho người dùng đã đăng nhập. Tuy nhiên, mặt khác, nếu bạn đang viết một trang web cần được truy cập thông qua SEO và phải dễ dàng điều hướng thì việc triển khai từng chế độ xem trong trang aspx là một cách hay. Làm cho việc truy cập mỗi trang trong quá trình phát triển dễ dàng và thẳng tiến khi bạn có thể truy cập trực tiếp (giả sử không có quyền bảo mật/logic nào cản trở) thông qua thiết lập nó làm trang khởi động của bạn trong VS.

Một tùy chọn khác để đưa vào danh sách kết hợp là sử dụng ASP.net MVC; Các chế độ xem liên tiếp với các usercontrols có thể tái sử dụng cũng được đưa vào hỗn hợp :-)

6

Được sử dụng đúng cách, điều khiển người dùng cải thiện khả năng bảo trì và sử dụng lại, và thường tạo nhanh hơn các điều khiển máy chủ.

Bạn đã đề cập rằng trong dự án trước của bạn, rất ít điều khiển người dùng được sử dụng lại.Điều này dường như có liên quan nhiều hơn đến kế hoạch nghèo nàn hơn là một lỗ hổng vốn có trong người dùng tự kiểm soát.

Tôi đoán nguyên tắc chung là xem thiết kế của bạn và xem liệu bạn có sử dụng cùng một bộ điều khiển lặp đi lặp lại hay không, trong trường hợp đó, bạn nên sử dụng các điều khiển của người dùng.

+0

Cảm ơn bạn đã trả lời. Bạn có thể gọi nó là kế hoạch nghèo nàn, nhưng thực tế là, trong ứng dụng web SPECIFIC của chúng tôi, các điều khiển người dùng rất chuyên biệt đến mức trong hầu hết các trường hợp, không bắt buộc phải sử dụng lại. Có thể có các tình huống khác (ví dụ: cổng) nơi điều khiển người dùng có ý nghĩa hơn nhiều. – splattne

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