2008-09-02 38 views
7

Có thể bất kỳ ai (có thể là một fan XSL?) Giúp tôi tìm thấy bất kỳ lợi thế nào khi xử lý việc trình bày dữ liệu trên một trang web với XSL trên ASP.NET MVC?ASP.NET MVC và XSL

Hai lựa chọn thay thế là:

  1. ASP.NET (MVC/WebForms) với XSL
    Lấy dữ liệu từ cơ sở dữ liệu và chuyển nó đến XML sau đó được hiển thị trên các trang khác nhau với XSL-templates.

  2. ASP.NET MVC
    Lấy dữ liệu từ cơ sở dữ liệu như C# đối tượng (hoặc LinqToSql/EF-đối tượng) và hiển thị nó với inline-mã trên MVC-trang.

Lợi ích chính của XSL là hiển thị dữ liệu nhất quán trên nhiều trang khác nhau, như WebControls. Vì vậy, sửa tôi nếu tôi sai, ASP.NET MVC có thể được sử dụng theo cùng một cách, nhưng với các đối tượng mạnh mẽ đánh máy. Vui lòng giúp tôi xem liệu có bất kỳ lợi ích nào cho XSL không.

Trả lời

7

tôi có thể thấy lợi ích chính của dụng XSLT để chuyển đổi dữ liệu của bạn và hiển thị nó cho người sử dụng sẽ được như sau:

  • Các dữ liệu đã có trong một định dạng XML
  • Các dữ liệu sau một cái giếng giản đồ đã định nghĩa (điều này làm cho việc sử dụng các công cụ như XMLSpy dễ dàng hơn nhiều).
  • Dữ liệu cần được chuyển đổi thành một số định dạng đầu ra khác nhau, ví dụ: PDF, WMP và HTML

Nếu đây là đầu ra duy nhất cho dữ liệu của bạn và không ở định dạng XML thì XSLT có thể không phải là giải pháp tốt nhất.

Tương tự như vậy nếu tương tác người dùng được yêu cầu (chẳng hạn như chỉnh sửa các dữ liệu) sau đó bạn sẽ kết thúc sử dụng đang back-end anyway để xử lý thông tin cập nhật như vậy có thể chứng minh một công nghệ quá xa ...

0

Nếu bạn chỉ hiển thị dữ liệu từ các mẫu DB XSL có thể là giải pháp thuận tiện, nhưng nếu bạn xử lý tương tác của người dùng. Hm ... Tôi không nghĩ rằng nó sẽ được duy trì ở tất cả.

6

Tôi luôn tìm thấy hai vấn đề chính khi làm việc với biến đổi XML:

Thứ nhất họ có xu hướng khá chậm, toàn bộ tập tin XML phải được phân tích và xác nhận trước khi bạn có thể làm bất cứ điều gì với nó. Là XML nó cũng quá chi tiết, và do đó lớn hơn nó cần phải được. Thứ hai, cách chuyển đổi hoạt động là một chút đau đớn đối với mã - các công cụ tùy chỉnh như trợ giúp XmlSpy, nhưng nó vẫn là một mô hình khác với những gì mà hầu hết các nhà phát triển được sử dụng.

Hiện tại, MVC rất nhanh và trông rất hứa hẹn, nhưng không bị ảnh hưởng bởi sự phát triển web truyền thống của <%%> bee-stings trên tất cả mã của bạn. Sử dụng các phép biến đổi XML tránh điều đó, nhưng khó đọc và duy trì hơn nhiều.

+0

Với sự ra đời của động cơ xem thay thế như Razor, các ong chích bây giờ sẽ ảnh hưởng ít hơn. –

+3

@RobertHarvey - Tuyệt vời của Razor, cú pháp '@' đẹp hơn '<%' (đối với các câu lệnh đơn giản ít nhất) nhưng nó vẫn có vấn đề cơ bản về chuyển đổi giữa đầu ra và mã. Tâm trí bạn, đây là một câu trả lời 3/2 tuổi - trở lại sau đó MVC là 'hứa hẹn', bây giờ tôi nghĩ rằng bạn muốn được điên để sử dụng biến đổi XML. – Keith

4

Tôi đã sử dụng kỹ thuật đó trong quá khứ và có các ứng dụng mà chúng tôi sử dụng nó ở nơi làm việc hiện tại của tôi. (Tôi sẽ thừa nhận, tôi không hoàn toàn là một fan hâm mộ của nó, nhưng tôi sẽ chơi ủng hộ của ma quỷ) Thực sự đó là một trong những advatages chính, và đẩy ý tưởng này có thể được kinda gọn gàng. Bạn có thể tự động tạo xsl khi đang di chuyển và thay đổi giao diện của trang trên một ý thích. Có thể thực hiện điều này thông qua các phương thức khác ... có, nhưng thật dễ dàng để xây dựng một chương trình để sửa đổi một tài liệu xml/xsl khi đang di chuyển.

Nếu bạn nghĩ đến việc sử dụng XSL để chuyển đổi một tài liệu xml sang tài liệu khác và hiển thị nó dưới dạng html (thực sự là những gì bạn đang làm), bạn sẽ mở hệ thống của mình để cho phép các chương trình khác truy cập dữ liệu trên trang qua XML. Bạn có thể làm điều này thông qua các phương thức khác, nhưng sử dụng phép chuyển đổi xsl buộc nó phải xuất ra xml mỗi lần.

Tôi sẽ bước nhẹ nhàng khi tạo hệ thống theo cách này. Bạn sẽ tìm thấy rất nhiều hố rơi bạn không mong đợi, và nếu bạn không biết xsl thực sự thực sự tốt, sẽ có một đường cong học tập cũng có.

1

Jafar Husain cung cấp một số lợi thế trong số proposal for Pretty XSL, chủ yếu là bộ nhớ đệm của biểu định kiểu để tăng tải trang và giảm kích thước dữ liệu của bạn. Steve Sanderson đã đề xuất một cách tiếp cận hơi khác với JavaScript làm bộ điều khiển here.

Cách tiếp cận tương tự khác sẽ là sử dụng XForms, mặc dù hỗ trợ tốt nhất cho nó là thông qua JavaScript library.

1

Kiểm tra này ra nếu bạn muốn sử dụng XSLT và ASP.MVC

http://www.bleevo.com/2009/06/aspnet-mvc-xslt-iviewengine/

+0

Vâng, tôi không muốn thực sự. Tôi chỉ muốn một số ý kiến ​​về lý do tại sao bất cứ ai muốn sử dụng nó. –

+0

Lý do duy nhất tôi có thể nghĩ về việc sử dụng nó để tách dữ liệu và bản trình bày là trên các trang web lưu lượng truy cập siêu cao đã tiết kiệm được 10-20% tạo nên sự khác biệt đáng kể. – bleevo