2009-06-13 29 views
13

Tôi muốn tạo một ứng dụng bằng ASP.NET MVC, chạy dưới chế độ đơn âm 2.4 (biên dịch sẽ được thực hiện trên hộp Windows). Có ai may mắn với điều này không? Dưới đây là những gì tôi đã cố gắng:ASP.NET MVC 1 và 2 trên Mono 2.4 với Fluent NHibernate

  1. ASP.NET MVC trên mono không nơi nương tựa mô hình bền bỉ, và sử dụng nhaml là công cụ xem
  2. S # AML kiến ​​trúc, mà là một khuôn khổ IMHO khá tốt, nhưng nó phụ thuộc quá nhiều vào công cụ, mà không hoạt động tốt dưới mono (như windsor)

Phần đầu tiên hoạt động tốt, tôi không gặp phải bất kỳ vấn đề lớn nào. Nhưng tôi không thể làm việc thứ hai. Có vẻ như nó phụ thuộc vào Castle.Windsor phá vỡ toàn bộ hỗ trợ mono (nhưng cũng có thể có các phần khác). Vì vậy tôi quyết định tạo một khung thay thế, vay mượn một số ý tưởng của kiến ​​trúC# arp, nhưng được thiết kế để làm việc dưới dạng đơn (và nếu tôi có thể làm điều này, tôi sẽ giải phóng nó cho cộng đồng tất nhiên). Bộ điều khiển và phần xem đang hoạt động tốt (mặc dù không có nhiều phép thuật ở đây), nhưng tôi có một số câu hỏi trước khi bắt đầu công việc trên phần kiên trì:

  • Phiên bản NHibernate nào đang hoạt động dưới dạng đơn? Tôi đã nghe 1,2 đang làm việc tốt. Phiên bản 2.0.1/2.1 beta có hoạt động dưới dạng mono không?
  • Fluent.NHibernate và NHibernate.Linq có hoạt động dưới chế độ mono không? (đối với sau này có vẻ như nó cần một số phụ thuộc mà không avaialable trong mono)
  • Có bất kỳ lựa chọn thay thế tốt cho sự hỗ trợ kiên trì cho NHibernate dưới mono?

câu hỏi khác:

  • Có bất kỳ khuôn khổ có mono + kiên trì + asp.net hỗ trợ MVC đã hay tôi là người đầu tiên nghĩ về điều này?
  • Nếu bạn đã thực hiện việc này: ý kiến ​​của bạn về tính ổn định/khả năng sử dụng là gì?

Cảm ơn câu trả lời

EDIT: Cập nhật khuôn khổ để hỗ trợ ASP.NET MVC 2: http://shaml.sztupy.hu/

+0

Thế nào là # aml, shaml ??? – AnthonyWJones

Trả lời

4

OK. Tôi bắt đầu vào một dự án mới kết hợp tốt nhất từ ​​Kiến trúc S # arp với các công cụ, hoạt động trên mono. Thay vì T4Toolkit, nó sử dụng một kịch bản ruby ​​để thực hiện công việc tạo ra, giống như với các đường ray hoặc merb.

Để sử dụng cài đặt các viên ngọc shaml từ github:

gem install shaml 

Sau đó tạo một ứng dụng mới:

shaml generate app AppName 

Và tạo nguồn lực:

shaml generate resource NewRes "name:string;date:DateTime" 

S trang chủ dự án Kiến trúC# AML : http://shaml.sztupy.hu/

Dự án GitHub: http://github.com/sztupy/shaml/tree/master

+0

Chỉ cần thử nghiệm: nó biên dịch theo đơn âm – SztupY

9

Tôi đang sử dụng mono 2.4 để chạy một ứng dụng + cửa sổ MVC dịch vụ asp.net. Khả năng tương thích rất tốt. Có một số lỗi và sự khác biệt so với các cửa sổ nhưng một khi bạn tìm hiểu những gì họ đang được nó dễ dàng hơn (có thể có đau lúc bắt đầu!)

Tôi đang sử dụng NHibernate (2.1) FluentNhibernate, StructureMap, NBehave, Moq và id mở lib và tất cả chúng dường như hoạt động như mong đợi.

Vì sự ổn định, vì tôi đã giải quyết các lỗi chính trong mã của mình, tôi chưa gặp bất kỳ sự cố nào.

Khả năng sử dụng, tốt nó là một nền tảng hoàn toàn khác, do đó bạn cần phải đến với nó với một tâm trí cởi mở và chuẩn bị để lại phía sau cửa sổ cách .. tin tốt là một khi bạn làm điều đó trở nên dễ dàng hơn. Apache là đẹp hơn rất nhiều so với IIS và cấu hình và quản lý một hộp linux chỉ đơn giản là dễ dàng hơn các cửa sổ.

Tôi rất vui vì tôi đã chọn đơn ..xin lỗi điều này đang bắt đầu âm thanh như một ổ đĩa PR - nhưng tôi chỉ thực sự hài lòng với nó !!

+0

Bạn có gặp vấn đề gì với AntiForgeryTokens không? Đối với tôi, phương thức trợ giúp đưa ra một NullPointerException trong khi sắp xếp thứ gì đó trong không gian tên System.Web.UI ... Btw. hiện tại đây là lỗi duy nhất tôi gặp phải. – SztupY

+0

Không thể nói là tôi đã thử chúng! Tôi không nhận được nhiều đầu vào của người dùng nên không hề xem xét việc sử dụng chúng. –

+0

Bạn đã thử sử dụng NHibernate.Linq (mới trong 2.1) trong ứng dụng của bạn? Có vẻ như yêu cầu System.Data.Serviecs và System.Data.Entity không có trong Mono. Tôi không thể làm cho nó chạy. Tôi đang xây dựng trang web MVC của tôi trên Visual Studio và triển khai cho Apache. – mbp

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