2010-07-18 29 views
11

Lưu ý: Theo quy trình làm việc, tôi không đề cập đến công nghệ luồng công việc, chẳng hạn như nền tảng quy trình làm việc.Các phương pháp hay nhất cho quy trình làm việc của ứng dụng web?

Tất cả các quá thường xuyên tôi thấy mình bị yêu cầu thiết kế các trang chạy qua một loạt các bước.

1) Chọn từ một tập hợp các tùy chọn. Gửi đi. 2) Điền một trang có kết quả. Thực hiện thay đổi. Gửi đi. 3) Làm điều gì đó dựa trên kết quả trước đó. Gửi đi. 4) Xác nhận các hành động trước đó. Gửi đi. 5) Goto 1.

Trang web thương mại điện tử có giỏ mua hàng sẽ là một ví dụ về sách giáo khoa về điều này.

Bây giờ, có nhiều cách để giải quyết vấn đề này. Câu hỏi của tôi là, cách được khuyến nghị để làm điều đó trong asp.net là gì? Trong PHP hoặc ISAPI tôi sẽ chỉ sử dụng các điều khiển html tiêu chuẩn, lấy dữ liệu bài đăng và thực hiện các công cụ với nó, mỗi thứ trên một trang khác.

ASP.NET dường như hướng đến các giải pháp trang đơn hơn. Làm công việc của bạn, postback cho chính mình, sau đó hiển thị kết quả của bạn trong cùng một trang .. di chuyển dọc theo cho đến cuối, sử dụng một cái gì đó giống như một MultiView hoặc UpdatePanels để thực hiện công việc. Nhưng điều quan trọng là bạn không đăng lại trang khác.

Bây giờ tôi hiểu rằng Microsoft đã thêm các trang đăng lại qua trang lên .NET trong các phiên bản gần đây, nhưng điều này dường như ít được nướng và loại rườm rà hơn. Rất khó để làm việc với dữ liệu được đăng lại trừ khi bạn hiển thị dữ liệu thông qua thuộc tính hoặc nội dung nào đó từ trang trước của bạn.

Làm cách nào để bạn xử lý kịch bản mà tôi đã nêu ở trên? Bạn có sử dụng chế độ xem đa hoặc cập nhật và thực hiện tất cả trong một trang không? Hay bạn làm điều đó trong một vài trang? Thực hành tốt nhất của bạn trong lĩnh vực này là gì? Bạn có thiết kế cụ thể nào bạn có xu hướng sử dụng không? Làm thế nào để bạn đi về cấu trúc các công việc trang web?

Trả lời

1

có một số cách để làm việc đó (ngoài multi-view):

1, asp.net liều hỗ trợ sau hành động, goggle Page.Request.Form[item]http://msdn.microsoft.com/en-us/magazine/cc164151.aspx#S3

2, bạn có thể lưu dữ liệu tạm thời của bạn vào bảng tạm thời cơ sở dữ liệu, sau đó khi người dùng đi qua từng trang, tất cả những gì họ cần làm là tham chiếu ID dữ liệu tạm thời trong cơ sở dữ liệu. (Chuỗi truy vấn)

3, bạn cũng có thể lưu dữ liệu tạm thời làm đối tượng trong phiên của mình, vì vậy tất cả các trang trong "luồng công việc" đều có thể tham chiếu phiên, sau đó thực hiện thao tác dựa trên nó.

sau khi tất cả, tất cả đều có ưu và khuyết điểm, nó chủ yếu phụ thuộc vào yêu cầu của dự án phức tạp như thế nào.

+0

Tôi nghĩ việc lưu trữ dữ liệu có lẽ là cách tốt nhất để thực hiện. Một ít công việc hơn, nhưng sau đó bạn không cần phải đánh lừa với các công cụ trang chéo và chỉ có thể dựa vào một biến phiên để giữ cho khóa chính của dữ liệu. –

1

Đối với các loại tình huống này, tôi đã sử dụng nhiều nút điều khiển để giữ các bước khác nhau của quy trình. Đặt thuộc tính hiển thị để hiển thị giao diện người dùng cho phần bạn muốn người dùng xem.

Bạn cũng có thể muốn xem Wizard Web Server Control xử lý đường ống dẫn nước để điều hướng giữa các bước của quy trình. Để có một số ý tưởng về cách hoạt động của công cụ kiểm soát, hãy xem The ASP.NET 2.0 Wizard Control.

0

Người đàn ông bí ẩn, tôi đã đọc câu hỏi của bạn khi hỏi chúng tôi làm cách nào. Đối với tôi, tôi có một từ: Bối cảnh. Giữ nó trong ngữ cảnh. Tôi sẽ giải thích.

Bạn có thể tạo toàn bộ ứng dụng web từ một trang nếu muốn.Về mặt kỹ thuật nó có thể mặc dù nó sẽ là khó hiểu như tất cả nhận ra. Tôi nhóm chức năng của tôi lại thành các phần logic như "Chọn một sản phẩm". Tôi đã từng tạo một trang duy nhất để nhóm quá trình "Đang kiểm tra", nhưng không khuyến khích mạnh mẽ vì nhóm của tôi đã phải chuyển sang quy trình tại một điểm cụ thể như tự động thêm sản phẩm vào giỏ hàng và sau đó hiển thị trang cuối cùng trong quy trình trả phòng. (nghĩ đến việc tải xuống miễn phí: bạn không cần thông tin giao hàng, hình thành thanh toán hoặc tên của họ). Với danh sách số của bạn ở trên, nếu nó là tất cả về tính năng, sau đó tôi sẽ làm cho nó một trang vật lý, nhưng tôi muốn chia thành nhiều phần nếu nó chỉ ra rằng tôi phải "nhảy vào" dòng chảy. Nếu bạn làm cho nó một trang, bạn cần ranh giới rõ ràng.

Tôi không sử dụng tính năng đăng chéo. Tôi thích sử dụng bộ điều khiển multiview. Đối với tôi, điều quan trọng là phải xác định rõ những gì mỗi lượt xem cần để hoạt động. Trong sự kiện tải trang của tôi, tôi có một cuộc gọi phương thức xem xét chuỗi truy vấn hoặc biến phiên hoặc cookie (đây là các thùng chứa trạng thái của tôi) và, dựa trên những gì được đặt, tôi thực hiện một chế độ xem đang hoạt động. Thay vào đó, không có mã nào khác trong tải trang, tôi sử dụng sự kiện tải của chế độ xem để tải trang giả của tôi. Tôi mã bất cứ điều gì mà xem cụ thể là nghĩa vụ phải làm.

Với cách tiếp cận đó, tôi nghĩ mẫu MVC của ASP.NET là nơi tôi nên đi.

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