我应该将哪个开发平台用于桌面Windows应用程序?

时间:2009-05-23 01:08:11

标签: programming-languages

在进行Web开发很长一段时间后,我面临着一个新客户,他希望在interweb之外运行一个简单的数据库应用程序。

他非常坚持使用微软产品。 “我们不希望没有任何开放源头”是他的立场。

自从我实际进行桌面开发以来已经有一段时间了,我的大多数工具都是生锈的,没有许可证,或者只是丢失了。我最近一直专注于L.A.M.P.应用程序,但这并没有完全转移回桌面环境。

一些选项:

database:  MySql (my fav), Access, MSSql
language:  C++, VB, PHP, Java, C#

我一直倾向于使用Access / VisualBasic,不是因为我非常喜欢它,而是因为它很容易设置和部署。对于新手计算机用户来说,数据库服务器(MySql,MsSql)可能太难以部署/维护。尽管从纯粹主义的角度来看,C ++是更好的语言,但引导应用程序(IMHO)需要花费太多精力。 Java太麻烦了(再次恕我直言)。

另一个考虑因素是成本。虽然我可以说服他获得适当的软件运行时许可证,但我可能无法让他购买必要的开发工具,当然,该项目还不足以证明可能不会再次使用的大量购买。 / p>

非常感谢您对平台选择,开发工具和应用程序框架的贡献,非常感谢。

编辑23-May-09

感谢大家的出色建议。

我已经选择了C#Express。到目前为止,我已经避免学习C#了,但是另一种语言是什么?我有一整个星期的时间来加快速度。

我对是否使用Access或MSSql(Express)数据库感到困惑。使用Access,我可以将数据库部署为独立文件,但MSSql要求安装数据库服务器。 (AFAIK)

客户端要求将应用程序安装在多个位置,其中一些位置是移动的,而不是连接到interweb。冒险的部分是协调数据库的所有副本,并确定哪个是非常规版本。

10 个答案:

答案 0 :(得分:7)

我会选择C#和MSSQL的Express editions。免费且易于使用/设置/部署。这里有一些general material的更深层链接,特别是关于在Windows应用程序中使用VS Express版本。

答案 1 :(得分:2)

C#+ MSAccess / MSSql(express)=利润。

我不确切地知道您的要求,但我建议如下:

如果您有预算:

  • Visual Studio Professional
  • MS SQL或Access
  • 表单和表单的DevExpress组件 数据库持久性。

如果您没有预算

  • Visual Studio Express
  • MySQL的
  • NHibernate或Linq2Entities
  • WPF或Windows窗体

答案 2 :(得分:2)

我建议:只需使用Access。它适用于小型,简单的单用户数据库。它不仅仅是一个“数据库”,它本身也是一个“数据库应用程序”和“数据库应用程序开发环境”。那就是:将db,CRUD表单和简单报告放在一起是非常快速和容易的。并且内置的VBA处理大多数业务逻辑,如果你需要做任何“有趣的”事情,你可以不断调用C#dll。

告诉客户他们需要在开发期间(足够公平)借用 生产框,并且Access(无需提及哪个版本)约为200.00美元。

不付钱的顾客可以得到他们所要求的东西,而不是他们需要的东西。

答案 3 :(得分:1)

Microsoft Visual Studio具有廉价或免费的快速版本。也就是说,选择是显而易见的:使用C#或Visual Basic .Net进行Winforms(它只是一个语法问题)与MySql后端进行通信(针对成本问题)。

Microsoft Winforms非常棒,但仅限于Windows(尽管Mono)。享受这个项目。在我看来,它比LAMP更有趣,但并不像通用那样普遍。

编辑:如果你有额外的时间和耐心(当然你必须吃掉时间而不是花费学习时间),尽管C#非常出色且非常成熟(即使在.Net中) 1.1它是:),你可能想在.Net的一个Python变种中编写应用程序。这就是我要做的...... Python拥有巨大的追随者,可能会在你的非微软未来的某个时候出现。另一方面C#......好吧,如果你单声​​道它可能会出现,但除此之外,它就像学习意大利语:在意大利很好,但在其他方面没用。 (我应该知道,我是从威尼斯的地方写的......)

答案 4 :(得分:1)

我不知道为什么你认为另一个数据库引擎比MS SQL更容易管理。有一个名为'Express'的免费啤酒版MS SQL可能适合。它支持与完整数据库引擎相同的所有DDL和SQL功能:如果您需要它们;它的大小和CPU数量都有限。

同样有开发人员工具的免费/快速版本,这些版本并没有遗漏太多功能(最值得注意的可能是编写安装程序的能力,但还有其他免费方法可以做到这一点)。我不知道PHP或Java但是如果我在C ++和C#之间做出选择(我对两者都很熟悉),我会说C#几乎可以用于大多数应用程序,除了软实时,以及更轻松,更愉快。

答案 5 :(得分:1)

我的偏好是使用MSSQL Express的C#。您可以将visual studio express版用于您的开发环境。

答案 6 :(得分:1)

您是否考虑过DelphiC++Builder可用free versions

答案 7 :(得分:0)

C#或VB.Net与SQLite.Net的数据库。几乎是跨平台的跨平台。

答案 8 :(得分:0)

如果你需要一个本地数据库,一个文件(.dat)或一个IDE的建议(berkeleydb)或Sphinxsearch()具有数据透视表的相关性排序顺序通常是用户想要的,而且根据需要不需要数据库i / o文档或图形类型。

答案 9 :(得分:-1)

如果您正在桌面上开发应用程序。我会说

  • 脚本语言:ASP.NET(C#)
  • 数据库:MS SQL 2005
  • 服务器:带有IIS 6的Windows Server 2003