8

Tôi đang làm việc trên một dự án ASP.NET MVC, nơi chúng tôi đã quyết định sử dụng Fluent nHibernate cho dataccess. Để kích hoạt khớp nối lỏng lẻo, chúng tôi đi cho một mô hình IoC/DI. Câu hỏi của tôi là công cụ IoC cần thực hiện. Tôi đã cố gắng để tìm thấy sự khác biệt giữa windsor, ninject, spring, structuremap và unity, nhưng thật khó để thấy được những lợi ích mà mỗi người cung cấp. Whats kinh nghiệm của bạn?ASP.NET MVC + fluent nNibernate, công cụ IoC nào?

+3

FYI, lần sau bạn đặt câu hỏi như thế này, cụm từ sẽ giống như sau: "Tôi nên tìm gì trong IoC để chơi tốt với ASP.NET MVC + fluent nHibernate?" Bạn sẽ nhận được câu trả lời tốt hơn. –

Trả lời

6

tôi sử dụng StructureMap và nó rất dễ sử dụng. Cá nhân tôi không thích cấu hình bằng cách sử dụng xml và StructureMap làm cho nó dễ dàng để cấu hình bằng cách sử dụng mã. Nó cũng rất dễ dàng để chuyển đổi hồ sơ khác nhau nếu bạn cần phải chuyển đổi triển khai.

4

Tôi sử dụng Windsor và tôi không có gì để khiếu nại. Dễ sử dụng, có thể mở rộng khi bạn cần và rất nhiều thông tin nếu bạn gặp khó khăn. Nhưng tôi không nghĩ nó quan trọng đến mức bạn chọn loại container nào. Tất cả chúng bạn đề cập đến có các tính năng phổ biến và cũng có adapter cho mvc availiable trong dự án mvccontrib. Chuyển đổi sang một vùng chứa khác sẽ không khó nếu bạn quấn vùng chứa trong một lớp riêng, đó là một thực hành tốt.

1

Tôi đã sử dụng Windsor và thích nó. Có một cơ sở được xây dựng để sử dụng NHibernate cho phép cấu hình đơn giản việc ghi nhật ký và các kết nối, v.v.

Nếu bạn định sử dụng FluentNhibernate, bạn phải thông báo cho cơ sở Windsor biết lắp ráp có ConfigurationBuilder. Mike Hadlow đã viết rất nhiều về điều này cộng với nhiều người khác trên Windsor và NHibernate: http://mikehadlow.blogspot.com/2009/01/integrating-fluent-nhibernate-and.html

+0

Tôi đã đi cho windsor và kiến ​​trúc sắc nét. Nó hoạt động hoàn hảo. Tôi cũng đã làm một số thử nghiệm với StructureMap, và không có sự khác biệt lớn. Khi sử dụng Microsoft thực hành tốt nhất ServiceLocator thật dễ dàng để thực hiện một chuyển đổi sau này. – bondehagen

0

Tôi sử dụng Munq nhẹ và nhanh và là cách đơn giản để thêm DI Container vào dự án MVC3 qua Nuget. Cho đến bây giờ tôi đã không tìm thấy bất kỳ cần phải di chuyển đến một khuôn khổ khác nhau - Munq đã rất đầy đủ.

PM> install-package Munq.MVC3 

Điều này bổ sung App_Start\MunqMvc3Startup.cs vào dự án và đây là nơi phụ thuộc phải được đăng ký.

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