小编sni*_*ker的帖子

没有加入的生活......理解和共同的实践

很多"BAW"(大屁股网站)正在使用数据存储和检索技术,这些技术依赖于带有索引的巨大表,并使用在查询中不会/不能使用JOIN的查询(BigTable,HQL等)处理可伸缩性和分片数据库.当你有大量和非常相关的数据时,它是如何工作的?

我只能推测,这种加入的大部分必须在应用程序方面完成,但这不会开始变得昂贵吗?如果您必须对几个不同的表进行多次查询以获取要编译的信息,该怎么办?是不是多次开始变得比仅仅使用连接更昂贵的数据库?我想这取决于你有多少数据?

对于常用的ORM,它们如何处理无法使用连接?今天在大量使用的ORM中是否有对此的支持?或者大多数必须接近这一级别数据的项目是否倾向于自行推出?

所以这不适用于我现在正在进行的任何项目,但现在已经有几个月了,我只能猜测"最佳实践"是什么.我从来没有必要在任何项目中解决这个问题,因为他们从未达到过需要的规模.希望这个问题能帮助其他人......

如下所述,ORM在没有连接的情况下"无法正常工作".是否有其他数据访问层已经可供处理此级别数据的开发人员使用?

编辑: 有些澄清,Vinko Vrsalovic说:

"我相信窃笑者想要讨论NO-SQL,其中事务数据被非规范化并在Hadoop或BigTable或Cassandra方案中使用."

这正是我所说的.

抓住xkcd参考的人的奖励积分.

orm hadoop join bigtable nosql

59
推荐指数
3
解决办法
3122
查看次数

有没有办法在Visual Studio中基于构建配置指定程序集引用?

我有一个项目,通过他们的API为另一个应用程序添加一些可扩展性.但是,我希望能够为其应用程序的多个版本使用相同的项目,因为大多数代码都是相同的.

但是,每个版本的应用程序都需要引用该版本软件的正确程序集.他们将程序集加载到GAC中,所以即使我可以根据构建配置指定要使用的程序集的版本,我也没关系.有没有办法从VS内部执行此操作,还是需要外部构建工具?

build-process assemblies reference visual-studio

54
推荐指数
2
解决办法
1万
查看次数

使用LDAP(AD)进行MySQL身份验证

我正在尝试制定计划,允许用户使用LDAP使用MySQL数据库(实际上很多)进行身份验证.更具体地说,ActiveDirectory.数据库可能会通过应用程序而不是网络访问.我有什么选择?

编辑:

好吧.似乎没有"官方"方式允许使用LDAP在MySQL上进行身份验证.还有哪些其他选择?我们可以将LDAP用户和密码同步到MySQL用户表吗?

mysql authentication ldap active-directory

22
推荐指数
3
解决办法
5万
查看次数

从家里连接到公司防火墙后面的SVN服务器

如何配置TortoiseSVN连接到家庭公司防火墙后面的SVN服务器?

这是我很难找到答案的问题.这是我没有的东西:

  1. 官方 VPN访问企业内部网.
  2. 控制SVN服务器.
  3. 对Intranet的任何控制.
  4. IT部门的合作.

这是我DO有:

  1. 完全控制我办公室办公桌上的电脑.
  2. 意志

这是我尝试的一个镜头,似乎是不成功的(人和地方和机器的名称已被改变,以保护无辜):

失败的甜网络图http://i48.tinypic.com/or1a3b.png

  1. 我正在使用Wippien从我的家用电脑(NG-ATHOME)到我办公桌上的工作电脑设置零配置VPN.这有效,我可以从两台机器进行全面的网络访问.
  2. 我在NG-WORKBOX上运行OpenSSH for Windows.
  3. 我在NG-ATHOME上安装了PuTTY,连接到NG-WORKBOX,通过1080端口动态隧道.SOCKS代理工作正常,因为我可以通过任何网络浏览器验证.我可以自信地说这不是场景中的问题.
  4. 我在NG-ATHOME上使用TortoiseSVN配置为在127.0.0.1:1080上使用代理.当我尝试点击"svn:// NG-SOURCE/PonyRepository"时,我收到错误:无法连接到主机.我可以ping NG-SOURCE.

SVN为什么不工作?

嗯,我怀疑SVN不喜欢SOCKS.有人有建议吗?

svn tortoisesvn proxy putty tunnel

12
推荐指数
1
解决办法
1万
查看次数

如何从DEV_BROADCAST_DEVICEINTERFACE和设备实例ID获取友好设备名称

我已经使用RegisterDeviceNotification注册了一个窗口,并且可以成功接收DEV_BROADCAST_DEVICEINTERFACE消息.但是,dbcc_name返回的结构中的字段始终为空.我所拥有的结构定义如下:

[StructLayout(LayoutKind.Sequential)]
public struct DEV_BROADCAST_DEVICEINTERFACE
{
    public int dbcc_size;
    public int dbcc_devicetype;
    public int dbcc_reserved;
    public Guid dbcc_classguid;
    [MarshalAs(UnmanagedType.LPStr)]
    public string dbcc_name;
}
Run Code Online (Sandbox Code Playgroud)

我正在使用WM_DEVICECHANGE消息Marshal.PtrToStructureLParam.

这应该有用吗?

或者甚至更好......是否有另一种方法可以在连接时获取设备的名称?

