2012-07-08 46 views
22

Tôi nghĩ Microsoft phải có lý do để tăng cường ASP.Net với cú pháp RAZOR.Asp.Net Webforms Vs Asp.Net WebSite (Dao cạo) Vs Asp.Net MVC

Trên Tạo dự án trang web mới hộp thoại của studio trực quan, có một tùy chọn khác để tạo ASP.Net (Dao cạo). Lần đầu tiên tôi đi qua các hạn Razor là khi tôi đọc một cuốn sách về Asp.Net MVC, tôi không biết nó tồn tại cho ASP.Net

enter image description here

Tôi biết những gì cú pháp Razor là cho, giới thiệu trong MVC 3. Trước khi đặt câu hỏi này, tôi quyết định tạo ra một dự án thử nghiệm cho ASP.Net (Razor) và xem nó khác với ASP.Net webforms bình thường và ASP.Net MVC như thế nào. Tôi phát hiện ra không có thư mục Model/View/Controllers như chúng ta có trong MVC.

tôi phát hiện ra rằng các trang Master được quy định khác nhau và các trang Master là sạch, không còn phải <asp:ContentPlaceHolder />

Nhưng câu hỏi của tôi là:

  • Tôi nhận thấy nó sử dụng .cshtml, là không có nhiều codebehinds?
  • điểm tương đồng và khác biệt giữa ASP.Net (Razor) và ASP.Net MVC
  • Nó có thể được mở rộng để hoạt động như ASP.Net MVC hay không. Xem/Model, Custom Routing tôi đoán?
  • Tại sao điều này tồn tại khi chúng tôi có ASP.Net MVC? Điều này sẽ không khuyến khích miễn cưỡng chuyển sang ASP.Net MVC?
  • và tại sao bạn chọn ASP.Net + Razor trên ASP.Net MVC?

UPDATE:ASP.NET Web Pages in particular was designed để làm cho nó dễ dàng cho những người đã biết HTML để thêm xử lý máy chủ để trang của họ. Đó là một lựa chọn tốt cho sinh viên, người có sở thích, người nói chung là mới để lập trình. Nó cũng có thể là một lựa chọn tốt cho các nhà phát triển người có kinh nghiệm với công nghệ web non-ASP.NET

Cập nhậtASP.NET Web Pages ASP.NET trang web mục tiêu phát triển những người muốn có một câu chuyện phát triển web đơn giản, dọc theo dòng của PHP. Trong mô hình Trang web, bạn tạo các trang HTML và sau đó thêm mã dựa trên máy chủ vào trang theo thứ tự để tự động kiểm soát cách đánh dấu được hiển thị. Các trang web là được thiết kế đặc biệt để trở thành một khung trọng lượng nhẹ và đó là điểm nhập đơn giản nhất vào ASP.NET cho những người biết HTML nhưng có thể không có kinh nghiệm lập trình rộng - ví dụ: sinh viên hoặc người có sở thích. Nó cũng là một cách tốt cho các nhà phát triển web biết PHP hoặc các khuôn khổ tương tự để bắt đầu sử dụng ASP.NET.

Asp.Net Web Pages

Xin vui lòng, tôi cần ý kiến ​​kỹ thuật của bạn. Cảm ơn.

Trả lời

16

Đây là một câu hỏi hay. Đầu tiên, cho phép characterize Razor.

Dao cạo là một công cụ phân tích mã phía máy chủ phát ra Html, giống như ASP.NET Web Forms chỉ với cú pháp khác nhau và được cho là hợp lý hơn và ngắn gọn hơn.

Dao động v. Biểu mẫu web Thanh bên: Trong biểu mẫu web ASP.NET bạn phải xác định khi nào bạn muốn bắt đầu viết mã máy chủ với '<%' và sau đó khi bạn viết xong mã máy chủ cần thiết để xác định điều đó bằng ' %> '. Tôi yêu ASP.NET Web Forms, nhưng đó là clunky. Với Razor, bạn xác định khi nào bạn muốn bắt đầu viết mã máy chủ bằng '@' và sau đó bạn bắt đầu viết thẻ máy chủ (bắt đầu bằng '<'), "tìm ra" bạn đã hoàn thành với mã máy chủ. Đó là một cách ngắn gọn hơn để viết html xen kẽ với một số mã máy chủ.

