小编dew*_*ald的帖子

在没有Visual Studio 2010的情况下安装MSBuild 4.0

我在笔记本电脑上安装了.NET 4.0和VS 2010 RC,并自动安装了MSBuild.我希望通过安装不带VS 2010的.NET SDK来构建一个持续集成服务器,所以我在这个链接上从Microsoft下载了.NET 4.0 Framework .不幸的是,似乎没有安装MSBuild与此下载(或至少我找不到它).

此链接是SDK的适当链接,还是仅仅是运行时?如果没有,SDK的链接在哪里?

我有点怀疑它是整个SDK,因为它只有35MB,其中.NET 3.5 SP1下载超过200MB.

.net msbuild sdk .net-4.0 visual-studio-2010

120
推荐指数
2
解决办法
9万
查看次数

C/C++:强制位域顺序和对齐

我读到结构中位字段的顺序是特定于平台的.如果我使用不同的特定于编译器的打包选项,这将保证数据在写入时以正确的顺序存储吗?例如:

struct Message
{
  unsigned int version : 3;
  unsigned int type : 1;
  unsigned int id : 5;
  unsigned int data : 6;
} __attribute__ ((__packed__));
Run Code Online (Sandbox Code Playgroud)

在具有GCC编译器的英特尔处理器上,字段在显示时显示在内存中.Message.version是缓冲区中的前3位,然后Message.type是.如果我找到各种编译器的等效结构包装选项,这将是跨平台的吗?

c c++ bit-manipulation endianness bit

81
推荐指数
5
解决办法
7万
查看次数

.NET CLR是否真的针对当前处理器进行了优化

当我读到有关C#或Java等JITted语言的性能时,作者通常会说它们理论上应该/可以胜过许多本机编译的应用程序.理论上,本机应用程序通常只是为处理器系列(如x86)编译,因此编译器无法进行某些优化,因为它们可能并非真正在所有处理器上进行优化.另一方面,CLR可以在JIT过程中进行特定于处理器的优化.

有谁知道微软(或Mono)的CLR在JIT过程中是否实际执行特定于处理器的优化?如果是这样,有什么样的优化?

.net c# clr optimization jit

44
推荐指数
2
解决办法
2988
查看次数

使用Microsoft .NET图表控件库生成图像,无需控制

是否可以使用Microsoft Chart Controls库生成图像(jpeg,png等)而无需实例化WinForm或ASP.NET Control类?我见过的所有例子都使用了控制组件.我需要创建一个包含简单方法的库,这些方法可以绘制数据并返回一个新的图表图像.例子:

public byte[] GeneratePlot(IList<SeriesData> series)
{
    // generate and return JPEG
}
public void GeneratePlot(IList<SeriesData> series, Stream outputStream)
{
    // generate JPEG and write to stream
}
Run Code Online (Sandbox Code Playgroud)

如果不可能:

  1. 你会建议每次用户调用GeneratePlot()方法时创建/处理新的图表控件吗?
  2. 你会推荐另一个.NET库(最好是免费的)吗?

谢谢

.net c# charts

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

.NET几何库

有谁知道.NET的一个好的(高效,漂亮的API等)几何开源库?部分操作需要:

  • 数据结构
    • 矢量(带有floats和doubles的2D和3D )
    • 线条(2D和3D)
    • 矩形/正方形/立方体/盒子
    • 球/圆圈
    • N面多边形
    • 矩阵(floats和doubles)
  • 算法
    • 交点计算
    • 面积/体积计算

.net c# algorithm geometry open-source

20
推荐指数
2
解决办法
7797
查看次数

.NET跨组装性能命中

我正在阅读Bill Wagner的书" Effective C#".在第32项中,他主张开发人员创建更小,更有凝聚力的组件,可以更容易地重用.然而,在同一个项目中,他说:

...额外的安全检查也是在装配边界上完成的.来自同一程序集的所有代码具有相同的信任级别(不一定是相同的访问权限,但具有相同的真实级别).每当代码流穿过程序集边界时,CLR都会执行一些安全检查.程序流程跨越程序集边界的次数越少,效率就越高......这些性能问题都不能阻止您分解太大的程序集.性能处罚很轻微.

我的问题是,是否对Foo.dll中的每个方法调用执行了额外的安全检查,还是仅在第一次加载程序集时执行?

谢谢

.net c# performance assemblies

13
推荐指数
3
解决办法
1680
查看次数

为什么IList <T>没有排序?!?!(编辑)的

当我发现没有直接的方法对IList <T>进行排序或执行二进制搜索时,我感到非常惊讶.就像有一些静态方法来对数组进行排序和执行二进制搜索一样,我认为使用类似于IList <T>的静态方法会非常有用.

