2009-07-21 2 views
4

У меня есть друзья, которые являются разработчиками баз данных «старой школы» VB6, и я рассказывал им об .NET и его особенностях, в частности о ADO.NET.Зачем переключаться с ADO на ADO.NET?

В нашем разговоре, они воспитаны следующие причины, почему они предпочли бы придерживаться с ADO, чем двигаться к ADO.NET:

  • набор данных отсоединены (Что делать, если питание не?)
  • То же количество коды все еще должно быть написано
  • новые варианты Dataset, BindingSource и TableAdapter показаться запутанными
  • тот же код записывается программно получить доступ к базе данных, все меняется, как эта команда является ло id out

Я ищу ответы или причины, по которым ADO.NET «лучше», чем ADO в отношении доступа к данным, когда дело доходит до приложений Windows Forms. Что ADO.NET обеспечивает, что ADO не делает? Что он делает лучше, чем ADO?

NB: Я бы хотел привести примеры, которые не связаны с LINQ.

+0

@gortok - спасибо за редактирование и сделать его кратким .. –

+0

сила терпит неудачу аргумент довольно слаб. ADO.NET или нет, это приложение будет сбой где-нибудь, если серверные компоненты перестанут отвечать. – JohnFx

+0

Что я имел в виду, что для сбоя питания было то, что, скажем, сбои питания на главной машине и данные все еще находятся в наборе данных, что происходит тогда? Нет ли какого-либо механизма, чтобы сделать его автоматическим? –

ответ

10

С одной стороны, если это не сломался, не исправляй. Но с другой - VB6? В самом деле? Похоже, что ADO против ADO.NET - это небольшой картофель здесь ...

Я думаю, что проблема больше VB vs. VB.NET, а затем вся база кода, набор навыков, другие нетехнические соображения вступают в игру здесь.

+0

Мне понравилась ваша мысль. Можете ли вы указать мне хорошие чтения для лучшего понимания? –

+1

О, мой, это огромный. Почему все еще существуют программы COBOL? Поскольку компания не может оправдывать ее переписывание: она работает, оригинальные разработчики давно ушли и т. Д. И т. Д. Некоторые поисковые запросы должны включать множество обращений к переписываниям, миграции и т. Д. – n8wrl

+1

Или посмотрите на теги stackoverflow с тегами vb6-migration , переписать, выполнить миграцию и т. д. Как это http://stackoverflow.com/questions/tagged?tagnames=vb6-migration&sort=votes&pagesize=10 – MarkJ

2

Простой ответ: не убедить их ...

Попросите их посмотреть на LINQ к SQL (или еще лучше LINQ к Entities)

+2

или еще лучше, NHibernate. –

+0

Может быть, MS перенесет Linq на VB6 – n8wrl

+0

Я думаю, что любая из наших рекомендаций избила VB + ADO lol;) – Janie

6

ADO - это неподдерживаемая технология на основе COM. VB 6.0 - это неподдерживаемая технология с конца 2008 года. DAO, RDO, ADO - это все технологии, которые почти десятилетие превзошли их ожидания.

ADO.NET - это современный набор инструментов для доступа к данным. В частности, LINQ to SQL и Entity Framework берут доступ к данным для новых высот.

+1

На самом деле VB6 runtime * * поддерживается на серверах Windows 7 и 2008. http://msdn.microsoft.com/en-us/vbrun/ms788708.aspx – MarkJ

+6

ARRRRGH, когда это будет fu ** ing вещь die! !!! 111 – Janie

+0

linq был выпущен с .net 3.5, поэтому ado.net wasn Где-то до сих пор? –

2

Одна из самых больших проблем, которые позволили людям переключиться на ADO.NET на моей дневной работе, заключалась в том, что ADO (вкус VB6) - это все COM, вы получаете лучшую производительность с ADO.NET.

5

Нет ничего плохого в использовании ADO в старых приложениях VB6. И если эти приложения работают правильно, нет никаких оснований для их изменения.

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

+0

Вы отвечаете на то, что я хочу услышать. Расскажите мне о сценарии, сравнивающем решение как в VB, так и в VB.NET, который использует ADO/ADO.NET и помимо производительности, как иначе это отличается? –

+1

Нет никаких серьезных отличий, помимо производительности. Оба они позволяют вам возвращать данные из базы данных SQL, используя SQL-запросы. Функционально это то же самое. http://msdn.microsoft.com/en-us/library/904fck4k(VS.71).aspx –

0

Я слышал слух, что VB6 выполнения не будет поставляться после Windows 7 ...

+0

Жирный шанс этого. Знаете ли вы, сколько там VB-приложений, которые вдруг перестанут работать? Посмотрите на это с точки зрения MS, если пользователь работает с устаревшим приложением VB6 на XP, и он ломается, когда они обновляют Windows, кто они винят? – JohnFx

+0

Я уверен, что они не * хотят * отправить его после Windows 7, но поскольку они не предоставили достойный маршрут миграции, чтобы получить VB6-приложения на VB.NET, им, возможно, придется их отправлять. – MarkJ

+0

Серьезно, когда вы двигаетесь дальше? Окончание жизни MS для VB6 было в марте 2008 года. Последний выпуск VB6 был в 1998 году. Windows 7 будет работать в течение следующих 3-4 лет. Windows 8 войдет в сцену в ближайшие 3-4 года. Дайте год или около того для принятия Windows 8. Таким образом, через 15-16 лет, если люди не переехали, это приложение, которое имеет ценность и должно быть перенесено, или это будет приложение, которое просто не будет работать. В любом случае MS не должен поддерживать VB6. Это будет похоже на MS, поддерживающий Windows 98, через 15 лет после ее выпуска. Это просто орехи. –

0

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

Как насчет сбора мусора памяти?

Распространение обновлений проще в .net.

Я думаю, если у вас есть много кода в VB 6 для приложений winform, почему нужно изменить? Возможно, если вы начнете новый проект с помощью VB.NET, вы можете показать некоторые другие преимущества, такие как включение нескольких таблиц в адаптер таблицы (не могу сказать, что я воспользовался этим).

0

Я предпочитаю ADO.NET самостоятельно, но только для баланса есть одно преимущество классического ADO над ADO.NET: он, возможно, более полезен.

Наши клиенты затруднился использования [ADO.NET] из-за обширной инициализации это требует. Даже в простейших сценарии, пользователи должны понимать комплекс взаимодействия и взаимозависимости между несколько типов ... Обратите внимание, что многие из этих проблем были рассмотрены в рамках 2.0 .NET .

Автор архитекторов платформы .NET, на странице .NET Framework Design Guidelines второе издание 25.

Смежные вопросы