我已经阅读了大量关于安装程序的文档,并没有遇到任何解释底层概念的好东西.我遇到的大多数安装程序软件都基于相同的"数据库"结构,我根本就不了解.
各种产品附带的所有文档 - 例如WiX,InstallAware,Wise,InstallShield等都希望您能够理解这些基本概念[我不会得到]以便遵循他们所谈论的内容.
任何人都可以指向我解释软件安装程序概念的文档方向,以便软件文档真正有意义吗?
我最近找到了LINQ并喜欢它.我发现很多场合使用它比速记版本更具表现力,但是一位同事传达了关于我滥用这项技术的评论,现在让我自己猜测.我的观点是,如果一项技术有效运作且代码优雅,那么为什么不使用呢?那是错的吗?我可以花费额外的时间来编写"longhand"进程,虽然生成的代码可能快几毫秒,但是代码的数量是2-3倍,因此可能存在错误的机率增加2-3倍.
我的观点错了吗? 我应该用手写代码而不是使用LINQ吗?这不是LINQ的设计目的吗?
编辑:我说的是LINQ to objects,我没有使用LINQ to XML这么多而且我使用过LINQ to SQL但我并不喜欢LINQ to objects这些风格.
我正在试图弄清楚如何管理我的事件ID.到目前为止,我已经手动将每个事件id放在每个方法中,并按顺序编号的方法中的每个步骤.这不允许我有效地过滤事件日志中的事件.为了在事件日志中使用过滤器,似乎每个记录的事件都必须具有自己的唯一ID.
我可以将它们全部存储在一个表中,并将描述链接到它们,但随后我的代码执行,我正在记录"魔术"毫无意义的事件代码.
我进行了谷歌搜索,但我似乎对用于解决此问题的正确关键字感到茫然.
提前致谢
为了区分问题,在我当前的项目中,我决定在单独的程序集中完全分离我的DAL和BLL/Business对象.我希望将我的业务对象保持为简单的结构,而没有任何逻辑可以使事情变得非常简单.我想如果我可以将我的业务逻辑与我的DAL分开.所以我的应用程序将告诉我的DAL加载我的对象,我的DAL将运行到数据库并获取数据,用数据填充对象,然后将其传递回我的BLL.
问题 - 如何将DAL放在单独的程序集中并将数据推送到只读字段?
编辑:我注意到我可以有一个返回类型的ObjectBase,但实际上是返回一个对象或从ObjectBase派生的对象集合,所以对外界(在我的DAL之外)属性将是只读的,但我的派生类型(只能在我的DAL中访问)属性实际上是读/写.
我经常对我必须包含在我的代码中的日志记录数量感到沮丧,这让我想知道是否有更好的做事方式.
我不知道这是否已经完成或是否有人提出了更好的想法,但我想知道是否有人知道将"记录器""注入"应用程序,以便被动地监视线程并安静地记录日志流程发生时不必执行以下操作:
public void MyProcess(int a, string b, object c)
{
log(
String.Format(
"Entering process MyProcess with arguments: [a] = [{0}]; [b] = [{1}]; [c] = [{2}]",
a.ToString(),
b,
c.ToString()
);
try
{
int d = DoStuff(a)
log(
String.Format(
"DoStuff({0}) returned value {1}",
a.ToString(),
d.ToString()
)
);
}
catch (Exception ex)
{
log(
String.Format("An exception occurred during process DoStuff({0})\nException:\n{1}",
a.ToString(),
ex.ToString())
)
}
}
Run Code Online (Sandbox Code Playgroud)
如果我可以对我的记录器说:
Monitor(MyClass.MyMethod)
Run Code Online (Sandbox Code Playgroud)
然后它将监视该方法内部的所有内容,包括传入参数以及方法调用和传递给这些方法的值,发生的异常等.
过去有没有人实现这样的东西?甚至可以实施吗?以这种方式登录只是一个梦想?
我喜欢设计能做到这一点的东西,但我甚至不知道我会从哪里开始.当然,我也不想重新发明轮子,如果它已经完成了,如果有人能指出我正确的方向,那就太好了.
任何建议都会感激不尽......
编辑:我想我会回答一个问题,询问日志中所需的详细程度.通常需要提供可配置级别的日志记录,以便如果配置指定详细日志记录,则记录所有内容,而如果配置了关键日志记录,则仅记录某些信息以及异常.如果配置了致命日志记录,则仅记录导致应用程序死亡的信息.这样的东西是可配置的还是AOP需要3或4个不同的构建,具体取决于日志记录级别的数量?
我经常使用4个级别:致命,严重,信息,详细
我一直在玩线程,试图将极限推到极致 - 为了我自己的娱乐.我知道线程池默认为25个线程,可以推送到1000(根据MSDN).但是,每个CPU核心的线程的实际限制是什么?在某些时候,上下文切换将导致比线程保存更多的瓶颈.有没有人有这方面的最佳做法?我们在说100,200,500吗?它取决于线程在做什么?除了框架规定的架构之外,什么决定每个CPU核心有多少线程以最佳方式运行?
因此,阅读了一些PostSharp文档,作为我之前关于被动日志记录的问题的答案(在.NET中是否可以进行被动日志记录?),我接下来的问题是:
哪里是开始学习面向方面编程的好地方 - 我在谷歌上做了一些搜索,我读了一些文章 - 包括有关维基百科主题的文章,但很多材料似乎都假设你有一个对我似乎缺少的一些术语的基本理解,以及不仅直接融入整合的术语,让我不理解我正在整合的是什么.
有没有人有任何体面的材料可以帮助那些在今天之前从未听说过面向方面编程的人学习核心概念,术语/关键词等?即使是鸟瞰图也会有所帮助 - 即这些是核心概念,要注意的关键词,它们代表什么以及它们如何组合在一起.在那之后,我可能会自己取得一些不错的进展.我对AOP与.NET开发最感兴趣,因此任何专门针对此的材料都会有所帮助.
TIA
是否有任何方法可以轻松解密(即一目了然)分支是否先前已与另一个分支或主干合并?我能够弄清楚的最近的是查看提交注释并显示合并的提交注释.这样做的缺点似乎是,除非您知道从哪个分支导入提交注释,否则无法解密哪些分支已经合并.
编辑:Mercurial或Git是否比SVN更直观?
我正处于开始为我的MVC应用程序编写单元测试的地步.我已经想出了如何对控制器进行单元测试,我可以毫无问题地对我的底层业务库进行单元测试.我现在要解开几件物品:
如何对我的观点进行单元测试?也就是说,在控制器返回正确的视图(我已对其进行单元测试,以及单元测试以检查它是否传递了正确的数据)之后.有没有办法单元测试视图是否在nUnit中的正确字段中显示正确的数据,还是我需要一个不同的工具用于此目的?
我如何对安全性进行单元测试?我正在使用自定义成员资格提供程序和角色提供程序,它本身就像任何其他组件一样可以进行单元测试 - 我只是新建了提供程序并检查每个方法是否返回预期输出.我很好奇的是如何对我的每个控制器方法从我的提供者那里接收正确的安全信息进行单元测试[即单元测试Authorize属性是否正常运行]?
我不知道如何准确描述我正在尝试做什么,但这里是一个示例批处理文件,演示了我无法弄清楚:
我有一个批处理文件.在该批处理文件中,我正在尝试创建一个目录:
Set CopyFrom = %~dp0
if Exist "%ProgramFiles(x86)" (
Set TargetDir = %ProgramFiles(x86)%\My Directory Name has spaces
)
md %TargetDir%\NewSubFolder
copy %CopyFrom%\SourceFile.zip %TargetDir%\NewSubFolder
Run Code Online (Sandbox Code Playgroud)
我的批处理文件在第4行失败Set TargetDir =...
:
\My was unexpected at this time
Run Code Online (Sandbox Code Playgroud)
我假设这是因为我的路径名中有空格.我以为我可以用引号包装我的变量:
Set TargetDir = "%ProgramFiles(x86)%\My Directory Name has spaces"
Run Code Online (Sandbox Code Playgroud)
但是当我到达创建目录的行时,它失败了,因为%TargetDir%
现在用引号括起来.md "%TargetDir%"\NewSubFolder
这可以修复,还是我应该写一个VBScript来解决问题?