1

三年多一点前,我编写了一个 Access 数据库,用于我们的银行账户和预算。从那以后我就一直使用它并喜欢它,因为它做了几件其他事情都做不到的很棒的事情。出于几个原因,我决定将它写成一个独立的程序。我会让一些家人和朋友使用它,稍后,在对它进行一定程度的调整之后,也许会尝试将它推销一下。我不希望超过 Quicken,但谁知道呢,也许它会变成什么东西。

据我所知,可能需要首先确定语言。所以我在这里询问并寻求帮助以找到合适的使用。以下是我的考虑:

A) 我肯定想要一个外观漂亮的 GUI。没有任何“Windows”外观。

B) 易于分发和安装的包装当然是非常重要的。仅限 Windows 很好。

C) 我的培训/经验水平:一些简单的 VBA(Access db 中的内容),最近学习了非 GUI C++ 课程,如果我学习 Java,本学期可以参加 Java 入门课程。

D) 我曾认为我会使用 SQL 数据库后端(我说的对吗?)作为数据的位置,因为我有 Access db 用于对其进行建模,而且我熟悉小 SQL。

E) 我知道如果我想最终能够销售该程序,我需要注意图书馆的许可证。

F) 现在,可以肯定的是,我对任何基于 Web 的功能或在浏览器中运行都不感兴趣。

总而言之,我是一个愿意,勉强够聪明,够勉强,新手,有一些经验和培训,想把他的 Access db 写成一个真正的程序,也许有一天会卖掉它. 我应该使用什么语言?

我想我也应该问一下,我是否似乎遗漏了一些重要的东西?非常感谢。

*我知道有些人会就我是否应该尝试出售它(甚至可以)给我建议,但这不是我在这里的原因,所以请不要。

4

6 回答 6

4

鉴于您的 Access 经验和您列出的要求,我建议将 .NET 作为平台,VB 作为语言,WPF 作为 UI 框架,以及原始 ADO.NET(可能是数据集)作为数据库后端。您可能还想尝试 LINQ to SQL,看看它是否对您有意义,但您可能会发现普通的 ADO.NET 更熟悉。

编辑

我错过了关于数据库的部分问题。对于您描述的任务,请考虑免费的 SQL Server Compact Edition。它是进程内的,就像 Access 一样,因此部署服务等没有麻烦,您可以使用 SQL Express 获得。其他免费的无服务器数据库选项是 SQLite 和 Firebird/Embedded。

关于部署 - 对于一个简单的应用程序(只需要复制 .exe 和 .dll 文件并创建快捷方式),.NET 安装项目可能就足够了,而且很容易创建。

于 2009-07-24T04:11:36.953 回答
2

我看到你说两个矛盾的事情:

没有“Windows”的外观。

仅限 Windows 很好。

您应该努力使您的应用程序看起来和感觉像任何 Windows 应用程序,尤其是在不考虑操作系统独立性的情况下。人机交互的基础之一是一致性减少了新用户学习您编写的应用程序所需的时间。

如果它看起来像所有其他应用程序,在大致相同的位置具有相同的图标,具有与其他应用程序相同的边界和颜色,那么您正在利用用户已经知道所有这些事情的事实。如果您专门为您的应用程序设置皮肤并使用非标准图标、颜色甚至隐喻,用户将不得不学习新主题以及应用程序提供的所有功能。

如果您将应用程序编写为可换肤的,并使其默认为常规 Windows 外观和感觉会更好,这样用户无需学习新外观即可了解其功能。然后,一旦他们理解了应用程序,他们就可以切换到皮肤模式,以独立于功能来学习。

于 2009-07-24T11:40:57.920 回答
2

鉴于您的专业知识和背景,使用 Windows 窗体作为界面的 VB .NET 对您来说将是最容易上手并开始使用的。SQL Server Express 或 Compact 版本将满足您的数据库需求,与 Access 相似,不会感觉 100% 外来,如果您需要更多内容,可以轻松移植到完整的 SQL Server。

