|
Приложение конструктор на C# (WPF+WCF+ORM????)
|
|||
---|---|---|---|
#18+
Есть следующая задача. Реализуется ИС - используется VS2008, Oracle . Предполагается схема СУБД <->(ORM) <-> Сервер приложений <-> (WCF) <-> клиент WPF (.exe) Необходимо реализовать конфигуратор для настройки приложения под определенного заказчика. Для этого используются WPF (XAML) - для динамического формирования интерфейса пользователя из конфигурации Динамически компилируемые сборки .NET - для привязки интерфейса к бизнес объектам. ORM - формирование структуры данных и бизнес объектов. Проект пока на стадии проектирования так что выбор технологий не окончательный если есть другие идея с радостью выслушаю. Встал вопрос выбора ORM (BLToolkit, ActiveRecord, NHibernate). Изначально предполагалось придумывание велосипеда, но теперь что-то хочется посмотреть в сторону уже готовых ;) Опыта использования ORM нет, а разбираться с каждой из существующих долго. Подскажите какая из ORM может обеспечить работу в связке с WCF (прикрутить наверное можно все но может есть кокие-то уже готовые решения), возможна реализация неких общих объектов - например справочник - с дальнейшим определением конкретных экземпляров справочников в конфигураторе приложения. Сейчас есть идея отработать технологию на создании подсистемы работы со справочниками (простые, иерархические, произвольное количество и тип полей, отношение 1:N и M:N к другим справочникам) В общем хочется сделать что-то вроде 1С только попроще и побыстрее :) (это я конечно загнул но примерно в том направлении движение) под конкретную предметную область. Если кто подскажет пример подобных приложений (даже с использованием других технологий) буду очень благодарен. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2008, 10:08 |
|
Приложение конструктор на C# (WPF+WCF+ORM????)
|
|||
---|---|---|---|
#18+
NHibernate неплох, мы используем, цели примерно такие же, WPF я бы не брал из-за требовательности к ресурсам, имхо, но тут дело ваше. Зависит от целевой публики. Oracle требует больших затрат для покупателя, но оправдывает себя на все 100. Бизнес логику в СУБД реализовывать будете, или на БО в клиенте? К wcf прикрутите что угодно. Разницы нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2008, 10:12 |
|
Приложение конструктор на C# (WPF+WCF+ORM????)
|
|||
---|---|---|---|
#18+
tAZARNHibernate неплох, мы используем, цели примерно такие же, WPF я бы не брал из-за требовательности к ресурсам, имхо, но тут дело ваше. Зависит от целевой публики. Oracle требует больших затрат для покупателя, но оправдывает себя на все 100. Бизнес логику в СУБД реализовывать будете, или на БО в клиенте? К wcf прикрутите что угодно. Разницы нет. NHibernate еще не смотрел, там есть что-то принципиально отличающееся от BLToolkit?? Насколько я глянул BLToolkit - прямого способа использовать неизвестные заранее структуры данных там нет. То-есть я вижу реализацию только через динамически компилируемые сборки или я не прав? Как это реализовано в NHibernate ? Oracle есть и бесплатный на одну базу - клиентам хватает, а кому не хватает тот и купить может. WPF ресурсы жрет спора нет - но уж очень подходит, да и обещают увеличить производительность надо протестировать на вышедших sp1 vista sp3 xp - еще этим не занимались плотно. К концу реализации выйдет .net 4 может еще чем поможет. Логику конечно хочется на сервере приложений - но как всегда что-то размажется на клиента - хотя будем стараться -) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2008, 10:34 |
|
Приложение конструктор на C# (WPF+WCF+ORM????)
|
|||
---|---|---|---|
#18+
Совет вам - постарайтесь побороть вселение логики в клиента. Потом будет плохо :-) BLToolkit не пробовал, поэтому и посоветовал NHibernate по собственному опыту. Неизвестные структуры данных можно бороть генерацией маппингов и классов конструктором бизнес-решений для своего продукта, Компилить в итоге сборки. Благо, это вообще не проблема в дотнете, можете еще посмотреть в сторону MyGeneration как на пример - неплохо сделаны генераторы для NHibernate. Вызовы ХП, выборка данных из ХП в хибернейте реализованы неплохо, проект не мертвый. Насчет Oracle Express - посмотрите внимательно на ограничение размера базы (в районе 4гб, если не ошибаюсь), поэтому, если такой объем укладывается в предметку - то ради бога, но что пользователь будет делать лет через 5 -6 работы с продуктом? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2008, 10:44 |
|
Приложение конструктор на C# (WPF+WCF+ORM????)
|
|||
---|---|---|---|
#18+
Итак для генерации новой структуры данных (например нового справочника) необходимо из конструктора выполнить следующие действия: 1. Создать объекты базы данных (таблицы, индексы, процедуры) 2. Сгенерировать классы 3. Сгенерировать маппинг 4. Скомпилировать сборку И NHibernate в этом вопросе собственно ничем не поможет? Но зато получим приятные для использования объекты: Код: plaintext
А есть другой путь чтобы получилось Код: plaintext
Или с таким путем потом тупик? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2008, 11:18 |
|
Приложение конструктор на C# (WPF+WCF+ORM????)
|
|||
---|---|---|---|
#18+
Ну, со свойствами оно лучше будет. NH умеет создавать таблицы по описанию в маппингах. Может быть, это вам тоже будет интересно. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2008, 11:29 |
|
Приложение конструктор на C# (WPF+WCF+ORM????)
|
|||
---|---|---|---|
#18+
А получение справочника по стрковому имени, или созданию классов - наследников от базового класса справочника зависит от того, как будет реализован DAL и менеджеры. Тут вам и карты в руки ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2008, 11:30 |
|
Приложение конструктор на C# (WPF+WCF+ORM????)
|
|||
---|---|---|---|
#18+
Constructor Код: plaintext
А есть другой путь чтобы получилось Код: plaintext
Или с таким путем потом тупик?Может вместо генерации сборок через Emit проще нетипизированный DataSet? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2008, 11:42 |
|
Приложение конструктор на C# (WPF+WCF+ORM????)
|
|||
---|---|---|---|
#18+
Для генерации можно использовать CSharpCompiler :-) А датасет нынче не модно :-) Они ж хотят аналог 1с - тогда ORM :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2008, 11:53 |
|
Приложение конструктор на C# (WPF+WCF+ORM????)
|
|||
---|---|---|---|
#18+
tAZARДля генерации можно использовать CSharpCompiler :-) А датасет нынче не модно :-) Они ж хотят аналог 1с - тогда ORM :-)Я не совсем понял. Если сборки будут генерироваться и "жить" только в рантайме, тогда DataSet может стать достойной альтернативой. Разумеется, я не настаиваю на его применении, но думаю, что рассмотреть эту возможность стоит. Если же сгенерированные сборки будут сохраняться и использоваться в дальнейшей разработке, тогда да, DataSet тут не при чём. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2008, 11:59 |
|
Приложение конструктор на C# (WPF+WCF+ORM????)
|
|||
---|---|---|---|
#18+
Нетипизированный DataSet это вариант о котором думали с самого начала. Но там проблемм всплывает в дальнейшем немало. tAZARНу, со свойствами оно лучше будет. NH умеет создавать таблицы по описанию в маппингах. Может быть, это вам тоже будет интересно. А получение справочника по стрковому имени, или созданию классов - наследников от базового класса справочника зависит от того, как будет реализован DAL и менеджеры. Тут вам и карты в руки Создание таблиц это неплохо, но вопрос в том что структура таблиц с учетом автор(простые, иерархические, произвольное количество и тип полей, отношение 1:N и M:N к другим справочникам) непростая получиться сомневаюсь что авто генерация подойдет :( Или можно пробовать? А вот реализация базового класса это интересно. tAZAR это реально? Или легче пойти по пути компиляции сборок? Путь CSharpCompiler меня беспокоит тем что прийдется все перекомпилировать (и базовую логику) чтобы использовать новые объекты а этого бы не хотелось. Вариант конечно с наследованием от базового класса. Эх знать бы каким это боком вылезить. А то можно убить много времени на основу а при реализации БЛ окажется что все не так хорошо как казалось Знать бы где соломки подстелить :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2008, 12:08 |
|
Приложение конструктор на C# (WPF+WCF+ORM????)
|
|||
---|---|---|---|
#18+
Я понял автора так: они хотят иметь нечто вроде конструктора, который будет создавать нечто типа конфигурации, как в 1с - тогда нужна компиляция сборок с объектами на основе метаданных структуры базы. Если же эта возможность нужна "на лету" - минус: потеря скорости. Тогда действительно стоит посмотреть в сторону датасетов. Но ключевой момент здесь, как я понял - разработка с ORM без изобретения велосипедов. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2008, 12:09 |
|
Приложение конструктор на C# (WPF+WCF+ORM????)
|
|||
---|---|---|---|
#18+
Просветите насчет Castle Project что-то староватая версия доступна стоит использовать или лучше чистый NHibernate??? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2008, 12:10 |
|
Приложение конструктор на C# (WPF+WCF+ORM????)
|
|||
---|---|---|---|
#18+
На лету не надо. Вариант с сборками в принципе нормальный во всех отношениях. Беспокоит один вопрос - сколько на это потребуется трудозатрат (создание достойного конфигуратора не выглядет простой задачей) - и как они окупяться. А так проблем нет надо изменить что-то внесли изменения сборки откомпилировались и сохранились и работаем дальше с уже новыми сборками. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2008, 12:15 |
|
Приложение конструктор на C# (WPF+WCF+ORM????)
|
|||
---|---|---|---|
#18+
Тут, имхо, каждый выбирает путь для себя. Я бы пошел путем предварительной копмиляции сборок. Там немного нужно будет пожнапрячься с формированием маппингов, но я ж говорю - посмотрите на MyGeneration, например. Легким движением руки при разработке таких систем лебеди из рукава не вылетают, получаются только гадкие утята.. Базовую логику реализуйте в базе - будет меньше проблем :-) Используйте интерфейсы (реализуйте IDocument, IDictionary и т.д.)- будет еще меньше проблем, Можно, конечно, создавать все на лету, но тогда перекладывается часть работы на клиента, или на сервер - прослойку между клиентом и базой (трехзвенка), что будет приводить к пересборке если не самого сервера, то его отдельных модулей. Генерация на лету также может потянуть за собой необходимость использования рефлексии и интерфейсов (лучше интерфейсов). Реализация базовых классов - это вполне реально. Все зависит от того, какие метаданные у вас будут присутствовать в "конфигурации" для вашей системы: только системные таблицы Оракла, или еще и что-то свое (что, скорее всего, будет иметь место). А пока что все слишком абстрактно. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2008, 12:19 |
|
Приложение конструктор на C# (WPF+WCF+ORM????)
|
|||
---|---|---|---|
#18+
tAZARЯ понял автора так: они хотят иметь нечто вроде конструктора, который будет создавать нечто типа конфигурации, как в 1с - тогда нужна компиляция сборок с объектами на основе метаданных структуры базы. Если же эта возможность нужна "на лету" - минус: потеря скорости. Тогда действительно стоит посмотреть в сторону датасетов. Но ключевой момент здесь, как я понял - разработка с ORM без изобретения велосипедов. На самом деле немного не так - ключевой момент это хороший результат (стабильное, гибкое приложение, с минимумом затрат на дальнейшее внедрение-сопровождение) за приемлемое время. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2008, 12:19 |
|
Приложение конструктор на C# (WPF+WCF+ORM????)
|
|||
---|---|---|---|
#18+
Хороший результат, имхо, заслуга программистов и их качество :-) Рентабельность - тяжелая задача трейдеров, агентов и маркетологов, умение найти целевых клиентов и доказать им, что им нужно именно ваше решение. Конфигуратор - достаточно емкая и непростая задача, советую все очень хорошо спланировать, расчертить, прикинуть время/трудозатраты. Универсальность требует гибкости ума. А универсального решения и догмы для таких проектов все еще нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2008, 12:24 |
|
Приложение конструктор на C# (WPF+WCF+ORM????)
|
|||
---|---|---|---|
#18+
Сорри за мультипост. Тут вспомнилось, что на форуме кто-то выкладывал пример подобного продукта, воспользуйтесь поиском - там есть пример автоматизации аптек на базе их платформы. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2008, 12:26 |
|
Приложение конструктор на C# (WPF+WCF+ORM????)
|
|||
---|---|---|---|
#18+
Подскажите что искать. (тема или ключевые слова) Я искал примеры подобного очень долго и пока ничего не нашел. Какой брать Hibernate есть Hibernate-2.0.0.Alpha1-bin.zip стоит сразу взять его (дорабатывают быстро) ? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2008, 12:36 |
|
Приложение конструктор на C# (WPF+WCF+ORM????)
|
|||
---|---|---|---|
#18+
Дорабатывают достаточно быстро (но альфа эта вроде около месяца уже висит). Мы 1.1 используем. Только берите N Hibernate, а не Hibernate :-) Ссылку, к сожалению, не помню. Где-то здесь проскакивала. Проект вроде даже открытый.. Если вдруг найду - отпишусь. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2008, 12:52 |
|
Приложение конструктор на C# (WPF+WCF+ORM????)
|
|||
---|---|---|---|
#18+
Опа, нашел. Нечто граничное, за качество не ручаюсь - просто для примера. Тыдынц ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2008, 13:05 |
|
Приложение конструктор на C# (WPF+WCF+ORM????)
|
|||
---|---|---|---|
#18+
Поддержка WCF & WPF реализованна в CSLA. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2008, 13:05 |
|
Приложение конструктор на C# (WPF+WCF+ORM????)
|
|||
---|---|---|---|
#18+
tAZARОпа, нашел. Нечто граничное, за качество не ручаюсь - просто для примера. Тыдынц Исходников нет. Да и смотреть вроде особо нечего. Реализовать то что там есть (генератор классов) в том виде в котором он там есть (если я правильно понял как это работает) займет совсем не много времени. SeVaПоддержка WCF & WPF реализованна в CSLA. Да что-то есть осталось узнать что именно. Есть реальный опыт использования? А как на счет реализации неизвестных заранее структур данных, может тоже есть ? -:) Если подкинете каких нибудь материалов по CSLA будет совсем хорошо, а то на первый взгляд у меня сложилось мнение что автор делает бизнес на продаже книг с свему фреймворку ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2008, 14:17 |
|
|
start [/forum/topic.php?fid=19&fpage=35&tid=1397994]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
42ms |
get forum data: |
9ms |
get page messages: |
119ms |
get tp. blocked users: |
2ms |
others: | 236ms |
total: | 473ms |
0 / 0 |