2010-01-20 7 views
9

Tôi sẽ xây dựng một Ứng dụng kết nối đôi khi trong nhà (OCA). Bạn sẽ đề xuất những công nghệ nào.Công cụ để tạo OCA (Ứng dụng kết nối đôi khi)

Dưới đây là thông số của tôi:

  1. .NET Shop (3.5SP1)
  2. C# cho mã đằng sau (Winform, WPF, Silverlight)
  3. SQL Server Backend (2005 hoặc có thể 2008 đang chờ phê duyệt)
  4. Nhà phát triển Solo
  5. người dùng cuối Solo SQL Quản trị
  6. Low Tech
  7. băng thông thấp tới 5 văn phòng chi nhánh
  8. Đây là một ứng dụng LOB nhưng không phải là một POS.
  9. Đa số người dùng có máy tính xách tay họ truy cập vào Trang chủ của Thành viên
  10. Dữ liệu cho Ứng dụng này được lưu trữ trong 5 Cơ sở dữ liệu riêng biệt, mặc dù trong một phiên bản SQL.

Tôi đang tìm các đề xuất cụ thể về con đường để chọn. Hợp nhất các nhà cung cấp đồng bộ hóa cơ sở dữ liệu khung nhân bản hoặc đồng bộ hóa? SQL Express hoặc SQL CE tại thuê bao? Tôi có thể sử dụng LINQ to SQL cho DAL không?

Ứng dụng 'Ngoại tuyến/Thoát khỏi trình duyệt' của Silverlight 'Example Here, có khả thi không?

Đây là ứng dụng doanh nghiệp LỚN đầu tiên của tôi nên mọi nhận xét có kinh nghiệm đều được chào đón.


Như được yêu cầu ở đây là một số thông tin bổ sung về loại Dữ liệu. Người dùng của tôi là Y tá và Nhân viên Xã hội, những người đến nhà của Thành viên và tạo "Kế hoạch" hoặc "Đánh giá Đánh giá Sức khoẻ" cho họ. Đây là những thứ như Danh sách thuốc hoặc Danh sách các "Nhà cung cấp" hiện tại. Các bước để đạt được mục tiêu của các thành viên hoặc danh sách hiện có/quá khứ của Chẩn đoán. Những thứ như thế.

Cũng là tên thành viên, địa chỉ, số điện thoại thông thường, v.v. Chủ yếu là ứng dụng Lưu trữ và truy xuất dữ liệu tạo điều kiện báo cáo. Rất ít "chế biến" diễn ra và y tá và nhân viên xã hội làm việc trong các nhóm được chỉ định thành viên vì vậy tôi thường có rất ít chéo hoặc xung đột dữ liệu tiềm năng. Y tá và SW cũng chịu trách nhiệm khu vực khác nhau của các MCP (viên làm trung tâm Kế hoạch)


câu hỏi bổ sung; Là Sync Framework thực sự chỉ là một lựa chọn khả thi nếu tôi có thể sử dụng SQL 2008? Có vẻ như vậy do sự thay đổi theo dõi vv .... suy nghĩ?

+0

Vui lòng chia sẻ một số thông tin về loại dữ liệu bạn sẽ làm việc. Cụ thể, bạn đang mong đợi loại khối lượng và điều chỉnh nào trong mỗi hướng (giữa người dùng và máy chủ)? –

+0

opps, bỏ lỡ phần khối lượng. Chúng tôi có 300 nhân viên và 5000 thành viên. Họ có xu hướng làm việc trên nhiều "kế hoạch" một ngày. –

+0

@RefractedPaladin Bạn có thực hiện điều này cuối cùng không? Tôi đang xem xét thực hiện một chương trình tương tự. Bất kỳ con trỏ? –

Trả lời

4

Khi bạn giải quyết vấn đề về phát hiện thay đổi và chuyển động dữ liệu, mọi thứ khác đều không quan trọng. Nói cách khác, các công nghệ như WPF, Silverlight, Forms và thậm chí WCF là trực giao đối với vấn đề chính của bạn và sự lựa chọn của bạn nên dựa trên sở thích và kinh nghiệm cá nhân của bạn. Các hạt cứng thực sự để crack là làm việc bị ngắt kết nối và đồng bộ hóa các thay đổi. Mà lá hai out-of-the-box con đường: Synch Framework hoặc nhân rộng.

Tôi có thể nói, đối với kịch bản của bạn, chắc chắn là Synch Framework. Hợp nhất nhân rộng, giống như tất cả các hình thức sao chép, được thiết kế cho các hệ thống được kết nối liên tục với ngắt kết nối liên tục. Và sự sao chép cực kỳ quan trọng chỉ có thể làm việc trên các tên tĩnh. Máy tính xách tay kết nối từ nhiều điểm nóng và ISP có thói quen khó chịu khi thay đổi tên FQ bằng mỗi kết nối. Nhân rộng có thể khắc phục điều này chỉ khi một VPN sắp xếp được sử dụng và VPN thường là một vấn đề hỗ trợ chính. Nhân rộng không chỉ được thiết kế cho tính di động cao của các hệ thống OCA.

Đồng bộ khung sẽ buộc bạn phải trả lại SQL 2008 vì cần phải Change Data Capture hoặc Change Tracking, cả hai đều là tính năng chỉ SQL 2008.

