小编pet*_*hen的帖子

大多数表中的字段相同

在数据库原型中,我有一组字段(如名称,描述,状态),这些字段在多个功能不同的表中是必需的.

这些字段始终具有相同的最终用户功能,用于标记,显示,搜索,过滤等.它们不是外键约束的一部分.该如何建模?

我可以想到以下变种:

  • 每个表都获得所有这些属性.在这种情况下,你会如何命名他们?相同,在每个表中,或与表名前缀(如usrName,prodName)

  • 将它们移动到表属性中,将外键添加到"核心"表,引用Attributes.PK

  • 如上所述,但不是外键,而是在各自的核心表中使用Attributes.PK作为PK.

database entity-relationship

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

如何在C#XML注释中链接/分组重载?

在XML文档中对C#的注释中,有没有办法将两个或多个函数标记为彼此重载,以便它们自动引用?理想情况下,它们也会以某种方式分组在沙堡生成的文档中.

目的:通常,我想链接到这组功能,例如在效用函数列表中,只提一个重载,并使其他功能很容易从那里发现.

目前我正在添加链接,但这很乏味.

c# sandcastle overloading xml-comments

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

交互式统计分析工具

我正在寻找一种用于统计分析的基本软件.最重要的是简单直观的使用,开箱即用"开箱即用".至少基本操作应该是交互式的.免费将是一个奖金:)

目的是分析数据转储和各种进程的日志.

  • 导入逗号/制表符分隔的文件
  • 在条件上排序和过滤行
  • 基本总量:计数,平均值,偏差,回归,趋势
  • 可视化 - 绘制数据,bin分布等.

对于过滤和重新组合数据,Excel失败(至少对我来说),我想像"Excel with SQL"这样的东西会很好.我以前一直在使用MS Access + Excel并复制数据,但这很痛苦.

你有什么建议吗?

澄清我不是在寻找IIS/Web服务器日志的特定工具,而是查找具有制表符分隔值的各种数据结束事件日志(主要来自自定义应用程序).

statistics

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

将自定义设计时命令添加到WinForms控件

我有一个自定义的WinForms控件(继承自控件,即没有用户界面jsut作为Timer),我想添加一个自定义命令添加设计时间.

这可能类似于"右键单击并选择菜单中的'编辑项目...'".

这是可能的吗?怎么样?

另外,您能否推荐一些有关改善自定义控件设计时间体验的一般性阅读(在线)?

c# design-time custom-controls winforms

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

将HTML导出为PDF(C++,Windows)

我正在寻找一个可再发行的组件来将HTML转换为PDF.

我现在 - 就像避免使用"PDF打印机"一样,因为这需要打印机安装,而某些用户在打印机面板中"玩"可能会破坏该功能.

HTML可在浏览器控件或外部文件中使用.HTML通常相当简单,但客户可以创建自己的模板,因此应该支持HTML的"好范围".

应该可以从C++自动化进程访问 - DLL/COM /外部可执行文件与命令行支持都很好.

商业很好,但现在成千上万不是一个选择.

那么,您知道或推荐哪些组件?

c++ pdf winapi pdf-generation

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

HTML/IE:拉伸图像以适应,保持纵横比

在HTML窗口中,我正在设置自定义正文

<img src="file://[filename]">
Run Code Online (Sandbox Code Playgroud)

显示图像

现在我想拉伸图像以适应可用窗口,但保留纵横比.

<img src="file://[filename]" width="100%" height="100">
Run Code Online (Sandbox Code Playgroud)

延伸但也扭曲了图像.

是否有一些HTML技巧可以做到这一点?IE唯一的解决方案很好,因为这是在托管的浏览器控件中.

html internet-explorer

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

在一个类中混合流畅和不流畅的界面

我认为流畅的界面非常便于许多任务.但是当我最终在一个类中混合流畅的方法和修改方法时,我感到不安.

只是一个例子(这有点做作,请耐心等待):

假设一个字符串实用程序类,修剪似乎适合链接:

Str & Str::Trim() { return TrimLeft().TrimRight(); }
Run Code Online (Sandbox Code Playgroud)

其他方法自然会返回一个新对象:

Str Str::GetFirstToken() const
{ 
   // result = first token;
   return result;
}
Run Code Online (Sandbox Code Playgroud)

还有第三种类型 - 它本身 - 会逻辑地改变对象返回一个新对象:

Str Str::SplitFirstToken() 
{ 
   result = GetFirstToken();
   // this = remainder
   return result;
}
Run Code Online (Sandbox Code Playgroud)

