Tôi cần thu thập một số thông tin về các giải pháp ORM hiện có. Xin vui lòng viết về bất kỳ ngôn ngữ lập trình nào.Các khuôn khổ ORM
Bạn có thể nói về khung ORM tốt nhất mà bạn từng sử dụng và lý do tại sao nó tốt hơn những người khác?
Tôi cần thu thập một số thông tin về các giải pháp ORM hiện có. Xin vui lòng viết về bất kỳ ngôn ngữ lập trình nào.Các khuôn khổ ORM
Bạn có thể nói về khung ORM tốt nhất mà bạn từng sử dụng và lý do tại sao nó tốt hơn những người khác?
Tôi đã sử dụng NHibernate và Entity Framework.
Phiên bản khung thực thể ổn định hiện tại rất chưa trưởng thành. Quá khó hoặc không thể thực hiện các tác vụ thông thường. Kiểm tra mã của bạn cũng rất khó vì bạn không thể tách riêng các thực thể khỏi các lớp truy cập dữ liệu của bạn. Nhưng nó hoàn toàn tích hợp với ide visual studio. Thiết lập dễ dàng và cập nhật tất cả các mô hình từ cơ sở dữ liệu chỉ mất vài giây. Phiên bản sắp tới của EF (4.0) sẽ giải quyết một số vấn đề này.
NHibernate khá mạnh mẽ. Nó hỗ trợ các đối tượng clr cũ, vì vậy bạn có thể làm việc với các thực thể đơn giản. Cấu hình cung cấp kiểm soát tuyệt vời chi tiết tuyệt vời. Các khả năng của khung được thỏa mãn và nó có một cộng đồng lớn và năng động và tài liệu tốt. Thiết lập và cập nhật các thực thể là một chút khó khăn vì bạn phải sử dụng các trình tạo máy tìm kiếm cơ sở dữ liệu của bạn và tạo ra các thực thể và các tệp xml. Nó có thể là khó khăn để tìm một máy phát điện hoặc một mẫu hoàn toàn phù hợp với nhu cầu của bạn. Nhưng một khi bạn thiết lập tất cả mọi thứ, bạn sẽ thích nó.
Tôi thấy LINQ to SQL là một giải pháp khá đơn giản. Lần đầu tiên tôi sử dụng nó, tôi muốn nói rằng tôi đã có một ORM cơ bản làm việc trong vòng một vài giờ, và đã tạo ra các truy vấn LINQ với nó.
Microsoft đã thêm một ORM (Entity Framework), mà tôi đã từng nghe là phức tạp hơn nhưng có thể hữu ích cho các ứng dụng phân phối rất phức tạp với nhiều nguồn dữ liệu, vv
Nói chung tôi thấy LINQ to được một cách dễ dàng và nhanh để sử dụng ORM.
Tôi đã xem xét Telerik Open Access trong vài tháng qua, trong ORM này là một nỗi đau để làm việc, nó được quảng cáo là có hỗ trợ LINQ rộng rãi nhưng thực tế nhiều tính năng LINQ bạn thường mong đợi không phía máy chủ làm việc và được thực hiện trên máy khách. Tôi cũng gặp vấn đề khi sử dụng nhiều điều kiện trong mệnh đề where, xem question cuối cùng của tôi. Dưới đây là một vài điều mà tôi tìm thấy
Rohan
Đối với hồ sơ, tôi nghĩ rằng đánh giá này của OpenAccess ORM đã lỗi thời và không chính xác. OpenAccess có hỗ trợ LINQ hoàn chỉnh, ngang hàng với các .NET ORM khác, một Visual Designer phong phú, cùng với hỗ trợ cho các khung nhìn, các procs được lưu trữ và các tính năng vượt ra ngoài các hệ thống như EF và NH (như Domain Service Wizard). Tôi muốn khuyến khích bạn kiểm tra các phiên bản mới nhất để so sánh chính xác hơn: http://www.telerik.com/products/orm.aspx – Todd
Bạn nhận ra rằng điều này đã được viết lại vào năm 2009? –
LINQ2SQL là tốt đẹp, EF có ý nghĩa, nhưng rất phức tạp và SQL Server định hướng. NHibernate là đặc biệt và Telerik OpenAccess (hoàn toàn .NET/Visual Studio) có một bộ rộng các chức năng và hỗ trợ chuyên nghiệp.
Kể từ khi tôi biết sản phẩm tôi có thể nhận xét về mối quan tâm của Rohan của:
Kiểm tra các trang web Telerik để tìm khách hàng hài lòng và cảm thấy tự do sử dụng diễn đàn telerik và tài nguyên hỗ trợ cho bất kỳ câu hỏi nào.
-Peter
bạn rõ ràng là một nhân viên bán hàng Telerik. Tôi cũng đã sử dụng Telerik OpenAccess ORM và không muốn nó trên kẻ thù tồi tệ nhất của tôi. TCP/IP là bắt buộc để xác thực ORM. Tôi không thể xây dựng một bản phát hành ứng dụng khách bởi vì ORM yêu cầu quyền truy cập TCP/IP vào máy chủ. Điều này là không tốt vì nó buộc tôi phải trên trang web để làm một xây dựng. Nếu bạn biết cách khác để xây dựng các gói triển khai, bên ngoài mạng, vui lòng cho tôi biết. Nếu không, hãy sử dụng nHibernate. Tôi thực sự khuyên bạn nên nHibernate hơn bất cứ thứ gì khác mà tôi từng sử dụng. – D3vtr0n
Dọn dẹp hồ sơ, Devtron, tôi nghĩ bài đánh giá này dựa trên phiên bản OpenAccess ORM rất cũ. Tất cả các phiên bản hiện tại đều hỗ trợ tất cả các phương thức truyền thông SQL Server (TCP/IP, tên có tên, trong bộ nhớ). Việc hỗ trợ trình điều khiển mà tàu ra khỏi hộp với OpenAccess vượt quá mà tàu với NHibernate, quá. Kiểm tra các phiên bản mới nhất để có chế độ xem cập nhật: http://www.telerik.com/products/orm.aspx – Todd
Im new to OpenAccess ORM và chúng tôi đang sử dụng hai sản phẩm. Báo cáo và OpenAccess. Tôi nghĩ có một số tính năng mà mọi người đã bỏ lỡ.
sử dụng nó là dễ dàng hơn và các diễn đàn là khá hữu ích.
Với ORM có nhiều khả năng, tất cả phụ thuộc vào những gì bạn muốn.
Là người lập bản đồ ORM thực, tôi mạnh mẽ recomment NHibernate và Fluent NH ánh xạ. Bạn cần rất nhiều nghiên cứu để đặt cùng một kiến trúc đẹp, nhưng sau đó không có gì đứng theo cách của bạn. Với sự thỏa hiệp tối thiểu, bạn sẽ có được sự linh hoạt thực sự.
EF6x (core không phải là prod. ready IMHO) được gọi là ORM, nhưng nó tạo ra gần hơn với DAL. Có một số điều bạn không thể làm hiệu quả với EF6. Tuy nhiên, đây là công cụ yêu thích của tôi cho một mô hình đọc, trong khi tôi kết hợp nó với NHibernate (nơi NH tôi sử dụng cho một mô hình DDD/ghi).
Hiện tại để hiệu suất - nó luôn luôn chuyên nghiệp và chống. Nếu bạn thâm nhập sâu hơn vào kiến trúc ORM (xem bài viết của tôi: avoid ORM bad habits) thì bạn sẽ tìm thấy những cách trực quan để làm cho nó nhanh hơn. Đây là bài viết khác của tôi về cách làm cho EF6x 5x nhanh hơn (ít nhất là cho các tình huống đã đọc): EF6.x 5x faster
Không có điều gì như ORM "ngôn ngữ độc lập" ngoại trừ trong .net, nhưng thậm chí nó sẽ chỉ hoạt động trên các ngôn ngữ .net) – Nir
Cảm ơn các bạn, Tôi thực sự không phải là điều tôi muốn nói. –
Với điều này quá mơ hồ và chủ quan, tôi bị cám dỗ để biến nó thành CW ... bất kỳ suy nghĩ nào? –