powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Сконструировать через Emit класс, реализущий заданный интерфейс
12 сообщений из 62, страница 3 из 3
Сконструировать через Emit класс, реализущий заданный интерфейс
    #39900578
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy
А в реальной жизни и расширения и дженерики как правило все же рассчитаны на работу с ограниченным семейством типов.

Это семейство типов определяется тем, что называтеся "контракт". Набор условий, которым удовлетворяют все участники этого семейства. Пустой контракт никаких условий не задаёт, поэтому смысла в нем ноль. Это как на кабаке повесить правило фейс-контроля: "к нам пускаем только тех, у кого как минимум 0 денег в кармане".

А про интеллисенс так это вообще бугагос. Архитектим приложение под текстовый редактор, в котором его набираем.
...
Рейтинг: 0 / 0
Сконструировать через Emit класс, реализущий заданный интерфейс
    #39900613
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Antonariy
hVostt,

По уму в данном случае нужно было использовать DataTable?


Не обязательно DataTable, я ж всей задачи не знаю и подробностей. Но да, во многих случаях подойдёт DataTable для динамических моделей данных.
Но по сути, какая разница между DataRow и экземпляром модели? В первом набор полей, характеризующимся названием и типом, во втором набор свойств, характеризующихся названием и типом. В чем отличие? Лишь в наборе слов и букв, которыми осуществляется манипуляция полем/свойством. Даже не структурой алгоритма, а более мелкими деталями. При этом DataRow проигрывает в способности кастоваться к какому-нибудь типу, за которым может следить компилятор.

И проблема лишь в сраном антивирусе, которому не нравятся конкретные слова и буквы.
...
Рейтинг: 0 / 0
Сконструировать через Emit класс, реализущий заданный интерфейс
    #39900621
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Antonariy
А в реальной жизни и расширения и дженерики как правило все же рассчитаны на работу с ограниченным семейством типов.

Это семейство типов определяется тем, что называтеся "контракт". Набор условий, которым удовлетворяют все участники этого семейства. Пустой контракт никаких условий не задаёт, поэтому смысла в нем ноль. Это как на кабаке повесить правило фейс-контроля: "к нам пускаем только тех, у кого как минимум 0 денег в кармане".

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

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

С формальной логикой знаком? Знаешь, что такое закон исключенного третьего? Так вот пустой контракт это и есть реализация этого закона в программировании. Фундаментальная абстракция, разделяющая сущности на те, что ей являются и те, что ей не являются.

Впрочем, кому я это объясняю? Пользователю блокнота и консоли.
...
Рейтинг: 0 / 0
Сконструировать через Emit класс, реализущий заданный интерфейс
    #39900647
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy
используют специализированные инструменты, которые на порядок повышают их производительность и защищают от множества ошибок.

По тебе оно заметно. Антивирус работать не дает.

Antonariy
Пользователю блокнота и консоли.

Чаще всего в консоли и компилирую. И тесты прогоняю. Причем очень часто под линуксом. Потому что мне вообще пох, как оно собирается и тестируется в личной студии - меня волнует только, как оно соберется и протестируется на билд-сервере в CI. А ты, наверное, без кнопки Ф5 и жить не можешь?
...
Рейтинг: 0 / 0
Сконструировать через Emit класс, реализущий заданный интерфейс
    #39900668
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Antonariy
используют специализированные инструменты, которые на порядок повышают их производительность и защищают от множества ошибок.

По тебе оно заметно. Антивирус работать не дает.
Судя по тому, как ты вильнул седалищем от пустых интерфейсов к проблемам использования Emit, по интерфейсам адекватная аргументация у тебя иссякла, но высрацца еще хочется. Ну, попкорн у меня есть, жги.