编辑(02/05/2010 20:56GMT):

我发现如何通过执行以下操作来填充dbcc_name字段:

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
public struct DEV_BROADCAST_DEVICEINTERFACE
{
    public int dbcc_size;
    public int dbcc_devicetype;
    public int dbcc_reserved;
    public Guid dbcc_classguid;
    [MarshalAs(UnmanagedType.ByValTStr, SizeConst=255)]
    public string dbcc_name;
}
Run Code Online (Sandbox Code Playgroud)

但我仍然需要一种从int dbcc_name获取"友好"名称的方法.它看起来如下:

\?\ USB#VID_05AC&PID_1294​​&MI_00#0#{6bdd1fc6-810f-11D0-BEC7-08002BE2092F}

而我真的只想说"苹果iPhone"(在这种情况下就是设备).

c# winapi guid device-instance-id

11
推荐指数
1
解决办法
1万
查看次数

是否有一个全面的NHibernate事件监听器列表以及它们何时触发?

因此,我正在寻找一个很好的NHibernate事件列表,这些事件实际上描述了它们何时被触发,在典型场景中(不仅仅是列表).IE之类的东西

PreUpdateEventListener - 当已经持久的对象发生更改时触发

我目前只是通过源头试图解决它,但它有点痛苦,我认为有人必须已经在某个时候做过这一点.

.net nhibernate events

11
推荐指数
1
解决办法
411
查看次数

确定第三方应用程序安装目录

我有一个应用程序,在整个公司的数百台计算机上使用,我必须修改应用程序的安装目录中的INI文件.用户可以随意安装应用程序,并且可以在任何给定时间安装多个版本的应用程序.我需要能够找到该安装目录.

到目前为止我考虑过的方法:

  • 使用WindowsInstaller按名称查找产品并查找其安装目录.(从这里). - 这几乎可以工作,但我希望填充的属性(TARGETDIR,APPDIR)不是.
  • 查看注册表以查找特定应用程序的安装目录.它不在那里.
  • MsiGetComponentPath()?我在上面提到的相同链接中看到了这个,但我不知道如何实现它.我可以使用Windows安装程序获取ProductID,但我不知道如何以编程方式选择一个组件并随机查找其ID.任何人?

好吧,让我们听一下以编程方式确定Windows应用程序的安装目录的任何其他方法.

c# installation wmi windows-installer

7
推荐指数
1
解决办法
2583
查看次数

如何从实体类型中查找NHibernate实体的表映射?

一旦我在NHibernate中映射了我的域,我怎样才能在我的代码中的其他地方反向查找这些映射?

例:

由于Pony某种原因,该实体被映射到名为"AAZF1203"的表.(愚蠢的遗留数据库表名!)我想只使用typeof(Pony)因为我必须在其他地方编写查询来从NH映射中找出该表名.

我怎样才能通过以下测试?

private const string LegacyPonyTableName = "AAZF1203";

[Test]
public void MakeSureThatThePonyEntityIsMappedToCorrectTable()
{
    string ponyTable = GetNHibernateTableMappingFor(typeof(Pony));
    Assert.AreEqual(LegacyPonyTableName, ponyTable);
}
Run Code Online (Sandbox Code Playgroud)

换句话说,GetNHibernateTableMappingFor(Type t)需要看起来像什么?

c# nhibernate nhibernate-mapping

7
推荐指数
1
解决办法
4608
查看次数

如何清除Windows窗体中透明控件上的图形

所以,我对Windows窗体开发很不熟悉.

我正在尝试创建一个"嘿,我正忙着做东西"的组件,只是旋转形状.我希望这个控件是瞬态的,并且可以在任何其他控件之上绘制.该类直接从Control继承.

所以我在构造函数中有这个:

SetStyle(ControlStyles.Opaque, true);
Run Code Online (Sandbox Code Playgroud)

还有这个:

protected override CreateParams CreateParams
{
    get
    {
        CreateParams parms = base.CreateParams;
        parms.ExStyle |= 0x20; 
        return parms;
    }
}
Run Code Online (Sandbox Code Playgroud)

这让我获得了一个可以在其他控件之上绘制的控件.

现在我的问题是这个.我每秒重复几次控制,给动画一个平滑的动画.但是,我无法弄清楚如何清除前一帧中绘制的内容.使用e.Graphics.Clear(Color.Transparent)OnPaint原来整个控制黑色.

有没有办法清除控件的绘制内容?

我注意到调整控件大小会清除背景.

不起作用的事情

  1. 重写OnPaintBackground什么都不做.或者只是调用base.OnPaintBackground.结果相同.

.net c# gdi+ transparent winforms

6
推荐指数
1
解决办法
7311
查看次数

内部或右外部加入Nhibernate和Fluent Nhibernate on Many to Many系列

如何强制NHibernate在多对多集合中执行右外连接或INNER连接而不是LEFT外连接?

我想要这样做的原因是因为应用于集合元素的过滤.使用左连接时,您将获得与未过滤查询相同的行数,但过滤掉的元素只显示所有字段的NULL.但是,使用右连接时,将从查询中返回正确的行数和元素数.

我希望可以在集合的映射中的某处指定连接.

nhibernate nhibernate-mapping fluent-nhibernate

6
推荐指数
1
解决办法
4756
查看次数