Azure移动应用程序的最低依赖关系

时间:2015-11-17 00:33:24

标签: azure mobile azure-api-apps azure-mobile-services

新的“Azure Mobile App”资源(取代“Azure移动服务”)非常酷。但是,通过Azure门户(或在线其他位置)提供的示例代码假定最大依赖关系树,包括对实体框架的依赖。我希望有最小的依赖关系,但很难识别我可以“安全”删除哪些依赖项。

显而易见的答案是删除提供我不需要的功能的依赖项 - 但问题是不清楚哪些功能由哪些依赖项提供。不过,从某种意义上说,这只是问题的三分之一。

我知道我想尝试推送通知,身份验证(例如OAuth)和Dapper点击Azure SQL数据库进行存储。但...

如果我只能访问(所有?)其他功能的目录,我可以选择重新确定我的研究优先级,让我发现以前我不知道的功能。为了给出我所说的“存储等价”示例,请考虑这个Azure storage options infographic。一张价值千言万语的图片!真棒!

我在Azure移动应用程序的“功能列表”中找到的最接近的内容是"SDK Extensions" in a GitHub repo "readme" file列表。也许这个列表接近于解决我遇到的问题的下一个三分之一。

问题的最后三分之一是......历史。微软正在快速发展,新功能迅速出现以取代旧版本。有时我会读到几篇文章(不一定是由微软创建的)解释如何使用特征“X”,但却发现特征'X'实际上被特征'Y'取代(doh!)。最后的观察结果导致整体解决方案......

为了将它们捆绑在一起,我希望按类别提供(1)Azure移动应用程序功能概述,并附上简要说明,非常类似于前面引用的信息图(2)对关键NuGet(或NPM)的引用)与该特征相关的包和(3)特征状态的指示(例如“活动”/“被取代”)。是的,以我的方式思考,允许不推荐使用的功能保留在“列表中”并带有“已弃用”标志(以及指向替换它的技术或功能的指针!),而不是从列表中删除它更有帮助完全。

是否有人的材料(或链接等)有点接近这个“大纲”概述?这将是我需要找到所需功能的完美指导,具有最少的依赖性。

供参考......

可从Azure帐户下载的移动应用程序示例代码具有以下软件包依赖项:

Mobile 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与新预览“Azure API App”资源类型对比,后者包含以下packages.config:

<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应用程序中当前可用或不可用的功能。活泉!

1 个答案:

答案 0 :(得分:4)

因为您包含了Microsoft.Azure.Mobile.Server.Quickstart包,所以您确实获得了一整套。如果您希望直观地看到依赖关系图,请参阅介绍此软件包的blog post

唯一需要的软件包是Microsoft.Azure.Mobile.Server,它将带来一些基本依赖项

.Tables给出了TableController,如果你想使用它。

.Entity取决于.Tables和EF,允许它们之间的集成(.Entity是唯一需要EF的包。)

。推送通知需要通知

.CrossDomain仅适用于旧版网络浏览器

.Home提供应用程序根目录的登录页面

只要您拥有Server软件包,就可以选择这些组合。