Подтвердить что ты не робот

Первичная миграция MS Access?

Фон

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

Требования

Я знаю, что есть несколько хороших альтернатив для части базы данных MS Access (база данных Jet), например SQLite, MySQL, VistaDB и т.д.

Что я хотел бы знать: есть ли что-то, что заменит переднюю часть MS Access?

т.е. Что-то, что можно использовать для создания форм, написания простых скриптов и запросов и т.д.?

Почему?

@BracC спросил "зачем заменять доступ?" - На самом деле справедливый вопрос.
Я хочу избавиться от доступа, потому что:

  • он скрывает логику, приводящую к приложениям с жесткой поддержкой. Логика может быть во множестве разных мест, ни одна из которых не обеспечивает или не поощряет какую-либо структуру:
    • макросы
    • Модули
    • Запросы
    • формы
  • сама по себе побуждает пользователей создавать "маленькие" приложения, которые становятся "не столь маленькими приложениями". Затем пользователь уходит, и я должен поддерживать кучу спагетти. Я знаю, что доступ не единственный преступник, но он лидер в моей организации, и я хотел бы полностью избавиться от него.

Для дополнительного кредита

то, что я действительно хотел бы найти, это то, что можно читать в файле MDB и выводить что-то вроде С#, который реплицирует функциональность. (Или любой язык - не суетливый).

Надеюсь, это все ясно. Если нет, отправьте комментарий, и я напишу/добавлю подробности.

Update

@GuinnessFan делает некоторые моменты, которые мне интересны. Я добавил свои комментарии, чтобы обсудить эти вопросы.

Что мы сделали с тех пор, как задали вопрос:

  • Попросите пользователей предоставить нам окончательный список приложений доступа, которые они используют и нуждаются. (Понимание заключается в том, что любые файлы MDB, не входящие в список, могут быть удалены - ура!).
  • Проанализировал MDB в списке, сделав следующие выводы:
    • Большинство "приложений" состоят из одного жестко запрограммированного запроса или одной связанной таблицы.
    • Многие из них представляют собой небольшое число запросов с, возможно, параметром даты или аналогичным.
    • очень немногие (если есть) имеют действительно сложную логику.
  • Теперь мы работаем через список, конвертируя большинство приложений в пакеты служб SSRS (SQL Server Reporting Services).
  • Все, что не может быть реплицировано с использованием SSRS, станет веб-приложением ручной работы. Однако их не так много.

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

4b9b3361

Ответ 1

Вы можете проверить Oracle Application Express. Он бесплатный и предназначен для разработчиков Access.

У него также есть помощник по миграции, который запускает вашу базу данных Access, выполняет данные и формы, переносит все в базу данных Oracle (это работает с бесплатной базой данных, Oracle XE и устанавливается по умолчанию) и создает веб-формы для вашей базы данных Access.

Итак, в конце вы получите свои базы данных Access в Интернете, свои данные в Oracle и несколько приятный веб-интерфейс для их расширения.

Что касается Oracle, этот инструмент не так уж плох. Вы можете подписаться на бесплатный экземпляр, чтобы поиграть с здесь.

Вот документ, в котором объясняется, как вы переносите базы данных Access.

Ответ 2

Несколько лет назад я переключил back-end на одно приложение из MSacces в MSSQL. Умел интерфейс, потому что он работал хорошо, и я не нашел ничего такого простого в использовании/модификации.

Я никогда не видел перевод MSAccess → С#. Тем не менее, вы можете найти переводчик MSAccess на VB6 (их синтаксисы примерно похожи), а оттуда есть переводчики VB6- > VB.Net(и даже переводчики VB.Net → С#)

Ответ 3

Итак, кроме личного отвращения, зачем заменять Front-end Access? Может быть легко сделать для некоторых (простых) баз данных, но большинство приложений Access в реальном мире имеют большую сложность.

Множество причин для улучшения внутреннего интерфейса (масштабируемость, производительность, повреждение db, блокировка пользователя). Доступ даже имеет встроенный инструмент "Мастер обновления", который позволяет разделить формы и логику на данные и обновить данные до MS SQL-сервера. Если вы хотите, используйте этот мастер для обновления back-end до SQL Express, а затем вручную перейдите на другую платформу db.

Надеюсь, это не слишком далеко от темы, но иногда все, что вам нужно сделать с Access, это:

  • Обновление back-end (как мы уже говорили)

  • Всегда убедитесь, что интерфейсные блоки заблокированы (только для чтения)

  • При необходимости создайте разные интерфейсы для разных ролей пользователей (в качестве формы безопасности).

  • Если возможно, перед обработкой на локальном компьютере на каждой рабочей станции, по соображениям производительности. Возможно, вам понадобится сеть script для проверки новых версий интерфейса.

У меня нет прямого опыта с ним, но я нашел инструмент конвертации доступа к ASP.Net под названием "Access Whiz" на http://www.microtools.us/