авторА ты, наверное, без кнопки Ф5 и жить не можешь?АТО! И еще без кучи других клавиатурных сокращений. Что никак не связано с наличием билд-сервера, который тоже исправно делает свою работу.
...
Рейтинг: 0 / 0
Сконструировать через Emit класс, реализущий заданный интерфейс
    #39900671
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy
Но по сути, какая разница между DataRow и экземпляром модели? В первом набор полей, характеризующимся названием и типом, во втором набор свойств, характеризующихся названием и типом. В чем отличие? Лишь в наборе слов и букв, которыми осуществляется манипуляция полем/свойством. Даже не структурой алгоритма, а более мелкими деталями. При этом DataRow проигрывает в способности кастоваться к какому-нибудь типу, за которым может следить компилятор.


Да, кажется ты не понимаешь. DataRow может хранить любой кортеж, DataTable позволяет обратиться к модели данных, которую можно сконструировать в рантайме без рефлексии. И без рефлексии её прочитать.

Если у тебя все модели статические 100% и не предполагается расширение извне, т.е. ты работаешь с ORM, то ты можешь работать с классами. Но в ином случае, тебе нужно будет предоставить свой провайдер мета-модели, вместо работы с рефлексии напрямую.

У тебя нет ни абстрактного провайдера, ни динамической структуру для передачи данных (DataTable). Отсюда боль и страдания.


Antonariy
И проблема лишь в сраном антивирусе, которому не нравятся конкретные слова и буквы.


Ну антивирус это не единственная проблема. Всё решение -- проблема.
...
Рейтинг: 0 / 0
Сконструировать через Emit класс, реализущий заданный интерфейс
    #39900677
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy
попкорн у меня есть, жги.

Ну, пока что ты тут со своими проблемами (которые сам себе создал) о помощи просишь, а не я.
...
Рейтинг: 0 / 0
Сконструировать через Emit класс, реализущий заданный интерфейс
    #39900678
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Ну антивирус это не единственная проблема. Всё решение -- проблема.

"Разруха проблема в головах".
...
Рейтинг: 0 / 0
Сконструировать через Emit класс, реализущий заданный интерфейс
    #39900699
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy
И еще без кучи других клавиатурных сокращений.

У меня VsVim установлен екстеншеном, т.ч. шорткатов, наверное, поболее. Осталось только померить у кого шорткат длинее.
...
Рейтинг: 0 / 0
Сконструировать через Emit класс, реализущий заданный интерфейс
    #39900701
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Да, кажется ты не понимаешь. DataRow может хранить любой кортеж, DataTable позволяет обратиться к модели данных, которую можно сконструировать в рантайме без рефлексии. И без рефлексии её прочитать.
Реально не понимаю, что такого плохого в рефлексии.

авторУ тебя нет ни абстрактного провайдера, ни динамической структуру для передачи данных (DataTable). Отсюда боль и страдания.Вот я и пытаюсь его запилить перебирая варианты.
...
Рейтинг: 0 / 0
Сконструировать через Emit класс, реализущий заданный интерфейс
    #39900711
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Antonariy
попкорн у меня есть, жги.

Ну, пока что ты тут со своими проблемами (которые сам себе создал) о помощи просишь, а не я.
По пустым интерфейсам я помощи не просил, ты по собственной инициативе зачем-то вылез.
...
Рейтинг: 0 / 0
Сконструировать через Emit класс, реализущий заданный интерфейс
    #39900780
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy
hVostt
Да, кажется ты не понимаешь. DataRow может хранить любой кортеж, DataTable позволяет обратиться к модели данных, которую можно сконструировать в рантайме без рефлексии. И без рефлексии её прочитать.
Реально не понимаю, что такого плохого в рефлексии.


Плохого ничего нет.
Но и хорошего.
Рефлексию используют не от хорошей архитектуры.


Antonariy
авторУ тебя нет ни абстрактного провайдера, ни динамической структуру для передачи данных (DataTable). Отсюда боль и страдания.
Вот я и пытаюсь его запилить перебирая варианты.

Нет соответствующей абстракции. Находишься в ситуации, когда тебе забыли выдать ложку, и ты вынужден её вытачивать из подручных инструментов сам :)
...
Рейтинг: 0 / 0
12 сообщений из 62, страница 3 из 3
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Сконструировать через Emit класс, реализущий заданный интерфейс
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]