Требуется совет базы данных: портирование приложения VB6 / ADO / JET на VB.NET - PullRequest
1 голос
/ 22 июля 2010

Мне нужно обновить (ну, действительно, переписать) приложение SMALL VB6, которое использует ADO для доступа к базе данных JET, до приложения vb.net в Visual Studio 2008.

Мои исследования показывают, что я должен использовать LINQ, но, похоже, невозможно подключиться к JET. Если JET сейчас устарел, что я должен использовать? Или я должен использовать ADO.NET без LINQ?

Пожалуйста, не отвечайте на SQL Server! - это должно быть приложение, которое конечные пользователи могут легко установить в корпоративной или не корпоративной среде, и не должно требовать какого-либо постоянного технического обслуживания. Я начал устанавливать SQL Express, но остановился, когда потребовалось как минимум 2 обновления системы, так как это будет слишком сложно для этого небольшого приложения.

Ответы [ 4 ]

1 голос
/ 22 июля 2010

Вот хороший инструмент обновления, который предоставляется бесплатно, если ваш проект содержит менее 10000 строк кода:
http://msdn.microsoft.com/en-us/vbasic/ff793478.aspx

Общий подход, которому вы должны следовать, - это сначала чистая миграция с VB6 наVB.NET, и получите версию .NET для работы точно так же, как в VB6, а затем начните искать альтернативные технологии в .NET.Когда у вас есть работающее приложение .NET, легче конвертировать между различными технологиями, чем пытаться вручную конвертировать напрямую из кода VB6 в альтернативы в .NET.

Вот несколько веских причин для миграции в первую очередь вместо ручной перезаписи:
5 мифических причин для выбора автоматической миграции вместо ручной перезаписи

Из статьи:

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

1 голос
/ 22 июля 2010

Jet устарел, но есть замена в виде ACE (Access Database Engine).

Однако, относительно его использования из LINQ.Ответы на этот вопрос имеют различные предложения, и я также где-то читал, что для этого можно использовать LINQ to DataSet.Вот сообщение в блоге об этом: Запросы к наборам данных - Введение в LINQ to DataSet , но я не могу найти ссылку на то, где я прочитал, что кто-то успешно использовал его для доступа к БД доступа.

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

0 голосов
/ 22 июля 2010

Просто используйте объекты OleDbConnection / OleDbCommand / OleDbDataReader, чтобы имитировать ту же логику, что и в коде VB6 / ADO. Он будет работать точно так же и не потребует большего количества зависимостей, чем ваше существующее приложение.

0 голосов
...