C# 在';在客户端程序中也使用了什么?

C# 在';在客户端程序中也使用了什么?,c#,dll,libraries,C#,Dll,Libraries,我最近又开始了一些编码,这次是用C。目前,我正在编写一个程序,我有一个专用的服务器和客户端。然而,目前我已经在类库中编写了所有代码。我正在使用VisualStudio 我有一个名称空间MyProgram(更改了这个名称空间),里面有名称空间网络,其中包含一些类,在这个名称空间中有名称空间Server和Client,我计划让服务器和客户端程序只使用库 这是否安全,或者我是否应该将服务器代码移到服务器程序本身,远离类库?我计划将库包含在客户端程序中,因为库具有所有功能。(我计划有几个不同的程序使用同

我最近又开始了一些编码,这次是用C。目前,我正在编写一个程序,我有一个专用的服务器和客户端。然而,目前我已经在类库中编写了所有代码。我正在使用VisualStudio

我有一个名称空间MyProgram(更改了这个名称空间),里面有名称空间网络,其中包含一些类,在这个名称空间中有名称空间Server和Client,我计划让服务器和客户端程序只使用库

这是否安全,或者我是否应该将服务器代码移到服务器程序本身,远离类库?我计划将库包含在客户端程序中,因为库具有所有功能。(我计划有几个不同的程序使用同一个库,但有些不同,例如环境等)


编辑:我关心的是,破解DLL(或EXE)找到底层代码(可能还有一些秘密)有多容易。

反编译.NET代码就像喝一杯水一样容易。您可以使用dotPeek或Reflector等工具自己尝试

您可以混淆代码,但il始终是可读的,因此不要将机密放入客户端程序集中


如果必须这样做,请确保进行一些加密。您可以使用类似Intellilock的工具创建与管理机密的硬件相关的许可证文件。无论如何,您将永远无法达到100%的安全性。

非常不清楚“安全”是什么意思。。。服务器端和客户端上使用了大量库。。。请解释您有什么顾虑。我担心的是,破解DLL(或EXE)找到底层代码(可能还有一些秘密)有多容易。我认为代码本身没有秘密是好的,例如密码、用户。。等等。应该在配置文件或其他机制中。为什么在公共库中只有服务器代码?这听起来像是一个架构问题。当您想独立地对服务器或客户端代码进行版本设置时,会发生什么情况?感谢您对体系结构的评论。这让我意识到。我将把我的服务器代码移出公共库:)谢谢你的评论。我来看看上面提到的工具。