微软似乎一心要贬低数据库工具的瑞士军刀.facading/file-swapping/cloning/name-your-acronym-连接任意数据库服务器/电子表格/ CSV/flatfiles还有什么其他结果?
您从Access中挤出了哪些奇怪的功能?还有什么可以取代它的位置?
访问不是DBMS.或者至少它不仅仅是一个简单的DBMS.这是一个非常好的RAD环境,一种以图形方式创建SQL代码的简单方法,以及完全成熟的DBM的常规前端.
SQL Server(Express或MSDE)以及Oracle,MySQL等都不会取而代之,直到它们集成了简单的编程语言,类似Crystal Reports的工具,以及让初学者无需学习SQL就能解决问题的方法.
在我的第一份专业工作中,我完全在Access中开发了一个非常大的系统.客户的前端,管理前端,管理报告和监控,每个用户的权限,特定时间运行的自动任务等等.因此,我开始学习它的许多缺陷和优势.
我已经看到了用它完成的奇妙应用程序,以及废话.我仍然将它用于个人项目,并且不会为此感到羞耻(例如,数独播放器或卡诺映射实现).有一个MVP完全在Access中创建了一个Paint克隆,尽管我认为这是极端的.
访问'珍珠:很容易测试数据库设计理念,并为您创建草图表格,报告等.如果您更改列的名称(甚至是表,尽管有时会失败),很高兴看到对它的所有引用都自动更改为新名称."子形式"控制摇滚,我渴望在VB6上.并且在桌子上重复过滤的"迅雷"按钮很棒,我希望我在SSMS上有这样的东西!
替换Access的问题 - 并且替换Access是在绝大多数建议将Ubuntu或SUSE桌面迁移到我的业务客户端的情况下阻止我的问题 - 并不是Access被广泛用于其数据库设施:它不是除了用户编写的部门应用程序中最狡猾的鼠标,重新编码相对简单.问题是中型应用程序,其中数据很久以前就已迁移到公司SQL Server.
这是一场噩梦.他们经常编写得很糟糕(多年来我已经获得了很多管理人员)并且封装了大量的业务逻辑.在任何事情中对它们进行重新编码通常都是在最好的情况下引用几个人月 - 通常是两倍或三倍,并且对于这样大小的部门而言,预算不足以支持它.此外,虽然AJAX的出现和良好的类似桌面的控件意味着这至少现在在理论上是可行的,但在实践中,这些都与MS Office桌面的其余部分大规模集成,并且几乎不可能与用户看到在短期到中期内可用性下降 - 这本身就是一个显示阻碍.
我真的不知道解决方案是什么,除了用其他方法创建新系统的缓慢替代,并希望现有应用程序的逐渐消亡.麻烦的是我认为Access很可能是20世纪90年代的Cobol - 它将永远支持遗留应用程序,因为从头开始重写太昂贵了.
另外,来自非Access传统Win32编码背景的其他人是否有经验发现甚至专业编写的Access应用程序的编码标准通常低于平均水平?虽然格式和变量名称等表面(但很重要)的东西通常很好,但我一遍又一遍地发现程序结构很差.我知道这可能经常是因为这些应用程序已经像Topsy一样增长,而且VBA实际上并不利于良好的编码,但即使考虑到这些因素,事情通常看起来比人们预期的还要糟糕.
我认为简单的答案是什么......访问是常用的,因为它是唯一的选择,它是可扩展的.几乎没有任何其他东西可以安装在世界上几乎所有的商业机器上.如果您正在寻找替代方案,Oracle Application Express是一个功能强大的基于Web的应用程序,可以在Oracle XE上运行.它是Access的潜在替代方案,但不支持Master-Detail表和访问.
世界上有一个连续的开发者,而不是硬性和快速的界限.人员包括业务经理和IT专业人员.我认为自己是一名高级业余开发人员,介于两者之间.因此,我在工作中使用MS Access在小型建筑办公室中组织大量数据,包括时间表,财务和架构规范.当然,这个应用程序现在是一个发臭的p**,已经发展了近五年.
我一直在寻找比Access更好的东西 - 我可以在VB.NET中创建简单的应用程序但是VBA的学习曲线很大.我看过各种各样的选择.通常,您需要Crystal Reports才能获得任何类型的报告功能,或者IDE不直观,或者将字段链接到数据对象每次需要十分钟,或者根本没有与其他办公产品集成.老板也不会为炸弹付出代价.我很乐意远离Access,但我看过的任何东西都无处可读.
关于Access的好处是它对大量IT膨胀的回答.它配备了MS办公室,所以它已被批准用于锁定的计算机,但我不必试图通过各个部门,编码时间来考虑申请,以及所有的测试应用程序我可以在一个下午用Access启动.肯定的SQL服务器会很好用,但不值得头疼.
我的堂兄是一个严肃的FileMaker家伙.他似乎做得很好,并且已经成长了一家小公司.显然,FileMaker是一个用于快速应用程序开发的跨平台Mac/PC系统......
也许这样的事情会随着业务能力用户/ RAD设置而上升?
微软可能有故意杀死这样的数据库系统的历史.我曾经和Les Pinter一起听过一次.Net Rocks的采访,他声称曾经听过一位微软高管说,FoxPro的每一份副本都会导致微软数千美元的版税损失.FoxPro今天在哪里?从官方方面来说,它已经在2007年3月结束了.那么它是如何从促销到消亡的?好吧,莱斯说,微软收购了它并故意将其运行到地面.
我对阴谋理论的态度通常不大,但这确实与微软那个时代的记录产生了共鸣.
无论如何,除了琐事之外,我相信会有更多RAD风格的数据库工具......它们赋予非开发人员权力,并允许开发人员非常快速地解决某些类型的问题.我不喜欢将它们用于大型项目,不幸的是,级联 - 小型项目往往会随着时间的推移而增长.因此,我只将它们用于非常重要的事情.
至于长期后果......好吧,我看到他们没有很好地扩展的情况,所有这些支离破碎的解决方案开始看起来很像技术债务.实际上可以将Access挂钩到SQL Server后端,这解决了很多问题.
可能我用Access做的最大/最奇怪的事情是从头开始编写EDI系统.对于那些与EDI有过第一手工作的人,你知道我在说什么.真是个愚蠢的想法.我在这里的问题与VBA有关,而不是Access - 我记得只是真的需要接口而没有它们.
在像Codesmith这样的东西可用之前,我还用它来代码生成.它为ASP Classic生成了业务对象(CRUD和其他一些基础知识).这实际上很棒.
我怀疑微软会杀掉Access.随着Access 2007 与Sharepoint的集成以及SharePoint的快速增长,Access实际上可能会重新成为SharePoint网站的离线和报告工具.