目前:

class Array
{
    static Sort<T>(T[] array);
    static int BinarySearch<T>(T[] array, T item);
}
Run Code Online (Sandbox Code Playgroud)

我希望他们会补充:

class List
{
    static Sort<T>(IList<T> list);
    static int BinarySearch<T>(IList<T> list, T item);
}
Run Code Online (Sandbox Code Playgroud)

我瞥了一眼.NET Framework 4.0 Beta SDK,但似乎仍然没有解决这个问题的方法.

我知道我可以通过创建一个扩展方法来解决这个问题,该方法检查它是否是List <T>然后使用List <T>实例进行排序/搜索; 但是,如果它不是List <T>的实例,那么我必须执行一个副本(对于非常大的列表很臭).我知道我可以做到这一切,但为什么呢?他们故意遗漏这个功能有什么理由吗?

为了尝试在.NET 4.0 Framework中实现这一点,我通过Microsoft的Connect程序创建了一个建议.如果你像我这样对这个问题感到沮丧,那就投票吧,也许它会被添加.

https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=474201

.net c# c#-4.0

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

WPF DataGrid行标题可见性错误

我使用DataGrid显示多个字段,其中一个是多行描述.网格显示数据就好了,直到我尝试通过设置隐藏标题行HeadersVisibility="Column".标题行消失但是当我滚动时,行标题会重新出现一些随机行.

我已将其缩小到显示多行描述的列.只要我离开这一栏,我就没有这个问题.我试过用两者分开线"\r\n","\n"但都没有工作.DataGrid是否支持多行文本字段?

下面是一张图片,显示了正在发生的事情以及我用来创建网格的XAML.

DataGrid行标题错误图像

<DataGrid DataContext="{StaticResource personRepository}"
          ItemsSource="{Binding PersonList, Mode=OneWay}"
          AutoGenerateColumns="False"
          HeadersVisibility="Column"
          CanUserSortColumns="False"
          SelectionMode="Extended"
          IsReadOnly="True">

    <DataGrid.Columns>
        <DataGridTextColumn Header="Id" Width="80" Binding="{Binding Id, Mode=OneWay}" />
        <DataGridTextColumn Header="First Name" Width="150" Binding="{Binding FirstName, Mode=OneWay}" />
        <DataGridTextColumn Header="Last Name" Width="150" Binding="{Binding LastName, Mode=OneWay}" />
        <DataGridTextColumn Header="Description" Width="*" Binding="{Binding Description, Mode=OneWay}" />
    </DataGrid.Columns>
</DataGrid>
Run Code Online (Sandbox Code Playgroud)

.net c# wpf xaml wpfdatagrid

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

我应该在C#中创建这些向量类或结构

我在C#中创建一个几何库,我将需要以下不可变类型:

  • Vector2f(2 floats - 8字节)
  • Vector2d(2 doubles - 16字节)
  • Vector3f(3 floats - 12字节)
  • Vector3d(3 doubles - 24字节)
  • Vector4f(4 floats - 16字节)
  • Vector4d(4 doubles - 32字节)

我试图确定是否使它们成为结构或类. 如果大小不超过16个字节,MSDN建议仅使用结构.该引用似乎是从2005年开始的.16个字节仍然是最大建议大小?

我确信使用float向量的结构比使用类更有效,但我应该怎么做double向量?我是否应该使它们的结构一致,或者我应该让它们上课?

更新: 看起来每个人都同意他们应该结构化.谢谢你的答案.

c# size performance struct class

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

我还应该在.NET 4.0中使用BinaryFormatter进行简单序列化吗?

我正在开发一个主从式应用程序.主应用程序将状态数据发送到从属设备以处理并以某种恒定速率显示.状态数据被包装到包含许多字段的单个类中.这些字段类型包括基元,类,接口,接口列表等.所有类型都是BCL或自定义类型,因此可以根据需要修改自定义类型.主应用程序和从属应用程序都是.NET 4.0.我不关心序列化版本控制,因为主应用程序和从属应用程序将作为一对交付.

我需要一种"快速"的方法来序列化主服务器上的状态数据并在服务器上反序列化它.当我说"快"时,我更谈论开发时间(但如果解决方案很糟糕,处理时间可能是一个因素).但是,主设备和从设备将分布在WAN上,因此某种程度的紧凑性也会很好.

为了快速解决方案,我目前正在考虑简单地使用BinaryFormatter然后压缩流GZipStream.这是.NET 4.0的方法吗?

.net c# performance serialization binary-serialization

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