Я только что начал работать над малочисленной командой программистов.NET приблизительно месяц назад и недавно вошел в обсуждение с нашим руководителем группы относительно того, почему мы не используем привязку данных вообще в нашем коде. Каждый раз, когда мы работаем с сеткой данных, мы выполняем итерации через таблицу данных и заполняем строку сетки строкой; код обычно выглядит примерно так:
Dim dt as DataTable = FuncLib.GetData("spGetTheData ...")
Dim i As Integer
For i = 0 To dt.Rows.Length - 1 '(not sure why we do not use a for each here)'
gridRow = grid.Rows.Add()
gridRow(constantProductID).Value = dt("ProductID").Value
gridRow(constantProductDesc).Value = dt("ProductDescription").Value
Next
'(I am probably missing something in the code, but that is basically it)'
Наш руководитель группы говорил, что был записан с помощью привязки данных при работе со средствами управления Sheridan Grid, VB6 и наборами записей ADO назад в девяностых. Он не уверен, какова точная проблема была, но он помнит, что привязка не работала как ожидалось и вызвала его некоторые основные проблемы. С тех пор они не доверяли привязке данных и загружают данные для всех их средств управления вручную.
Причина разговор даже подошел, состояла в том, потому что я нашел, что привязка данных была очень проста и действительно любил разделять представление данных (в этом случае, сетка данных) от источника данных в оперативной памяти (в этом случае, таблица данных). "Загрузка" строки данных строкой в сетку, казалось, повредила это различие. Я также заметил, что с появлением XAML в WPF и Silverlight, привязка данных походит на необходимую вещь, чтобы смочь чисто обеспечить электричеством код XAML разработчика с помощью Ваших данных.
Когда я должен быть осторожным из использования привязки данных в.NET?
Если все, что вы делаете, это отображение данных, на мой взгляд, нет причин НЕ использовать привязку данных.
Я тоже пришел из мира VB6, где привязка данных снова и снова кусала нас, поэтому у нас были стандарты и обходные пути, чтобы не использовать ее.
Войдите в .NET, где привязка данных настолько гибкая, насколько вам нужно. Я по-настоящему оценил силу связывания.
Вы пишете много ненужного кода, отвергая встроенные возможности.
Вы даже можете привязать экранные объекты, такие как текстовые поля, к свойствам в классах. Перейдите по этой ссылке для обзора привязки данных winforms. http://msdn.microsoft .com / en-us / library / ef2xyb33 (v = VS.100) .aspx
http://www.knowdotnet.com/articles/differences.html
все резко изменилось НА ЛУЧШЕМ в .Net
Связывание данных против ручного заполнения
Программисты VB6 держались подальше от ADO управление данными и связанные элементы управления из-за некоторых причин производительности. Я делаю шаг в сторону VB.NET и чувствую, что связанные элементы управления в конце концов не так уж и плохи.
Как и все остальное, вы можете использовать это правильно или неправильно. DataBinding иногда может быть очень мощным, но, как упоминалось ранее, вы должны знать, как его правильно использовать.
Как правило, в .NET (и его инструментах) существует два типа привязки: автоматическая и ручная. Автоматическая привязка - это когда VS создает все для вас, а вы перетаскиваете их. Не делай этого. КОГДА-ЛИБО. Единственным исключением из этого правила будут новые дополнения к Silverlight 4 в VS2010. Это единственная автоматическая привязка, сделанная правильно.
С другой стороны, ручное связывание данных с использованием DataSets как Unit of Works, CurrencyManager и других вещей может быть чрезвычайно полезным (здесь мы говорим о .NET 2.0 WinForms, не так ли?).
Будьте осторожны, используя все, вы не понимаете полностью.
Я признаюсь, что не очень хорошо разбираюсь в привязке данных, но я все же считаю, что позиция вашего руководителя группы несколько крайняя и реакционная.
Моим практическим правилом было бы; не полагайтесь ни на что, пока не поймете это. Как только вы это поймете, вам не нужны мои (или любые другие) эмпирические правила.
:)
Некоторые ссылки, связанные с предостережениями при использовании привязки данных: