Công ty chúng tôi có mọi người trong mọi sự kiện thảm khốc ở Hoa Kỳ và các bộ phận của Canada. Một ví dụ là chúng khá phổ biến ở Katrina ngay sau sự kiện này.Phương pháp tiếp cận để phát triển ứng dụng bị ngắt kết nối
Chúng tôi đang xây dựng một ứng dụng để cải thiện công việc của họ trong lĩnh vực mà có thể là ASP.NET hoặc WPF, và yêu cầu ngắt kết nối làm cho chúng tôi tin rằng nó sẽ là một ứng dụng WPF. Nhân viên của chúng tôi cần có khả năng tạo công việc của họ, cung cấp tất cả dữ liệu về bảo hiểm và đo lường, và lưu nó như thể trong cơ sở dữ liệu cho dù internet có khả dụng hay không.
Vấn đề mà chúng tôi đang cố gắng thực hiện là khi xảy ra sự kiện thảm khốc, người dùng của chúng tôi cần có thể sử dụng ứng dụng mới của chúng tôi ngay cả khi không có internet. (Họ đã ngoại tuyến trong 3 ngày ở Katrina)
Có ai khác phải giải quyết các yêu cầu như thế này và gợi ý về cách họ tiếp cận hoạt động trên các thiết bị chân nhỏ trong khi lưu dữ liệu như thể chúng vẫn được kết nối với dịch vụ phụ trợ và cơ sở dữ liệu ? Chúng tôi cũng phải kết hợp bảo mật vào điều này là tốt, và làm điều đó đủ tốt mà dữ liệu nhập của họ tải vào cơ sở dữ liệu được kết nối mà không có vấn đề.
Mục tiêu lâu dài của chúng tôi là cung cấp ứng dụng này cho các thiết bị Android và iPad cũng như máy tính xách tay. Mong muốn ban đầu của chúng tôi cho ASP.NET là nó đã cho chúng tôi một ứng dụng ngay lập tức cho môi trường máy tính bảng. Trong ứng dụng cũ họ có, họ chạy một máy chủ địa phương, chạy các kết nối từ xa trên máy tính bảng và chạy ứng dụng thông qua máy chủ đầu cuối. Không đẹp. Không đẹp.
Tôi cảm thấy đây là một câu hỏi nghiêm trọng không phải là chủ quan vì vậy hy vọng điều này sẽ không bị xóa.
Kiến trúc hiện tại của chúng tôi ở phía máy chủ là Khuôn khổ thực thể với mẫu lưu trữ, dịch vụ WCF để đáp ứng yêu cầu CRUD trả về các đối tượng truyền dữ liệu tổng hợp và proxy để khách hàng sử dụng.
Tôi muốn nghe ý kiến của các nhà phát triển khác và câu đố thiết kế này.
bổ sung Thông tin bổ sung vào thảo luận
Rất nhiều thông tin hữu ích được cung cấp !!! Tôi sẽ phải xem xét Microsoft Sync chắc chắn. Đối với cơ sở dữ liệu bị ngắt kết nối, tôi sẽ chỉ đặt các bảng danh sách (liệt kê) trong cơ sở dữ liệu ban đầu. Việc làm và, nếu cần thiết, một mục chúng tôi gọi là sách khô, sẽ được thêm vào cho từng khách hàng mà chúng tôi đang trợ giúp. (mặc dù tôi hy vọng internet trở lại vào thời điểm chúng tôi đang làm sạch và sấy khô nhà) Đây là những bảng mà sau đó sẽ cư trú trở lại máy chủ khi chúng tôi có một liên kết ổn định. Trong trường hợp của Katrina chúng tôi cũng bị mất kết nối internet trong văn phòng của chúng tôi có nghĩa là văn phòng cung cấp không có thông tin liên lạc cứu trợ trong ngày là tốt.
Đêm qua tôi nhận ra rằng proxy của khách hàng là chìa khóa cho mọi thứ hoạt động! Khách hàng vẫn không biết thực tế là nó trực tuyến hoặc ngoại tuyến và rời khỏi quá trình đồng bộ hóa trong thư viện đó. Chúng tôi đang khám phá số lượng dữ liệu mà chúng tôi đang nói đến hôm nay. Tôi cũng muốn làm cho nó rõ ràng rằng ASP.NET là một giống như-to-có nhưng một khách hàng dày (thực sự WPF với XAML) có thể kết thúc được trạng thái kết thúc của chúng tôi.
Hiện tại - để có nhiều cập nhật. Các công việc bị ngắt kết nối sẽ được đi đến nhà riêng lẻ bởi một nhượng quyền thương mại duy nhất. Trong thực tế, văn phòng nhà của chúng tôi gửi các thương hiệu cụ thể đến các sự kiện cụ thể. Vì vậy, chúng tôi có một khả năng giảm (nếu có) của vấn đề của nhiều người đang cập nhật một bản ghi. Lý do là họ đang tạo hồ sơ cho mỗi công việc (nhà/văn phòng/doanh nghiệp của người đó) và chỉ có một thương hiệu đó sẽ đối phó với nó.Tất nhiên điều này cũng có nghĩa là nếu chúng bị ngắt kết nối trong nhiều ngày mà thiết bị tạo ra công việc (hồ sơ của ai, ở đâu, điều kiện, công ty bảo hiểm, vv) cũng là thiết bị duy nhất biết về công việc. Nhưng điều đó có thể được sống với. Trong thực tế, chúng tôi có thể có một cơ sở để đồng bộ hóa các thiết bị nhượng quyền thương mại trên một trung tâm.
Tôi mong muốn được nghe thêm các câu chuyện về cách bạn đã triển khai môi trường bị ngắt kết nối của mình.
Xin cảm ơn !!!
Nhìn vào công nghệ mới từ Microsoft
tôi được đạo diễn nhìn vào một đoạn video từ TechEd 2012 và nghĩ rằng tôi có thể có một câu trả lời. Cuộc nói chuyện đã được sử dụng ASP.NET và MVC4 cùng với 2 thư viện cho hành vi bị ngắt kết nối. Lúc đầu, tôi nghĩ rằng nó sẽ là tuyệt vời nhưng sau đó vì nó tiếp tục nó lo lắng cho tôi khá một chút.
Đầu tiên việc sử dụng chương trình phụ trợ javascript để hỗ trợ I/O bị ngắt kết nối không tạo ra sự tự tin. Là một anh chàng biên dịch (và một người đã viết hai ngôn ngữ diễn giải), tôi thực sự không thích có một mô hình kinh doanh quan trọng phụ thuộc vào javascript diễn giải. Và kịch bản ở đó! Nó có thể là tôi nhưng nó chỉ làm tôi rùng mình.
Sau đó, họ hiển thị mô hình lập trình "tuyệt vời" (???) của họ khi ViewModel của bạn tồn tại dưới dạng javascript. Tôi không quan tâm đến một ứng dụng (asp.net và javascript) có thể được, và cũng có thể được (vì thiếu intellisense) được viết trong notepad.
Không có hành vi phạm tội đối với bất kỳ người yêu thích asp nào, nhưng chương trình C# được viết bằng văn bản và kiểm tra kiểu cho phép tôi tự tin hơn về phần mềm so với nội dung được viết với hy vọng và lời cầu nguyện rằng không gian tên lớp đã được nhập đúng cách mà không có bất kỳ phương tiện nào kiểm tra chéo. Tôi đã nhìn thấy quá nhiều giờ gỡ lỗi tìm kiếm một lỗi đã kết thúc trong một không gian tên khổng lồ với transposed tức là trong tên của nó. Tôi chạy suy nghĩ của tôi qua các nhà phát triển cao cấp khác trong nhóm của tôi và tất cả chúng tôi đều đồng thuận về công nghệ này.
Nhưng chúng tôi tiếp tục xem xét. (Tôi cảm thấy điều này ngày càng trở nên một cuốn nhật ký hơn là một câu hỏi) :)
Có lý do nào phải là ứng dụng asp.net chứ không phải độc lập có thể thăm dò định kỳ hoạt động và làm đồng bộ hóa lười biếng với tập dữ liệu chính ở đâu đó? – devshorts
Chìa khóa cho điều này sẽ là sử dụng một cái gì đó giống như một dịch vụ web. Bạn sẽ sử dụng nhiều công nghệ khác nhau để hỗ trợ nhiều thiết bị mà bạn có thể phải chạy ứng dụng này, nhưng một điều là không đổi, một cổng giao tiếp giữa thiết bị và máy chủ sẽ là dịch vụ web của bạn. Mỗi khách hàng có thể có một cơ sở dữ liệu cục bộ như sql lite. Ứng dụng sẽ thăm dò ý kiến các thay đổi bằng cách sử dụng một số kỹ thuật đồng bộ hóa tiêu chuẩn. Tuy nhiên, mỗi thiết bị sẽ lấy các thay đổi 'mới nhất' từ dịch vụ web kể từ ngày đồng bộ cuối cùng của họ và thay đổi hoặc thêm các thay đổi có liên quan bằng các phương pháp web khác nhau trong dịch vụ web của bạn – Jeremy
Làm cách nào để lưu trữ dữ liệu của bạn. Sql Server? –