Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 只有基于WPF、WCF和ADO.net的.net项目,而将DB作为Sybase是可能的吗?_C#_Asp.net_Wpf_Wcf_Sybase - Fatal编程技术网

C# 只有基于WPF、WCF和ADO.net的.net项目,而将DB作为Sybase是可能的吗?

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项目模板(用于中间件)和自定义数

我们有5年的迷你ERP应用程序,基于局域网(仅限Intranet),使用ASP.net 2.0编写

现在,由于需求变化很大,工作流也发生了很大变化,我们决定使用WPF、WCF和我们自己的自定义数据访问层从头重写它

由于它是基于局域网的,我们的组织拥有仅限Windows的系统,因此我们可以在每个系统上安装客户端模块。我们计划开发(基于浏览器的HTTP)和基于WPF的(桌面)客户端模块

所以,基本上我想从你们这里知道的是

  • 是否可以使用WPF项目模板(用于UI)、WCF项目模板(用于中间件)和自定义数据访问库(作为DataAccessLayer)创建解决方案

  • 稍后,如果需要,我们还将提供基于浏览器的HTML+jQuery用户界面,这样我们可以重用1中提到的代码吗

  • 我们的客户希望Sybase作为DB,那么是否可以通过Sybase DB进行DAL

  • 不要把它当作讨论式的问题,也不要关闭它


    我只是想知道这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。见亚当

    是的,这三个问题都有可能解决

  • 这些框架,如Prism/Caliburn/MMVM Light,可以帮助您使用UI
  • 如果您将业务逻辑建立在WEB Api(SOAP/REST)的基础上,那么您应该能够为这两个Api使用类似的业务逻辑
  • Sybase的数据库提供者,但可能需要考虑使用ORM(对象关系映射器)(NHiBiNAT/实体框架)
  • 干杯

    伊恩

    亚当

    是的,这三个问题都有可能解决

  • 这些框架,如Prism/Caliburn/MMVM Light,可以帮助您使用UI
  • 如果您将业务逻辑建立在WEB Api(SOAP/REST)的基础上,那么您应该能够为这两个Api使用类似的业务逻辑
  • Sybase的数据库提供者,但可能需要考虑使用ORM(对象关系映射器)(NHiBiNAT/实体框架)
  • 干杯


    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写入一个空值