2010-08-06 33 views
73

Bất kỳ ai sử dụng tính năng trang CSHTML mới và thấy rằng họ thích cú pháp công cụ xem mới này hơn công cụ xem mặc định hiện tại của ASP.NET MVC hoặc trên biểu mẫu web và nếu có thì tại sao? Điều gì về CSHTML mang lại cho bạn một lợi thế hơn so với các mẫu MVC hoặc web, hoặc ngược lại?Razor/CSHTML - Bất kỳ lợi ích nào so với những gì chúng tôi có?

Chỉ tò mò muốn nghe mọi người thực hiện nó.

+1

Tôi nghĩ rằng có thể đưa ra các câu trả lời khách quan cho câu hỏi này đặt tên các lợi ích thực tế (khách quan) hoặc nhận thức (chủ quan), nhưng bạn nên đặt lại câu hỏi của mình để có được những câu hỏi này. Ở dạng hiện tại, nó quá chủ quan và tranh luận. – dtb

+2

Tôi đã cập nhật câu hỏi một chút. Nhưng tôi phải nói, tôi đang tìm kiếm pro và con, và tôi sẽ nhận bất kỳ phản ứng nào tôi nhận được, khi tôi đang xem xét một mức độ tổng thể nhưng cũng muốn nghe về chi tiết kỹ thuật, vì vậy tôi không ' t thấy một vấn đề với cách tôi đã nói nó ... –

+0

Có một số cheatsheet/hướng dẫn sử dụng Razor cho FrontEnd Developers? Tôi hiện đang làm việc trên một dự án Razor, skinning ứng dụng với Foundation, và tôi muốn biết một cái gì đó nhiều hơn trên Razor có thể giúp tôi. –

Trả lời

42

Một trong những lợi ích là các khung nhìn Razor có thể được hiển thị bên trong các bài kiểm tra đơn vị, đây là thứ không dễ dàng thực hiện với trình kết xuất ASP.Net trước đó.

Từ ScottGu's announcement này được liệt kê là một trong những mục tiêu thiết kế:

Đơn vị Testable: mới thực hiện quan điểm động cơ sẽ hỗ trợ khả năng xem thử nghiệm đơn vị (mà không đòi hỏi một bộ điều khiển hoặc máy chủ web, và có thể được lưu trữ trong bất kỳ dự án thử nghiệm đơn vị nào - không yêu cầu miền ứng dụng đặc biệt).

+0

ví dụ? hoặc liên kết? – rball

+0

Đã thêm một liên kết để hỗ trợ bằng chứng :) Tôi chưa tự sử dụng Razor, vì vậy tôi không có mã để chia sẻ ngay bây giờ. Hãy cho nó một vài tháng và có lẽ tôi sẽ có thời gian để chơi với bản beta! –

+2

Chúng tôi chưa đưa ra bất kỳ hướng dẫn nào về thử nghiệm chế độ xem Razor nhưng tôi đã viết blog về việc lưu trữ công cụ Dao cạo bên ngoài ASP.Net: http://blog.andrewnurse.net/2010/07/22/UsingTheRazorParserOutsideOfASPNet.aspx –

3

Lợi ích lớn nhất là mã ngắn gọn hơn. Trình soạn thảo VS cũng sẽ có sự hỗ trợ IntelliSense mà một số công cụ xem khác không có.

Trình trợ giúp HTML tuyên bố cũng trông khá thú vị khi thực hiện các trình trợ giúp HTML trong mã C# nhắc tôi về các điều khiển tùy chỉnh trong ASP.NET. Tôi nghĩ rằng họ đã lấy một trang từ partials nhưng với mã nội tuyến.

Vì vậy, một số lợi ích nhất định trên công cụ xem asp.net.

Với Ngược lại với một công cụ xem như tia lửa mặc dù:

Spark vẫn còn gọn gàng hơn, bạn có thể giữ nếu và vòng trong một thẻ html riêng của mình. Đánh dấu vẫn cảm thấy tự nhiên hơn với tôi.

Bạn có thể viết mã partials chính xác cách bạn sẽ thực hiện một trình trợ giúp khai báo, bạn chỉ cần chuyển các biến đến một phần và bạn có cùng một thứ. Điều này đã được xung quanh với tia lửa cho một thời gian.