Bạn vẫn sẽ có rất nhiều vấn đề khó giải quyết trước (xác thực, phiên bản và nâng cấp, các chính sách giải quyết xung đột dữ liệu, bảo mật dữ liệu trên máy khách để giảm tai nạn phương tiện truyền thông vv vv)

+0

Có thể là một câu hỏi ngu ngốc nhưng với 'Sync Framework' tôi vẫn có thể sử dụng' LINQ To Sql' làm DAL của tôi? –

+0

Máy khách Khuôn khổ Đồng bộ hóa điển hình là SQL Server CE và LINQ2SQL chỉ dành cho SQL Server 'đúng' (tức là * không * CE). Thay vào đó, bạn có thể sử dụng LINQ to EF. Bạn cũng có thể chọn triển khai SQL Express trên máy khách và điều đó sẽ làm việc với cả Synch Framework * và * linq thành sql. Trong đôi giày của bạn, tôi sẽ chọn linq 2 Entity Framework và SQL Server CE trên các máy khách. Tất nhiên, tôi không biết tất cả các yêu cầu của bạn. –

+0

Tôi không quan tâm LINQ to EF phần đặc biệt là khi cân nhắc chống lại thêm 'sưng lên' của Express vs CE. Trên một điểm khác; Liệu nó có tạo sự khác biệt mà họ chỉ cần để có thể kết nối khi ở Văn phòng. Không có trong lĩnh vực này. Đã có sẵn VPN cho mỗi nhánh từ trung tâm. Về cơ bản họ chỉ lấy dữ liệu với họ cho thành viên. Thực hiện thay đổi và sau đó đồng bộ hóa lại khi họ quay lại văn phòng. Điều này có thay đổi bất kỳ đề nghị nào của bạn không? –

2

Cá nhân, tôi sẽ nói:

  • NET 3.5
  • Data Services WCF (để giao tiếp giữa các ứng dụng client và dữ liệu của bạn)
  • SQL Server 2k5/2k8 (tùy theo bạn có thể sử dụng)
  • Silverlight w/Out of duyệt Chức năng
  • VistaDB (để lưu trữ dữ liệu cục bộ trên máy khách cho đến khi bạn có thể đẩy đến máy chủ)
+0

Tôi có thể đề nghị chỉ SQL Micro Edition với SyncFramework thay vì VistaDB như OCA client-server tương tác – abatishchev

+0

@abatishchev Is 'Micro Edition' giống như Compact Edition? –

+0

@Refracted Paladin: Vâng, xin lỗi, mùa thu của tôi. Thực sự CE, không phải ME – abatishchev

1

sử dụng độc đáo-identifier cho khóa nếu bạn đang tạo thứ khi ngoại tuyến và không kết nối và khi bạn kết nối, cập nhật cơ sở dữ liệu.

này sẽ là cách dễ dàng hơn so với sử dụng auto-increment chính

+0

yup cảm ơn. Đó là một trong những điều tôi đã có nhưng một điều quan trọng tôi đang thu thập. –

1

Sau khi làm việc trên một ứng dụng thỉnh thoảng kết nối, tôi khuyến khích bạn để tìm trong SQL Server CE cho các máy client, với các dịch vụ Sync để xử lý các kết nối. Here is a good tutorial.

1

Bạn có thể tạo ra công cụ này từ mặt đất, có vẻ như. Tuy nhiên, điều này có vẻ khủng khiếp giống như một ứng dụng CRM, và nó sẽ không làm tôi ngạc nhiên nếu bạn có thể tìm thấy gói phần mềm doanh nghiệp để làm điều này mà không bắt đầu từ đầu và thay vào đó sửa đổi một trong các cấu hình để đáp ứng các quy tắc kinh doanh của bạn .

Trong kiếp trước, tôi là một nhà phát triển cấu hình cho thứ này được gọi là Siebel có thể gần với những gì bạn đang tìm kiếm. Họ thậm chí có một công cụ đồng bộ được xây dựng trong có tên Siebel Remote.

Nó có thể là một con đường rẻ hơn để đi hơn là lăn của riêng bạn từ đầu.

1

Tôi đã viết một chương trình đặt hàng cho đại diện bán hàng rượu vang. Here is the video. Phần mềm máy khách được cài đặt bằng cách sử dụng lần nhấp. Điều đó cũng cài đặt SQL Server Express và tải cơ sở dữ liệu. Tôi đã sử dụng Microsoft Sync Framework để đồng bộ hóa cơ sở dữ liệu cục bộ với cơ sở dữ liệu trên máy chủ (xem phần cuối của video.)

  • Với khách hàng mạnh mẽ bây giờ tôi không thấy lý do nào để không sử dụng SQL Server Express, miễn phí với giới hạn 4GB.

  • SQL CE có quá nhiều giới hạn - không có procs được lưu trữ nào là chính.

  • Bạn sẽ cần phải sử dụng GUID ở mọi nơi làm khóa chính - xem NewSequentialID() mới.

  • Tôi thích nhấp một lần, đây là chương trình tiết kiệm thời gian lớn.

Tôi đang mong chờ Silverlight, nhưng chưa có thời gian để xem xét nó. Bạn không chắc liệu tôi có thể làm điều đó với Silverlight hay không nếu thực hiện nó ngay bây giờ hay không.

Có nói tất cả điều này, đây không phải là một dự án cho bất kỳ ai thiếu kinh nghiệm. Vì vậy, tôi cũng sẽ nhận được một số trợ giúp rất có kinh nghiệm.