2010-05-26 25 views
5

Gần đây tôi đã xem xét một số mã được viết bởi hai nhà thầu khác nhau, cả hai đều là các trang quản lý ASP.NET cơ bản. Các trang web cho phép người dùng xem và chỉnh sửa dữ liệu. Cổng CRUD khá đơn giản.Các phương pháp hay nhất để phát triển các trang ASP.NET đơn giản (được xây dựng trong các điều khiển hoặc các kịch bản lệnh JQuery +)

Một nhóm đã làm hết sức mình để sử dụng được xây dựng trong điều khiển Toolkit ASP + AJAX và đã làm hết sức mình để sử dụng như nhiều xây dựng trong điều khiển càng tốt. Nó khá nhiều là phù hợp với hầu hết các dev dev i havhe nhìn thấy. Tôi thấy mã dễ đọc hơn và dễ bảo trì hơn.

jQuery được sử dụng khác và mã được đánh dấu rất nhiều với khối tập lệnh sau đó được sử dụng để tạo các trang từ tệp javascript.

Ví dụ Script khối:

<script id="HRPanel" type="text/html"> 
    <table cellpadding='0' cellspacing='0' class="atable"><thead class="mHeader"><tr><th>Name</th><th>Description</th><th>Other</th></thead><tbody> 
    <# for(var i=0; i < hrRows.length; i++) {   
     var r = HRRows[i]; #> 
     <tr><td><#=r.Name#></td><td><#=r.Description#></td><td class="taRight"><#=r.Other#></td></tr> 
    <#}#> 
    </tbody><tfoot><th></th><th></th><th></th></tfoot></table> 
    </script> 

Sau đó, tại một địa điểm riêng biệt (file js), bạn sẽ thấy một cái gì đó như thế này.

$("#HRPanel").html($("#HRPanel").parseTemplate({ HRRows: response.something.bah.bah })); 

Và trong tệp js bạn sẽ chỉ cần một loạt chuyển đổi và thao tác mã html. Không có mã nào trong các tệp aspx ngoại trừ các khối chứa đánh dấu html.

Loại nào phổ biến hơn? Một trong đó về cơ bản đòn bẩy đánh dấu HTML nhúng trong các kịch bản được kiểm soát bởi các tập tin javascript hét lên các vấn đề về khả năng đọc và bảo trì?

Thứ hai loại sự cố nào rơi ra theo cách thứ hai? Mọi người có thực sự sử dụng mã như vậy trong môi trường sản xuất thực tế không? Có những công cụ nào giúp tạo điều kiện thuận lợi cho phát triển jQuery với studio trực quan và/hoặc đây có phải là thực tế mà Microsoft sẽ làm cho hợp lý hơn trong tương lai không?

Trả lời

5

Câu trả lời của tôi là sử dụng kết hợp cả hai. Sử dụng mỗi nơi thích hợp.

Điều đó đã trở thành một trong những ứng dụng xấu nhất của JQuery mà tôi đã thấy. Trong trường hợp này, bộ lặp chuẩn trông giống như một lựa chọn tốt. Nó là tốt cho việc thêm các yếu tố vào trang của bạn một cách lặp lại.

Kịch bản này sẽ được xử lý thực sự tốt với plugin JQGrid, cho phép bạn cập nhật nội dung của bảng bằng dữ liệu JSON hoặc XML. Nó đơn giản hơn rất nhiều so với mã mà bạn đã đăng. Đề nghị của tôi là bạn dành thời gian để thử nghiệm cả hai cách tiếp cận. Sau đó, nhìn vào sự phức tạp và khả năng mở rộng của cả hai. Ví dụ, việc thêm cột vào bảng của bạn dễ dàng như thế nào? Làm cách nào để thêm phân trang?

Microsoft đã đưa JQuery làm tập lệnh mặc định trong các mẫu MVC của nó. Tại sao? Bởi vì JQuery đang được công nhận trong ngành như thay đổi trò chơi. Nó đã làm giảm đáng kể mã cần thiết để xác định và làm việc với các phần tử trong DOM và nó gần như đã loại bỏ hoàn toàn nhu cầu về các bản javascripts trình duyệt cụ thể và thử nghiệm phiên bản trình duyệt.

JQuery thực sự tốt cho việc thêm hành vi vào các trang của bạn ở phía máy khách, chẳng hạn như các menu chẳng hạn. Nó cũng rất hữu ích cho những thứ như xác nhận phía khách hàng (nhẹ hơn rất nhiều về javascript được gửi đến trang hơn các điều khiển xác thực tiêu chuẩn).

JQuery hoạt động thực sự tốt khi bạn có CSS ​​được xác định rõ. Khi bạn hiểu mức độ mạnh mẽ của các trình tách, bạn có thể viết một số hành vi JQuery rất mạnh mẽ với mã terse đáng kinh ngạc. Xem xét một số ví dụ điển hình ở đây:

http://attardi.org/labels/#info

http://net.tutsplus.com/articles/web-roundups/the-20-most-practical-and-creative-uses-of-jquery/

Tôi sẽ thêm một số chi tiết sau giờ làm việc. :)

+0

