小编Mat*_*att的帖子

是否可以(或有效)使用AWS Lambda运行完整的后端(比如说,Elastic Beanstalk)

我对服务器世界比较陌生,所以请原谅我,如果其中一些是基本的(我的第一部分文字将解释我的逻辑以确保它没有缺陷).我的所有问题都会加粗,让你的帮助更容易:).

我一直在研究和教授自己的一些AWS技术,我注意到在他们的移动中心,如果你想要云逻辑,他们只允许"自动"设置Lambda功能.在阅读和研究之后,我发现了一些指向"无服务器"架构的资源(Lambda支持的引入).在过去,我的理解是Elastic Beanstalk被引入以帮助使服务器管理(尤其是移动设备)显着简化.

对于移动开发者,有两个选项(显然更多,但为了简单起见,我们会同意):

  • 设置一个Elastic Beanstalk,它至少有一个实例24/7运行并且每个url有多个端点
  • 使用API​​ Gateway,我们可以轻松地将URL路由到特定的Lambda函数.有了这个,我们可以处理任何请求(就像设置Elastic Beanstalk应用程序一样).

所有这一切都让我相信,一个完整的λ后端是完全有可能的,容易在有全天候运行的服务器成本的一小部分来创建.那是对的吗?

现在,假设上述情况正确,我们需要确定使用Lambda是否真的比Elastic Beanstalk更有益.

