我应该在C#中为我的项目使用WPF或Windows Forms Application吗?

时间:2010-04-05 15:13:47

标签: c# wpf winforms client-server

  1. 我正在开发基于客户端 - 服务器的应用程序,其中客户端应用程序将访问服务器数据库以存储帐单信息。它还将有报告生成设施。 Windows Forms在文档打印方面表现良好。我没有在WPF中看到这样的工具或控件。如果我错了,请纠正我。
  2. 我想要数据库安全性,我应该使用哪个数据库,SQL Server,MySQL或Oracle。我想使用免费的数据库,但安全是我的首要任务。
  3. 请建议如何在C#中实现具有多个客户端的客户端 - 服务器架构?
  4. 谢谢Geeks !!!

4 个答案:

答案 0 :(得分:5)

  1. 使用WPF可以提供更具创新性的用户体验。对Working with Documents in WPF on MSDN有一个不错的高级概述。

  2. 任何数据库都应该能够提供良好的安全性。如果你正在使用C#,我会推荐一个版本的SQL Server(如果SQL Server Express适合你......那就去吧。)

  3. Windows Communication Foundation(WCF)。

答案 1 :(得分:1)

关于1。

WPF有一个方便的PrintDialog控件,上面有PrintVisual方法。这可用于从WPF控件层次结构中打印任何可视元素,并且可以满足您的打印要求。

我在WinForms中开发了很多应用程序,在WPF中只开发了一些应用程序,但我会非常依赖WPF方向进行任何新的开发。它非常灵活和强大。

答案 2 :(得分:1)

当你想要实现一个Windows应用程序时,WPF很棒,并考虑它给予的自由以及最终可以获得的关注点,我会说100%与WPF一起使用。有许多方法可以控制您的打印过程,其中一些已经在上面进行了解释。

2-对于数据库,根据您的负载和并发性,您可以选择其他数据库。 Oracle是一个很棒的,但可能是最昂贵的。所以,最后你需要比较一个奇妙的数据库,同时免费的MySQL,以及SQL服务器快递版本,它是企业/专业版的Microsoft SQL服务器的免费版本。 Express版本基本上是同一数据库的限量版,如果您需要扩展您的网络和支持,您可能无法负担企业解决方案的费用。因此,如果您预见到未来会有这样的需求,那么一个想法就是从一开始就坚持使用最好的免费数据库。这两个数据库的安全性在某种程度上处于同一水平,但您也需要处理您的网络/服务器证券,因为我发现它们更难打破。

3 - 使用Windows Communication Foundation(WCF)非常简单易用,尤其是当您想使用WPF之类的东西时。您基本上创建了一些数据合同并发布它们,这将是您的沟通终点。你基本上打电话给他们,并处理他们,因为他们是你的本地方法。强烈推荐。那么多个客户究竟是什么意思呢?它是否意味着不同类型的客户端(如基于Web的移动应用程序等)?我还建议看看RESTful Web服务,因为它具有相同的通信概念。我刚刚提到了一些名字,所以你可以开始阅读每一个名字。

答案 3 :(得分:0)

1 - 实际上,WPF提供了winforms更好/更容易的文档/控制打印。此外,WPF仍然支持RDLC和其他报告解决方案,适用于打印和打印。报告。询问你是否应该使用WPF或WinForms就像问你是否应该吃柠檬或酸橙作为维生素C.无论你使用哪一种,你都会到达你想去的地方,但味道和体验会大不相同

2 - 数据库不是您的安全。您选择的数据库对您的安全性几乎没有影响。就个人而言,我会查看Active Directory和域安全性,并基本上允许系统使用用户的域帐户和域组来控制身份验证和授权。

3 - 客户端 - 服务器框架有许多可能的解决方案,每个解决方案都有自己的优点和缺点,然后还有可能使用你甚至没有触及过的webforms。