Trang web ASP.NET là một khuôn khổ để tạo các ứng dụng web đơn giản. ASP.NET MVC là một khung công tác để tạo các ứng dụng web bằng Web Forms hoặc Razor engine bằng cách sử dụng mẫu Model-View-Controller (MVC). ASP.NET Web Forms là một khuôn khổ để tạo các ứng dụng web bằng cách sử dụng công cụ tạo biểu mẫu Web.

Cuối cùng, mục tiêu là cung cấp sự lựa chọn dựa trên sự tinh tế của ứng dụng đang được xây dựng. Hiểu mỗi người có hỗ trợ bạn trong việc đưa ra lựa chọn đúng cho ứng dụng của bạn.

Liên kết khác:

+1

Giải thích của bạn là tốt. Bạn đã làm cho quan điểm của bạn nhưng nó không đủ. Điều gì về _using Server Controls/UserControls trong ASP.Net (Razor) _? Các dự án ASP.Net (Razor) gần giống như một dự án ASP.Net MVC trống. Làm thế nào nhanh chóng, bạn có thể biến nó thành ASP.Net MVC? - Technical – codingbiz

+2

Có một số lượt xem một phần để điều khiển người dùng song song trong MVC. Bạn sẽ không chuyển đổi/chuyển đổi từ người này sang người khác theo ý kiến ​​của tôi. Chỉ cần xây dựng lại. Mặc dù bạn có thể Chia sẻ lượt xem. Có hai phần để lập trình web, xác định những gì bạn sẽ hiển thị trên trang (C#) và thực sự hiển thị nó trên trang. Tôi không thể dạy cho bạn tất cả mọi thứ về tất cả 3 trong một bài duy nhất. Xin lỗi để nói. Thông tin thêm tại http://asp.net/mvc/mvc3 –

+0

Tại sao chúng ta muốn kết hợp mã phía máy chủ với đánh dấu, đó là một cơn ác mộng bảo trì? – IrishChieftain

3

Không có mã behinds theo mặc định, nhưng bạn có thể dễ dàng tạo tập tin dao cạo của bạn được thừa hưởng từ lớp tùy chỉnh của bạn:

@inherits Index 

và sau đó

public class Index : WebViewPage { } 

(Thông tin chi tiết ở đây: http://www.compiledthoughts.com/2011/01/aspnet-mvc3-creating-razor-view-engine.html)

Điều này giống như cách làm trang web cũ hơn, giống như các tệp giống như. Sự khác biệt với mvc là mvc cung cấp một khung công tác lớn hỗ trợ các ứng dụng thế giới thực (sử dụng định tuyến, bộ điều khiển và các hành động và không chỉ là "mã có trong đánh dấu").

Tôi nghĩ rằng nó tồn tại để làm điều đó là thực sự đơn giản, nhưng tôi không thực sự biết ...

Cuối cùng, tôi sẽ luôn luôn chọn asp.net MVC với dao cạo.

Hy vọng nó giúp

+0

Tôi đã chọn một số kiến ​​thức từ câu trả lời của bạn (+1) cho nội dung hữu ích – codingbiz

+1

Tại sao bỏ phiếu xuống? – ivowiblo

0
  1. Không có "mã behinds" trong MVC, thời gian. Những gì bạn có là bộ điều khiển, mà tồn tại cả hai cho Razor và không Razor.
  2. Chúng chỉ là hai loại đánh dấu khác nhau. (Xem câu trả lời tiếp theo)
  3. Nó không thay thế MVC, nó chỉ là một lựa chọn khác. Các đánh dấu truyền thống là rất tiết. Cú pháp Razor là ngắn gọn.
+1

bạn có thể có code-behind theo cùng một chiến lược mà WebForms có. "Thời gian" – ivowiblo

+0

ông cũng nói rằng nó không cung cấp bộ điều khiển, vì vậy ông không nói về Asp.Net MVC (Razor) dự án. – ivowiblo

+0

http://www.compiledthoughts.com/2011/01/aspnet-mvc3-creating-razor-view-engine.html –

16

Trong mô hình MVC, M là Model, C là Controller, và V là các View. Vì vậy, khá tự nhiên, trong mô hình ASP.NET MVC, có khái niệm về một Công cụ xem Xem. Dao cạo chỉ đơn giản là một trong những Động cơ xem được cung cấp. Một trong những khác được cung cấp out-of-the-box là một "cũ" WebForms một (bạn cũng có thể viết của riêng bạn Xem Engine bằng cách này). Vì vậy, Razor không có khái niệm về code-behind mà nằm trong giới hạn công cụ của khung nhìn WebForms.

Vì vậy, loại này nói lên tất cả. Razor xử lý phần View của MVC (Nếu bạn chọn sử dụng nó thay vì một WebForms). Nó không liên quan gì đến M hoặc C.

Cá nhân, tôi chắc chắn sẽ chọn Razor View Engine nếu bạn chọn mẫu ASP.NET MVC hoặc sử dụng WebForms đơn giản không có MVC, vì Razor đã được thiết kế để ít tiết, đơn giản hơn để sử dụng hơn một biểu mẫu Web. Nó cũng chỉ đơn giản là gần đây hơn vì vậy nó cố gắng để được ... chỉ đơn giản là tốt hơn :-)

Như một lưu ý phụ, Dao cạo Parser cũng có thể được sử dụng bên ngoài của ASP.NET MVC. Nó được thực hiện trong một assembly không phụ thuộc vào MVC hay các assembly Web. Xem ở đây để biết thêm về vấn đề này: http://www.west-wind.com/weblog/posts/2010/Dec/27/Hosting-the-Razor-Engine-for-Templating-in-NonWeb-Applications

1

Vâng, Bạn có hai lựa chọn:

  1. Sử dụng WebForms: sử dụng out-of-the-box, sẵn sàng để sử dụng điều khiển server-side (markup hỗn hợp và mã số kinh doanh) và sử dụng các trang chủ và da, nhưng phải đối mặt với một số phức tạp liên quan đến các tiện ích này! :)

  2. Sử dụng MVC: hoặc sử dụng mô hình thiết kế riêng biệt mang đến cho bạn một cơ sở mã được tổ chức tốt hơn. trước tiên bạn có thể tạo ra một mẫu thử nghiệm thiết kế, hoặc trước tiên tạo mã số kinh doanh, sau đó xây dựng một khía cạnh khác, khá dễ dàng. thậm chí bạn có thể giúp nhà thiết kế kiểm soát nhiều hơn công việc của mình, cho anh ta/cô ấy khả năng làm mọi thứ anh ta/cô ấy muốn. -> đây là lựa chọn ưa thích của tôi bởi vì nó mang lại cho tôi nhiều quyền kiểm soát hơn đối với mã của tôi, làm cho mã của tôi ngắn gọn và gọn gàng hơn.

