【问题标题】:wanting to move up from ms access, thinking .net? visual studio? [closed]想从 ms access 升级,想 .net?视觉工作室? [关闭]
【发布时间】:2011-01-25 01:25:59
【问题描述】:

所以我使用 Microsoft Access 2007 为一家小型企业编写了一个项目管理程序。

现在他们要求提供许多附加功能(计时、特权数据层......)

我个人使用Linux,但整个办公室都使用Windows。

我对编程比较陌生,但喜欢使用这样的项目自学。

我在这方面处于领先地位——我真的不知道这里阻力最小的路径是什么:我是否继续使用 access + VBA 并自学一种垂死的、令人讨厌的语言——同时与所有问题作斗争访问的限制?还是我要换别的?

Python 看起来很简单......无论我使用什么,我都需要能够提供一个 GUI。

截图,这样你就可以得到 jist: http://img707.imageshack.us/img707/9360/screenshot1fi.jpg

http://img707.imageshack.us/img707/7338/screenshotmh.jpg

-- 笔记: 当前的访问项目使用单独的前端-后端在 LAN 上进行多用户共享

与 linux 的交叉兼容性对我来说并不重要,我已经使用 virtualbox 有一段时间了。

--更新-- 我的游荡使我确信我应该继续使用 IronPython——但是——因为我尝试在 XP 和 7 中安装该套件,但失败了……我想知道这是否也过时了……最重要的是,iv'我一直在阅读它,我喜欢 PYTHON 3——但我需要为 Windows 提供一个 GUI,不知道从哪里开始(包括使用哪个 IDE 等)

【问题讨论】:

  • 阻力最小的路径是使用 Access + VBA ...从 Access 到 .NET winforms 的学习曲线相当陡峭
  • 为什么对 VBA 怀有敌意?这只是对 VB 普遍敌意的一部分吗?我想说继续使用 Access/VBA 和几个版本,从现在起您可能能够使用 .NET 代替 VBA。这只是我的猜测,但我看不到 MS 继续使用传统编程语言专门维护 Access。
  • 对 VBA 的敌意来自我自己的经验 + 其他人所说的话。 php 对我来说更有意义。我发现 vba 和 asp 都比 php 更令人沮丧,我听说它在语法上类似于 C?
  • 另外,我宁愿学习一门开放的语言而不是拥有的语言。
  • @Tristan Lear:我发现 VB/VBA 和 ASP 比 PHP 更容易理解。这不是语言本身固有的东西——这完全取决于您带来的经验以及您对约定的熟悉程度。老实说,我发现 PHP 文档令人费解。解决 PHP 问题所花费的时间总是比在 VBA 中解决类似问题的时间长两倍。但那是因为 PHP 编码约定对我来说不是第二天性。

标签: python .net database ms-access


【解决方案1】:

如果您正在开发的只是小型内部应用程序,请查看Visual WebGUI - 您将获得一个非常类似于 VB6 的 Web 应用程序开发环境。不过,我不建议将它用于大型和/或公共应用程序。

