2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Метаформа (нужна помощь!)
Сообщение20.12.2006, 19:06 


20/12/06
1
Всем привет!
Нужна помощь по теме генерация интерфейса (на основе метаданных сборки .Net), а именно ответ на вопрос :?: что такое МЕТАФОРМА? (свои мысли, соображения по этому поводу или информация, связанная с генерацией интерфейса, где есть что-нибудь связанное или похожее на понятие метаформа)
Заранее СПАСИБО тем кто откликнется!

 Профиль  
                  
 
 
Сообщение20.12.2006, 20:30 
Аватара пользователя


26/02/06
179
Хижина дяди Тома
Что такое метаформа, сходу не скажу. Чуть позже. А вообще рекомендую MSDN на тему пространство имен System.Reflection. Там все про отражение и метаданные.

Добавлено спустя 17 минут 40 секунд:

Похоже Вы что-то путаете. Термина метаформа я нигде в .Net не встречал. Вообще форма это - обычный класс .Net, а следовательно с помощью отражения Вы сможете получить любую информацию о нем из сборки(Assembly), в том числе и родить экземпляр класса. Написать здесь про отражение не представляется возможным. В дополнение к MSDN настоятельно рекомендую книги Джеффри Рихтера "Программирование на платформе Microsoft .Net Framework" или более новая его книга "CLR via C# 2". Первую точно можно найти в интернете. Вторую вот вот начнут продавать, если уже не начали. Посмотрите на Озоне.

 Профиль  
                  
 
 
Сообщение21.12.2006, 14:52 


15/10/06
4
Пермь, ПГУ, Мех-Мат
Фома, в том то и проблема, что в .Net'е нету понятия метаформы, а хотелось бы... здорово ведь, когда мы на вход даем данные, а у нас автоматом генерится формочка для ввода/вывода этих данных... вот девушка и пытается создать такую штуку...

 Профиль  
                  
 
 
Сообщение21.12.2006, 15:08 
Аватара пользователя


26/02/06
179
Хижина дяди Тома
Замахаев Семен писал(а):
Фома, в том то и проблема, что в .Net'е нету понятия метаформы, а хотелось бы... здорово ведь, когда мы на вход даем данные, а у нас автоматом генерится формочка для ввода/вывода этих данных... вот девушка и пытается создать такую штуку...


Я чего-то Вас не понимаю. Если данные у Вас уже есть, то зачем их давать, как Вы изволили выразиться, на вход? В .Net есть прекрасный механизм, называемый data binding, который позволяет привязать любого наследника класса Сontrol к данным! (см. интерфейс IBinding). Кроме того, в отличие от Вас, у меня нет уверенности, что JD - девушка! :D (я имею в виду принадлежность к женскому полу).

А нельзя ли подробнее описать Ваше видение подобной привязки данных к форме? Чем, например, Вас не устраивает control под названием PropertyGrid?

 Профиль  
                  
 
 
Сообщение21.12.2006, 23:13 


15/10/06
4
Пермь, ПГУ, Мех-Мат
Фома писал(а):
Кроме того, в отличие от Вас, у меня нет уверенности, что JD - девушка!

Могу вас в этом заверить, ибу я учусь с ней )))

Фома писал(а):
А нельзя ли подробнее описать Ваше видение подобной привязки данных к форме? Чем, например, Вас не устраивает control под названием PropertyGrid?

На входе у нас .Net сборка, с классами, переменными, объектами, константами, по средствам Reflection получаем мета-данные, о том, что у нас в сборке, и в соответствие с этим генерим формачки, отражающие содержимое сборки, и позволяющие, например, создавать объекты, описанных классов, инициализировать переменные и т.д. Причем появляются такие проблемы, что, например, для объекта или класса нужно выдавать отдельную формочку, для переменных перечислимых типов, нужно создать комбобоксик и перечислить возможные значения переменной, ну и все в таком роде... это я так понимаю, хотя могу ошибаться...
Таким образом, для повышения уровня абстрактности и настраиваемости, хотелось бы создать в системе модель формачки, на основе которой будут генерится конкретные формы, т.е. метаформу. Вот и интересно, что же в себя включает понятие метаформы, как ее описать, и чем она может помочь...

 Профиль  
                  
 
 
Сообщение22.12.2006, 13:46 
Аватара пользователя


26/02/06
179
Хижина дяди Тома
Итак, давайте отделять мух от котлет.

