多一点,比三年前我写了一个Access数据库使用我们的银行账户和预算。 我用它和喜欢它自从因为它做一些伟大的事情,没有什么别的那里呢。 我决定有几个原因它被写入到一个独立的程序。 我会让一些家人和朋友使用它,后来,它调整到一定程度后,也许尝试向市场推出了一点。 我不奢望反超加快,但谁知道,也许它会变成什么。
据我所知,决定语言可能需要先完成。 所以我在这里要问,并得到帮助寻找使用权之一。 这里是我的考虑:
A)我肯定会想一个有吸引力的外观的GUI。 并没有什么“窗口”看。
B)便于包装分发和安装,当然也很高优先级的。 仅Windows是好的。
C)我的训练/经验水平:一些简单的VBA(什么是在Access数据库),最近参加了一个非GUI的C ++类,如果我使用Java去可能需要一个介绍Java类本学期。
d)我原以为我会使用一个SQL数据库后端(我在说对不对?)作为数据的地方,因为我有Access数据库使用后,将其建模,我熟悉小SQL。
E)我知道我需要铭记图书馆的许可证,如果我想最终能卖出计划。
F)现在,可以肯定,我没有兴趣在任何基于Web的功能,或者为它在浏览器中运行。
综上所述,我是愿意的,勉强智能不够,勉强能,足够的,新手有一些轻的经验和培训,谁愿意自己的Access数据库记录到一个真正的程序,也许尝试把它卖掉1天。 我应该使用什么语言?
我想我应该还用问,是否会出现,我可能会丢失一些重要的东西? 非常感谢。
*我知道有些人谁给我的建议对我是否应该尝试将它出售(甚至可能),但是这不是为什么我在这里,所以请不要。
鉴于您的专业知识和背景,使用Windows窗体的接口将是最简单的VB .NET为您挑选,并开始一起工作。 SQL Server Express的或紧凑型版将满足您的需求DB,足以类同访问,这会不会觉得100%foriegn,并可以很容易地移植到完整的SQL Server,如果你需要更多的东西。
我也将提到C#作为一个可能的语言。 由于没有任何经验,新手程序员VBA的外面将很难为您挑选了,但有很多更多的社区支持,技术书籍,并在C#提供免费的源代码。
我真的很喜欢WPF开发的用户界面,但学习曲线很陡。 这不是在这个时候新手。
赢形式有建立的最常见类型的接口了不起的,易于使用的工具,并且将similiar足以在Access中的窗体设计器,你将能够得到持续快速。
花费额外的时间在你的设计阶段,使业务逻辑从表示逻辑分隔,这样你可以以后有事snazzier更换赢形式。
下面是该链接的官方网站了解Windows窗体和WPF 。 有很多的视频,练习和新开发的其他材料。 花时间每天学习一点一些材料的出现,你会捡到不少。 微软在其他技术similiar网站为好,如SQL Server,ASP,等等。
请确保你有一个体面源控制解决方案。 这将节省您在多个场合。 如果你买不起自己,还是不想去建立和维护一个的麻烦,也有一些地方的在线像CodePlex上 ,将免费提供源代码控制,如果你让你的项目开源。
祝你好运与您的项目。
鉴于您的访问体验,你所列出的要求,我会建议.NET的平台,VB的语言,WPF作为UI框架和原始ADO.NET(+可能的数据集)的后端数据库。 你可能也想尝试的LINQ to SQL,看看它是否对你有意义的,但你可能会发现普通的ADO.NET比较熟悉。
编辑
我已经错过了有关数据库的问题的一部分。 对于你所描述的任务,考虑到免费的SQL Server精简版。 它的进程,就像访问,所以没有麻烦部署服务等,您使用的SQL Express得到。 其他免费服务器 - 少DB选项的SQLite和Firebird /嵌入式。
关于部署 - 一个简单的应用程序(需要刚过复制.exe和.dll文件,并创建快捷方式),.NET安装项目可能就足够了,而且很容易造成。
我看到你说两个矛盾的事情:
没有“窗口”看。
仅Windows是好的。
你应该努力使你的应用程序的外观和感觉像任何Windows应用程序,特别是如果OS独立性是不是一个问题。 其中一个基本的人机交互是一致性减少所花费的时间为新用户学习你写的应用程序的数量。
如果它看起来像所有其他应用程序,在大致相同的位置相同的图标,用相同的边界和颜色等应用程序,你正在做的事实,即用户已经知道所有这些事情。 如果你明确你的皮肤应用和使用非标准图标,颜色,甚至比喻,用户将不得不学习新的主题,以及所有的功能应用程序提供。
如果你写你的应用程序可以改变皮肤,并且有它默认为常规的Windows的外观和感觉,让用户无需学习新的面貌了解其功能和感觉会更好。 然后,一旦他们明白了应用软件,他们可以切换到皮肤的模式设置为独立的功能性学习。
我建议QT 4.5从奇趣/ Noika
A)QT Windows可以被剥皮
B)我不看好QT如何分配(还)那么清楚,但有一点是,它是跨平台的
C)我发现在QT直截了当编码GUI和不如MFC作为做作; 教程有足够好的上手。
d)QT有SQLlite(让你有没有需要的服务器的数据库),并具有包使用SQL数据库的接口,但是我不知道有关访问
E)与尼古拉,QT 4.5合并后,现在是LGPL,所以只要你链接到库,你不应该有你的分发软件问题。 到QT 4.5文件所做的更改必须被释放,按LGPL。
另一点 - QT 4.5具有用于图形程序的鲁棒视图/场景架构和信号/槽机制使得编码GUI和连接其自己的数据类的改变比MFC或甚至在C#的WinForms代表要容易得多。
蟒蛇
- 因为它是不太可能你永远不会遇到数据卷的地方有差别(如果有的话,I / O,而不是代码可能是瓶颈。)你应该得到一个语言,是愉快的发展成为可能。
- Python有不错的,标准化的DB库,具有启动sqlite3的 ,因为该数据库只住在一个文件中。 如果需要,您可以稍后将其交换为Oracle数据库。
- 它也有很多的GUI选项,所以有纪律,保持GUI分离比较容易。 (你应该这样,但是......)
- 很不错的多平台支持,甚至有些GUI替代的管理这一点。 (有些比别人好,虽然)
Python也友好,因为做错事的感觉错了,做正确的事感觉不错。 我甚至无法开始解释该功能的奇观。
我建议你写你的应用程序使用Macromedia Flash中的前端和Java后端的Web应用程序。 听我说。
一种)。 Flash有非常丰富的光滑寻找UI组件库。 设计一个Flash用户界面的点击和拖动容易的外观和感觉。 很插画等。
B)。 开箱即用闪光的是跨平台的,适用于所有Windows版本。 您还可以得到OSX版,Linux和很快移动设备用户。 没有必要担心安全权限,腐败安装,或怪异的DLL。 另外,如果你需要发布一个补丁,您在Web服务器上更新的Flash应用程序和所有用户获得他们所使用的新版本下一次。 你并不需要担心的包装或运输。
C)。 未来软件很可能是越来越多的网络中心。 虽然Web应用程序可能无法取代所有的应用程序,他们肯定会取代大部分。 现在成长这些技能是很重要的。
d)。 是的,SQL是在访问的改进。 有很多SQL诀窍在那里,SQL是一个不错的选择。