Nếu bạn chọn mô hình MVC, sau đó bạn đang phải đối mặt với một lựa chọn ... Xem Engines

  1. Cũ MVC View Engine: nó không phải là xấu, nhưng là một chút dài dòng
  2. Razor Engine: nó làm điều tương tự # 1, tại sao bạn không bao giờ muốn sử dụng nó ?! nó thay thế không có gì của mẫu MVC. nó cũng ngắn gọn và dễ dàng hơn, bạn có cả sức mạnh của MVC và sự đơn giản của Dao cạo râu. Dao cạo là cú pháp đánh dấu thông minh hơn, giúp bạn tập trung vào doanh nghiệp của mình, thay vì viết "<%"! bằng cách sử dụng cú pháp dao cạo bạn được cung cấp chỉ là một lợi ích, sức mạnh đầy đủ của MVC là trong tầm tay của bạn!

Bạn cũng có thể viết các trang web asp.net đơn giản chỉ với cú pháp dao cạo (C# hoặc VB).(giống như php)

  • Lựa chọn cá nhân của tôi sẽ là MVC + Dao cạo, Sự kết hợp tốt nhất!
0

Để thoát khỏi sự nhầm lẫn của biểu mẫu web, MVC, Dao cạo, Trang web và nhiều thứ khác đến từ microsoft, tôi thích html -> javascript -> webapi.