1. Любая визуальная форма в .Net - это во-первых наследница класса Form, а во-вторых по сути своей не более, чем контейнер для других визуальных и не визуальных классов.

2. Предположим Вы имеете дело с какой-то более-менее серьезной сборкой .Net, написанной Вами или каким-то другим лицом или фирмой. Практически любая такая сборка будет содержать сотни, а то и тысячи классов. В этом легко убедиться с помощью утилиты ILDasm.

3. Теперь представим себе ситуацию, когда Вы или кто-то по Вашей подсказке создал нечто под названием метаформа, котрая имея на входе такую сборку, пытается создать некую обобщенную форму всей сборки! Да Вы замучаетесь пыль глотать, пытаясь выбрать или оставить на форме ровно то, что вам нужно. :D

4. Если говорить о серьезном программировании, то любая готовая сборка для Вас не болеее, чем набор кирпичиков (каждый из которых, по возможности, максимально абстрагирован от специфики конкретной задачи) из которых Вы создадите свою программу. Главная задача любой системы программирования - облегчить этот процесс, т.е. за минимальное время получить адекватный Вашим ожиданиям результат! Например, именно для этого, был создан control под названием PropertyGrid.

5. Пока Ваши пожелания выглядят примерно так: "Хорошо бы все было так, что бы всем было хорошо". :D

З.Ы. Вы так и не ответили на мой вопрос о PropertyGrid!

 Профиль  
                  
 
 
Сообщение22.12.2006, 14:02 
Заслуженный участник


05/09/05
515
Украина, Киев
Замахаев Семен писал(а):

Фома писал(а):
А нельзя ли подробнее описать Ваше видение подобной привязки данных к форме? Чем, например, Вас не устраивает control под названием PropertyGrid?

На входе у нас .Net сборка, с классами, переменными, объектами, константами, по средствам Reflection получаем мета-данные, о том, что у нас в сборке, и в соответствие с этим генерим формачки, отражающие содержимое сборки, и позволяющие, например, создавать объекты, описанных классов, инициализировать переменные и т.д. Причем появляются такие проблемы, что, например, для объекта или класса нужно выдавать отдельную формочку, для переменных перечислимых типов, нужно создать комбобоксик и перечислить возможные значения переменной, ну и все в таком роде... это я так понимаю, хотя могу ошибаться...
Таким образом, для повышения уровня абстрактности и настраиваемости, хотелось бы создать в системе модель формачки, на основе которой будут генерится конкретные формы, т.е. метаформу. Вот и интересно, что же в себя включает понятие метаформы, как ее описать, и чем она может помочь...


Может Вам необходим дизайнер форм. Думаю, что Вы хотите на лету создавать формы и какие-то контролы на формах. Дизайнер форм подразумевает участие пользователя в этом, но думаю это необязательно, используя те же классы.
Посмотрите следующие ссылки:
Tailor Your Application by Building a Custom Forms Designer with .NET
INFO: Code Sample That Demonstrates How to Create a Custom Form Designer by Using Visual C# .NET

У меня также есть статья о создании кода на лету, но в ней я до дизайнера форм не добрался... Построение кода на лету в Microsoft .NET

 Профиль  
                  
 
 
Сообщение22.12.2006, 15:07 
Аватара пользователя


26/02/06
179
Хижина дяди Тома
Я думаю, что речь идет о курсовой работе, в которой необходимо порассуждать насколько хорошо иметь метаданные в сборке, и как на основе этого создавать различные дизайнеры приложений. :o

 Профиль  
                  
 
 
Сообщение22.12.2006, 21:49 
Заслуженный участник
Аватара пользователя


17/10/05
3709
:evil:
Может быть, я не очень правильно Вас понимаю, но то, о чем Вы говорите — это, скорее шаблон (template) формы. Его не совсем хорошо называть метаформой — метаформа содержит шаблон, но содержит наряду с шаблоном и другую информацию.

Обычно, шаблон содержит графическую информацию (для Layout manager).

В тоже время, метаформа информацию о том, как по некоторому набору данных (например, по списку полей из БД) формировать экранную форму(ы). Она может содержать ограничения (не больше 10 полей на страницу), доп. информацию (для перевода имен полей использовать этот словарь), доступные элементы логики обработки (стандартные обработчики событий и шаблоны полей) и т.п.

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

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group