2012-02-02 3 views
2

私は、実行中のプロジェクトに素敵な追加機能を追加するためにiOS開発を行うことを検討しています。C#APIを使用したiOS開発

メインプロジェクトは現在C#で書かれており、主にいくつかのWindowsサービスを持つasp.netです。 基本的なiPhoneアプリを概念の証明として開発できるように、これを組み込みたいと思います。

iOSの通信媒体としてJSONを使用するのが一般的なベストプラクティスです。

APIメソッドを作成するためにWCFを使用することを考えています。そのため、iOSアプリケーションはこれらのサービスに接続してデータを取得できます。

これを行うための素晴らしいチュートリアルはありますか?あなたがiPhoneアプリを開発するためのObjective-Cを使用している場合、私は、WCFは、サーバー上で使用するのに最適なWeb​​サービス技術ではよく分からない

Developing RESTful iOS Apps with RestKit

答えて

3

は見てみましょう。 ServiceStackをチェックして、RESTfulサービスを作成してください。

+0

これは私が使用する方法ですが、RestKitではODataサービスのマッピングにいくつかの問題があります。 iOSでxmlサービスを使用することも考えられます。コアデータを使用することでうまくサポートされているようです。 – vittore

1

+0

私はObjective-Cと言っていましたが、実際はiOS SDK、Cocoa Touch、Objective-Cなどです。前述のRestKitはWebサービスを消費します。 –

+1

私はこの声明に完全に同意しません。私はこれを排他的に行うチームに取り組んでおり、私たちはこの実装を1年以上愛していました。 –

+0

@JosephDeCarlo WCFまたはOData?私の理解から標準のWCFサービスにはしわがあります。 –

2

私はこれを常にしています。 WCFデータサービス(OData)は道のりです。 ODataサービスでは、HTTPヘッダーに(Accept - Application/JSON)を渡すことでJSON応答を指定することができ、ODataはJSONを返します。

iOSからOData(RESTサービス)を取得するためにいくつかのライブラリを使用しています。 MicrosoftのiOS ODataの実装はかなり不自由です。 RESTKitはそれが扱うものにとって本当に良い仕事をしますが、そうでないものをやらなければならないと本当に痛いです。 ASIも使用しました。これはRESTKitよりもはるかに柔軟ですが、問題がないわけではありません。私は自分自身を書くことをやめ、それは私にちょうどいいです。

初心者の方には、ASI over RESTKitの使用をお勧めします。 RESTKitは、あなたのために大変な作業をしていますが、作業にはちょっと時間がかかります。

ODataからJSON応答を受信する際に標準ではない2つのことがあります。 1.すべての応答は、キー "D"を使用してJSON辞書に取り込まれます。前の)文字列の一部あなたは(日付を解析する必要がありますので、/日(1212353): 2.日付はJSON標準(1970年からの秒数)にシリアル化されているが、彼らはそうのような文字列に配置されていますそれを使うことができます。

RESTKitは、ネイティブにこれらの問題のいずれかを処理しませんので、あなたはそのルートを選択した場合、あなたはそれらに対処する必要があります。個人的には、あなた自身で書くために十分なことを学ぶまで、私はASIルートに行きます。

私は自分のソリューションをオープンソーシングすることを検討しています。もしそうであれば、このレスポンスをリンクに更新します。

--- UPDATE ----

ただ、明確にするために - あなたのサーバー側のシステムがそうでないのODataとして知られ、WCF Data Servicesのを使用している場合は、その後、マイナーな調整で、RESTKitはそれで素敵な果たしています。あなたのサービスが従来のWCFサービス(SOAPバインディング)の場合、SOAPプロトコルにバインドされているため、JSONを取得できません(カスタムBehaviorを作成して翻訳しない限り)。それはあなたのサービスが本質的に何をするかによって異なります。サービスが通常データエクスポージャー/操作(つまり、addCustomer)である場合は、それらをODataとして公開する必要があります。彼らが本当に操作している場合は、MVCサイトからのアクションとしてそれらを公開することを検討する必要があります。どちらも、既存のインフラストラクチャとプラットフォームを使用してRESTサービスを取得できます。

+0

あなたはあなたが話していることを知っているように聞こえます。私はRESTKitを調べるつもりです。しかし基本的には、WCFサービスでうまくいくということです – Neale

関連する問題