желая перейти от MS Access, думая .net? визуальная студия? - PullRequest
6 голосов
/ 08 марта 2010

Итак, я написал программу управления проектами для малого бизнеса с использованием Microsoft Access 2007.

Теперь они запросили множество дополнительных функций (хронометраж, привилегированные уровни данных ...)

Я лично использую Linux, но весь офис использует Windows.

Я относительно новичок в программировании, но мне нравится учить себя, используя подобные проекты.

В этом я прав - на самом деле я не могу точно сказать, каков путь наименьшего сопротивления здесь: оставаться ли мне в доступе + VBA и учить себя умирающему, раздражающему языку, борясь против всех? ограничения доступа? Или я перейду к чему-то другому?

Python кажется достаточно простым ... Что бы я ни использовал, мне нужно иметь возможность предложить графический интерфейс.

скриншот, чтобы вы могли получить Jist: http://img707.imageshack.us/img707/9360/screenshot1fi.jpg

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

- заметки: В текущем проекте доступа используется отдельный интерфейсный интерфейс для многопользовательского обмена по локальной сети

Кросс-совместимость с Linux не так важна для меня, я уже некоторое время пользуюсь virtualbox.

- UPDATE-- Мои странствия убедили меня, что я должен продолжать работать в IronPython - однако - так как я пытаюсь установить пакет как в XP, так и в 7 и потерпеть неудачу ... Интересно, это тоже что-то устаревшее ... самое главное, iv ' Я читал об этом, и я ЛЮБЛЮ PYTHON 3 - но мне нужно предложить графический интерфейс для Windows, не уверенный, с чего начать (в том числе какую IDE использовать и т. д.)

Ответы [ 10 ]

5 голосов
/ 08 марта 2010

В такой среде вы не ошибетесь с VB / C #. Попробуйте различные варианты VS Express .

Если вам нужно что-то, что будет переводиться в Linux немного больше, Python и практически любая кроссплатформенная среда графического интерфейса (QT или wxpython) будут работать.

EDIT: Тогда есть база данных. Я бы, вероятно, предложил sqlite, если вы хотите узнать что-то кроссплатформенное. Застряв в мире Microsoft, SQL-сервер компактен.

В такой бизнес-среде приложение .NET, вероятно, более легко обслуживаемо (после того как вы ушли и т. Д.), Чем все, что не является полностью Microsoft.

3 голосов
/ 08 марта 2010

MS Access - это настольное приложение базы данных. Один шаг, скорее всего, SQL Server Compact Edition (SQLCE) , который работает как часть вашего приложения (в отличие от SQL Server Express или более поздней версии, которая работает как системные службы). Я использовал SQLCE с большим успехом в нескольких приложениях, и Microsoft использует его в Visual Studio 2010 для нового кэша IntelliSense Visual C ++, потому что он легок и отлично работает.

Несмотря на то, что я читал в некоторых источниках, SQLCE плохо взаимодействует с Entity Framework. Он работает , однако отлично работает с LINQ-to-SQL и соответствующим конструктором. Тем не менее, моя личная рекомендация заключается в том, чтобы вы рассмотрели в качестве замены следующее:

  • Данные: SQL Server Compact Edition
  • Данные / Код: LINQ-to-SQL
  • Язык программирования: C #
  • Структура приложения: WPF
    • Личное примечание: WPF действительно имеет кривую обучения, но в первую очередь это сложно для людей, которые долгое время работали с другими средами (MFC, WinForms и т. Д.). Подберите хороший ориентир, и вы сможете быстро работать, а также научитесь технологиям, которые люди продвигают к вместо на расстоянии .
2 голосов
/ 08 марта 2010

