我们计划使用C#和MySQL开发客户端服务器应用程序.我们计划像任何其他软件实用程序一样在货架上销售产品.我们担心我们的产品反编译在可用性和捆绑功能方面确实比竞争对手有一些优势.
我们如何防止我们的软件反编译,因此产品的业务逻辑仍然完好无损?
我们听说过Reflector和其他反编译器,它们使我们的代码非常容易被复制.
我们的客户群不是公司,而是医生,他们自己可能不会这样做,但我们的竞争对手可能想要复制/禁用许可,甚至复制代码/功能,以便我们的产品价值在市场上下降.
任何阻止这种情况的建议都是受欢迎的.
我们要求在ASP.Net应用程序中,应该每天在指定时间自动调用.Net进程.此过程需要与数据库(SQL Server 2005)交互并每天生成计费.我们正在使用共享主机,因此我们无法创建Windows服务或创建SQL Server作业.如果没有用户干预,如何实现这一目标?
我们正在设计一种可以支持多个数据库的产品.我们目前正在做这样的事情,以便我们的代码支持MS SQL以及MySQL:
namespace Handlers
{
public class BaseHandler
{
protected string connectionString;
protected string providerName;
protected BaseHandler()
{
connectionString = ApplicationConstants.DatabaseVariables.GetConnectionString();
providerName = ApplicationConstants.DatabaseVariables.GetProviderName();
}
}
}
namespace Constants
{
internal class ApplicationConstants
{
public class DatabaseVariables
{
public static readonly string SqlServerProvider = "System.Data.SqlClient";
public static readonly string MySqlProvider = "MySql.Data.MySqlClient";
public static string GetConnectionString()
{
return ConfigurationManager.ConnectionStrings["CONNECTION_STRING"].ConnectionString;
}
public static string GetProviderName()
{
return ConfigurationManager.ConnectionStrings["CONNECTION_STRING"].ProviderName;
}
}
}
}
namespace Handlers
{
internal class InfoHandler : BaseHandler
{ …Run Code Online (Sandbox Code Playgroud) 我们有一个基于dot net 2.0的C#产品,它使用Mysql作为数据存储.当我们在XP/Win 7机器上安装mysql连接器6.3.6时,我们能够从C#代码连接到数据库而没有任何问题.但是,当mysql连接器实际上没有安装在机器上但与可执行文件存在于同一目录中时,我们在连接到mysql数据库时遇到问题.我们不希望在我们希望产品运行的每台机器上安装连接器.我们希望在我们的代码中使用任何第三方dll(例如记录器)时直接使用connectory dll.
即使我们将mysql.data.dll复制到安装了exe的同一目录中,它也会构建但不会连接到数据库.
给出的错误是
无法找到请求的.Net Framework数据提供程序.它可能没有安装Blockquote
技术信息:
当我们使用ASP.Net时,我们可以将下面给出的标签指定到web.config中,我们可以通过将dll放入bin目录直接连接到mysql数据库
<system.data>
<DbProviderFactories>
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=5.0.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>
Run Code Online (Sandbox Code Playgroud)
为什么我们不能在C#中为桌面环境中的Client Server应用程序执行相同的操作.