我还将提到 C# 作为一种可能的语言。作为一个在 VBA 之外没有经验的新手程序员,你会更难上手,但是 C# 中提供了更多的社区支持、技术书籍和免费源代码。

我真的很喜欢 WPF 来开发用户界面,但是学习曲线非常陡峭。目前不适合新手。

Win Forms 具有极好的、易于使用的工具,用于构建最常见的界面类型,并且与 Access 中的表单设计器足够相似,您将能够快速上手。

在您的设计阶段花费额外的时间将业务逻辑与表示逻辑分开,这样您以后就可以用更时髦的东西替换 Win Forms。

这是了解 Windows 窗体和 WPF 的官方网站的链接。有很多视频、练习和其他材料供新开发人员使用。每天花一点时间研究那里的一些材料,你会学到很多。Microsoft 也有其他技术的类似站点,例如 SQL Server、ASP 等。

确保你有一个体面的源代码控制解决方案。它会在不止一次的情况下为您节省。如果您自己买不起,或者不想麻烦设置和维护一个,如果您将项目开源,有一些像CodePlex这样的在线地方将免费提供源代码控制。

祝你的项目好运。

于 2009-07-24T12:07:29.253 回答
1

Python

  • 由于您不太可能遇到会产生影响的数据量(如果是这样,I/O,而不是代码可能是瓶颈。)您应该获得一种尽可能令人愉快的开发语言。
  • Python 有很好的标准化数据库库,从sqlite3开始,因为数据库只是存在于一个文件中。如果需要,您可以稍后将其换成 oracle 数据库。
  • 它还具有许多 GUI 选项,因此保持 GUI 独立的规则更容易。(无论如何你应该,但是......)
  • 非常好的多平台支持,甚至一些 GUI 替代品也能做到这一点。(虽然有些比其他更好)

Python 也很友好,因为做错事感觉不对,做正确的事感觉对。我什至无法开始解释该功能的奇妙之处。

于 2009-07-24T12:50:20.177 回答
1

我建议来自 TrollTech/Noika 的QT 4.5

A) QT Windows 可以换肤

B)我对如何分发 QT(还)不太清楚,但有一件事是它是跨平台的

C) 我发现 QT 中的 GUI 编码很简单,不像 MFC 那样做作;那里的教程足以开始使用。

D)QT 有 SQLlite(允许你拥有一个不需要服务器的数据库)并且有用于连接 SQL 数据库的包,但我不确定 Access

E) 与 Nikola 合并后,QT 4.5 现在是 LGPL,所以只要你链接到库,你应该不会有分发软件的问题。根据 LGPL,必须发布对 QT 4.5 文件所做的更改。

另一点 - QT 4.5 为图形程序提供了强大的视图/场景架构,并且信号/槽机制使得编写 GUI 并将其更改链接到其数据类比 MFC 甚至 C# WinForms 中的委托更容易。

于 2009-07-24T04:18:40.323 回答
0

我建议您将应用程序编写为 Web 应用程序,前端使用 macromedia flash,后端使用 java。听我说。

一个)。Flash 有一个非常丰富的外观漂亮的 ui 小部件库。设计 Flash ui 的外观和感觉就像单击和拖动一样简单。非常喜欢插画师。

乙)。开箱即用的闪存是跨平台的,适用于所有 Windows 版本。您还将获得 osX、linux 和很快的移动设备用户。无需担心安全权限、损坏的安装或奇怪的 dll。另外,如果您需要发布补丁,您可以在 Web 服务器上更新 Flash 应用程序,所有用户下次使用时都会获得新版本。您无需担心包装或运输。

C)。未来的软件可能会越来越以网络为中心。虽然 Web 应用程序可能不会取代所有应用程序,但它们肯定会取代大多数应用程序。现在培养这些技能很重要。

D)。是的,sql 是对访问的改进。那里有很多 sql 知识,SQL 是一个不错的选择。

于 2009-07-24T04:50:04.677 回答