问题列表 - 第35884页

Delphi XE:丢失的库路径

从Delphi 2010升级后,我在Delphi XE中丢失了大部分的Library Path,

现在即使是一些简单的应用程序也无法编译.

有没有办法恢复库路径中丢失的目录条目?

编辑:我发现了一个令人惊讶的解决方案,只需删除此注册表项:

HKEY_CURRENT_USER\SOFTWARE\Embarcadero公司\ BDS\8.0 \图书馆

并重新启动Delphi,然后将使用正确的默认值再次生成注册表中的密钥,但您将失去任何第三方,至少现在它正在工作!

我希望它对任何有同样问题的人都有用:)

delphi delphi-xe

7
推荐指数
2
解决办法
5651
查看次数

捕获对象属性的更改

我的应用程序中有多个业务对象(C#、Winforms、WinXP)。当用户在 UI 上执行某些操作时,这些对象中的每一个都会被应用程序的不同部分修改和更新。每次修改后,我需要首先检查发生了什么变化,然后记录对对象所做的这些更改。记录此内容的目的是创建对应用程序中正在进行的活动的全面跟踪。

这些对象中的许多包含其他对象的列表,并且这种嵌套可以有几个级别深。任何解决方案的 2 个主要要求是

  1. 尽可能准确地捕捉变化
  2. 将性能成本保持在最低水平。

例如一个业务对象:

public class MainClass1
{
    public MainClass1()
    {
        detailCollection1 = new ClassDetailCollection1();
        detailCollection2 = new ClassDetailCollection2();
    }

    private Int64 id;
    public Int64 ID
    {
        get { return id; }
        set { id = value; }
    }

    private DateTime timeStamp;
    public DateTime TimeStamp
    {
        get { return timeStamp; }
        set { timeStamp = value; }
    }

    private string category = string.Empty;
    public string Category
    {
        get { return category; }
        set { category …
Run Code Online (Sandbox Code Playgroud)

c# audit enterprise

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

CRUD风格的数据驱动分布式.NET应用程序架构问题

上下文:在.NET平台上构建智能客户端应用程序,其中包含涉及大量列的复杂数据库模型.自然的应用程序风格是典型的数据驱动CRUD.在某些情况下,还有一些服务器端逻辑,以及一些复杂的验证.您可以完全控制客户端和服务器,因此对互操作性的需求至少是必需的.


这个问题有很多细节,为此道歉,但这是因为我想为答案设置适当的背景.


还有一些假设
- 在微软世界中并不罕见,大多数以前的应用程序都是用DataSet编写的,因此它是所涉及开发人员最熟悉的技术.但是,让我们说开发人员也非常精通OO思维.
- 您需要在客户端和服务器上运行验证.
- 您不以表格形式显示大多数数据.
- 这不是内联网应用程序,因此您不能过多地考虑带宽


最大的问题:数据集还是对象?


如果你选择数据集,你会有一些积极的和消极的
- 在积极方面:你从数据库中获取数据,通过网络获取数据并通过网络返回更改的数据方面获得了一些Microsoft支持较小的块 - 因为您只能指定发送更改.发送较少的数据是好的,因为可能涉及相当多的数据.
- 否定的是:在验证,业务逻辑等方面,你得到了一个程序化的代码形式,你没有得到面向对象代码的好处 - 行为和数据在一起,更自然的工作和思考方式你正在做什么,可能更接近验证逻辑.您还可以放弃将数据集放在网格中的好处,因为这不是常见的用例.

如果你去寻找对象,那就是同样的练习,但还有更多的选择:
肯定:行为和数据在一起.验证逻辑更接近.更容易查看和理解对象之间的关系.更易读的代码.更容易进行单元测试.但是,您还需要做很多选择和工作:


OR/Mapping
- 从关系模型获取数据到对象.OR映射器并不复杂,并且能够很好地处理它.但它增加了开发时间.


合同映射
- 将数据从服务器端对象映射到合同对象(通常是DTO)通常是一种很好的做法.由于这是一个非常适合CRUD风格架构的应用程序,因此DTO并没有真正为图片增加太多价值,只是映射工作.


共享代码
- 您可以使用共享代码方案,其中包含域数据和逻辑的程序集在客户端和服务器端都可用.这是紧密耦合,但当你有一个自然紧密耦合的客户端 - 服务器应用程序时,它并不一定是坏的.


无论您选择是否添加合同层,您都必须通过线路发送大型对象结构因为我们控制客户端和服务器,所以传输和编码应该是TCP上的二进制编码.那会有所帮助.使用数据集,您可以选择仅发送更改.前后发送整个对象结构可能是性能问题.发送整个对象结构的选项是以某种方式识别所涉及的更改(创建,更新,删除),并仅发送有关该更改的信息.理论上,将聚合根ID发送到服务器以及更改并不太难,要求服务器延迟加载聚合根,执行所做的更改,然后再次保存.但涉及的最大复杂性是确定所做的改变.你有没有采用这种方法?为什么?你究竟是怎么做到的?

演示文稿
确切的UI技术对于这个问题并不是那么重要,WinForms,Silverlight或WPF是可能的.让我们假设我们正在使用WPF,因为它是一个新的智能客户端.这意味着我们有两种方式绑定,可以正确使用MVVM.

绑定到用户界面的对象需要实现INotifyPropertyChanged并在每次更新属性时引发事件.你是如何解决这个问题的?如果您选择共享代码方案,则可以将其添加到域对象中,但这将涉及在服务器端添加从未在那里使用的代码和逻辑.如果你去合同对象,分离是更自然的,但是添加一层映射并不是很多增值.

技术
有一些技术可以帮助解决一些问题,但这通常会使其他问题复杂化.你是使用它们,还是自己从头开始构建东西?
**
- CSLA是可能的,但它使单元测试更加困难,并且似乎为数据访问增加了更紧密的耦合.它确实对许多问题有所帮助,但我个人对这项技术没有任何能力,所以它是否适合它是有点难以说的.
- WCF RIA服务可用于Silverlight解决方案,但肯定存在限制.数据大小是一个.
- WCF数据服务是另一种快速获取内容的方法,但REST没有太大帮助,而且您还缺乏RIA服务中的验证支持.

总结
如果你已经走到这一步,我希望你能够了解我的目标.我试图将其缩小以避免一次性讨论所有内容,但分布式开发很复杂,因此您必须考虑许多部分.


更新

谢谢你们的回应!我试图提出足够开放的问题以获得不同的答案,但具体到足以处理一些不常见的要求.

有不同的考虑因素有不同的优点和缺点,并且因系统而异.每种方法通常都会增加寻找解决方案的复杂性.这个问题的一个要点是特别提出一些额外的要求,而这些要求并不是直接适合今天通常是正确的答案 - 基于任务的UI.如果你愿意,我不是一个"CRUD-guy".但是由于各种原因(通常是遗留的),一些系统非常适合CRUD.

许多商业应用程序都有类似的需求,可以引导不同的方

业务相关
- 查看:向用户显示数据并更新相同的数据(读取和CUD - 创建,更新,删除)
- 验证:业务规则

UI相关
- 验证:UI规则
- UI更新:特定于仅使UI更新对象更改的代码(INotifyPropertyChanged)

网络相关
- 数据大小:通过网络发送的数据量

DB相关
- 延迟加载

SRP /重用相关
- 映射:由多层对象/分离问题引起

维护/更改相关
- …

.net architecture distributed data-driven crud

4
推荐指数
2
解决办法
1758
查看次数

我可以在PHP中使用class属性设置默认方法参数吗?

我正在使用PHP 5.2.6.我希望方法中的参数有一个默认值,但似乎我有点太聪明了.

class属性blnOverwrite是默认的,可以在类的其他地方设置.我有一个方法,我想让它再次设置,但不能覆盖现有的值.我尝试这个时收到错误:

public function place( $path, $overwrite = $this->blnOverwrite ) { ... }
Run Code Online (Sandbox Code Playgroud)

我必须这样做吗?

public function place( $path, $overwrite = NULL ) { 
    if ( ! is_null($overwrite) ) {
        $this->blnOverwrite = $overwrite;
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

php default

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

切换错误::不能出现在常量表达式中

这是一个奇怪的...

我正在玩一些减压算法.char buffer[]buffer[i]找到停止位之前,我没有经过和循环 ,而是尝试使用一些位掩码技术但是使用字符.

我有以下示例:

// In a *.h file  
const char ch = '\x81';  
// To avoid Endianess  
union CharUInt  
{  
    char sz[4];  
    unsigned int u;  
};  
// Legal because char[] is declared before uint32 in the union  
const CharUInt Mask1 = {'\x81', '\x0', '\x0', '\x81'};  
const CharUInt Mask2 = {'\x0', '\x81', '\x81', '\x0'};  
// Proxy / Auxillary uint32 as usimg Mask2.u in the switch blocked produced the same errors  
const unsigned int uMask1 = …
Run Code Online (Sandbox Code Playgroud)

c++ compiler-errors switch-statement

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

ASP.net会员添加自定义列

在我的母版页中,我有:

MembershipUser thisUser = Membership.GetUser();
loggedInUserID = thisUser.ProviderUserKey.ToString();
Run Code Online (Sandbox Code Playgroud)

thisUser让我访问所有的字段aspnet_Membership.

我希望isSubscribed为每个用户提供一个新字段.我可以使用SQL查询来获取值,但我想知道是否有某种方法来修改成员用户对象,以便它也检索此值,因此可以从以下位置访问:

thisUser.isSubscribed.ToString();
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!

database asp.net asp.net-membership

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

string :: c_str()是否允许在堆上分配任何东西?

如果我需要在一个需要确保没有分配任何内容的情况下从一个NUL终止的char阵列中获取std::string,那么使用它是否安全c_str?例如,如果我在析构函数中并且我想将一些数据从一个复制string到预先分配的固定大小的缓冲区中,我可以使用c_str并确保它不会抛出任何东西吗?

c++ string

11
推荐指数
2
解决办法
813
查看次数

Silverlight 4中的IObservable:无法找到类型或命名空间IObservable

我在哪里可以找到这门课程?我已经包含了Rx扩展.我已经确定我编译的版本是Silverlight 4.我的VS2010 IDE仍然不知道IObservable的类型是什么.

我收到一个编译错误,说"无法找到类型或命名空间IObservable"

我没有在System.Collections.Generic命名空间中看到它们,就像这个线程建议 http://dotnet.uservoice.com/forums/4325-silverlight-feature-suggestions/suggestions/523437-include-iobserver-t-and-的IObservable叔接口

我错过了对dll的引用吗?

.net c# system.reactive observable

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

如何在不破坏封装的情况下使用依赖注入?

如何在不破坏封装的情况下执行依赖注入?

使用维基百科依赖注入示例:

public Car {
    public float getSpeed();
}
Run Code Online (Sandbox Code Playgroud)

注意:为清楚起见,省略了其他方法和属性(例如PushBrake(),PushGas(),SetWheelPosition())

这很好用; 你不知道我的对象getSpeed是如何实现的- 它是" 封装的 ".

实际上我的对象实现getSpeed为:

public Car {
    private m_speed;
    public float getSpeed( return m_speed; );
}
Run Code Online (Sandbox Code Playgroud)

一切都很好.有人建造我的Car物体,捣碎踏板,喇叭,方向盘,汽车响应.

现在让我说我改变了我的汽车的内部实现细节:

public Car {
    private Engine m_engine;
    private float m_currentGearRatio;
    public float getSpeed( return m_engine.getRpm*m_currentGearRatio; );
}
Run Code Online (Sandbox Code Playgroud)

一切都很好.将Car是继二OO正确的原则,隐藏的细节如何采取某些措施.这使得呼叫者可以解决他的问题,而不是试图了解汽车的工作原理.它还让我可以自由地改变我的实现.

但依赖注入会迫使我将我的类暴露给Engine我没有创建或初始化的对象.更糟糕的是,我现在已经暴露了我Car甚至一个引擎:

public Car {
   public constructor(Engine engine);
   public float getSpeed();
}
Run Code Online (Sandbox Code Playgroud)

现在,外面的词语意识到我使用的是 …

language-agnostic oop unit-testing encapsulation dependency-injection

32
推荐指数
2
解决办法
3403
查看次数

是否可以向eval(数据)添加回调;?

因此,当eval(数据)完成后,您将如何设置回调?

javascript jquery

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