我和我们公司的teamlead\architect就此主题进行了讨论.
他认为,如果"通过逻辑连接的实体"放在一个cs文件中,那么理解大型项目会更容易.
我引用:
"逻辑和接口以及类的整个结构可以在一个地方看到,这是一个不能反驳的论据.要看到相同的东西但是有一堆文件你需要使用工具,类图,R#用于导航等."
"根据糟糕的理论,我可能会尖叫一大堆分离文件很酷,但是当谈到改变现有代码时,特别是如果你不是这个代码的作者,那么很难理解大量分散的文件.所以在论坛上,你可以写出"一个枚举文件",但实际上这种方法绝对不能用"
"......至于开发人员之间的代码库分离,现在同时编辑同一个文件不是问题.合并不是问题."
我多次听说过,我们必须为每个枚举,类等创建一个.cs文件,这是最好的做法.
但我无法说服他.他说他不相信任何知名程序员,如Jon Skeet.顺便说一句,这里是Skeet对这个主题的看法哪里是定位枚举类型的最佳位置?
你怎么看?有真正的问题吗?或者这是一个品味的问题,应该由组织的编码标准来规范?
我有两个MemoryStream实例.
如何将它们合并到一个实例中?
好吧,现在我无法从一个MemoryStream复制到另一个.这是一个方法:
public static Stream ZipFiles(IEnumerable<FileToZip> filesToZip) {
ZipStorer storer = null;
MemoryStream result = null;
try {
MemoryStream memory = new MemoryStream(1024);
storer = ZipStorer.Create(memory, GetDateTimeInRuFormat());
foreach (var currentFilePath in filesToZip) {
string fileName = Path.GetFileName(currentFilePath.FullPath);
storer.AddFile(ZipStorer.Compression.Deflate, currentFilePath.FullPath, fileName,
GetDateTimeInRuFormat());
}
result = new MemoryStream((int) storer.ZipFileStream.Length);
storer.ZipFileStream.CopyTo(result); //Does not work!
//result's length will be zero
}
catch (Exception) {
}
finally {
if (storer != null)
storer.Close();
}
return result;
}
Run Code Online (Sandbox Code Playgroud) Out团队希望创建可重用,可管理的视图.例如,我们希望在不同的应用程序中重用CommonPromptView(我们自己的,可自定义的对话框,我们可以隐藏"取消"按钮,设置标题,显示特定图标等).
该视图在其表面上有几个元素:TextBlocks,Buttons.我们想让它们成为一种风格.
那么,解决这个任务的最佳方法是什么?
在第一种情况下,可以通过两种方式支持样式:
两者都不干净(在我看来).
但是如果View是UserControl,那么每次创建新app的人都必须创建一个新窗口来包含UserControl并将其绑定到DP(Style类型)正确.此外,如果UserControl拥有它自己非常方便的API(最常用操作的静态方法),对于包含UserControl的Window用户来说,这将丢失.
Update
CommonPromptView作为UserControl实现的示例.
Code-behind
public sealed partial class CommonPromptView {
private const int CloseViewTimeIntervalInMilliseconds = 120000;
private DispatcherTimer timer;
public static readonly DependencyProperty CommonPromptBorderStyleProperty = DependencyProperty.Register(
"CommonPromptBorderStyle", typeof (Style), typeof (CommonPromptView), new PropertyMetadata(default(Style)));
public Style CommonPromptBorderStyle {
get { return (Style) GetValue(CommonPromptBorderStyleProperty); }
set { SetValue(CommonPromptBorderStyleProperty, value); }
}
public static readonly DependencyProperty CommonPromptHeaderStyleProperty = DependencyProperty.Register(
"CommonPromptHeaderStyle", typeof (Style), typeof (CommonPromptView), new PropertyMetadata(default(Style)));
public Style CommonPromptHeaderStyle {
get …Run Code Online (Sandbox Code Playgroud) 最后一次构建于2010年5月1日.
我将学习一个模拟框架,我不想学习产品会死.
邻接矩阵表示任意树中节点之间的连接。
这是一个呈现无向图的邻接矩阵实例:
1 2 3 4 1 0 1 1 0 2 1 0 1 0 3 1 1 0 0 4 0 0 0 0
该矩阵表示一个图,其中节点 1 和 2 相连,1 和 3 相连,2 和 3 相连。
如何使用这种矩阵在这样的图中暴力破解所有可能路径的组合?我的意思是只选择节点 1 是一个单独的组合。那么,比如说,1-2 是一个单独的组合。1-2-3; 3-1-2。但是 1-2-3-1 是不可能的,因为重复选择了同一个节点。
那么如何使用这些规则对所有组合进行暴力破解呢?
我更喜欢 C#、C++ 或 Java 语言示例)
我和 teamlead 讨论过这个话题,从他的角度来看,我们可以只使用绑定和命令省略 ViewModel,因为我们可以在没有 VM 的情况下使用自动化或我们自己开发的 UI 测试机制来测试 UI 行为(基于对视图的自动点击)。那么,如果没有真正的好处,我为什么要产生“冗余”实体?此外,自动化集成测试看起来比 VM 测试更具指示性。因此,我们似乎可以混合使用 VM 和模型。
更新: 我同意混合虚拟机和模型将数据模型和数据转换规则带入单个 .cs 以在视图中表示它。但如果这只是一个好处 - 我不想为每个视图创建一个 VM。
那么你知道VM的哪些优点呢?
我需要在一个应用程序内订阅其他应用程序公开的事件.我注意到许多人认为使用WCF命名管道是最佳实践.我是对的,如果我选择WCF命名管道,我将不得不使用IIS?
顺便说一句,我一般有什么选择?
这有点奇怪,但我真的无法在任何地方找到一个有效的例子.
顺便说一下,如果这很重要的话,我正在使用ViewModel-first方法(在WPF中).
先感谢您.
有一个由三个可执行文件组成的应用程序.其中之一 - 调度程序,运行其他可执行文件.调度程序在完成时从可执行文件接收代码.也就是说,只有调度程序始终在运行,其他可执行文件会卸载并再次加载.该应用程序在服务点运行并全天候工作.在第一次启动时,应用程序运行得很快.在一天结束时,应用程序运行速度非常慢.这种行为可能是什么原因?
在 PostgreSQL 中,我们有一个“WITH LOCAL CHECK OPTION”语句来强制执行在 WHERE 子句中实现的检查。
例如,
CREATE VIEW HeavyOrders AS
SELECT *
FROM Orders
WHERE Weight > 100
WITH LOCAL CHECK OPTION;
Run Code Online (Sandbox Code Playgroud)
现在,如果我们尝试插入一个 raw ,Weight < 100我们会得到一个错误:
INSERT INTO HeavyOrders(x, y, z, Weight)
VALUES('a', 'b', 'c', 80);
Run Code Online (Sandbox Code Playgroud)
有没有办法对 VIEW 执行这样的检查?
.net ×4
c# ×4
wpf ×3
algorithm ×1
appdomain ×1
memory ×1
memory-leaks ×1
memorystream ×1
mocking ×1
mvvm ×1
named-pipes ×1
project ×1
rhino-mocks ×1
sql ×1
sql-server ×1
t-sql ×1
tree ×1
unit-testing ×1
viewmodel ×1
wcf ×1
wpf-4.0 ×1
wpf-controls ×1
xaml ×1