私は3つの主要なプロジェクトに携わっており、それらすべてにデスクトップクライアント、Webクライアント、およびモバイルクライアント(Android、iOS)があります。3つは異なるサーバー側のアプローチを完了しました、そしてそれらのすべては私とユーザーを幸せにします:
プロジェクト1:
サーバー: Delphi + RemObjects
クライアント: Delphiデスクトップアプリ、PHP Webアプリ、Javaアプレット、Androidアプリ、iOSアプリ
なぜDelphiなのか?既存のプロジェクトはすでにDelphiマルチティアアプリであったため、開発チームはDelphiプラットフォームのドメインを持っており、RemObjects(または標準のDataSnap)を使用して、クライアントによって呼び出されるJSON、SOAP、またはXML-RPCを簡単に返すことができました。 ;
プロジェクト2:
サーバー: PHP
クライアント: ExtJS Webアプリ、Androidアプリ、iOSアプリ
なぜPHPなのか?開発チームはPHPの経験があり、プロジェクトは元々PHP Webアプリであり、いくつかのクラスが明確に定義されており、UIとは結合されていませんでした。既存のコードベースを再利用し、JSONとの間で変換するだけのサーバー内のいくつかの新しいクラスは、クライアントが最小限の労力でサーバーと通信できるようにするのに十分でした。
プロジェクト3(初期開発):
サーバー: C#ASP.NET
クライアント: ASP.NETアプリ、Androidアプリ、iOSアプリ
なぜC#なのか?繰り返しますが、開発チームはC#とASP.NETの経験があり、プロジェクトは元々ASP.NETアプリでした。一部のアプリロジックを、ASP.NETアプリとクライアントの両方で使用されるWebサービスにリファクタリングしています。
ご覧のとおり、サーバー側でチームにまったく新しいことを学ばせる必要はありません。
現在のスキルを活用して、MSSQLを使用した.NETでの開発を継続することをお勧めします。
アプリケーショントラフィックが増加した場合は、サーバーアプリをSQLServerをサポートするIaaSサーバー(Amazon AWS EC2など)に移動するか、PaaSサーバーに移動することができます。この場合はWindowsAzureがおそらく親友になります。