2009-02-19 31 views
8

Chúng tôi đang xem xét sử dụng một ORM và tôi muốn một số ý kiến ​​/ so sánhgì ORM để chạy: telerik Open Access VS cận âm VS LINQ to SQL VS Active Record

Các tiêu chí cơ bản chúng tôi đã cho một ORM là: Dễ sử dụng/configure (đường cong học tập ngắn), linh hoạt, khả năng trừu tượng nó đi, dễ bảo trì

Dưới đây là một danh sách những gì ORM chúng tôi đang xem xét và những gì ấn tượng ban đầu của chúng tôi là

  1. mở Truy cập - có vẻ thực sự dễ dàng đối với các công cụ đơn giản, nhưng dường như không o có rất nhiều tính linh hoạt, chi phí không phải là một vấn đề chúng tôi đã sở hữu nó
  2. Ling to SQL - trông rất đơn giản để sử dụng và cấu hình nhưng còn thiếu một số chức năng
  3. Active Record - NHibernate thực hiện đơn giản
  4. cận âm - trông rất tính năng phong phú, nhưng chưa thực sự chơi với nó nhiều

đây là những ORMs chúng tôi đã xem xét và loại trừ khả năng

  1. Entity vẫn đang trong phiên bản beta
  2. NHibernate có xa để nhiều của một đường cong học tập (chúng tôi không có 3 tuần để tinh tế để học tập nó)

Trả lời

4

Hiện tại chúng tôi đang sử dụng SubSonic (2.0.3) và nó đã là một phao cứu sinh tuyệt đối. Tôi không thể nhấn mạnh đủ mức độ tuyệt vời của nó. BAO GIỜ, chúng tôi đang xem xét chuyển đổi từ nó vì nhiều lý do (có thể là NHibernate hoặc Entity). Dưới đây là thuận và chống của nó tôi:

Ưu điểm:

  • Rất đơn giản để cài đặt và sử dụng.
  • Rất nhiều tuyệt vời & hữu ích, công cụ và tính năng
  • Sử dụng triết lý "quy ước về cấu hình", vì vậy rất ít cấu hình. Nó "chỉ hoạt động". (Miễn là bạn làm mọi thứ theo cách họ muốn ... :))

Nhược điểm:

  • thiết kế cơ sở dữ liệu của bạn được kết hợp rất chặt chẽ với thiết kế tên miền của bạn. Thực hiện thay đổi trong DB của bạn và bạn cần phải thay đổi thiết kế mã/miền của mình.
  • Theo mặc định, SubSonic sử dụng mẫu ActiveRecord cho tất cả truy cập dữ liệu thay vì mẫu Kho lưu trữ, điều này khiến cho việc "trừu tượng hóa nó trở nên khó khăn hơn". (Mặc dù tôi tin rằng với v3.0 bạn có thể hoán đổi các mẫu ActiveRecord mặc định để sử dụng mẫu Repository).
  • Rất nhiều tin đồn bi quan bay vòng quanh về tương lai của SubSonic. Nhưng tin đồn chỉ là: Tin đồn.
3

Đối với tất cả các cặp đồng xu có thể có giá trị:

Nếu bạn không có 3 tuần để tìm hiểu ORM của bạn lựa chọn (tùy theo bạn chọn), bạn có thể phải tìm thấy 3 tuần để le sau đó nó sẽ không vẽ một cái gì đó chính xác như thế nào bạn nghĩ nó sẽ.

Nếu bạn có mô hình phức tạp vừa phải, ORM không nhỏ. Bạn sẽ cần phải biết cách ORM hoạt động như thế nào để bạn có thể nói với nó để sắp xếp mọi thứ theo cách bạn muốn.

Đó là một cách khác để nói "Biết công cụ của bạn", tất nhiên. :)

+0

Đây là lý do tại sao một trong những yêu cầu là khả năng trừu tượng hóa nó đi, đó là lý do tại sao một cái gì đó không hoạt động đúng, chúng tôi có thể tự viết mã. –

1

Hầu hết mọi người sẽ có nhiều kinh nghiệm với một hoặc hai trong số đó, nhưng rất ít người sẽ tiếp xúc với tất cả. Tôi đề nghị một nỗ lực chứng minh khái niệm với mỗi mục yêu thích của bạn. Get mỗi một thiết lập, chi tiêu không hơn n giờ mỗi công cụ ORM (n = tuy nhiên nhiêu thời gian bạn quyết định là hợp lý.) Bạn không cần phải thực hiện toàn bộ mô hình đối tượng của bạn, một tập hợp con chức năng sẽ làm .

Khi bạn hoàn thành, bạn sẽ làm việc trong quá trình thiết lập và một số cách sử dụng tất cả chúng. Sau đó bạn có thể viết ra một hình phạt và nhóm nghiên cứu có thể quyết định cái nào có tỷ lệ đau-to-feature tốt nhất.

0

Tôi rất đồng ý với BryCoBat (upvoted). Tôi cũng muốn thêm rằng nếu bạn đã có quyền truy cập mở, thì công ty rất có thể có người ở đâu đó trong nội bộ đã rất thoải mái với nó, bao gồm các ví dụ mã bạn xem trong miền của riêng bạn cho cả hai nhiệm vụ tầm thường và không tầm thường. Nói cách khác: sử dụng những gì bạn biết.

+0

chúng tôi có quyền truy cập mở vì chúng tôi sử dụng các điều khiển rad và có bộ Telerik đầy đủ –

6

Tôi muốn nói bạn nên xem xét DataObjects.NET (http://www.x-tensive.com). Đó là tính năng phong phú và khá dễ sử dụng. Nó, mặc dù, hoàn toàn buộc bạn vào mô hình đối tượng của bạn, vì nó quyết định những gì cấu trúc cơ sở dữ liệu nên được dựa trên những gì mô hình đối tượng của bạn trông như thế nào. Điều đó đang được nói, nếu bạn muốn để có thể bỏ qua sự tồn tại của cơ sở dữ liệu, nó khá tốt đẹp. Chúng tôi đã sử dụng nó trong nhiều năm và đã có thành công lớn.

1

Sử dụng mẫu T4 để tạo mẫu của riêng bạn. Có một số mẫu đã có sẵn trên internet, đặc biệt là các mẫu T4. Kiến thức về T4 cũng sẽ cho phép bạn viết ra các mục có thể có phạm vi lớn hơn macro, nhưng phạm vi nhỏ hơn viết một ứng dụng tùy chỉnh để tạo tập lệnh bạn cần. Hy vọng điều này sẽ hữu ích!

0

Nếu bạn không sử dụng các điều khiển Telerik, LINQ to SQL phải là lựa chọn để học nhanh - có số lượng lớn các hướng dẫn, video, sách khác nhau trên web.