.net AOP如何帮助数据绑定?

.net AOP如何帮助数据绑定?,.net,data-binding,aop,.net,Data Binding,Aop,我最近读了一篇关于安德斯·海尔斯伯格反对AOP论点的文章 第一个反论点提到数据绑定: 谬论1。“面向方面的编程对于代码的调试和指令插入很有意思,不是一门成熟的编程学科。” 真相1。安德斯可能只是停留在“你好,世界”的例子上 尽管代码插装无疑是AOP的一个重要用例,并且是您在每个“入门”文档中都会看到的用例,但当涉及到实现任何非平凡的实际应用程序时,该技术大大简化了开发人员的工作。仅举几个AOP真正有帮助的现实场景: 我试图思考在数据绑定场景中如何使用AOP。我一直认为绑定依赖于反射来完成它是“神

我最近读了一篇关于安德斯·海尔斯伯格反对AOP论点的文章

第一个反论点提到数据绑定:

谬论1。“面向方面的编程对于代码的调试和指令插入很有意思,不是一门成熟的编程学科。”

真相1。安德斯可能只是停留在“你好,世界”的例子上

尽管代码插装无疑是AOP的一个重要用例,并且是您在每个“入门”文档中都会看到的用例,但当涉及到实现任何非平凡的实际应用程序时,该技术大大简化了开发人员的工作。仅举几个AOP真正有帮助的现实场景:


我试图思考在数据绑定场景中如何使用AOP。我一直认为绑定依赖于反射来完成它是“神奇的”。我非常确定绑定场景中所需的一切都可以通过反射实现。AOP是否用于(轻微的)性能提升?

他指的不是数据绑定,而是AOP真正闪耀的
INotifyPropertyChanged
(以及类似的)部分

当前,当类实现INotifyPropertyChanged时,属性如下所示:

private bool _isSomeProperty;
public bool IsSomeProperty
{
  get{ return _isSomeProperty;}
  set
  { 
    if( value != _isSomeProperty)
    {
      _isSomeProperty = value;
      OnNotifyPropertyChanged( "IsSomeProperty");
    }
  }
}
如果有像样的AOP,它们可能看起来像这样

[NotifyOnChange]    
public bool IsSomeProperty {get; set;}
使可读性大为不同,特别是当一对属性的setter中有一些实际规则时

即使使用泛型基类、表达式、反射和一些棘手的实现,您最好希望:

private bool _isSomeProperty;
public bool IsSomeProperty
{
  get{ return _isSomeProperty;}
  set
  { 
    SetAndNotify( x=>x.IsSomeProperty)
  }
}

即使这样,也没有那么可读(而且性能也不太好)

很好的答案。我不太使用WPF编写代码,所以当我想到数据绑定时,我想到ASP.NET,我想到的是一种只读方式(在这种方式中,反射是非常好的)。谢谢
private bool _isSomeProperty;
public bool IsSomeProperty
{
  get{ return _isSomeProperty;}
  set
  { 
    SetAndNotify( x=>x.IsSomeProperty)
  }
}