想从MS Access转移,考虑使用.NET或Visual Studio?
我为一家小公司写了一个项目管理程序,使用的是Microsoft Access 2007。
现在他们要求添加很多额外的功能(比如时间记录、特权数据层等……)
我个人使用的是Linux,但整个办公室都在用Windows。
我对编程还比较新,但喜欢通过这样的项目自学。
我现在有点迷茫——我不太确定最简单的解决办法是什么:是继续用Access和VBA,学习一个逐渐被淘汰的、让人烦恼的语言,同时还要忍受Access的各种限制?还是换个其他的东西呢?
Python看起来挺简单的……无论我用什么,我都需要能提供一个图形用户界面(GUI)。
这里有个截图,帮你了解一下情况: http://img707.imageshack.us/img707/9360/screenshot1fi.jpg
http://img707.imageshack.us/img707/7338/screenshotmh.jpg
—— 备注: 当前的Access项目使用了前端和后端分开的方式,以便在局域网中多用户共享。
与Linux的跨平台兼容性对我来说不是特别重要,我已经使用VirtualBox一段时间了。
——更新—— 经过一番思考,我觉得应该用IronPython来继续开发——不过——我在XP和7上安装这个套件时都失败了……我在想这是不是也过时了……最重要的是,我最近在学习Python 3,我非常喜欢它——但我需要为Windows提供一个GUI,不知道从哪里开始(包括用哪个IDE等)。
10 个回答
MS Access 是一个桌面数据库应用程序。比它更高级的可能就是 SQL Server Compact Edition (SQLCE),它是作为你应用程序的一部分运行的(而 SQL Server Express 或更高版本是作为系统服务运行的)。我在几个应用程序中成功使用过 SQLCE,微软在 Visual Studio 2010 中也用它来处理新的 Visual C++ IntelliSense 缓存,因为它轻便且性能优秀。
尽管我在一些地方看到的说法,SQLCE 和 Entity Framework 的配合并不好。但它和 LINQ-to-SQL 以及相关的设计工具配合得很好。基于此,我个人建议你考虑以下组合作为替代方案:
- 数据:SQL Server Compact Edition
- 数据/代码:LINQ-to-SQL
- 编程语言:C#
- 应用框架:WPF
- 个人建议:WPF 确实有一定的学习曲线,但对于那些长期使用其他框架(比如 MFC、WinForms 等)的人来说,可能会觉得更难。找一本好的参考书,你很快就能上手,而且你将掌握一种越来越多人在使用的技术,而不是逐渐被淘汰的技术。
在这样的环境中,使用VB或C#是个不错的选择。可以试试各种VS Express版本。
如果你想要一个更容易在Linux上使用的语言,Python和几乎任何跨平台的图形界面框架(比如QT或者wxpython)都可以。
补充一下:还有数据库方面。如果你想学习一些跨平台的东西,我建议使用sqlite。如果你想留在微软的生态系统中,可以考虑SQL Server Compact。
在这样的商业环境中,.NET应用程序可能比其他非微软的东西更容易维护(比如在你离开之后等)。
VB和C#跟Access确实有很多相似之处,如果你不想离开Access太远,这两个语言都是不错的选择。
Python非常棒,但跟Access完全不一样。它只是一个编程语言,恰好有一些很好的数据库库。虽然我没用过,但它的图形界面库看起来也不错。不过,用Python设计图形界面会比用C#/VB要难一些。Python是免费的,值得尝试一下,比如说,做一个图形界面,连接一个SQLite数据库。这样你就能大致了解用Python来满足你的需求是否可行。
不要只停留在Access上。Access对于小型应用来说还不错,可以很快做一些事情。但另一方面,VBA就比较糟糕,限制很多。如果可以的话,试试C#和Python吧。