2009-02-13 31 views
11

Chúng tôi có một ứng dụng tương đối lớn được gắn chặt vào Firebird (các thủ tục được lưu trữ, dạng xem, v.v.). Chúng tôi hiện đang nhận được rất nhiều yêu cầu để hỗ trợ cơ sở dữ liệu bổ sung và chúng tôi cũng muốn di chuyển rất nhiều chức năng từ máy khách đến máy chủ.Lời khuyên khi chuyển sang kiến ​​trúc Delphi đa tầng

Có vẻ như đây là thời điểm tốt để chuyển sang kiến ​​trúc cấp 3 (4). Chúng tôi đã xem xét DataSnap 2009 và RemObjects SDK/DataAbstract. Cả hai dường như họ sẽ làm công việc, nhưng có bất kỳ ưu điểm/nhược điểm nào chúng ta nên tìm kiếm không? Có bất kỳ khung công tác nào khác mà bạn có thể đề xuất không?

Chúc mừng, Paul

+1

Delphi được tích cực phát triển. – Harriv

+1

Điều gì là sai với Delphi? – gabr

+3

John, tại sao bạn không trả lời câu hỏi, và thay vào đó đăng một số điều vô nghĩa? Delphi được phát triển rất tích cực, vừa phát hành một phiên bản mới cách đây vài tháng, và có lộ trình được lên kế hoạch cho các bản phát hành trong tương lai. Tại sao gửi FUD không đúng? –

Trả lời

3

Trong quá trình di chuyển đến một ứng dụng nhiều tầng bạn có thể xem xét sử dụng một giao thức vận chuyển giữa các lớp, đó là ngôn ngữ/công nghệ độc lập (như webservices, (tôi nghĩ rằng tha remobjects hỗ trợ đó)).

Điều này có thể làm cho việc triển khai lại một lớp đơn giản hơn sau này (như sau này bạn phải tạo một phiên bản ứng dụng khách khác trong trình duyệt/java/silverlight).

4

Tôi có thể khuyên bạn nên sử dụng các thành phần phần mềm trung gian KBM từ Components4Developers. Có một chút của một đường cong học tập nhưng chúng rất linh hoạt và nắm giữ tốt được sử dụng trong điều kiện thế giới thực.

Comment from a user (http://www.components4programmers.com/usercomments/commentfromapowerusertoaquestion.htm)

+0

đây là video hay về KBM Middleware http://video.codegear.com/CodeRage2007Archives/Day3/KimMadsen.zip –

+0

chất lượng âm thanh và hình ảnh rất kém trên video đó. Tôi thích cách thảo luận về những lợi thế và bất lợi của 1 tầng, 2 tầng và 3 tầng chỉ có 3 tầng không có bất lợi :) – kjack

4

Thay đổi ứng dụng của bạn để nhiều tầng lớp với khuôn khổ mới (RM, DS, kbmMW hay bất cứ những), sẽ làm cho rất nhiều thay đổi trong kiến ​​trúc ứng dụng của chúng tôi, tôi nên đi với điều này trong tương lai, nhưng bạn có thể đạt được sự hỗ trợ cho nhiều cơ sở dữ liệu, với các sản phẩm khác như

UniDac từ DevArt (Các thành phần tốt nhất cho cơ sở dữ liệu có kết nối trực tiếp). AnyDac (từ cùng một công ty người cung cấp RemObjects. SqlDirect (Có hỗ trợ cho 9 MajorDB và cũng ODBC). ZeosDB (mã nguồn mở).

bằng một trong những thành phần trên, sẽ cung cấp cho bạn hỗ trợ cho hầu hết các cơ sở dữ liệu lớn, bên cạnh nó sẽ không làm cho bạn doig rất nhiều thay đổi, và trong một số trường hợp, bạn chỉ cần thay thế các thành phần cơ sở dữ liệu cũ bằng các thành phần mới, và có thể thay đổi một số thuộc tính. chỉ hỗ trợ nhiều cơ sở dữ liệu hơn, nhưng nó sẽ tách logic nghiệp vụ của bạn khỏi lớp trình bày, do đó bạn có thể có nhiều lớp trình bày cho ứng dụng của mình như web giao diện hoặc thiết bị thông minh.

Nhưng quan trọng nhất trong kiến ​​trúc Multi-Bậc, bạn sẽ có một hệ thống mở rộng các phát triển hơn so với những gì các cơ sở dữ liệu bạn đang sử dụng có thể xử lý các kết nối, bên cạnh những lợi ích khác, như sử dụng các ngôn ngữ khác để viết các ứng dụng client.

+0

Tôi bỏ phiếu cho DataAbstract với AnyDAC DAD. Hỗn hợp rất chắc chắn. – oodesigner

1

Đối với kiến ​​trúc đa tầng Tôi cũng khuyên bạn nên kiểm tra middleware nhắn theo định hướng.

Với phần mềm trung gian hướng tin nhắn, tích hợp ứng dụng đa ngôn ngữ và đa nền tảng có thể được triển khai bằng cách sử dụng mô hình truyền thông ngang hàng hoặc xuất bản/đăng ký. Hệ thống nhắn tin được kết nối lỏng lẻo, không đồng bộ và đáng tin cậy. Ví dụ, chúng là các thành phần cốt lõi trong các máy chủ ứng dụng Java (tm) như JBoss.

Đối với Firebird, Gần đây tôi đã viết một bài viết trên blog thay thế sự kiện Firebird cơ sở dữ liệu, hạn chế của họ và cách để thay thế chúng với các giải pháp dựa trên thông điệp môi giới (trong đó có sẵn như mã nguồn mở):

(từ chối trách nhiệm: Tôi là nhà phát triển thư viện khách Delphi và Free Pascal dành cho nhà môi giới thư nguồn mở).

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