在数据库原型中,我有一组字段(如名称,描述,状态),这些字段在多个功能不同的表中是必需的.
这些字段始终具有相同的最终用户功能,用于标记,显示,搜索,过滤等.它们不是外键约束的一部分.该如何建模?
我可以想到以下变种:
每个表都获得所有这些属性.在这种情况下,你会如何命名他们?相同,在每个表中,或与表名前缀(如usrName,prodName)
将它们移动到表属性中,将外键添加到"核心"表,引用Attributes.PK
如上所述,但不是外键,而是在各自的核心表中使用Attributes.PK作为PK.
在XML文档中对C#的注释中,有没有办法将两个或多个函数标记为彼此重载,以便它们自动引用?理想情况下,它们也会以某种方式分组在沙堡生成的文档中.
目的:通常,我想链接到这组功能,例如在效用函数列表中,只提一个重载,并使其他功能很容易从那里发现.
目前我正在添加链接,但这很乏味.
我正在寻找一种用于统计分析的基本软件.最重要的是简单直观的使用,开箱即用"开箱即用".至少基本操作应该是交互式的.免费将是一个奖金:)
目的是分析数据转储和各种进程的日志.
对于过滤和重新组合数据,Excel失败(至少对我来说),我想像"Excel with SQL"这样的东西会很好.我以前一直在使用MS Access + Excel并复制数据,但这很痛苦.
你有什么建议吗?
澄清我不是在寻找IIS/Web服务器日志的特定工具,而是查找具有制表符分隔值的各种数据结束事件日志(主要来自自定义应用程序).
我有一个自定义的WinForms控件(继承自控件,即没有用户界面jsut作为Timer),我想添加一个自定义命令添加设计时间.
这可能类似于"右键单击并选择菜单中的'编辑项目...'".
这是可能的吗?怎么样?
另外,您能否推荐一些有关改善自定义控件设计时间体验的一般性阅读(在线)?
我正在寻找一个可再发行的组件来将HTML转换为PDF.
我现在 - 就像避免使用"PDF打印机"一样,因为这需要打印机安装,而某些用户在打印机面板中"玩"可能会破坏该功能.
HTML可在浏览器控件或外部文件中使用.HTML通常相当简单,但客户可以创建自己的模板,因此应该支持HTML的"好范围".
应该可以从C++自动化进程访问 - DLL/COM /外部可执行文件与命令行支持都很好.
商业很好,但现在成千上万不是一个选择.
那么,您知道或推荐哪些组件?
在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唯一的解决方案很好,因为这是在托管的浏览器控件中.
我认为流畅的界面非常便于许多任务.但是当我最终在一个类中混合流畅的方法和修改方法时,我感到不安.
只是一个例子(这有点做作,请耐心等待):
假设一个字符串实用程序类,修剪似乎适合链接:
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++中的方法调用
你怎么看?
[编辑]我在这里使用"流利"的基本含义是在单个实例上链接方法调用,而不是在代码中创建英语句子的高级意义.
对于一个简单的指针增量分配器(它们有正式名称吗?)我正在寻找一种无锁算法。这似乎微不足道,但我想得到一些反馈,我的实现是否正确。
不是线程安全的实现:
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)
哪里 …
我有N个长宽比为Aitem(X:Y)的矩形项目。
我有一个长宽比为Aview的矩形显示区域
这些项目应以表格形式布置(即r行,c列)。
什么是理想的网格行x列,以使单个项目最大?(当然,行*列> = N-即可能有“未使用的”网格位置)。
一个简单的算法可以遍历行= 1..N,计算所需的列数,并使行/列对具有最大的项。
我想知道是否有一个非迭代算法(例如,对于Aitem = Aview = 1,行/列可以由sqrt(N)近似)。
我们已经使用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++ ×3
c# ×2
algorithm ×1
allocator ×1
class-design ×1
database ×1
design-time ×1
html ×1
layout ×1
lock-free ×1
math ×1
memory-leaks ×1
overloading ×1
pdf ×1
sandcastle ×1
statistics ×1
winapi ×1
winforms ×1
xml-comments ×1