对于简单的服务器,我们可以设置一些Lambda函数并将其称为一天(与使用Elastic Beanstalk相比,它可能更简单,更便宜(至少对于小型项目而言).

但是,对于具有更多URL和数据库连接的更复杂的服务器,事情变得更有趣.

这些是我在上述情况下使用Lambda时遇到的问题

  • 每个网址都有自己的API网关,并拥有自己的Lambda功能.如果在多个函数中使用任何代码或模块,我们必须将其复制并粘贴到每个函数中.
  • 管理多个Lambda函数(和API网关)比管理单个项目/ repo /无论你想要调用你的代码库更加重要.
  • 每个需要数据库连接的函数都必须在函数内连接(比如说,在Node.js应用程序中有一个连续的连接).

避免前两个问题的唯一方法(我能想到的)是创建一个充当调度的强大函数(main函数从API网关获取一个参数并确定在Lambda函数中运行哪个文件).

我是否缺少任何要点来确定是否值得使用Lambda而不是Elastic Beanstalk?

amazon-web-services amazon-elastic-beanstalk aws-lambda

31
推荐指数
3
解决办法
7018
查看次数

Xamarin.Android支持库

我正在尝试实现James Montemagno的导航抽屉(https://github.com/jamesmontemagno/Xamarin-Templates),我遇到了问题.当我创建一个新项目时,我没有遇到任何问题,但当我尝试将支持库添加到现有项目时,我收到以下错误:

命名空间"my namespace"中不存在类型或命名空间名称"Support"(您是否缺少程序集引用)?

这是我的代码(问题代码是最后一行.我没有超过这个,因为我想了解发生了什么):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;

using Android.Support.V7.App;
using Android.Support.V4.Widget;
using Android.Support.V4.View;

using MyApp.Parse;
using MyApp.Android.Core.Login;
using MyApp.Android.Core.Utils;

namespace MyApp.Android.Core.Main
{
    [Activity(Label = "MainActivity", Icon = "@drawable/Icon")]
    public class MainActivity : BaseActivity
    {
        private MyActionBarDrawerToggle mDrawerToggle;
        private string mDrawerTitle;
        private string mTitle;

        private DrawerLayout mDrawerLayout;
        private ListView mDrawerListView;
        private DrawerMenuAdapter mAdapter;

        protected override int LayoutResource
        {
            get
            {
                return …
Run Code Online (Sandbox Code Playgroud)

android xamarin

5
推荐指数
1
解决办法
6119
查看次数

我可以从 OnOptionsItemSelected 调用异步方法吗?

我正在自学使用 Xamarin 平台(我也是 C# 的新手)。我正在创建一个应用程序,用户在其中登录并被迫创建配置文件。我想让 ActionBar(我正在使用材料工具栏)包含一个菜单项DONE。当用户单击 时DONE,我的应用程序会验证输入数据并将数据发送到我的 Parse 后端。这样做的问题是 Parse API 需要一个await profile.SaveAsync();才能做到这一点。为了确定用户DONE在 ActionBar 中点击了,我需要覆盖OnOptionsItemSelected(IMenuItem item),这不是异步的。

我通过创建private async void ActionDone()将处理所有 Parse 连接找到了解决此问题的方法。然后ActionDone()我在我的switch声明中调用OnOptionsItemSelected. 但是,我认为这是将 UI 线程与await. 我读过这是一个坏主意(主要是在其他 StackOverflow 帖子中)。还有另一种方法可以让 ActionBar 等待吗?或者我是否安全,因为为了继续,需要保存配置文件,因此保持 UI 是“可接受的”?

OnOptionsItemSelected

public override bool OnOptionsItemSelected(IMenuItem item)
    {
        // verify nothing else was clicked
        switch(item.ItemId)
        {
            case Resource.Id.action_done:
                ActionDone();
                break;
            default:
                // log error message
                break;
        }

        return base.OnOptionsItemSelected(item); …
Run Code Online (Sandbox Code Playgroud)

c# android xamarin

5
推荐指数
1
解决办法
1704
查看次数

我应该为 Android 图标使用什么 dp?

我发现这个LINK概述了 Android 中图像/图标/通知/等的尺寸应该是多少。然后我寻找一些可靠的标准图标并偶然发现了 Google 的REPOSITORY。每个图标都有 18、24、36 和 48dp。然后我可以下载 mdpi、hdpi、xhdpi、xxhdpi 和 xxxhdpi 的每个图像。

如果我为每个 dp 获得所有 6 个文件夹(mdpi、hdpi 等)的图标,为什么他们提供 4 个不同的 dp?另外,哪个dp最好?我应该使用 48 仅仅因为它最脆吗?

icons android

5
推荐指数
1
解决办法
5862
查看次数

离子无限滚动不适用于所有Android设备

我目前正在开发一个离子应用程序并成功实现了无限滚动功能.它适用于桌面浏览器和较新的Android设备,但是,我遇到运行Android 4.1或更低版本的手机的问题.

问题:

我打开页面,它加载并显示前20项正常,我滚动到底部,接下来的20项加载,但它不让我滚动任何进一步看到接下来的20项.

这是一个GIF,显示它在我的桌面上的样子(它应该工作的方式).桌面GIF

这是另一个GIF显示它在我的xperia手机上的外观(注意它不会让我在新装的物品上进一步滚动).xperia gif

然而,当我刷新页面,或者在接下来的20个项目加载后将手机变成横向模式时,滚动效果很好所以看起来手机不知道当新项目加载时屏幕高度发生了变化,所以我想我可以通过简单地添加 $ionicScrollDelegate.resize(); 告诉视图重新计算其容器的大小来修复它,但这似乎也没有解决它.

这是我的JavaScript代码:

.controller('TestCtrl', ['$scope', '$http', function($scope, $http) {
   $scope.items = [];
   $scope.page = 1;
   $scope.totalPages = 1;


   $scope.loadMore = function() {
     if ($scope.page <= $scope.totalPages) {
       $http.get('http://localhost/test/recent/' + $scope.page).success(function(items) {
         var i = items.data.length;
         $scope.totalPages = items.pages;
         $scope.items = $scope.items.concat(items.data);

         $scope.$broadcast('scroll.infiniteScrollComplete');

         $scope.page = $scope.page + 1;
         if ($scope.page == $scope.totalPages + 1) {
           $scope.noMoreItemsAvailable = true;
         }
       });
     }
   }
 }])
Run Code Online (Sandbox Code Playgroud)

HTML:

<ion-view view-title="Hello Stackoverflow">
  <ion-content>

    <a class="item" ng-repeat="item …
Run Code Online (Sandbox Code Playgroud)

javascript cordova hybrid-mobile-app ionic-framework

5
推荐指数
1
解决办法
1387
查看次数