2017-03-02 11 views
0

私たちは、アプリケーションの開発を目指しています。私はアプリケーションの要件を下回っています。最小限の重複作業でオフライン統合されたWindows + Web +アンドロイドアプリケーションのアーキテクチャ

簡単な説明

1)場合、アプリケーションは、Web + Androidの+オフラインデスクトップバージョン(完全な機能は、インターネットなしで動作するものを特徴と完全にオフライン環境を意味するオフライン版)

  • 上で動作するものオフラインのAndroidでも可能です(同じバックエンドでは私の研究が難しいため、一時的なオフラインでの使用にはキャッシュを使用できます)

2)私たちは

3)毎回アプリケーションが更新され、可能な限り同じデータベース、ロジック・コードとフロントエンドを使用することができなければならないように手直しを最小限に我々はしたいアーキテクチャを設計している間ウェブとアンドロイドは、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などのWebベースおよびオフラインアプリケーションのための作業を最小限にするのに適しているであろうフレームワーク。

4)フロントエンド:ウェブとアンドロイド用に異なる画面を作成する必要があることを理解しています。しかし、オフライン環境でも使用できるHTML 5(キャッシュ機能)やAngular JSを使用できるかどうか、またはオフライン画面を別に作成する必要があるかどうかを知りたいですか?

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

5)apacheのコルドバは、私は何かが足りない可能性があります確信している(私はそれゆえにについて多くを知らない)

6)優れたアーキテクチャのために何らかの方法で使用することできます。あなたがこのアプリケーションを開発する最良の方法についていくつかの提案を提供できる場合は、あなたの助けを本当に感謝いたします

+0

これは "http://softwareengineering.stackexchange.comを" 所属していますか? –

+0

コメントありがとうございます。私は他のフォーラムが確実にこれを助けることができると思います。私はこれがここでも適していると思う。私はstackoverflowに新しいです。 。私がここで何かを見逃している場合に備えて、ベストな場所を案内してください。 – user5657458

答えて

0

あなたの要件は私にはあまり明確ではありません。

しかし、私は別のデバイスで複数のクライアントにケータリングするバックエンドがある場合。

私は以下の戦略を採用します。

私はrest/HTTPを通してバックエンド機能を公開し、クライアントがそれらを消費するようにします。

私は同じUIと機能を作りたいと思っていて、異なるモバイルプラットフォームですばやくやりたいと思っています。私はコルドバ、PhonegapまたはXamarinアプリのために行くつもりです。しかし、いくつかのネイティブ機能が欠けていることに注意してください。

ウェブ用には、ユーザーが任意のデバイスのWebブラウザでアプリケーションを開くことができるように、openUI5のようなデバイスの画面サイズに対応するUIフレームワークを使用します容易にレンダリングされる。

デスクトップベースのアプリの場合は、別のUIを開発する必要があります。 WindowsやMacなどのデスクトップアプリケーションに複数の味がある場合は、一般的なJavaレイヤーを持つようにするか、各OSごとに最小限のネイティブレイヤーを作成するか、またはフルレイヤーのネイティブレイヤーを使用するか、ロジックを低レベルでAPIとして公開する言語をC++として認識し、高水準の言語がそれらを消費するようにします。

すべてのアプリケーションでSQLiteのようなDBを使用できます。あなたのために簡単にテーブル構造を複製する共通のDBとスクリプトを用意してください。

バックエンドのテクノロジの決定は、あなたの要求に応じて変更することができますし、安心して機能を公開してもクライアントには関係ありません。

これが役に立ちます。

よろしく、

Saurav

+0

ありがとうsaurav。これは非常に役に立ちます。 – user5657458

+0

うれしかったです...もしそれが役に立ったら答えとして記入してください – saurav

関連する問題