0

우리는 아키텍처 설계에 도움이 필요한 응용 프로그램을 개발하려고합니다. 나는 신청서의 요구 사항을 아래에두고있다.최소한의 중복 작업으로 통합 된 오프라인 Windows + Web + android 응용 프로그램을위한 아키텍처

간단한 설명

1) 모든 기능은 인터넷없이 작동하여야 특징으로 완전히 오프라인 환경)

  • 경우를 의미 웹 + 안드로이드 + 오프라인 데스크톱 버전 (오프라인 버전에서 작동하여야한다 응용 프로그램 오프라인에서 사용할 수있는 Android도 있습니다. (내 연구에 따르면 동일한 백엔드에서 수행하기가 어렵 기 때문에 임시 오프라인 사용을 위해 캐싱을 사용할 수 있습니다)

2) 우리가

3) 매번 응용 프로그램이 업데이트 가능한 동일한 데이터베이스, 로직 코드와 프론트 엔드를 사용 할 수 있어야한다하도록 재 작업을 최소화 우리가 에 원하는 아키텍처를 설계하는 동안 다음 웹 및 Android는 API 통합으로 인해 즉시 반영됩니다. 오프라인 응용 프로그램의 경우 인터넷에 연결할 때마다 논리 및 데이터베이스를 업데이트하려고합니다. 내가

1) 데이터베이스 선택에 직면하고있다

과제 : 그것뿐만 아니라 오프라인 솔루션으로 가지고 있기 때문에, 우리는 SQLite는 또는 SQL 콤팩트 에디션을 사용하는 것 이해 우리가 할 수 있도록 무료 버전을 사용하고 설치 파일도 매우 크지 않습니다

2) 로직 : 오프라인 요구 사항으로 인해 저장 프로 시저가 지원되지 않기 때문에 전체 논리를 Asp.net/(다른 제안 사항)에 넣어야 할 수도 있습니다. 위에서 언급 한 데이터베이스에서이에 대해 내가 찾은 10 일부 링크 :

https://www.codeproject.com/Questions/346702/How-to-make-work-an-Online-Web-application-Offline

3) 응용 프로그램 프레임 워크 : MVC/MVVM 등 기반 웹 및 오프라인 응용 프로그램의 작업을 최소화하는 것이 적합 할 것입니다 프레임 워크.

4) 프런트 엔드 : 웹 및 Android 용으로 다른 화면을 만들어야한다는 것을 알고 있습니다. 그러나 오프라인 환경에서 사용할 수있는 HTML 5 (캐시 기능) 또는 Angular JS를 사용할 수 있는지 여부 또는 오프라인 화면을 별도로 만들어야하는지 여부를 알고 싶습니까?

Build an ASP.Net web app with offline functionality https://www.html5rocks.com/en/tutorials/appcache/beginner/

5) 어떻게든지 더 나은 아키텍처 (내가 뭔가를 누락 될 수 있습니다 확신)

6) 따라서 그것에 대해 많이 알고 해달라고에서 아파치 코르도바를 사용할 수 수 있습니다.이 응용 프로그램을 개발하는 데 최선의 방법을 제안 할 수 있다면 귀하의 도움을 진심으로 감사드립니다.

+0

이가 "http://softwareengineering.stackexchange.com"속하지 않는다

Saurav? –

+0

의견을 주셔서 감사합니다. 나는 다른 포럼이 분명히이 문제를 도울 수 있다고 생각한다. 나는 이것이 이것도 적합 할 것이라고 생각한다. 나는 stackoverflow에 새로운 사람이다. . 친절하게 여기에 뭔가를 놓친 경우를 대비하여 게시 할 수있는 최적의 장소를 안내합니다. – user5657458

답변

0

귀하의 요구 사항은 분명하지 않습니다.

하지만 내가 다른 장치와 함께 여러 클라이언트에 취사하는 백엔드가 있다면.

다음 전략을 취할 것입니다.

rest/HTTP를 통해 백엔드 기능을 노출하고 클라이언트가이를 소비하도록 할 것입니다.

동일한 UI와 기능을 만들고 싶지만 다른 모바일 플랫폼에서 빠르게 수행하고 싶다면. 나는 Cordova, Phonegap 또는 Xamarin 앱을 갈 것이다. 그러나 일부 기본 기능이 부족하다는 점을 명심하십시오.

웹용으로는 openUI5와 같은 장치 화면 크기의 UI 프레임 워크를 사용할 것입니다 (사용자가 웹 브라우저에서 모든 장치의 응용 프로그램을 열 수 있고 다른 장치도 열 수 있음). 쉽게 렌더링됩니다.

데스크톱 기반 앱의 경우 다시 별도의 UI를 개발해야합니다. Windows, Mac 등의 데스크톱 응용 프로그램에서 여러 가지 맛을 다시 느낄 수있는 경우 일반적인 Java 레이어 사용 + 각 OS에 대한 최소 기본 레이어 사용 또는 완전히 손상된 기본 레이어 사용 또는 낮은 수준의 API로 로직 노출 언어를 C++로 변환 한 다음 높은 수준의 언어가이를 소비하도록합니다.

모든 응용 프로그램에서 SQLite와 같은 DB를 사용할 수 있습니다. 테이블 구조를 쉽게 복제 할 수있는 공통 DB 및 스크립트를 준비하십시오.

백엔드에 대한 기술 결정은 사용자의 요구 사항에 따라 달라질 수 있으며 기능을 편안하게 노출하는 경우 클라이언트에게 중요하지 않습니다.

희망이 도움이됩니다.

최고 감사합니다,

+0

감사합니다 saurav. 이것은 매우 도움이됩니다. – user5657458

+0

도움이 되셨다면 기꺼이 도와 드리겠습니다 ... 답변으로 표시해주세요. – saurav

관련 문제