我正在将一个Java库移植到C#.我正在使用Visual Studio 2008,因此我没有停用的Microsoft Java语言转换助手程序(JLCA).
我的方法是创建一个与Java库具有类似项目结构的新解决方案,然后将java代码复制到ac#文件中,并将其逐行转换为有效的c#.考虑到我发现Java易于阅读,两种语言的细微差别让我感到惊讶.
有些东西很容易移植(名称空间,继承等),但有些东西出乎意料地不同,例如嵌套类中私有成员的可见性,覆盖虚拟方法和内置类型的行为.我不完全理解这些事情,我确信还有很多其他的差异,我还没有看到.
我还有很长的路要走这个项目.我可以在此转换过程中应用哪些经验法则来正确管理语言差异?
我试图在表单上可视化一些值.它们的范围从0到200,我希望0左右的那些是绿色,当它们变为200时变为亮红色.
基本上该功能应根据输入的值返回颜色.有任何想法吗 ?
我正在寻找一种本土的方式来争夺生产数据以用于开发和测试.我已经建立了几个脚本,可以随机编制社会安全号码,转移出生日期,争夺电子邮件等等.但是我遇到了试图扰乱客户名称的隔离墙.我想保留真实姓名,这样我们仍然可以使用或搜索随机字母生成.到目前为止,我所尝试的是构建表中所有姓氏的临时表,然后使用临时表中的随机选择更新客户表.像这样:
DECLARE @Names TABLE (Id int IDENTITY(1,1),[Name] varchar(100))
/* Scramble the last names (randomly pick another last name) */
INSERT @Names SELECT LastName FROM Customer ORDER BY NEWID();
WITH [Customer ORDERED BY ROWID] AS
(SELECT ROW_NUMBER() OVER (ORDER BY NEWID()) AS ROWID, LastName FROM Customer)
UPDATE [Customer ORDERED BY ROWID] SET LastName=(SELECT [Name] FROM @Names WHERE ROWID=Id)
Run Code Online (Sandbox Code Playgroud)
这在测试中运行良好,但完全陷入困境处理大量数据(40K行> 20分钟)
所有这些问题,您如何在保留真实姓名和生产数据的重量的同时争夺客户名称?
更新:永远不会失败,你试图将所有信息都放在帖子中,你会忘记重要的事情.此数据也将用于我们的公开销售和演示环境.一些答案是我试图做的,"切换"名称,但我的问题是字面意思,如何在T-SQL中编码?
如果我有一个排序列表(比如快速排序),如果我要添加很多值,最好暂停排序,将它们添加到最后,然后排序,或者使用二进制文件来正确放置项目添加它们.如果这些项目是随机的,或者已经或多或少的顺序,它会有所不同吗?
在C#中使用二维数组(type[,])或数组()数组会更高效type[][]吗?
特别是对于初始分配和项目访问
private IEnumerable<string> Tables
{
get
{
yield return "Foo";
yield return "Bar";
}
}
Run Code Online (Sandbox Code Playgroud)
假设我想迭代那些并写一些像#m的#n处理.
有没有一种方法可以在我的主迭代之前找到m的值而不进行迭代?
我希望我清楚自己.
假设我在JavaScript中有两个字符串:
var date1 = '2008-10-03T20:24Z'
var date2 = '2008-10-04T12:24Z'
Run Code Online (Sandbox Code Playgroud)
我怎么会得到这样的结果:
'4 weeks ago'
Run Code Online (Sandbox Code Playgroud)
要么
'in about 15 minutes'
Run Code Online (Sandbox Code Playgroud)
(应该支持过去和未来).
过去的差异有解决方案,但我还没有找到一个支持未来时间差异的解决方案.
这些是我尝试的解决方案:
John Resig的漂亮日期和Zach Leatherman的修改
jQuery解决方案的奖励积分.
当你们对一个依赖app.config文件中的值的应用程序进行单元测试时?如何测试这些值是否正确读入以及程序如何对输入到配置文件中的错误值做出反应?
必须修改NUnit应用程序的配置文件是荒谬的,但我无法读取我要测试的app.config的值.
编辑:我想我应该澄清一下.我并不担心ConfigurationManager无法读取值,但我担心测试我的程序如何对读入的值作出反应.
这是我的情景.我创建了一个使用集成Windows身份验证的应用程序.在Application_AuthenticateRequest(),我HttpContext.Current.User.Identity用来获取WindowsPrincipal我的网站用户的当前.
现在这是有趣的部分.我们的一些用户最近结婚了,他们的名字也发生了变化.(即用户的NT登录名更改jsmith为jjones),当我的应用程序对其进行身份验证时,IIS会将其OLD LOGIN传递给我.我继续看到jsmith传递给我的应用程序,直到我重启我的服务器!注销客户端不起作用.重新启动应用程序池不起作用.只有完全重启.
有谁知道这里发生了什么?是否有某种命令我可以用来刷新任何缓存给我这个问题?我的服务器配置错误了吗?
注意:我绝对不想重新启动IIS,我的应用程序池或计算机.由于这是一个生产箱,这些并不是真正可行的选择.
AviD -
是的,他们的UPN和他们的登录名一起被更改了.而Mark/Nick ......这是一个生产企业服务器...它不能只是重新启动或重新启动IIS.
跟进(后代):
格尔姆的答案是现场的.在您没有很多人使用您的应用程序的低容量服务器中会弹出此问题,但会有足够的请求将用户的身份保留在缓存中.KB的关键部分似乎描述了默认值为10分钟后缓存项未刷新的原因:
缓存条目会超时,但是应用程序的重复查询可能会使现有缓存条目保持活动状态达到缓存条目的最大生命周期.
我不确定我们的代码中是什么导致了这种情况(反复出现的查询),但对我们有用的解决方案是将LsaLookupCacheExpireTime值从看似淫秽的默认值1周减少到几个小时.对我们而言,这可以将用户在现实世界中受到影响的概率降低到基本为零,但同时不会对我们的目录服务器造成极端数量的SID-Name查找.如果应用程序通过SID查找用户信息而不是将用户数据映射到文本登录名,则IMO将是更好的解决方案.(请注意,供应商!如果您在应用程序中依赖AD身份验证,则需要将SID放入身份验证数据库中!)