có vẻ như họ đã cơ bản templated gần như tất cả các mã của họ trong khối script, và sau đó chuyển đổi chúng trong các cuộc gọi JS dựa trên phản hồi từ các dịch vụ web. Hầu như tất cả nó có thể được thực hiện bằng cách sử dụng được xây dựng trong điều khiển. – Nix

4

để trả lời một câu hỏi của bạn, một trong những công cụ để tạo điều kiện phát triển với visual studio jQuery là jquery intellisense

+0

+1 Cuộc gọi tốt. Cảm ơn cho rằng –

3

<Assuming_the_Worst> Việc sử dụng Javascript mẫu để xây dựng những phần quan trọng của trang web mà không có một dự phòng chắc chắn đếm như một vấn đề trợ năng. (Điều này có thể là một vấn đề không phụ thuộc vào nơi trang web được triển khai).

Nó cũng đặt ra một vấn đề bảo trì, vì bất kỳ nhà phát triển mới nào bắt đầu làm việc với nó để tìm hiểu cú pháp, quirks và các vấn đề với hệ thống khuôn mẫu Javascript mà họ sử dụng để làm việc trên trang web giả sử rằng họ đang nhấn các dịch vụ web để tạo, cập nhật và xóa dữ liệu). </Assuming_the_Worst >

Tôi sợ kinh nghiệm làm việc của tôi vẫn chưa xa khác nhau, đủ để nói nếu đây là một phương pháp phổ biến phát triển trong ASP.NET với jQuery. Tôi hy vọng là không. Như Daniel chỉ ra, có nhiều cách tốt hơn được xây dựng vào ASP.NET mà họ có thể sử dụng ở đây, vì vậy trừ khi điều này được thực hiện để giải quyết một nhu cầu kinh doanh rất cụ thể, họ có lẽ đang phải chịu đựng một trường hợp của BWIKTBI (Cách tốt nhất tôi biết để xây dựng nó) và bạn tốt nhất là giả định điều tồi tệ nhất.

+0

Nó là khá ghê gớm, và tôi chỉ có thể hy vọng di chuyển foward MS làm cho nó sạch hơn rất nhiều để tích hợp với jQuery. Nó gần như trông giống như một bước trở lại từ điều khiển "thông minh" xử lý đánh dấu js cho bạn. Bạn có ý nghĩa gì (vấn đề trợ năng)? – Nix

+1

@Nix - Một vấn đề về khả năng tiếp cận khi công nghệ được sử dụng để giải quyết vấn đề thể hiện rào cản đối với khách hàng (con người hoặc công nghệ) với khả năng ít hơn tối ưu (hoặc không phải tùy chọn). Vấn đề trong trường hợp này là họ đang xây dựng trang với javascript; nếu ai đó truy cập trang bị tắt javascript (ví dụ: vì họ đang sử dụng trình đọc màn hình hoặc do họ đang ở trong một môi trường hạn chế) thì người dùng sẽ không thể tương tác với trang. –

1

Như bạn đã nói ASP + AJAX Toolkit tạo mã dễ hiểu và dễ bảo trì. Tuy nhiên, nó hạn chế bạn với những gì các điều khiển tích hợp cung cấp và trong một số trường hợp, nó có thể không hiệu quả như vậy.

Dịch vụ web và jQuery được sử dụng rộng rãi cho các trang web sản xuất. Đặc biệt đối với các trang ASP.NET MVC, đó là cách xác nhận để đi. Cá nhân tôi không thích ý tưởng về các khối tập lệnh. Đây không phải là cách duy nhất để đi với jQuery mặc dù. Bạn có thể có một trang web ASP.NET thông thường và sử dụng các widget jQuery cho các điều khiển phong phú. Đối với chức năng AJAX, bạn sẽ cần dịch vụ WCF kích hoạt AJAX. Đây sẽ là hiệu quả hơn nhiều so với việc sử dụng Update Panels.

0

Hầu hết các điều khiển ASP.NET sản xuất mã html thực sự crappy, sử dụng các bảng với bỏ hoang hoang dã, thật đáng xấu hổ. Đó là html kém tạo ra là một mối quan tâm khả năng tiếp cận nếu bạn đang tìm kiếm để làm cho các trang web handicap thân thiện hoặc (IMO) sử dụng css hiệu quả. Tôi cũng chạy vào các trường hợp mà html được tạo ra gây ra vấn đề với những thứ như nhập dữ liệu từ web trong Excel. Bạn có thể sử dụng một cái gì đó giống như CSS Friendly adapter (http://www.asp.net/cssadapters/) hoặc thậm chí bạn viết adapter của riêng bạn nếu bạn muốn giảm bớt nhiều vấn đề cụ thể này (hầu hết là không mặc dù). ListView là một bổ sung tốt đẹp trong .NET 3.5, cho phép nhà phát triển kiểm soát tốt hơn đối với html được hiển thị.

Tôi đồng ý với những người khác rằng việc sử dụng khối tập lệnh ít hơn lý tưởng. Sở thích của tôi sẽ là sử dụng kịch bản không phô trương, sau đó sẽ chỉ có các phần tử html làm phần giữ chỗ (không có thẻ tập lệnh nào khác ngoài việc nhập tệp js).

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