Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2008.03.02;
Скачать: [xml.tar.bz2];

Вниз

О выборе платформы для ВЕБ и ФТП сервера II   Найти похожие ветки 

 
kaif ©   (2008-01-08 01:24) [40]

Ну в принципе можно обратиться к ячейке даже в DataTable.
На C# это выглядит так:

DataTable table = MyDataSet.Tables[0];
DataRow row = table.Rows[0];
string s = row["имя_поля"];

Как видите, в DataTable нет понятия "текущая запись", как в дельфийском TDataSet. Вы обращаетесь с строкам набора как к массиву.


 
Anatoly Podgoretsky ©   (2008-01-08 01:32) [41]

> kaif  (08.01.2008 01:24:40)  [40]

Вот это должно помочь, Сегодня уже не буду проверять, а завтра займусь. Кроме того взгляну в сторону DataView


 
kaif ©   (2008-01-08 02:02) [42]

Что касается ObjectDataSource, то я его пока не касалася, предпочитая начать с более простых источников, работающих с серверами баз данных. Сама технология "слоя данных" достаточно сложна. Она предполагает классы бизнес-объектов и их коллекций. ObjectDataSource работает с такого рода объектами и позволяет осуществлять над ними даже что-то вроде SQL-запросов. Почему я считаю эту технологию сложной? Для меня сложно все, что касается сборок и их версий, пока я не набил достаточно руку в этом. А в отношении слоя доступа к данным ведь мы имеем сразу дело со сборкой:
 <asp:ObjectDataSource runat="server" ID="MyObjectSource" TypeName="ProAspNet20.DAL.Employees" SelectMethod="LoadAll">

Дино Эспозито на этот счет пишет следующее:

Свойство TypeName возвращает полностью уточненное имя сборки, содержащей вызываемый класс. Если этот класс определен в папке App_Code, имя сборки указывать не нужно. В противном случае задайте строку в форме [имя класса, сборка], разделенную запятой...

Как я понимаю с одной стороны у Вас есть какие-то схемы данных в DataSet,  с другой бизнес-классы, и между ними должны быть четкие соответствия (тип и имя колонки таблицы - тип и имя свойства бизнес- класса).  Возможно, что-то перестало соответствовать друг другу. Чтобы в этом разобраться, надо сначала хорошо представлять себе, как это все работает (Table Data Gateway) и уметь это все тестировать. То есть сделать руками первый вспомогательный бизнес-класс и класс-коллекцию, присоединить это все к ObjectDataSource и пощупать, как это все работает. А может быть пока обойтись без слоя данных и попробовать для начала поработать с обычными источниками? Там все достаточно просто и понятно... А то так недалеко до разочарования.


 
Anatoly Podgoretsky ©   (2008-01-08 11:12) [43]

> kaif  (08.01.2008 02:02:42)  [42]

Вообще то это очень простая технология, цель кототорй абстрагироваться от данных, путем разделения на три слоя - слой данных (DAL), слой бизнес логики (BLL) и слой презентации (страницы). Реализуется очень просто. Опишу на словах

В папке App_Code создаются две папки DAL и BLL
В папку DAL помещается схема данных.
В папку BLL помещаются бизнес правила, которые в общем случае являются простым враппером над запросами из DAL.
На странице вместо прямого вызова запросов используются вызовы функций из BLL.
Реализация простая, вот самый простой пример.


Imports SiteTableAdapters
 
<System.ComponentModel.DataObject()> _
Public Class TablesBLL

 Private _TablesAdapter As TablesTableAdapter = Nothing

 Protected ReadOnly Property TablesAdapter() As TablesTableAdapter
   Get
     If _TablesAdapter Is Nothing Then
       _TablesAdapter = New TablesTableAdapter()
     End If
     Return _TablesAdapter
   End Get
 End Property

 <System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjec tMethodType.Select, True)> _
 Public Function TablesGetData() As Site.TablesDataTable
   Return TablesAdapter.GetData()
 End Function

End Class


Если не делать BLL, то динамический вызов методов из DAL становится не удобным, менее удобным, чем без использования DAL, поскольку привязать колонки в дизайнтайм будет не возможно и управлять ими тоже. С BLL я могу настроить все колонки в дизайн тайм, также как и без DAL но уже абстрагируясь от методов доступа к данным.

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


 
Anatoly Podgoretsky ©   (2008-01-29 13:10) [44]

Ну вот я закончил перевод проекта на ASP.NET теперь можно говорить и о стабильности среды.

1. Иногда начинает дурить после длительной работе, не узнает переменные и объекты, но это не критично - лечится перезапуском

2. Серьезное - это разрушение проекта при изменении в DAL, если запрос не соответствует схеме, то при перестройке схемы портит безнадежно проект, лечится с трудом, точного решения не знаю, но можно быть просто внимательным или делать отдельную схему для таких запросов. Это ошибка среды, исправят наверно в будущем. Бекап не помогает, сам проект не портится, а портится схема и ее временные объекты.

3. В среде потеряно абсолютное позиционирование, отсутствует пункт Layout и все с ним связаное, также многие инструменты не работают, возможно из-за того, что версия Express

Резюме - работать вполне можно, стабильность и справка лучше чем в Д2006, хотя явно, что Борландовская среда сделана на основе технологии Микрософта, обмен патентами и технологиями, но Борланд не владеет внутренней информации или не умеет работать с технологией.
Справка же - просто пофигизм со стороны Борланда.


 
Anatoly Podgoretsky ©   (2008-01-29 13:13) [45]

Забыл добавить, у меня проект сложный, свыше 3.5 гб и порядка 200 aspx модулей. Это наверно вносит свой вклад.

Проект отлажен, всего три ворнинга (не может найти три файла по ссылке, но это ошибка среды, поскольку это папки, а не файлы). На работоспособность это не влияет.

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



Страницы: 1 2 вся ветка

Форум: "Прочее";
Текущий архив: 2008.03.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.54 MB
Время: 0.051 c
2-1202323373
Efir
2008-02-06 21:42
2008.03.02
Событие исчезновения подсказки


2-1202412475
Artem
2008-02-07 22:27
2008.03.02
LoadLibrary, как высвободить?


3-1191992191
Mery
2007-10-10 08:56
2008.03.02
Проблема с построением запроса


6-1181665096
nali
2007-06-12 20:18
2008.03.02
мультипатийный формат http запроса на сервер


2-1202444406
npr2
2008-02-08 07:20
2008.03.02
Часовой пояс





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский