2009-03-30 20 views
24

Tôi đang tìm một công cụ tạo mẫu cho .NET/C# để tạo thông báo qua email trong ứng dụng của tôi. Tôi đọc khoảng NVelocity trong quá khứ và nghĩ rằng nó sẽ phù hợp với nhu cầu của tôi, nhưng có vẻ như dự án này đã chết.Dự án NVelocity có chết không? Có lựa chọn thay thế nào không?

Bạn vẫn được đề nghị sử dụng NVelocity cho mục đích đó hay bạn có thể đề xuất bất kỳ giải pháp thay thế nào không?

Lưu ý: Tôi tìm thấy một số động cơ templating khác, nhưng đây chủ yếu là "công cụ xem" cho ASP.NET MVC (Brail, NHaml, v.v.). Nhưng tôi nghĩ đây không phải những gì tôi đang tìm kiếm.

Trả lời

26

Dự án Castle đã phân chia dự án và đã duy trì nó và phát hành phiên bản 1.1.1 mới nhất vào ngày 10 tháng 12 năm 2010. Chi tiết khác có thể tìm thấy tại the Castle Projects NVelocity site. Họ cũng đã thực hiện một số cải tiến cho nó, chi tiết trong số đó có thể được tìm thấy ở trang on their NVelocity improvements. Dự án trông giống như nó đã chết và trong MonoRail 3, nó đã được thay thế bởi Castle Blade dựa trên Razor.

Nếu bạn đang tìm kiếm giải pháp thay thế, thì tôi sẽ đề xuất số Razor view engine từ ASP.Net MVC3 hoặc Spark View Engine.

Dự án mã nguồn mở RazorEngine cho phép bạn sử dụng công cụ Razor View bên ngoài ASP.Net MVC hoặc Trang Web để bạn có thể sử dụng nó để tạo email mẫu.

+0

Castle đã có một phiên bản NVelocity vào tháng Mười Hai năm 2010. – mattmc3

+4

btw, đây là bây giờ một liên kết chết và theo trang của họ nó bây giờ là một "dự án lưu trữ" chỉ ra nó thực sự là chết – Earlz

+0

Tôi đang làm việc với ASP.NET 2.0 và cần một thư viện mẫu. Tôi chỉ nên đi với bản gốc 'NVelocity' hoặc là có một lựa chọn tốt tương thích với ASP.NET 2.0 (không phải MVC 2!). –

-1

Tôi khuyên bạn nên sử dụng XSLT để tạo khuôn mẫu. Vâng, nó đòi hỏi nhiều thời gian hơn để tìm hiểu công nghệ, nhưng sau đó bạn có nhiều giải pháp mẫu linh hoạt hơn bất cứ thứ gì khác.

+0

Trả lời này liệt kê các ưu và nhược điểm của việc sử dụng [Giao diện người dùng định hướng XML/XSLT cho một sản phẩm doanh nghiệp trong hơn 5 năm] (http://stackoverflow.com/a/847342/819887) và trong cùng một câu hỏi [câu trả lời này kết thúc nếu bạn cam kết với xslt và bạn có dữ liệu phức tạp đòi hỏi một quá trình kết xuất phức tạp thì hãy đi với nó nếu không thì không đi với nó.] (http://stackoverflow.com/a/848596/819887) – surfmuggle

3

Bạn có thể sử dụng độc lập brail hoặc nhaml để tạo email html.

Cốt lõi của nhaml (không chắc chắn về brail ??) không có tham chiếu đến MVC hoặc ASP.

Tôi đã sử dụng nhaml để tạo tài liệu XPS để in và báo cáo từ ứng dụng biểu mẫu giành chiến thắng.

Nếu nó phải là văn bản có lẽ http://www.stringtemplate.org/

Và đây là một câu hỏi tương tự How to use Brail as a stand-alone general purpose templating engine (like NVelocity)?

1

Bạn có thể sử dụng bản gốc (và cập nhật thường xuyên) phiên bản Java của Velocity trong Net bằng cách sử dụng IKVM để chuyển đổi nó đến một hội đồng. Tôi đã sử dụng vận tốc thành công theo cách này để tạo mã dưới .Net. Bạn cũng có thể xem StringTemplate. Có các phiên bản java và C# của StringTemplate. Bạn có thể tìm thấy một hướng dẫn nhỏ nhanh về cách sử dụng Vận tốc trong .Net here. Tôi khuyên bạn nên xem xét kỹ lưỡng tại StringTemplate tuy nhiên, vì tôi nghĩ rằng nó là một công cụ mẫu sạch (tôi là một chuyển đổi gần đây).

3

Tôi không thấy lý do nào không sử dụng NVelocity (ngã ba dự án Castle). Đó là ổn định và nhu cầu cụ thể của bạn (mẫu email) có lẽ không phức tạp như những người từ các dự án khác sử dụng NVelocity, vì vậy bạn không nên mong đợi bất kỳ vấn đề.

3

Có dự án trên codeplex.

http://www.codeplex.com/NVelocity

Mô tả dự án: NVelocity là một cảng rất propular mở java nguồn mẫu enginee khuôn khổ, vận tốc 1.6. NVelocity là một tinh khiết.Thư viện Net được viết bằng C# hiện đang nhắm mục tiêu Framework phiên bản 3.5.

Đăng ký mã nguồn ban đầu dường như trực tiếp từ svn.castleproject.org.

Người tạo dự án CodePlex (tên người dùng: TerryLiang) cũng đã tạo một tài khoản vào tháng 8 từ nLucene. Đối với dự án đó, anh ta có đã thực hiện khoảng 50 lần đăng ký kể từ đó, vì vậy có lẽ anh ấy đang lên kế hoạch thực hiện một số công việc nghiêm trọng về dự án đó là .

3

Không có gì sai với NVelocity ngoại trừ việc khó tìm được phiên bản cập nhật nhất của dự án. Google thường bật liên kết sourceforge cũ làm lần truy cập đầu tiên và liên kết mã hóa là liên kết phổ biến nhất tiếp theo. Nơi để lấy nó là từ Castle như Pervez Choudhury đã đề cập. Chúng tôi sử dụng phiên bản Castle of NVelocity tại nơi làm việc, và nó rất tuyệt.

Có một tùy chọn khác xuất hiện trong những năm kể từ khi câu hỏi này được hỏi lần đầu tiên và đó là T4 của Microsoft. Hầu hết mọi người nghĩ rằng T4 là một bộ tạo tiền biên dịch vì đó là cách nó được phát hành lần đầu tiên, nhưng thực tế bây giờ bạn có thể sử dụng nó để tạo ra một lớp máy phát và tạo ra thế hệ động trong thời gian chạy. Nó được gọi là mẫu T4 đã qua xử lý và bạn có thể đọc thêm về nó here. Ưu điểm là nó đã được xây dựng trong Visual Studio, do đó bạn không cần phải làm bất cứ điều gì đặc biệt để bắt đầu.

3

Vì NVelocity dường như đã chết (một lần nữa), tôi sẽ đề xuất DotLiquid. Không thể nói nhiều vì bây giờ tôi vẫn đang đánh giá nó, nhưng nó chắc chắn trông đầy hứa hẹn (và xây dựng như thư viện MonoTouch/MonoDroid cho những gì tôi quan tâm).

CẬP NHẬT [ngày 11 tháng sáu năm 2012]

Ràng buộc của việc có "an toàn" lớp/bộ sưu tập như các mô hình có thể là một nguyên nhân chính gây đau đầu. Khi đánh giá động cơ này, bạn có thể muốn bắt đầu từ điểm này.

2

Tôi không thể upvote Sorin cho DotLiquid, vì vậy chỉ muốn thêm nhận xét của tôi - có vẻ như một nền tảng tuyệt vời đang được tích cực phát triển.

Và với tính năng mà họ có trong phiên bản thân (không phải trong tho dll phát hành), bạn có thể sử dụng pocos mà không cần phải kế thừa từ bất kỳ lớp cơ sở nếu bạn đăng ký họ theo cách này:

foreach (var type in {Assembly}.GetTypes()) 
    Template.RegisterSafeType(type, type.GetProperties().Select(p => p.Name).ToArray()); 

và điều này giải quyết những cơn đau đầu mà Sorin đề cập.

StringTemplate cũng là một điều tuyệt vời, nhưng quá nghiêm ngặt và hạn chế, các mẫu quá tinh khiết xem và nó là inpractical sử dụng ...

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