Ответ 4

Мы использовали внутреннее приложение на основе MS Access в качестве интерфейса к базе данных MySQL. Мы столкнулись с множеством проблем и в итоге переписали все приложение в CodeGear Delphi 2007 для Win32. Это было большим успехом, хотя миграция действительно стоила больших усилий (обучение/наем нескольких программистов Delphi, покупка некоторых сторонних инструментов). Я могу полностью рекомендовать Delphi. И AFAIK, интеграция с базовым интерфейсом MS Access, безусловно, возможна --- я как-то написал приложение Delphi, которое делает именно это, и мне всего лишь пару дней, чтобы получить полнофункциональную версию!

Я понимаю, что это полное программирующее решение, поэтому вы наверняка потеряете часть простоты использования MS Access для создания интерфейсов. Опять же, вы можете собрать приложение базы данных в Delphi за 10 минут без написания слишком большого кода --- не шутите! А с момента выпуска в 2009 году язык постепенно становится все более популярным...

Ответ 5

@BradC

Я не комментирую MicroTools. Некоторое время назад я работал в компании, где у нас была такая же проблема. Если MicroTools не внес существенных улучшений в свой продукт, он выплескивает мусор, который я проверил.

Мы обнаружили, что практически любой путь обновления потребует значительных изменений в кодировке. Все эти инструменты хороши для того, чтобы поддерживать аналогичный GUI из исходного приложения. Их код не имел объектной структуры, просто куча функций утилиты, которые были сброшены на каждую страницу, чтобы имитировать способ доступа к записи. Если у вас большое количество форм, вытащить их решение и реализовать свои собственные, потребуется определенная работа и тонна операций поиска и замены.

Мы так разочаровались в производительности MicroTools, что начали писать собственный конвертер. Мы выкачивали лучшие формы ASP.NET, чем после недельной кодировки.

Ответ 6

Вы не найдете механизм серверного класса, в котором также есть инструменты для проектирования интерфейса рабочего стола. Большие серверные механизмы ожидают, что вы будете использовать что-то вроде С++, С#, Java или PHP для создания вашего интерфейса.

Мне тоже хотелось бы увидеть инструмент обновления для доступа, который бы выплескивал некоторые базовые формы С# и разговаривал с эквивалентной базой данных SQL Server. Похоже, что это был бы большой денежный производитель для Microsoft, потому что они могли использовать его как способ перепродавать клиентов на полный SQL Server.

IIRC, возможно, есть способ сообщить фронту доступа Access поговорить с SQL Server или изменить таблицы, используемые интерфейсом Access, чтобы действительно быть связанными таблицами с SQL Server или что-то в этом роде, но я Мне никогда не приходилось использовать эту функцию.

Ответ 7

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

К сожалению, я не знаю инструмент RAD (быстрого создания приложений), который так же прост, как доступ к созданию функциональных форм.

Однако я бы рекомендовал больше сосредоточиться на возможности централизовать ваши данные и логику и по-прежнему разрешать доступ как интерфейс. Я поддерживаю продукт базы данных под названием Advantage Database Server, который поддерживает правила RI (refferential integrity), хранимые процедуры, триггеры и т.д., Которые могут управляться на центральном сервере, тем самым доведя до вас всю логику. Эти интерфейсы Access могут затем ссылаться на бэкэнд данных с использованием ODBC или OLEDB. Если вы переключитесь на такое решение, то позже по дороге вам будет гибко писать другие приложения, такие как .NET, PHP, JDBC и т.д., Которые привязываются к тем же данным, в то время как phasing Access выходит за пределы.

Хорошим началом было бы остановить новую разработку Access, если они не используют этот вид бэкэнда данных.

Ответ 8

Из 1000 файлов доступа сколько вас попросили поддержать? Я предполагаю, что менее 100. Зачем перестраивать приложение, которое A) никто не использует B) отлично работает именно так, как оно есть?

Вам нужно начать политику, согласно которой для крупной организации приемлемой практикой является разработка пользовательских приложений в надежной, масштабируемой, надежной среде yadda yadda yadda. Определите приложения Access, которые вы считаете критическими или перерастаете, и просто работайте над ними.

Будьте готовы справиться с ожиданием быстрого и грязного применения небольших приложений. Вы должны будете показать им преимущества своих новых приложений.

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

Ответ 9

Microtools предлагает Access Whiz, набор инструментов преобразования доступа. Он состоит из доступа к конвертерам ASP.NET(VB/С#), конвертеру доступа к конвертеру VB6, конвертерам доступа к WinForms (VB.NET/С#) и конвертеру доступа к Crystal Reports. Более подробную информацию и пробные демонстрации можно найти на http://www.microtools.us.

Ответ 11

Есть ли что-то, что заменит переднюю часть MS Access?

Возможно Kexi?