Я бы сказал, веб-приложение (C #) с SQL Express на стороне сервера - но это только я

1 голос
/ 08 марта 2010

Исходя из ваших критериев, я бы использовал PyGtk и Glade. Gtk хорошо поддерживается в Windows и Linux, и с Python и GTK я добился большего за меньшее время, чем с любой другой комбинацией языка / инструментария.

Если вы хотите переосмыслить это в Интернете, взгляните на ExtJS , который предоставляет множество настольных элементов, подобных веб-элементам управления, и имеет конструктор GUI.

Для базы данных я бы выбрал Postgresql или SQLite. Имейте в виду, что SQLite имеет некоторые серьезные ограничения в отношении параллелизма, которые могут быть проблемой в зависимости от дизайна вашего приложения и количества пользователей.

1 голос
/ 08 марта 2010

Я сказал это в комментарии, но я повторю это как ответ:

Если вы посмотрите на будущее Access, оно ярко. MS много вкладывает в это. Access 2010 в сочетании с Sharepoint 2010 предлагает некоторые довольно удивительные преимущества, и вы делаете все это без какого-либо VBA (вместо этого вы используете новые мощные макросы, которые имеют переменные, ветвление и перехват ошибок). Вы можете сделать это с помощью клиентского доступа и без Sharepoint, или вы можете опубликовать его в Sharepoint, и приложение будет запущено в веб-браузере.

Я предполагаю, что одна из двух вещей произойдет в отношении языка программирования в Access в сроки 2-3 версий Access после 2010 года:

  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 в качестве внешнего интерфейса.

1 голос
/ 08 марта 2010

VB и C #, безусловно, похожи на Access, и было бы неплохо, если вы хотите не слишком далеко уходить.

Python великолепен, но не похож на Access. Это просто язык программирования, который имеет хорошие библиотеки БД. Библиотеки GUI также выглядят довольно хорошо, хотя я никогда не использовал их. Разработка графического интерфейса в Python будет сложнее, чем в C # / VB. Python бесплатный и может стоить просто поэкспериментировать с т.е. построить графический интерфейс, подключиться к базе данных SQLite. Вы, вероятно, получите хорошее представление о целесообразности использования python для своих целей.

Не оставайтесь исключительно с Access. Доступ довольно хорош для небольших приложений, и вы можете делать некоторые вещи очень быстро. С другой стороны, VBA жесток и строго ограничен. Попробуйте оба C # и Python, если можете.

1 голос
/ 08 марта 2010

У WPF довольно крутая кривая обучения, особенно из Access.WinForms был бы более простым путем, но это все же прыжок от Access.Тем не менее, как WPF, так и WinForms имеют конструкцию перетаскивания, и, если вы изучите достаточно VB.NET для преобразования бизнес-логики VBA, вы более чем на полпути.:)

Если вы реализуете свой проект в WPF, вы можете сделать его включенным в Silverlight, но это целый «червь».

0 голосов
/ 09 марта 2010

Если вы работаете только с небольшими внутренними приложениями, взгляните на Visual WebGUI - вы получаете очень похожую на VB6 среду разработки для веб-приложений. Я бы не рекомендовал его для больших и / или общедоступных приложений.

0 голосов
/ 08 марта 2010

Вы думали о Appcelerator Titanium или о чем-то подобном? Вы создаете богатый графический интерфейс с использованием веб-технологий (HTML, CSS, javascript и / или python) и компилируете его в настольное приложение.

Преимущество состоит в том, что вы можете разрабатывать в Linux и выполнять только окончательное тестирование и развертывание в Windows.

Тем не менее, написание программного обеспечения для начинающих не так просто. Особенно обработка ошибок может быть трудной. Будьте умны и продумайте «Что может пойти не так, когда пользователь делает это» до конца, и проверьте правильность ввода.

0 голосов
/ 08 марта 2010

Пока клиенты не разделяют базу данных, приложение .NET WPF / WinForms со встроенной БД звучит так, как будто оно будет работать нормально.

Возможно, вы даже можете разработать что-то, что будет работать как на ПК с Windows, так и на вашем Linux-компьютере, используя Mono (вы застрянете с подмножеством WinForms ... но для простого бизнес-приложения в этом нет ничего плохого).

...