小编BCA*_*BCA的帖子

在Visual Studio 2015中为UWP加速单元测试的任何方法

在Visual Studio 2015中测试Windows Universal类库(.NET 4.6)时,"red-> green-> refactor"循环所需的时间非常长.我的测试项目只是标准的MSTest"单元测试应用程序"项目.即使在全新解决方案,全新主题和测试项目以及基本int Add(int n1, int n2)方法的最简单场景中,它也需要大约8-15秒.这是单击"运行测试"直到显示通过/失败的时间(在进行小代码更改之后).

在我的机器上(Win 10 pro)进行相同的实验但使用基于WPF的解决方案产生大约1-2秒.

在UWP场景中,实际测试时间本身列为79 ms.其余的时间是编译和部署单元测试应用程序容器.

有没有办法用UWP显着加速TDD?

tdd unit-testing visual-studio-2015 uwp

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

为什么UWP 10的发展如此之慢?

有没有其他人在VS 2015为通用Windows平台10编写应用程序时遇到非常缓慢的开发经验?与使用类似的基本WPF应用程序相比,编译,调试甚至在窗口之间切换都非常缓慢.

我还没有在谷歌上找到任何关于这种体验的提及,这让我想知道我的设置中是否有一些东西在UWP开发中扔了一把扳手.

有没有人经历过这个,或知道有什么方法可以加速发展?

更新

这个问题的上下文是在DEBUG模式下编译,而不是RELEASE(.NET native)模式.

windows visual-studio-2015 uwp

17
推荐指数
2
解决办法
5488
查看次数

为什么在循环中使用StreamSocket会导致内存泄漏?

我正在开发一个C#,UWP 10解决方案,它使用快速,连续的读/写循环与网络设备进行通信.API提供的StreamSocket似乎工作得很好,直到我意识到存在内存泄漏:Task<uint32>堆中有一个累积,大约每分钟数百个.

无论我while (true)在内部使用普通旧循环async Task,还是使用ActionBlock<T>TPL Dataflow 自我发布(根据此答案),结果都是相同的.

如果我从套接字中消除读取并专注于写作,我能够进一步隔离问题:无论是使用DataWriter.StoreAsync方法还是更直接StreamSocket.OutputStream.WriteAsync(IBuffer buffer),问题依然存在.此外,添加.AsTask()到这些没有区别.

即使垃圾收集器运行,它们Task<uint32>也永远不会从堆中删除.所有这些任务都是完整的(RanToCompletion),没有任何错误或任何其他属性值,表明"还没有准备好回收".

这个页面上似乎有一个提示我的问题(从托管到非托管世界的字节数组阻止了内存的释放),但是规定的解决方案看起来非常明显:唯一的方法是编写所有通信逻辑C++/CX.我希望这不是真的; 当然,其他C#开发人员已经成功实现了连续的高速网络通信而没有内存泄漏.当然,微软不会发布一个只在C++/CX中没有内存泄漏的API

编辑

根据要求,一些示例代码.我自己的代码有太多层,但使用此Microsoft示例可以观察到一个更简单的示例.我做了一个简单的修改,在循环中发送1000次以突出显示问题.这是相关代码:

public sealed partial class Scenario3 : Page
{
    // some code omitted

