2

新しい " Azure Mobile App " リソース ("Azure Mobile Services" に取って代わる) は非常に優れています。ただし、Azure portal を通じて提供される (またはオンラインの他の場所で見つかる) サンプル コードは、Entity Framework への依存関係を含む最大の依存関係ツリーを想定しています。依存関係を最小限にしたいのですが、「安全に」削除できる依存関係を認識するのは非常に困難です。

明らかな答えは、必要のない機能を提供する依存関係を削除することですが、問題は、どの依存関係によってどの機能が提供されているかが不明であることです。それでも、ある意味では、これは問題の 3 分の 1 にすぎません。

プッシュ通知、認証 (OAuth など)、およびストレージ用の Azure SQL データベースにアクセスする Dapper を試してみたいと思っています。しかし...

他の (すべての?) 機能のカタログにアクセスできれば、以前は知らなかった機能を発見できるのであれば、研究の優先順位を変更することを選択するかもしれません。私が言いたいことの "同等のストレージ" の例を示すために、このAzure ストレージ オプションのインフォグラフィックを考えてみましょう。百聞は一見に如かず!素晴らしい!

私が見つけた Azure モバイル アプリの "機能の一覧" に最も近いものは、GitHub リポジトリの "readme" ファイルの "SDK 拡張機能"の一覧です。おそらく、このリストは、私が経験している次の 3 分の 1 の問題の解決策に近いものです。

問題の最後の 3 分の 1 は...歴史です。Microsoft は急速に変化しており、新しい機能が急速に登場して古い機能に置き換わっています。機能 'X' の使用方法を説明するいくつかの記事 (Microsoft が作成したとは限りません) を読んで行き詰まることがありますが、機能 'X' が実際には機能 'Y' に取って代わられていることを発見するだけです (doh!)。この最終的な観察は、全体的な解決策につながります...

すべてをまとめるために、(1) カテゴリ別の Azure モバイル アプリ機能の概要と簡単な説明を用意したいと思います。これは、以前に参照したインフォグラフィックのように、(2) 関連する主要な NuGet (または NPM) パッケージへの参照です。 (3) 機能のステータスの表示 (例: 「アクティブ」/「置き換え済み」)。はい、私の考えでは、非推奨の機能をリストから削除するよりも、「非推奨」フラグを付けて「リストに」残すことを許可する方が便利です (そして、どの技術または機能がそれを置き換えたかへのポインター!)。全体的に。

この「概要」の概要にある程度近い資料 (またはリンクなど) を持っている人はいますか? 最小限の依存関係で、必要な機能を見つけるために必要な完璧なガイダンスです。

参考までに…

モバイル アプリの Azure アカウントからダウンロードできるサンプル コードには、次のパッケージ依存関係があります。

モバイル API「packages.config」

<package id="AutoMapper" version="3.3.1" targetFramework="net45" />
<package id="EntityFramework" version="6.1.3" targetFramework="net45" />
<package id="Microsoft.AspNet.Cors" version="5.2.3" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Cors" version="5.2.3" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.OData" version="5.5.1" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Owin" version="5.2.3" targetFramework="net45" />
<package id="Microsoft.Azure.Mobile.Server" version="0.2.575" targetFramework="net45" />
<package id="Microsoft.Azure.Mobile.Server.Authentication" version="0.2.575" targetFramework="net45" />
<package id="Microsoft.Azure.Mobile.Server.CrossDomain" version="0.2.575" targetFramework="net45" />
<package id="Microsoft.Azure.Mobile.Server.Entity" version="0.2.575" targetFramework="net45" />
<package id="Microsoft.Azure.Mobile.Server.Home" version="0.2.575" targetFramework="net45" />
<package id="Microsoft.Azure.Mobile.Server.Notifications" version="0.2.575" targetFramework="net45" />
<package id="Microsoft.Azure.Mobile.Server.Quickstart" version="0.2.575" targetFramework="net45" />
<package id="Microsoft.Azure.Mobile.Server.Tables" version="0.2.575" targetFramework="net45" />
<package id="Microsoft.Azure.NotificationHubs" version="1.0.2" targetFramework="net45" />
<package id="Microsoft.Bcl" version="1.1.9" targetFramework="net45" />
<package id="Microsoft.Bcl.Build" version="1.0.14" targetFramework="net45" />
<package id="Microsoft.Data.Edm" version="5.6.4" targetFramework="net45" />
<package id="Microsoft.Data.OData" version="5.6.4" targetFramework="net45" />
<package id="Microsoft.Net.Http" version="2.2.22" targetFramework="net45" />
<package id="Microsoft.Owin" version="3.0.1" targetFramework="net45" />
<package id="Microsoft.Owin.Security" version="3.0.1" targetFramework="net45" />
<package id="Microsoft.WindowsAzure.ConfigurationManager" version="3.1.0" targetFramework="net45" />
<package id="Newtonsoft.Json" version="6.0.8" targetFramework="net45" />
<package id="Owin" version="1.0" targetFramework="net45" />
<package id="System.IdentityModel.Tokens.Jwt" version="4.0.2.205111437" targetFramework="net45" />
<package id="System.Spatial" version="5.6.4" targetFramework="net45" />
<package id="Microsoft.Owin.Host.SystemWeb" version="3.0.1" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Tracing" version="5.2.3" targetFramework="net45" />

Azure API アプリ「packages.config」

上記の packages.config と、次の packages.config を持つ新しいプレビューの " Azure API App " リソース タイプを比較してください。

<package id="Microsoft.AspNet.WebApi" version="5.2.3" targetFramework="net46" />
<package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net46" />
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net46" />
<package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.3" targetFramework="net46" />
<package id="Microsoft.Azure.AppService.ApiApps.Service" version="0.9.16" targetFramework="net46" />
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net46" />
<package id="Newtonsoft.Json" version="6.0.4" targetFramework="net46" />
<package id="Swashbuckle" version="5.0.0" targetFramework="net46" />
<package id="Swashbuckle.Core" version="5.0.0" targetFramework="net46" />
<package id="System.IdentityModel.Tokens.Jwt" version="4.0.0" targetFramework="net46" />
<package id="WebActivatorEx" version="2.0.6" targetFramework="net46" />

これは見事に痩せています。先ほど説明した「超カッコイイ概要」を使って、これに近いものにスリム化したいと思います。誰でもこのようなものを持っていますか?:}

ちなみに、そのような概要が存在する場合は、Azure API アプリで現在利用できる機能と利用できない機能を明確にする列を含めることができます。ウー!

4

1 に答える 1

4

Microsoft.Azure.Mobile.Server.Quickstart パッケージを含めたので、完全なセットを取得しました。依存グラフを視覚的に見たい場合は、このパッケージが紹介されたブログ投稿を参照してください。

必要なパッケージは Microsoft.Azure.Mobile.Server のみで、これによりいくつかの基本的な依存関係がもたらされます。

.Tables は、使用したい場合に TableController を提供します。

.Entity は .Tables と EF に依存し、それらの間の統合を可能にします (.Entity は EF を必要とする唯一のパッケージです)。

.プッシュ通知には通知が必要です

.CrossDomain は、従来の Web ブラウザー専用です。

.Home は、アプリケーションのルートのランディング ページを提供します。

Server パッケージがある限り、これらの任意の組み合わせを選択できます。

于 2015-11-17T22:30:16.123 に答える