当我单独使用每个方法最明显的签名时,我最终会得到这三种类型,而且我担心这类消费不是很直观,特别是因为返回类型是mroe或更少相同.


我已经决定Str不做不可变 - 因为SplitToken提供核心功能的方法.我的主要问题是混合流畅的方法你会做什么?

  • 不要在该界面中使用流畅的方法

  • 将它们移动到子接口(见下文)

  • "如果一个人流利,所有修改方法都应该流利"?

  • 为流畅的方法使用一个seocific前缀?

  • 别担心?

  • ???

子接口的想法:

void CStr::Trim() { TrimLeft(); TrimRight(); }
CStrFluent & Str::Fluent() { return CStrFluent(*this); }
....
str.Fluent().TrimLeft().TrimRight();
Run Code Online (Sandbox Code Playgroud)

我对此犹豫不决,我真的不喜欢额外的"流畅" - 尤其是它是C++中的方法调用

你怎么看?

[编辑]我在这里使用"流利"的基本含义是在单个实例上链接方法调用,而不是在代码中创建英语句子的高级意义.

class-design fluent-interface

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

无锁竞技场分配器实现 - 正确吗?

对于一个简单的指针增量分配器(它们有正式名称吗?)我正在寻找一种无锁算法。这似乎微不足道,但我想得到一些反馈,我的实现是否正确。

不是线程安全的实现:

byte * head;  // current head of remaining buffer
byte * end;   // end of remaining buffer

void * Alloc(size_t size)
{
   if (end-head < size)
     return 0; // allocation failure

   void * result = head;
   head += size;
   return head;
}
Run Code Online (Sandbox Code Playgroud)

我对线程安全实现的尝试:

void * Alloc(size_t size)
{
  byte * current;
  do 
  {
     current = head;
     if (end - current < size)
        return 0;  // allocation failure
  } while (CMPXCHG(&head, current+size, current) != current));
  return current;
}
Run Code Online (Sandbox Code Playgroud)

哪里 …

c++ multithreading lock-free allocator

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

矩形项目的优化网格

我有N个长宽比为Aitem(X:Y)的矩形项目。
我有一个长宽比为Aview的矩形显示区域

这些项目应以表格形式布置(即r行,c列)。

什么是理想的网格行x列,以使单个项目最大?(当然,行*列> = N-即可能有“未使用的”网格位置)。

一个简单的算法可以遍历行= 1..N,计算所需的列数,并使行/列对具有最大的项。

我想知道是否有一个非迭代算法(例如,对于Aitem = Aview = 1,行/列可以由sqrt(N)近似)。

algorithm math layout mathematical-optimization

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

C++ BoundsChecker后续

我们已经使用BoundsChecker for Visual C++ 6运行了多年(我认为它也是BoundsChecker 5或6).我们已经升级到VS2008(终于!),现在需要对过时的BoundsChecker进行跟进.

景观怎么样?
那里有什么工具?
镇上有新的孩子吗?
处理我们使用内存分析器的问题的任何新想法?
您最近使用这些工具的经历?
建议?

主要应用程序是带有许多COM DLL的C++,我们希望跟踪本机,C++和COM泄漏和对象.这个大小的Bounds Checker已经是一个令人痛苦的表现,整理了大量数据及其一些局限性.

需要支持托管应用程序(主要是C#),尽管这可能是一个单独的工具.


相关(但IMO不完整)问题:Visual Studio 2008的现代等效BoundsChecker


[编辑]

注释评论,"在现代C++中,你只使用自检类型,并且边界永远不会被破坏":

引用计数的智能指针可以具有循环引用.连接COM组件本质上是不安全的,因为它需要大量的手动内存管理.我有一个没有UI的第三方服务泄漏GDI处理所以它崩溃了我们的隔夜测试 - 供应商将其归咎于一个"奇怪的"Microsoft API.我必须接口基于C的库,我有大量遗留代码,假设在数字食谱意义上的分配技巧是一件好事,并且变量名称长于3个字母是打字员.我有来自工程师的代码,他们std::vector<double>::iterator看起来比一个看起来更可怕double ***,运气好,开发和测试这些代码没有扎实的信号处理背景.

因此,除非你来到这里,否则在傻瓜式C++课程中重写和封装一百万行代码的核心,并确保几十个产品仍然像以前一样工作,让你的智能自信.我希望我不需要记忆检查器,但我确实如此.谢谢.

c++ memory-leaks visual-studio

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