小编Ill*_*dan的帖子

Microsoft Azure DocumentDB与Azure表存储

近几年来,微软提供了一个名为"Table Storage"的"NoSQL"密钥/值存储(http://azure.microsoft.com/en-us/documentation/articles/storage-dotnet-how-to-use-表/)

表存储提供高性能,可扩展性(通过分区)和相对较低的成本.Table的主要缺点是只能对Partition和Row键建立索引 - 因此对值进行查询效率非常低.

最近,微软宣布了一项名为"DocumentDB"的新"NoSQL"服务(http://azure.microsoft.com/en-us/documentation/services/documentdb/)

DocumentDB存储JSON对象,而不是存储属性列表(如Tables do).整个对象被索引 - 因此可以基于存储对象的每个属性和任何嵌套属性创建有效的查询.

微软表示,DocumentDB也提供了高性能和可扩展性.

如果是这样 - 为什么有人会使用Table Storage而不是DocumentDB?听起来DocumentDB提供与Tables相同的功能,但具有其他功能,例如索引任何内容的功能.

如果有人能够在DocumentDB和Table Storage之间进行比较,我会很高兴,强调每个人的利弊.

azure azure-table-storage azure-cosmosdb

43
推荐指数
3
解决办法
2万
查看次数

使用ScrollViewer作为模板的一部分进行某些控制时,会处理左键单击

考虑第一版代码(MainWindow.xaml):

<ScrollViewer>
    <local:CustomControl1 Width="1000" Height="1000" Background="Red"/>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)

其中CustomControl1派生自ItemsControl.在CustomControl1中,我重写了OnMouseDown事件.这段代码完美无缺,我确实抓住了鼠标按下事件.

现在第二版代码(MainWindow.xaml):

<local:CustomControl1 Width="1000" Height="1000" Background="Red"/>
Run Code Online (Sandbox Code Playgroud)

在Generic.xaml里面,我更改了我的项目控件的模板:

            <ControlTemplate TargetType="{x:Type local:CustomControl1}">
                <Border Background="{TemplateBinding Background}"
                        BorderBrush="{TemplateBinding BorderBrush}"
                        BorderThickness="{TemplateBinding BorderThickness}">

                    <ScrollViewer 
                        VerticalScrollBarVisibility="Visible" 
                        HorizontalScrollBarVisibility="Visible"
                        >
                        <ItemsPresenter/>
                    </ScrollViewer>
                </Border>
            </ControlTemplate>
Run Code Online (Sandbox Code Playgroud)

当我将scrollviewer作为控件模板的一部分时,我不再接收OnMouseDownEvent(左键单击).出于某种原因,现在将鼠标按下事件标记为已处理.如果不是重写OnMouseDown,我在items控件构造函数中使用以下语句,则捕获事件:

AddHandler(Mouse.MouseDownEvent, new MouseButtonEventHandler(OnMouseDown), true);
Run Code Online (Sandbox Code Playgroud)

首先,我想了解为什么将scrollviewer放在模板中改变鼠标的行为.第二,有没有人知道一些解决方法?我提出的解决方案(通过捕获处理事件)对我来说是不可接受的.在我的应用程序中,只有当没有任何项控制子项处理它时,我才需要处理鼠标按下事件.

提前致谢.

wpf scrollviewer controltemplate

13
推荐指数
1
解决办法
3035
查看次数

通过样式设置器设置contextmenu时,PlacementTarget属性为null

在我的应用程序中,我有一个视图(ListView)和一个视图模型。在视图模型内部,我有2个属性:第一个是项目列表,第二个是命令。我想在ListView中显示项目(从第一个属性开始)。另外,我希望每个菜单都有一个上下文菜单,单击该菜单将激活一个命令(来自第二个属性)。

这是我的视图模型的代码:

public class ViewModel
{
    public IEnumerable Items
    {
        get
        {
            return ...;  //returns a collection of items
        }
    }

    public ICommand MyCommand //this is a command, I want to be able execute from context menu of each item
    {
        get
        {
            return new DelegateCommand(new Action<object>(delegate(object parameter)
            {
                //here code of the execution   
            }
            ), new Predicate<object>(delegate(object parameter)
            {
                //here code of "can execute"
            }));
        }
    }
Run Code Online (Sandbox Code Playgroud)

现在,XAML部分:

<ListView  ItemsSource="{Binding Items}">
<ListView.Resources>
    <commanding:CommandReference x:Key="myCommand" Command="{Binding MyCommand}"/>
</ListView.Resources>
    <ListView.ItemTemplate>
        <DataTemplate> …
Run Code Online (Sandbox Code Playgroud)

wpf contextmenu mvvm

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

编译 win8 应用程序时出现 [致命错误 C1007:'p2' 中无法识别的标志 '-archVFPv3-D32'] 错误

有时我会收到此错误:

致命错误 C1007:“p2”中无法识别的标志“-archVFPv3-D32”

Visual Studio 2013,Windows 应用商店应用(c++ 和 c# 项目)。

似乎完全重建解决了这个问题 - 直到下一次。

有任何想法吗?

谢谢

c++ windows-store-apps visual-studio-2013

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

Kubernetes 服务未获取外部 IP

我在本地运行 Kubernetes 集群,使用 KubeAdm 进行初始化。我配置了法兰绒网络插件。

当我将服务公开为 NodePort 时,我无法接收外部 IP。我想念什么?

在此处输入图片说明

我的部署 yaml 如下所示:

apiVersion: v1
kind: Service
metadata:
  name: testapp
  labels:
    run: testapp
spec:
  type: NodePort
  ports:
  - port: 8080
    targetPort: 80
    protocol: TCP
    name: http
  - port: 443
    protocol: TCP
    name: https
  selector:
    run: testapp
---------
apiVersion: apps/v1
kind: Deployment
metadata:
  name: testapp
spec:
  selector:
    matchLabels:
      run: testapp
  replicas: 2
  template:
    metadata:
      name: testapp
      labels:
        run: testapp
    spec:
      containers:
        - image: [omitted]
          name: testapp
          ports:
          - containerPort: 80 …
Run Code Online (Sandbox Code Playgroud)

kubernetes

5
推荐指数
2
解决办法
8061
查看次数

K8s:安全上下文和安全策略有什么区别?

查看Kubernetes文档:

嗯...最终他们不是一样的吗?有什么不同?

kubernetes

4
推荐指数
1
解决办法
396
查看次数

Visual Studio 2015混合应用程序 - 获取"EPERM,不允许操作"

我有一种荒谬的情况,我很高兴听到你们如何处理它:

我有一个混合应用项目,Visual Studio 2015 Cordova Tools.在它里面,在"res"文件夹下我有app资源.整个项目,包括资源,都在源头控制之下(TFS).

在构建期间,资源文件被复制到"..\_mpames\android\res"文件夹中.

第一次,当文件夹为空时成功 - 文件按原样复制(例如,只读,因为它们在源代码控制下).之后,在下一次构建期间,它会尝试覆盖这些只读文件并失败,正如预期的那样 - 显示信息错误:"EPERM,操作不允许' 资源完整路径 '.

我不明白.资源必须受源代码控制,所以我猜99.99%的开发人员会遇到与我相同的问题.

我错过了什么?

谢谢

android cordova hybrid-mobile-app visual-studio-2015

3
推荐指数
2
解决办法
4596
查看次数

Istio - 所有这些端口在 LoadBalancer 上打开了什么?

我查看了 Istio 创建的 ELB,我看到了所有这些开放端口:

  • 80 (TCP) 转发到 31380 (TCP)
  • 443 (TCP) 转发到 31390 (TCP)
  • 853 (TCP) 转发到 31107 (TCP)
  • 8060 (TCP) 转发到 32130 (TCP)
  • 15011 (TCP) 转发到 31942 (TCP)
  • 15030 (TCP) 转发到 31438 (TCP)
  • 15031 (TCP) 转发到 30695 (TCP)
  • 31400 (TCP) 转发到 31400 (TCP)

所有这些端口都暴露在 Internet 上。除了前两个,所有其他暴露的端口的目的是什么?有没有办法(通过 Istio 配置)来控制公开的内容?

istio

2
推荐指数
1
解决办法
737
查看次数

在Linq Select方法中避免重复代码

我有一些愚蠢的情况,我找不到简单而优雅的解决方案来解决烦人的问题.

我用简单的UI编写asp.net应用程序,根据用户选择查询数据库.用于使用Entity Framework查询DB I.

在我的场景中,其中一个可选用户选择是自由文本,为此我使用SQL Server FTS功能(使用CONTAINSTABLE函数,因为我需要按相关性排序结果).

现在,我有以下情况:

如果用户没有提供自由文本标准,我使用类型的结果创建简单的Linq查询IQueriable<Result>(其中'Result'是一个包含来自表的数据的实体)

但是,如果用户没有提供免费的文字标准,我创建与CONTAINSTABLE查询,它的类型是IQueriable<ResultWithRank>(其中"ResultWithRank"是一个对象包含两个实体:"结果"和"排名",因为在内部CONTAINSTABLE结果加入).

在这个阶段,在我构建了我的可查询之后,我需要在其上执行'Select'方法,以便将其转换为有用的东西.

这是问题所在:

在第一种情况下,我的select语句如下所示:

var result = queryable.Select(entity => /*.. about 20 lines of reshapying code .. */
Run Code Online (Sandbox Code Playgroud)

在第二种情况下,它看起来像这样:

var result = queryable.Select(entity.Result => /*.. about 20 lines of exactly the same reshapying code .. */
Run Code Online (Sandbox Code Playgroud)

我想避免重复"选择"代码,因为两种情况都相同.我试图将它移动到外部方法,但这没有执行,因为Linq试图将我的方法转换为SQL并且显然失败了.

如何以一种优雅的方式解决这个问题,而不重复"选择"代码?

c# linq entity-framework

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

IntelliJ - 如何隐藏特定文件夹中的文件类型?

我使用 IntelliJ IDE 开发 TypeScript 应用程序,并且我想隐藏“app”文件夹中的 *.js 文件。我不想全局隐藏 js 文件,因为我确实需要在其他地方(例如在 node_modules 文件夹中)看到它们。

目前我有 IntelliJ 2016.1.4

我试图将相关路径添加到“设置->编辑器->文件类型->忽略文件和文件夹”中:

  • “./app/*.js”
  • “/应用程序/*.js”
  • “应用程序/*.js”

-> 似乎没什么作用

如果我试图隐藏“app”或“*.js” - 它确实有效。

那么 - 是否支持隐藏特定文件夹中的特定文件类型?

intellij-idea

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

SQL SERVER - FETCH NEXT ROWS 返回重复的结果

我的网站有一个非常奇怪的问题,最后我成功地查明了确切原因。

在我的“实体”表中,我有几列,例如“Id”、“Title”、“Date”、“Indexing”等等。

“索引”列用全文索引编制索引。

考虑以下 SQL 查询:

SELECT Id 
FROM [dbo].[Entities] AS DocTable 
INNER JOIN CONTAINSTABLE(Entities, Indexing, 'otherCriteria OR criteia') AS KEY_TBL  
ON DocTable.Id = KEY_TBL.[KEY] 
ORDER BY KEY_TBL.RANK DESC
Run Code Online (Sandbox Code Playgroud)

这个查询按预期工作,我得到大约 600 个结果。

现在我添加分页:

SELECT Id 
FROM [dbo].[Entities] AS DocTable 
INNER JOIN CONTAINSTABLE(Entities, Indexing, 'otherCriteria OR criteia') AS KEY_TBL  
ON DocTable.Id = KEY_TBL.[KEY] 
ORDER BY KEY_TBL.RANK DESC 
OFFSET 50 ROWS FETCH NEXT 10 ROWS ONLY
Run Code Online (Sandbox Code Playgroud)

无论我使用 OFFSET 30 还是 40 或 50 -> 我总是得到完全相同的结果!

现在真正奇怪的部分是:如果在 SELECT 中,我还要求选择“标题”(例如 SELECT Id、Title)--> 我得到正确的结果。

有任何想法吗?

sql-server

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

AWS Beanstalk - 如何上传站点地图?

我的网站部署在 AWS Beanstalk 上。由于我的内容是动态的,因此我每天都会重新生成一个站点地图,该站点地图必须部署在我的网站上(它必须位于同一域下)。

以前(在 Azure 和共享托管上)我是通过使用 FTP 上传站点地图文件来实现这一点的。

如何在 AWS Beanstalk 上上传站点地图?

amazon-web-services amazon-elastic-beanstalk

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

带有多项目Gradle的SpringBoot-&gt;主类名称尚未配置,无法解析

我有以下项目结构:

RootProject
??? lib
     ??? src
          ??? main
               ??? java
                    ??? ...
??? test-project
     ??? src
          ??? main
               ??? java
                    ??? ...

??? build.gradle
Run Code Online (Sandbox Code Playgroud)

我试图遵循Gradle 最佳实践进行多项目构建,因此我在单个build.gradle文件中描述了整个构建过程。

“ RootProject”只是一个没有任何代码的根项目,其唯一目的是为其子项目“ lib”和“ test-project”提供一个build.gradle。

“ test-project”是一个使用“ lib”作为编译依赖项的SpringBoot项目(微服务)。

我常见的build.gradle如下所示:

plugins{
    id 'java'
    id 'org.springframework.boot' version '2.1.1.RELEASE'
    id 'io.spring.dependency-management' version '1.0.6.RELEASE'
}


allprojects {
    repositories {
        jcenter()
    }
}


subprojects {

    apply plugin: 'io.spring.dependency-management'
    apply plugin: 'org.springframework.boot'

    group = 'com.xxx.yyy'
    version = '1.0'

    sourceCompatibility = 1.8
    targetCompatibility = 1.8
}


project(":lib"){

    apply plugin: 'java-library'

    dependencies …
Run Code Online (Sandbox Code Playgroud)

gradle spring-boot

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