我公司开发了一种使用Visual C++中的MFC作为UI开发的事实标准的长期产品.我们的代码库包含大量遗留/古老代码,必须保持运行.这些代码中的一些比我早(最初写于70年代末期),我们团队的一些成员仍在使用Visual Studio 6.
然而,幸运的是,内部已经得出结论,与竞争对手相比,我们的产品看起来有些陈旧,并且需要做些什么.
我目前正在开发UI的一个新领域,它与产品的其他部分完全不同.因此,我有机会尝试将"新"技术堆栈作为一种试验场,然后再开始移动UI的其余部分.
我在业余时间使用C#和Windows Forms以及.net框架一段时间并享受它,但我有点担心互操作引起的麻烦.虽然UI的这个特定分支不需要与传统的C++代码库很多互操作,但我可以预见这将成为未来的问题.
另一种方法是继续使用MFC,但尝试利用VS2008附带的新功能包.我想这是最简单的选择,但我担心长寿,而不是利用.net的优点......
那么,我选哪个?我们是一个小团队,所以我的建议很可能被接受为我们未来的发展方向 - 我希望能够做到这一点.
MFC死了吗?C#/ Winforms是前进的方向吗?还有什么我完全不见了吗?非常感谢!
您应该能够创建一个通用表单:
public partial class MyGenericForm<T> :
Form where T : class
{
/* form code */
public List<T> TypedList { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
是有效的C#,并编译.但是,如果您有任何图像表明它无法找到资源,那么设计器将无法工作,表单将抛出运行时异常.
我认为这是因为windows表单设计者假定资源将以简单类型的名称存储.
通常当我在表上创建索引时,我通常会猜测Fill Factor应该基于对表的使用方式的有根据的猜测(许多读取或多次写入).
有没有更科学的方法来确定更准确的Fill Factor价值?
我们有一个在Windows服务器上运行的SVN存储库,我想将内部文档,功能更改,错误等链接到代码更改.
我们发现WebSVN的速度非常慢 - 存储库太大了(我认为).
使用它的团队主要使用C#进行编码,虽然有些人有其他语言的经验,但我真的很喜欢团队中任何人都可以维护的工具.
我见过的大多数工具都基于PHP,Java,Python等.团队可以学习的所有语言,但我宁愿使用我们已有的技能.
你能为SVN推荐一个好的基于Web的存储库浏览器,理想情况下是一个使用ASP.NET,SQL Server并在IIS上运行的浏览器吗?
假设我有一个复杂的.NET类,有很多数组和其他类对象成员.我需要能够生成这个对象的深层克隆 - 所以我编写了一个Clone()方法,并使用简单的BinaryFormatter序列化/反序列化来实现它 - 或者我可能使用其他一些更容易出错的技术来进行深度克隆而且我想确保经过测试.
好的,所以现在(好吧,我应该先做)我想编写涵盖克隆的测试.该类的所有成员都是私有的,我的架构非常好(!),我不需要编写数百个公共属性或其他访问器.该类不是IComparable或IEquatable,因为应用程序不需要它.我的单元测试与生产代码分开组装.
人们采用什么方法来测试克隆对象是一个好的副本?您是否在编写(或一旦发现克隆的需要时重写)所有类的单元测试,以便可以使用'virgin'对象或克隆它来调用它们?你如何测试部分克隆是否不够深入 - 因为这只是一种可以在以后发现可怕的错误的问题?
我一直在研究IKVMing Apache的FOP项目,以便与我们的.NET应用程序一起使用.它是一种商业产品,在研究许可方面,由于使用了GNU Classpath,IKVM遇到了一些棘手的问题.从我所看到的,没有人可以肯定地说这些东西是否可用于商业产品.有没有人在商业产品中使用过IKVM或IKVM产品?这是我到目前为止所发现的:
IKVM许可证页面,其中指出一个DLL包含来自其他项目的代码,其许可证为GPLv2 + Classpath Exception
Saxon for .NET是使用IKVM生成的,但是在Apache许可下发布...
有人有这方面的经验吗?
有没有人知道我怎么能在平台无关的C++代码中阻止在堆上创建对象?也就是说,对于"Foo"类,我想阻止用户这样做:
Foo *ptr = new Foo;
Run Code Online (Sandbox Code Playgroud)
并且只允许他们这样做:
Foo myfooObject;
Run Code Online (Sandbox Code Playgroud)
有没有人有任何想法?
干杯,
对不起基本问题 - 我是.NET开发人员,对LAMP设置没有太多经验.
我有一个PHP站点,允许上传到特定的文件夹.我被告知该文件夹需要由webserver用户拥有才能使上传过程正常工作,因此我创建了该文件夹,然后设置权限:
chown apache:apache -R uploads/
chmod 755 -R uploads/
Run Code Online (Sandbox Code Playgroud)
现在唯一的问题是FTP用户根本无法修改上传的文件.
是否有权限设置允许我仍然上传文件,然后以网络服务器用户以外的用户修改它们?
是否有人在地理位置分散的团队中使用Team Foundation Server?我们在英国,尝试与澳大利亚的团队合作,我们发现它非常艰难.
我们的主要两个问题是:
很多像这样令人讨厌的小东西正在加剧我们的动脉,阻止我们提供代码,坦率地创造了一种类似于将金色糖浆推到沙丘上的用户体验.
是否有人以这种方式实际使用TFS,每天都有(相对)成功?
如果是这样,你有任何值得了解的提示,技巧,窍门或陷阱吗?
PS升级到CruiseControl.NET不是一个选项.
在SQL中使用表别名有哪些优缺点?我个人试图避免它们,因为我认为它们使代码的可读性降低(特别是在阅读大的where /和语句时),但我有兴趣听到任何反对点.什么时候使用表别名通常是个好主意,你有没有任何首选格式?