小编Bra*_*ach的帖子

C#预处理器

虽然C#规范确实包含预处理器和基本指令(#define,#if等),但该语言没有与C/C++等语言相同的灵活预处理器.我认为缺乏这种灵活的预处理器是由Anders Hejlsberg做出的设计决定(尽管不幸的是,我现在找不到这个参考).根据经验,这肯定是一个很好的决定,因为当我做很多C/C++时,会创建一些非常糟糕的不可维护的宏.

也就是说,有很多场景我可以找到一个稍微灵活一点的预处理器.一些简单的预处理器指令可以改进以下代码:

public string MyProperty
{
  get { return _myProperty; }
  set
  {
    if (value != _myProperty)
    {
      _myProperty = value;
      NotifyPropertyChanged("MyProperty");
      // This line above could be improved by replacing the literal string with
      // a pre-processor directive like "#Property", which could be translated
      // to the string value "MyProperty" This new notify call would be as follows:
      // NotifyPropertyChanged(#Property);
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

编写预处理器来处理这样极其简单的情况会不是一个好主意?Steve McConnell在Code Complete中写道(p208):

编写自己的预处理器 如果一种语言不包含预处理器,那么编写一个很容易...

我被撕裂了.将这样一个灵活的预处理器从C#中取出是一个设计决定.但是,我非常尊重的作者提到它在某些情况下可能没问题.

我应该构建一个C#预处理器吗?有没有可以做我想做的简单事情?

c# c-preprocessor

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

你可以将DataTrigger绑定到附加属性吗?

在WPF中,DataTrigger是否可以绑定到附加属性?

我本质上希望在附加属性上使用转换器,以在特定验证规则被破坏时提供样式.我正在使用如下标记:

<DataTrigger Binding="{Binding Path=Validation.Errors, 
                       RelativeSource={RelativeSource Self}, 
                       Converter={StaticResource RequiredToBoolConverter}}" 
                       Value="True">
  <Setter Property="Background" Value="LightGreen" />
</DataTrigger>
Run Code Online (Sandbox Code Playgroud)

但是,当这运行时,我得到以下内容:

System.Windows.Data错误:39:BindingExpression路径错误:'object'''TextBox'(Name ='')'上找不到'Validation'属性.BindingExpression:路径= Validation.Errors; DataItem ='TextBox'(Name =''); target元素是'TextBox'(Name =''); target属性是'NoTarget'(类型'对象')

如果我将DataTrigger绑定路径更改为"Text",我不会得到数据绑定错误(但当然它不提供我正在寻找的行为).

wpf binding datatrigger

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

Linq to Entities与ESQL的性能

使用实体框架时,ESQL的性能是否优于Linq to Entities?

我更喜欢使用Linq to Entities(主要是因为强类型检查),但我的其他一些团队成员都将性能作为使用ESQL的理由.我想充分了解使用这两种方法的专家/骗子.

linq-to-entities entity-framework entity-sql

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

SQL Server 2008与SQL Server 2005的兼容性

使用SQL Server 2008作为开发数据库的最佳方法是什么,但确保数据库与SQL Server 2005兼容?

sql-server sql-server-2005 sql-server-2008

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

使用IQueryable <T>的设计模式

随着.NET 3.5和IQueryable<T>界面的引入,将出现新的模式.虽然我已经看到了规范模式的许多实现,但我还没有看到使用这种技术的许多其他模式.Rob Conery的Storefront应用程序是另一个使用IQueryable<T>它可能导致一些新模式的具体示例.

有用的IQueryable<T>界面出现了什么样的模式?

linq design-patterns iqueryable .net-3.5

14
推荐指数
2
解决办法
7372
查看次数

TextBox.TextChanged和ICommandSource

我正在遵循WPF UI 的MV-VM模式.我想将一个命令连接到TextBox的TextChanged事件到我的ViewModel类中的命令.我可以设想完成此任务的唯一方法是继承TextBox控件,并实现ICommandSource.然后,我可以指示从TextChanged事件触发该命令.对于看起来如此简单的事情来说,这似乎太过分了.

是否有一种更简单的方法(比继承TextBox和实现ICommandSource)将TextChanged事件连接到我的ViewModel类?

wpf command mvvm event-binding

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

ASP.NET MVC 3:需要部署哪些DLL?

在没有安装ASP.NET MVC 3的服务器上部署ASP.NET MVC 3应用程序时,需要将哪些文件标记为"True"?

deployment asp.net-mvc asp.net-mvc-3

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

检测UI

你如何检测你的用户界面?在过去,我读过人们已经为他们的用户界面进行了检测,但我没有找到关于如何测量 UI的示例或提示.

通过仪表,我的意思是收集有关系统使用和性能的数据.有关Instrumentation的MSDN文章是http://msdn.microsoft.com/en-us/library/x5952w0c.aspx.我想捕获用户点击的按钮,他们使用的键盘缩写,他们用来搜索的术语等.

  • 你如何检测你的用户界面?
  • 您存储仪器的格式是什么?
  • 您如何处理检测数据?
  • 如何使用此检测逻辑保持UI代码清洁?

具体来说,我正在WPF中实现我的UI,因此与基于Web的应用程序相比,这将提供额外的挑战.(即需要将仪表化数据传回中心位置等).也就是说,我觉得这项技术可以通过附加属性等概念提供更简单的仪器实现.

  • 你有没有检测过WPF应用程序?您对如何实现这一目标有什么建议吗?

编辑:以下博客文章提出了一个有趣的解决方案:Pixel-In-Gene博客:WPF应用程序上的UI审计技术

wpf user-interface instrumentation

8
推荐指数
2
解决办法
1846
查看次数

.NET客户端配置文件值得定位吗?

我最近一直在研究针对我正在构建的WPF应用程序的.NET客户端配置文件.但是,我很沮丧地注意到客户端配置文件仅对以下操作系统配置有效:

  • Windows XP SP2 +
  • Windows Server 2003 编辑: 显示客户端配置文件不会安装在Windows Server 2003上.

此外,客户端配置文件是不是有效的针对x64或IA64版本; 如果已安装任何以前版本的.NET Framework,也不会安装.

我想知道将额外的OS配置添加到测试矩阵中的努力是否值得付出努力.是否有可用的指标表明可能从客户端配置文件中受益的用户百分比?我相信一旦安装了.NET Framework,额外的信息就会作为Web请求的一部分传递给Web服务器,表明框架可用.当然,我认为没有安装.NET Framework的Windows XP SP2用户会有很多人.那么问题是我的申请是否专门针对这些人.

有没有其他人确定是否值得为这些特定用户定位额外的努力?

编辑:如果您使用客户端配置文件中未包含的功能,似乎可能会收到编译器警告.由于我通常将警告作为错误运行,因此希望能够最大限度地减少此配置中的测试.当然,这个配置仍然需要测试,但它应该像测试安装/初始运行是否适用于XP + SP2 +一样简单.

.net .net-client-profile

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

WPF:设置通用基本控件的样式

是否可以在WPF中为通用基本控件提供默认样式?

假设我有以下基类:

public abstract class View<T> : ContentControl
    where T : ViewModel
{
    static View()
    {
        DefaultStyleKeyProperty.OverrideMetadata(typeof(View<T>), 
            new FrameworkPropertyMetadata(typeof(View<T>)));
    }

    // Other properties, methods, etc in here
}

public abstract class ViewModel
{
    // Other properties, methods, etc in here
}
Run Code Online (Sandbox Code Playgroud)

假设我有两个继承自这些基类的类:

public partial class TestView : View<TestViewModel>
{
    public TestView()
    {
        InitializeComponent();
    }

    // TestView specific methods, properties, etc
}

public class TestViewModel : ViewModel
{ /* TestViewModel specific methods, properties, etc */ }
Run Code Online (Sandbox Code Playgroud)

现在我想为我的派生控件使用的基本控件提供一个默认样式:

<Style TargetType="{x:Type local:View`1}">
    <Setter …
Run Code Online (Sandbox Code Playgroud)

wpf

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