C# 只有基于WPF、WCF和ADO.net的.net项目,而将DB作为Sybase是可能的吗?
我们有5年的迷你ERP应用程序,基于局域网(仅限Intranet),使用ASP.net 2.0编写 现在,由于需求变化很大,工作流也发生了很大变化,我们决定使用WPF、WCF和我们自己的自定义数据访问层从头重写它 由于它是基于局域网的,我们的组织拥有仅限Windows的系统,因此我们可以在每个系统上安装客户端模块。我们计划开发(基于浏览器的HTTP)和基于WPF的(桌面)客户端模块 所以,基本上我想从你们这里知道的是C# 只有基于WPF、WCF和ADO.net的.net项目,而将DB作为Sybase是可能的吗?,c#,asp.net,wpf,wcf,sybase,C#,Asp.net,Wpf,Wcf,Sybase,我们有5年的迷你ERP应用程序,基于局域网(仅限Intranet),使用ASP.net 2.0编写 现在,由于需求变化很大,工作流也发生了很大变化,我们决定使用WPF、WCF和我们自己的自定义数据访问层从头重写它 由于它是基于局域网的,我们的组织拥有仅限Windows的系统,因此我们可以在每个系统上安装客户端模块。我们计划开发(基于浏览器的HTTP)和基于WPF的(桌面)客户端模块 所以,基本上我想从你们这里知道的是 是否可以使用WPF项目模板(用于UI)、WCF项目模板(用于中间件)和自定义数
我只是想知道这3个问题的3个答案,因为我们有一个奇怪的要求:)答案是完全可以做到这一切 在WPF中创建前端、在WCF中创建中间层和自定义数据访问层将非常适合您。以下是有关如何连接WPF和WCF的一些指导: 您完全可以用HTML+jQuery UI替换WPF前端。下面是一些关于如何通过jQuery使用WCF服务的代码:
C#可以很好地访问Sybase。请看答案是完全有可能做到这一切 在WPF中创建前端、在WCF中创建中间层和自定义数据访问层将非常适合您。以下是有关如何连接WPF和WCF的一些指导: 您完全可以用HTML+jQuery UI替换WPF前端。下面是一些关于如何通过jQuery使用WCF服务的代码: C#可以很好地访问Sybase。见亚当 是的,这三个问题都有可能解决
Iain其他答案很好地涵盖了前两个问题。对于问题的Sybase部分,您应该知道: 无论您计划使用纯ADO.NET数据层还是ORM,所需的DLL和配置设置都适用于这两种类型。如果您计划在Sybase中使用NHibernate 3.0,那么因为它必须使用NHibernate 2.1.2提供的方言。NHibernate 2.1.2在Sybase ASE版本12中的开箱即用性很好。对于该版本,请使用以下方言和驱动程序配置NHibernate: NHibernate.方言.sybaseadonet12方言
NHibernate.Driver.SybaseAdoNet12ClientDriver 我相信SqlAnywhere驱动程序是不同的,但对于ASE,您需要参考的DLL如下所示。您只能通过Sybase的支持计划让他们遵守许可证 最后,Sybase ADO.NET驱动程序似乎是其非托管DLL上的一个薄层,它的使用和稳定性表明了这一点。与我使用过的其他ADO.NET驱动程序相比,它的配置显然更为挑剔。例如,由于Sybase通常不配置为支持Unicode字符集,因此您需要设置/映射.NET字符串参数,以酌情使用AnsiString或AnsiStringFixedLength(或AsedType.VarChar)。更奇怪的是,如果您忘记执行此操作,驱动程序将自动失败,只向表列写入一个空值 sbgse2.dll
Sybase.AdoNet2.AseClient.dll
sybcsi_certicom_fips26.dll
sybcsi_core26.dll
sybcsi_profiler26.dll
sybdrvado20.dll
其他答案很好地涵盖了前两个问题。对于问题的Sybase部分,您应该知道: 无论您计划使用纯ADO.NET数据层还是ORM,所需的DLL和配置设置都适用于这两种类型。如果您计划在Sybase中使用NHibernate 3.0,那么因为它必须使用NHibernate 2.1.2提供的方言。NHibernate 2.1.2在Sybase ASE版本12中的开箱即用性很好。对于该版本,请使用以下方言和驱动程序配置NHibernate: NHibernate.方言.sybaseadonet12方言
NHibernate.Driver.SybaseAdoNet12ClientDriver 我相信SqlAnywhere驱动程序是不同的,但对于ASE,您需要参考的DLL如下所示。您只能通过Sybase的支持计划让他们遵守许可证 最后,Sybase ADO.NET驱动程序似乎是其非托管DLL上的一个薄层,它的使用和稳定性表明了这一点。与我使用过的其他ADO.NET驱动程序相比,它的配置显然更为挑剔。例如,由于Sybase通常不配置为支持Unicode字符集,因此您需要设置/映射.NET字符串参数,以酌情使用AnsiString或AnsiStringFixedLength(或AsedType.VarChar)。更奇怪的是,如果您忘记执行此操作,驱动程序将自动失败,并只向表coln写入一个空值