    private async void SendHello_Click(object sender, RoutedEventArgs e)
    {
        // some code omitted

        StreamSocket socket = //get global object; socket is already connected

        DataWriter writer = new …
Run Code Online (Sandbox Code Playgroud)

.net c# stream-socket-client async-await winrt-async

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

是否有WPF相当于UWP的SplitView汉堡菜单?

通用Windows平台中的汉堡式SplitView控件是完美的,IMO.但是,我的项目有一个WPF前端.

有人知道WPF等同于此(最好是开源)吗?

.net wpf uwp

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

为什么AdornedElement.(Validation.Errors).CurrentItem.ErrorContent now(VS2017 15.4)导致intellisense错误?

我一直在使用以下错误装饰模板很长一段时间了:

<ControlTemplate x:Key="ErrorAdornerTemplateStyle" TargetType="{x:Type Control}">
    <Grid ClipToBounds="False" >
        <Border BorderBrush="Red" BorderThickness="2" Margin="-1" 
         ToolTip="{Binding ElementName=adornedElement, Path=AdornedElement.(Validation.Errors).CurrentItem.ErrorContent }">
            <AdornedElementPlaceholder Name="adornedElement" />
        </Border>
        <Polygon Points="15,15 15,0 0,0"
                 Fill="Red"
                 HorizontalAlignment="Right"
                 VerticalAlignment="Top" 
                 ToolTip="{Binding ElementName=adornedElement, Path=AdornedElement.(Validation.Errors).CurrentItem.ErrorContent }"/>
    </Grid>
</ControlTemplate>
Run Code Online (Sandbox Code Playgroud)

...它在运行时工作得很好(据我所知).

但是,在过去一个月对VS和WPF以及NET Standard 2进行了一系列升级之后,我注意到我的syles xaml文件中的intellisense给出了以下CurrentItem标识错误:

在'ReadOnlyObservableCollection'类型中找不到属性'CurrentItem'.

这只是一个令人讨厌的VS错误,还是VS警告我需要适应的WPF子系统中的某种变化?

wpf xaml visual-studio

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

什么被认为是WPF和WCF应用程序的用户身份验证/授权的"最佳实践"?

假设我有一个.NET富客户端(WPF)应用程序,它将同时部署在3个不同的场景中:

  1. 客户端和服务器代码在单个进程中运行
  2. 客户端代码在Intranet计算机上运行,​​并通过WCF与运行应用程序/域/基础结构代码的服务器计算机进行通信
  3. 与#2相同,但客户端可以在防火墙外部的计算机上运行.应集中维护用户和角色的自定义列表(即,凭据不基于Windows登录)

为此应用程序实现相同的用户授权/身份验证模型的简单,经过验证的做法是什么?即,无论应用程序的部署方式如何,我都希望在表示层,应用程序层,域层等中使用相同的方法.

是否应通过我现有的Entity Framework模型在我的SQL数据库中明确维护用户/角色?应该Thread.CurrentPrincipal是需要授权某些应用程序功能的代码所使用的方法,还是应该IUserService依赖注入某些功能?

这是一个低调的应用程序,因此安全性并不重要 - 只是一些基本的东西.

谢谢

编辑

花了几个小时研究基于WIF /声明的身份验证后,我仍然没有看到有关如何创建使用此类安全性的独立.NET桌面应用程序的任何指导.所有讨论都适用于ASP.NET或WCF.我需要我的应用程序使用可以在分布式(WCF)和独立部署方案中使用的标准方法

architecture authentication wcf authorization desktop-application

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

EF Code First外键没有导航属性,但具有父集合属性

我的问题类似于这个问题,但在这种情况下,我确实在父母那里引用了childeren的集合属性:

public class Parent
{
    public int Id { get; set; }
    public virtual ICollection<Child> Children { get; set; }
}

public class Child
{
    public int Id { get; set; }
    public int ParentId { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

就像引用的问题一样,我不希望/需要Parent财产Child.

那么如何改变以下语法来定义关系呢?

modelBuilder.Entity<Child>()
    .HasRequired(c => c.Parent)   <---- no such property "Parent"
    .WithMany(p => p.Children)
    .HasForeignKey(c => c.ParentId); 
Run Code Online (Sandbox Code Playgroud)

c# entity-framework

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

为什么存储库模式的示例永远不会处理数据库连接异常?

我已经阅读了很多教程,并看到了很多关于Repository模式实现的代码示例.几乎在每种情况下,都不会解决因数据库不可用时尝试访问数据库而导致的异常.考虑到如果数据库位于网络上的某个位置,这是一个非常现实的情况,这似乎很奇怪.

那么处理这些异常的最佳做法是什么?

  • 在try/catch中包含这100个调用中的每一个,其中每个调用可能具有相同的n个 catch块?这有很多重复,杂乱,容易出错等.

  • 让异常泡到应用程序级别会将它们作为未处理的异常捕获吗?如果在UI线程上抛出异常,这是有意义的,否则,处理未处理的AppDomain异常会导致应用程序关闭.

  • 使用Enterprise Library的异常处理应用程序块等框架?

architecture exception-handling repository-pattern

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

ASP.NET Core 6:如何在启动时将控制台窗口带到前台

使用“ASP.NET Core Web App”模板创建新项目后,当我运行该项目时,我希望控制台窗口自动带到前台。由于我主要开发 Web API,因此我不希望启动浏览器(我已在 launchsettings.json 中完成),但确实希望显示控制台窗口。

我已经验证这是创建 .NET Core 6控制台应用程序时的默认行为,但我找不到负责此所需行为的设置。

asp.net-core

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

如何阻止 WPF Grid 自动在子元素上插入边距

我在 Visual Studio 2012 和 WPF 方面遇到了最烦人的问题,我希望得到一些帮助。我有一个带有子元素的简单网格,例如带有网格单元格的 TextBlocks。文本块被设置为在单元格内相对定位(例如,使用左侧的水平对齐)。一切都很好,直到我敢于调整网格的列或行的大小。然后,Visual Studio 插入边距和宽度/高度属性,以与父/子元素的结果位置保持一致。这一切都悄无声息地发生,直到后来我决定进一步减小列的大小时我才注意到,突然 TextBlock 由于插入了其 Margin 属性而被剪裁。我必须检查每个子元素并手动删除这些额外的属性。我必须在当前的项目中执行此操作近 100 次,而且我无法在网络上找到任何内容来了解​​如何告诉 Visual Studio 后退并停止采取这些窃取我想要实现的良好格式的自由行为。这是一个代码片段供参考。但我的项目中许多不同的网格实例都发生过这种情况。

<Grid  Canvas.Left="435" Canvas.Top="138" Height="61" Width="192">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="11*"/>
        <ColumnDefinition Width="21*"/>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="1*"/>
        <RowDefinition Height="1*"/>
    </Grid.RowDefinitions>

    <TextBlock Grid.Row="0" Grid.Column="0" Text="Subtotal:" HorizontalAlignment="Right" VerticalAlignment="Center"  />
</Grid>
Run Code Online (Sandbox Code Playgroud)

...调整第 0 列的大小后:

<TextBlock Grid.Row="0" Grid.Column="0" Text="Subtotal:" HorizontalAlignment="Right" VerticalAlignment="Center" Height="16" Margin="0,7" Width="47"  />
Run Code Online (Sandbox Code Playgroud)

当然还有其他人遇到过这个问题。请帮忙!

谢谢

wpf grid margin visual-studio-2012

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