【讨论】:

    【解决方案2】:

    根据您的标准,我会使用 PyGtk 和 Glade。 Gtk 在 Windows 和 Linux 上得到很好的支持,与使用任何其他语言/工具包组合相比,我使用 Python 和 GTK 在更短的时间内完成了更多工作。

    如果您愿意重新考虑在 Web 上执行此操作,请查看 ExtJS,它提供了许多类似 Web 控件的桌面,并且他们有一个 GUI 构建器。

    对于数据库,我会使用 Postgresql 或 SQLite。请注意,SQLite 在并发方面有一些严重的限制,这可能是一个问题,具体取决于您的应用程序设计和用户数量。

    【讨论】:

      【解决方案3】:

      我在评论中说过,但我会重复它作为答案:

      如果您着眼于 Access 的未来,它是光明的。 MS 在这方面投入了大量资金。 Access 2010 与 Sharepoint 2010 一起提供了一些非常惊人的好处,您无需任何 VBA 即可完成所有操作(相反,您使用新的、强大的宏,它具有变量、分支和错误捕获)。您可以使用客户端访问而不使用 Sharepoint 来执行此操作,或者您可以将其发布到 Sharepoint 并且应用程序在 Web 浏览器中运行。

      我的猜测是,在 2010 年之后的 2-3 个 Access 版本的时间范围内,关于 Access 中的编程语言将会发生两件事之一:

      1. VBA 仍然受支持,所有工作都进入宏。最终,宏成为 Access 中所有编程的首选方法,而 VBA 最终被弃用并最终被淘汰。因为到那时,宏是如此多才多艺和健壮,不是编程语言将取代 VBA。

      2. 相同的场景,不同之处在于 .NET 逐步替代 VBA。

      我希望 #2,但这完全取决于 Microsoft 对 Access 是什么的看法,即主要和具有向上扩展性的最终用户工具 (#1) 或既是最终用户工具又是具有无限可扩展性(#2)。

      我的意思是,您可以继续使用 Access,暂时避免使用 VBA(如果您真的讨厌它),最终可能会得到一个可行、稳定的应用程序。

      但是,我对宏的保留非常强烈,因为我发现它们很难维护,因为它们是独立的。 VBA 代码很容易导航和理解,因为它是经过编译的,并且有一个功能齐全的 IDE。宏更加细分,难以追踪它们与使用它们的对象之间的相互关系。添加在 A2007 中添加的嵌入式宏,它变得更加复杂。我不知道 Access 团队是否正在解决这个问题,但对我来说,在可管理性方面这是一个真正的倒退,特别是如果宏的增强最终导致 VBA 被弃用,然后没有被相应的强大功能取代具有良好 IDE 的编程语言。

      最后,我对数据库引擎只字未提,因为 Access 在这方面完全不可知论,能够使用 Jet/ACE 启动然后升级到您选择的引擎。在我看来,这不是问题,因为在使用 Access 作为前端时,您的选择是广泛的。

      【讨论】:

      • 我希望他们能在几个版本之前分阶段使用 .net。我所看到的用.net 编写的所有内容都既美观又快速。我不知道宏现在比 vba 更受青睐(我有 beta 2010)——我会看看——现在我有很多 vba 代码,但是,这是我渴望移动的原因之一到别的东西——我一直在查找的东西的大多数操作指南都是为 .net 编写的
      • 我会说,既然我们在 access 2010 中获得了 64 位版本的 VBA,那么对 VBA 进行了一些真正的投资。因此,肯定还没有任何迹象表明 VBA 上正在加盖“盖子”。
      • @Tristan Lear:我没有说宏是受欢迎的。我建议他们可能有一天会成为。而.NET 的“美”在旁观者的眼中。对于大多数桌面数据库应用程序,在我看来就像使用推土机种植万寿菊一样。
      【解决方案4】:

      在这样的环境中,使用 VB/C# 不会出错。尝试各种VS Express 版本。

      如果您想要更多地转换到 Linux 的东西,Python 和几乎任何跨平台 GUI 框架(QT 或 wxpython)都可以工作。

      编辑: 然后是数据库。如果您想跨平台学习一些东西,我可能会建议使用 sqlite。在微软的世界里,有紧凑的 SQL 服务器。

      在这样的业务环境中,.NET 应用程序可能比任何不完全是 Microsoft 的应用程序更易于维护(在您离开后等)。

      【讨论】:

        【解决方案5】:

        VB 和 C# 肯定与 Access 相似,如果您不想走得太远,那就太好了。

        Python 非常出色,但与 Access 完全不同。它只是一种恰好具有良好数据库库的编程语言。 GUI 库看起来也不错,尽管我从未使用过它们。在 python 中的 GUI 设计将比 C#/VB 更难。 Python 是免费的,可能值得尝试一下 ie。构建一个 GUI,连接到 SQLite 数据库。您可能会很好地了解将 python 用于您的目的的可行性。

        不要只使用 Access。 Access 非常适合小型应用程序,您可以非常快速地完成一些工作。另一方面,VBA 是残酷的并且受到严格限制。如果可以,请尝试 C# 和 python。

        【讨论】:

        • 对 VBA 绝对荒谬的敌意投反对票。 VBA 是常规 VB 的 SUPERSET,Access 版本非常适合数据库用途。
        • 很公平。我的许多批评可能与我无法有效地浏览 msdn 库以及缺乏 VB/VBA 经验有关。我发现 python、java 和非 msdn C# 文档的文档更容易搜索。我需要的任何信息通常都可以通过快速的谷歌搜索找到。我没有用 VBA 找到这个。每次我亲自使用 VBA 时,我都会感到非常沮丧,但这当然不能保证被称为“残酷”。
        • 在 Access 中编程时,您不需要通用 VBA 帮助——您需要特定于数据库的解决方案,而 Access 有自己特定的对象模型和自己特定的函数/命令集。可以从mvps.org/Access 名称中带有“access”的Usenet 组以及UtterAccess.comaccess-programmers.co.uk 之类的网站开始。您会发现很多关于 VBA 的特定于数据库的帮助,但老实说,使用 Access 时,您应该首先通过指向和单击来构建您的 UI,而不是直接投入到代码中。 HELP 文件其实还不错。
        • 此时我在 python 和我想是 C# 之间纠结。我一直在阅读深入研究 python 3 并且非常喜欢它,但我不知道如何用它实现 GUI。从 GUI 的角度来看,它看起来像 WPF + c#(因为我非常渴望摆脱 VB)
        • 我今天开始在 python 3 中重写模块......最终我认为它将是 python3 + pyQt,加上一些轻量级 SQL db
        【解决方案6】:

        MS Access 是一个桌面数据库应用程序。更上一层楼很可能是SQL Server Compact Edition (SQLCE),它作为应用程序的一部分运行(与作为系统服务运行的 SQL Server Express 或更高版本相反)。我在一些应用程序中使用 SQLCE 并取得了很大的成功,Microsoft 在 Visual Studio 2010 中将它用于新的 Visual C++ IntelliSense 缓存,因为它重量轻且性能出色。

        尽管我在某些来源上阅读过,但 SQLCE 与实体框架的合作并不好。但是,它确实与 LINQ-to-SQL 和相应的设计器配合得很好。也就是说,我个人的建议是您考虑结合以下内容作为替代:

        • 数据:SQL Server Compact Edition
        • 数据/代码:LINQ-to-SQL
        • 编程语言:C#
        • 应用程序框架:WPF
          • 个人说明:WPF 确实有一个学习曲线,但对于长期使用其他框架(MFC、WinForms 等)的人来说,这主要是困难的。选择一个好的参考资料,您将很快提高工作效率,而且您将熟练掌握人们正在而不是远离移动的技术。

        【讨论】:

        • 我熟悉 SQL 和 SQL Server (mysql, mssql2000) .... 我听说过 c#(如果它看起来像 php,我会喜欢它,我的意思是看起来,凌晨 4 点我的大脑被炸的时候代码看起来很漂亮吗).. 其余的 .. "linq" & wpf -- 对我来说是全新的 -- 任何关于从哪里开始的建议
        • 对于报告,这里有什么建议?
        【解决方案7】:

        WPF 的学习曲线非常陡峭,尤其是来自 Access。 WinForms 将是一条更简单的路径,但它仍然是 Access 的一个飞跃。但是,WPF 和 WinForms 都具有拖放式表单构造,并且假设您学习了足够的 VB.NET 来转换 VBA 业务逻辑,那么您已经完成了一半以上。 :)

        如果您在 WPF 中实现您的项目,则可以使其启用 Silverlight,但这完全是“另一罐蠕虫”。

        【讨论】:

          【解决方案8】:

          我会说后端带有 SQL Express 的 Web 应用程序 (C#) - 但这只是我自己

          【讨论】:

          • 不久前我尝试用 php 编写一个 Web 应用程序,但是不得不编写自己的下拉日历控件之类的烦恼促使我开始访问
          • 如果您担心只是一个普通的控件,有很多可以帮助您,如果您选择网络应用程序路线,我的首选将是 ASP.net MVC、C#、SQL Express、Jquery UI /插件 - asp.net/mvc/learn
          【解决方案9】:

          你有没有想过Appcelerator Titanium 或类似的东西?您使用 Web 技术(HTML、CSS、javascript 和/或 python)创建丰富的 GUI,并将其编译为桌面应用程序。

          优点是您可以在 Linux 上进行开发,并且只在 Windows 上进行最终测试和部署。

          也就是说,作为初学者编写生产软件并不容易。尤其是处理错误可能很困难。聪明一点,一直想着“当用户这样做时会出什么问题”,并验证输入。

          【讨论】:

            【解决方案10】:

            只要客户端不共享数据库,带有嵌入式数据库的 .NET WPF/WinForms 应用程序听起来就可以正常工作。

            您甚至可以使用 Mono 开发可在 Windows PC 和 Linux 机器上运行的东西(您会被 WinForms 的一个子集困住......但对于一个简单的商业应用程序来说,这确实没有什么问题)。

            【讨论】:

              猜你喜欢
              • 2011-01-16
              • 2020-01-13
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2019-05-15
              • 2015-02-25
              • 1970-01-01
              相关资源
              最近更新 更多