7
  1. Mọi thứ được mã hóa theo mặc định! Điều này là khá lớn.

  2. Người giúp đỡ khai báo có thể được biên soạn để bạn không cần phải làm gì đặc biệt để chia sẻ chúng. Tôi nghĩ rằng họ sẽ thay thế điều khiển .ascx ở một mức độ nào đó. Bạn phải nhảy qua một số vòng để sử dụng điều khiển .ascx trong một dự án khác.

  3. Bạn có thể tạo một mục yêu cầu đẹp.

43

Ex Microsoft Developer của Opinion

tôi đã làm việc trên một đội ngũ nòng cốt cho trang web MSDN. Bây giờ, tôi sử dụng dao cạo C# cho các trang web thương mại điện tử với nhóm lập trình của mình và chúng tôi tập trung nặng vào jQuery front end với các trang kết thúc C# dao cạo và cơ sở dữ liệu bộ nhớ LINQ-Entity để các trang có thời gian phản hồi 1-2 mili giây ngay cả khi được lồng trong các vòng truy vấn và không có bộ nhớ đệm trang. Chúng tôi không sử dụng MVC, chỉ cần đồng bằng ASP.NET với các trang dao cạo được ánh xạ với mô-đun Rewrite URL cho IIS 7, không có trang ASPX hoặc ViewState hoặc lập trình sự kiện phía máy chủ nào cả. Nó không có thêm các lớp (không cần thiết) MVC đặt trong các cấu trúc mã cho regex thách thức. Ít hơn là nhiều hơn cho chúng tôi. Tất cả của nó nạc và có nghĩa là nhưng tôi cung cấp cho đạo cụ MVC cho testability của nó, nhưng đó là tất cả.

Trang dao cạo không có vòng đời sự kiện như trang ASPX. Nó chỉ hiển thị như một trang được yêu cầu. C# là một ngôn ngữ tuyệt vời và Razor đã vượt qua con đường độc đáo của nó để cho nó thực hiện công việc của mình. Việc đánh máy vô danh với generics và linq làm cho cuộc sống dễ dàng như vậy với các trang C# và dao cạo. Sử dụng các trang Razor sẽ giúp bạn suy nghĩ và mã nhẹ hơn.

Một trong những hạn chế của Razor và MVC là không có sự tồn tại giống như ViewState. Tôi cần phải thực hiện một giải pháp cho điều đó vì vậy tôi đã kết thúc bằng cách viết một plugin jQuery cho điều đó tại đây ->http://www.jasonsebring.com/dumbFormState là plugin hỗ trợ lưu trữ ngoại tuyến HTML 5 cho trạng thái biểu mẫu đang hoạt động trên tất cả các trình duyệt chính hiện nay. Nó chỉ dành cho trạng thái biểu mẫu hiện tại nhưng bạn có thể sử dụng window.sessionStorage hoặc window.localStorage rất đơn giản để lưu trữ bất kỳ loại trạng thái nào trên postback hoặc thậm chí cả các yêu cầu trang, tôi chỉ bận tâm làm cho nó tự động lưu và không gian tên dựa trên URL và chỉ mục biểu mẫu bạn không cần phải suy nghĩ về nó.

+1

Số hiệu suất ấn tượng nhất - Tôi không thích ASP.NET vì nỗ lực dũng cảm của mình để lập trình web như VB6. Làm cho testability một bitch. Vì lý do đó tôi cũng thích MVC. Bạn có một ví dụ bạn có thể chia sẻ của kiến ​​trúc bạn đang sử dụng. – mozillanerd

+0

Để "mozillanerd", về mặt kiến ​​trúc, nếu bạn muốn thử nghiệm những gì tôi mô tả, nghĩa là làm một đối tượng C# ẩn danh với mới như var myobj = new {/ * place data structure giống như json * /} và có được lưu trữ trong bộ nhớ và xem LINQ nhanh như thế nào so với nó. Hãy tưởng tượng đây là một danh mục sản phẩm và thử LINQ chống lại nó. Siêu nhanh của nó nhưng có vị trí của nó trong điều khoản của phù hợp đúng quy mô như tốt nhất của nó trên một hộp trừ khi bạn có bộ nhớ đệm azure đang xảy ra và bạn đang chạy nó trên cửa sổ xanh. –

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