Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Динамическая структура данных и MVC
|
|||
|---|---|---|---|
|
#18+
для студии тоже конструктор есть, не веб конечно, XAF называется для любителей пописать, а не потыкать - CSLA ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2013, 08:16 |
|
||
|
Динамическая структура данных и MVC
|
|||
|---|---|---|---|
|
#18+
sanyock2для любителей пописать, а не потыкать - CSLA Любителям пописать не хватило сил реализовать свою инфраструктуру? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2013, 08:44 |
|
||
|
Динамическая структура данных и MVC
|
|||
|---|---|---|---|
|
#18+
skyANAне хватило сил реализовать свою инфраструктуру? какую? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2013, 08:51 |
|
||
|
Динамическая структура данных и MVC
|
|||
|---|---|---|---|
|
#18+
sanyock2, собственную конечно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2013, 09:04 |
|
||
|
Динамическая структура данных и MVC
|
|||
|---|---|---|---|
|
#18+
skyANAsanyock2, собственную конечно. время то экономить надо, а то на пописать/потыкать может не остаться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2013, 09:09 |
|
||
|
Динамическая структура данных и MVC
|
|||
|---|---|---|---|
|
#18+
ТС если вы переписываете с нуля то может не стоит завязывается на текущей архитектуре? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2013, 09:28 |
|
||
|
Динамическая структура данных и MVC
|
|||
|---|---|---|---|
|
#18+
*Ihor*почему так вышло? а все просто: есть построитель форм, есть построитель отчетов. все полностью на конфигах, даже выборка из-базы берется в конкретный момент в зависимости от юзвера. Причем админ может отключить чтото или добавить, и пользователь должен получить изменения сразу а не после рестарта проекта. не почему, а зачем так надо было делать? какие бизнес-требования привели к такому решению? или просто у кого-то было шило в заднице, а теперь за ним надо разгребать это говно лопатой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2013, 10:10 |
|
||
|
Динамическая структура данных и MVC
|
|||
|---|---|---|---|
|
#18+
*Ihor*, во-первых, откуда весть, что экспандо тормозной? Во-вторых, как он тебе поможет, если у тебя динамика? Чем тебе поможет работа с анонимными типами, ведь на этапе компиляции не известны свойства? Я вижу тут классическую связку с DataTable, не более и не менее. Остальное, что ты перечислил (безопасность в реал тайме, вьюхи и т.д.) никаким образом к мвц не относится и может быть реализовано хоть на пхп. Итого: никакой конкретики, ты тупо смешал всё в кучу, вбросил на форум и хочешь каких-то советов. Короче, если нужен рефакторинг старой системы - займись им. Если хочешь поставить систему с нуля на новые рельсы (с новой более оптимальной логикой или еще с чем) - мвц (как и вебформс) отличные движки, которые могут вся и всё. Определись и не насилуй моск соотечественников. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2013, 11:18 |
|
||
|
Динамическая структура данных и MVC
|
|||
|---|---|---|---|
|
#18+
МСУИтого: никакой конкретики, ты тупо смешал всё в кучу, вбросил на форум и хочешь каких-то советов.+1 Придумана какая-то архитектура "построителей", реализована логика на каких-то конфигах и морда на ASP, ASP.NET. Не понятно почему не получается реализовать морду на MVC. Можно к примеру Content Management System обозвать построителем форм. Так ведь есть CMS-ки, что написанны на WebForms, PHP, RoR и на MVC, и они работают Не понятно зачем вообще что-то реализовывать на MVC. Бизнес-требования изменились? Вместо конфигов нужно дать пользователю WYSIWYG? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2013, 12:02 |
|
||
|
Динамическая структура данных и MVC
|
|||
|---|---|---|---|
|
#18+
никто не извращался :) , и не строили аналог студии. Вышло все случайно, был огромный проект, и кол-во кастомизации просто стало насиловать сапорт. Каждый клиент начал тянуть на себя одеяло. А ну попробуйте в стандартном MVC вести много клиентов если каждый начинает требовать переделать формы в зад и в перед под себя, тут им мешает , тут не хватает и т.д. Сначала начнете делать отдельные темплейты клиенские, но потом становится жалко насиловать базу, когда в таблицах сотни полей от разных клиентов, начинаете разделять чтобы у каждого было свое. В итоге всех мучений, пришлось чисто для себя написать динамичный кернел с независимой структурой, в итоге настало время когда практически перестал лазить в код и чтото переделывать под клиента. Т.е. есть сапорт который в админки сами мышкой под клиента чтото меняют. Оно того стоило? 100раз да! Насчет мани ту мани связок - был дурной опыт, дето в самом начале. Итогом стало просто огромные тормоза как только кол-во данных выросло до лямов. Отчетность и аналитика стали не справляться. Потому и пришлось возвращаться к статичным таблицам, но генерить их на ходу. Вопрос чисто в поиске максимальной производительности. Но при этом иметь под каждого клиента отдельную версию проекта я не потяну физически. Короче, как сказали выше, меньше слов :) тогда вот конкретика: Идея проста, Чтобы к примеру заюзать тотже Razor ему нужно отдать модель. Чтобы к примеру сапорт верхнего уровня мог в темплейте стучаться к данным не трогая кернел: @foreach (var user in UsersList) { } Для этого нужно передать UsersList класс. Но вот как его создать динамично если код кернела единый для всех клиентов, но структура таблицы Users разная? 1. можно скомпилировать по конфигурации в папку клиента dll с класами. и подключить/ 2. можно заюзать expando или dynamic но тут есть пару моментов: в томже expando легко создать анонимный проперти dynamic sampleObject = new ExpandoObject(); sampleObject.name = 'Test'; но это в коде, а если заполнять из таблицы ? т.е. записать класс sampleObject["name"] = 'test' чтобы потом в Razor можно было красиво sampleObject.name ? Попробовал через dynamic: IDictionary<string, dynamic> user = new Dictionary<string, dynamic>(); user["Name"] = "Test"; List<dynamic> users = new List<dynamic>(); users.Add(user); users.Add(user); var query = from i in users where i["Name"]='Test' select i; foreach (var name in query) { Console.WriteLine(name["Name"]); } так вроде работает, и даже Console.WriteLine(users[0]["Name"]); прекрасно работает. Но вот стоит вызвать ['Age'] и уже вылетает потому что нету обработчика. А ведь вся суть, отдать дизайнеру чтобы он мог обращяться к данных не трогая серверную часть. Т.е. по аналогу JSON в JQuery Template.. @foreach (var user in UsersList) { user['Name'] } но если указать тут 'Age' то упадет по ошибке. Подход довольно простой в принципе и ничего тут сверх естественного. Есть api которая получает запрос, list / users / filter: Age > 20 к примеру api не знает что из себя представляет users таблица. но нужно вызвать данные, отфильтровать и сгенерить темпллейт. Это все уже лет 10 работает. Вот и пытаюсь это все перегнать в .NET но без Dictionary а както красивее и с максимальной производительностью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2013, 14:30 |
|
||
|
Динамическая структура данных и MVC
|
|||
|---|---|---|---|
|
#18+
*Ihor*вести много клиентов если каждый начинает требовать переделать формы в зад и в перед под себя, тут им мешает , тут не хватает и т.д. проблема значит организационная, а не техническая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2013, 15:07 |
|
||
|
Динамическая структура данных и MVC
|
|||
|---|---|---|---|
|
#18+
Изопропил*Ihor*вести много клиентов если каждый начинает требовать переделать формы в зад и в перед под себя, тут им мешает , тут не хватает и т.д. проблема значит организационная, а не техническая. оно все взаимосвязано. с одной стороны сам пытаешься сделать универсальный код, с другой стороны давят клиенты по по 100 раз меняют структуры базы, начинаешь мудрить. Тотже SaleForce позволяют также само клиентам менять структуру базы под себя. и явно оно у них хранится не в массиве а в статичных таблицах, иначе бы сервера не потянули бы большие данные каждый раз разворачивать из массива. Для меня это очень удобно, когда достаточно добавить поле в конфиг клиента, и оно появится везде автоматом. А вот как раз код аналогичен тогоже Symfony на PHP просто ужасает. чтобы добавить поле нужно перегенерить все классы и либы чтобы поле и эвенты к нему провелись по всему кернелу, потом мигрейты и т.д. скорость разработки просто ужасает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2013, 15:15 |
|
||
|
Динамическая структура данных и MVC
|
|||
|---|---|---|---|
|
#18+
Изопропил*Ihor*вести много клиентов если каждый начинает требовать переделать формы в зад и в перед под себя, тут им мешает , тут не хватает и т.д. проблема значит организационная, а не техническая. обычная проблема просто статические модели достали тех, кто пишет сложные проги моделирующие жисть, а не надуманные редакторы текста ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2013, 15:41 |
|
||
|
Динамическая структура данных и MVC
|
|||
|---|---|---|---|
|
#18+
*Ihor*никто не извращался :) , и не строили аналог студии. Вышло все случайно, был огромный проект, и кол-во кастомизации просто стало насиловать сапорт. Каждый клиент начал тянуть на себя одеяло. А ну попробуйте в стандартном MVC вести много клиентов если каждый начинает требовать переделать формы в зад и в перед под себя, тут им мешает , тут не хватает и т.д. Сначала начнете делать отдельные темплейты клиенские, но потом становится жалко насиловать базу, когда в таблицах сотни полей от разных клиентов, начинаете разделять чтобы у каждого было свое. В итоге всех мучений, пришлось чисто для себя написать динамичный кернел с независимой структурой, в итоге настало время когда практически перестал лазить в код и чтото переделывать под клиента. Т.е. есть сапорт который в админки сами мышкой под клиента чтото меняют. Оно того стоило? 100раз да! Насчет мани ту мани связок - был дурной опыт, дето в самом начале. Итогом стало просто огромные тормоза как только кол-во данных выросло до лямов. Отчетность и аналитика стали не справляться. Потому и пришлось возвращаться к статичным таблицам, но генерить их на ходу. Вопрос чисто в поиске максимальной производительности. Но при этом иметь под каждого клиента отдельную версию проекта я не потяну физически. Короче, как сказали выше, меньше слов :) тогда вот конкретика: Идея проста, Чтобы к примеру заюзать тотже Razor ему нужно отдать модель. Чтобы к примеру сапорт верхнего уровня мог в темплейте стучаться к данным не трогая кернел: @foreach (var user in UsersList) { } Для этого нужно передать UsersList класс. Но вот как его создать динамично если код кернела единый для всех клиентов, но структура таблицы Users разная? 1. можно скомпилировать по конфигурации в папку клиента dll с класами. и подключить/ 2. можно заюзать expando или dynamic но тут есть пару моментов: в томже expando легко создать анонимный проперти dynamic sampleObject = new ExpandoObject(); sampleObject.name = 'Test'; но это в коде, а если заполнять из таблицы ? т.е. записать класс sampleObject["name"] = 'test' чтобы потом в Razor можно было красиво sampleObject.name ? Попробовал через dynamic: IDictionary<string, dynamic> user = new Dictionary<string, dynamic>(); user["Name"] = "Test"; List<dynamic> users = new List<dynamic>(); users.Add(user); users.Add(user); var query = from i in users where i["Name"]='Test' select i; foreach (var name in query) { Console.WriteLine(name["Name"]); } так вроде работает, и даже Console.WriteLine(users[0]["Name"]); прекрасно работает. Но вот стоит вызвать ['Age'] и уже вылетает потому что нету обработчика. А ведь вся суть, отдать дизайнеру чтобы он мог обращяться к данных не трогая серверную часть. Т.е. по аналогу JSON в JQuery Template.. @foreach (var user in UsersList) { user['Name'] } но если указать тут 'Age' то упадет по ошибке. Подход довольно простой в принципе и ничего тут сверх естественного. Есть api которая получает запрос, list / users / filter: Age > 20 к примеру api не знает что из себя представляет users таблица. но нужно вызвать данные, отфильтровать и сгенерить темпллейт. Это все уже лет 10 работает. Вот и пытаюсь это все перегнать в .NET но без Dictionary а както красивее и с максимальной производительностью. Вместо ехpando нужна своя реализация DynamicObject. Я делал вариант с фиксированной частью + динамическая. В сети полно исходников с разными подходами(неплохой вариант есть на codeproject), я за основу брал impromptu ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2013, 15:55 |
|
||
|
Динамическая структура данных и MVC
|
|||
|---|---|---|---|
|
#18+
седня про MongoDB-NoSQL немного почитал, типа быстрее да, но так то по идее оно на одной таблице SQL делается без учета тормозов уже даже не пытаюсь советовать, ибо опыта с сильно нагруженными нету (и слава богу), говорят там все по другому (денормализации, шардинги, брррр фуу, никакого перфекционизма короче) но неужели нельзя какой-то хитрый кластер сделать, железки проапгредить, закэшировать таблицы в оперативу, 1% хранимок переписать на С и чтобы старыми SQL многимикомногими без напряга своих мозгов? неужели Каше правда нужен (когда есть Oracle, DB2, MSSQL и т.п.)?!? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2013, 15:59 |
|
||
|
Динамическая структура данных и MVC
|
|||
|---|---|---|---|
|
#18+
Это для viewmodel. Для model проще всего взять упомянутый уже csla. Для любителей своих "инфраструктур" или "Пан сам склепав" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2013, 16:07 |
|
||
|
Динамическая структура данных и MVC
|
|||
|---|---|---|---|
|
#18+
динамик здесь не нужен. есть базовый домен. есть проперти. наборы пропертей определяются в дополнительной таблице, типа Descriptor, записи которых описывают проперти, принадлежность их к ролям (пользователей?) и другим переменным. рендерится это чудо набором ViewTemplates, вводятся данные в базу набором EditorTemplates. если требуется определять наборы во время функционирования приложения, можно хранить частичные вью в базе и рендерить через RazorGenerator. в общем, просто как дважды два, а вы тут развели. элементарная задача, элементарное решение. на MVC решается влегкую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2013, 17:11 |
|
||
|
Динамическая структура данных и MVC
|
|||
|---|---|---|---|
|
#18+
hVosttдинамик здесь не нужен. есть базовый домен. есть проперти. наборы пропертей определяются в дополнительной таблице, типа Descriptor, записи которых описывают проперти, принадлежность их к ролям (пользователей?) и другим переменным. рендерится это чудо набором ViewTemplates, вводятся данные в базу набором EditorTemplates. если требуется определять наборы во время функционирования приложения, можно хранить частичные вью в базе и рендерить через RazorGenerator. в общем, просто как дважды два, а вы тут развели. элементарная задача, элементарное решение. на MVC решается влегкую. вопрос встречный тогда тебе и товарищу МСУ: Зачем тогда нужен форум? если вы все тут гуру, и для вас влегкую как два пальца, а кто не допонимает, идите ищите. Я так понимаю тут бывает только две ситуации.. или оба гуру и спорят кто умнее , или кто не в теме просто отвечают - "да можно, как два пальца" , а дальше MSDN вам в руки и отвалите. В том то и дело что я перековырял километры MSDN и тогоже codeprojects И др. 99% тогоже MVC это статичные задачи. Если чуть динамика или нестандартное , то до конца не оговорено и для конкретного случая работает, шаг влево или вправо сразу тупик. Я уже по тону МСУ понял что глупо на форуме чтото спрашивать. Как нибудь уже сам доковыряю, благо опыта хватает и не такие задачи решал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2013, 17:32 |
|
||
|
Динамическая структура данных и MVC
|
|||
|---|---|---|---|
|
#18+
*Ihor*вопрос встречный тогда тебе и товарищу МСУ: Зачем тогда нужен форум? Для того, чтобы предметно дискутировать. Но как можно дискутировать, тем более предметно, о сферическом коне в вакууме? Подумай об этом. P.S. Такое ощущение, что тебе (оказывается!) тупо нужен CMS, о котором выше говорил skyANA. Это решит много административных и технических проблем. На базе CMS уже можно дальше строить свою систему. P.S2. Рекомендую DNN, как-раз на ASP.NET WebForms. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2013, 17:50 |
|
||
|
Динамическая структура данных и MVC
|
|||
|---|---|---|---|
|
#18+
Мне нужен чистый легкий код. Я пытаюсь пересобрать свой API. На данный момент как и писал выше на коленке уже работают варианты 1) генерация dll и поключение из папки клиента, но много нехороших моментов есть. 2) dynamic почти получается аналог JS но нужно все таки писать свой класс сверху чтобы не слетат код при обращении к не существующему проперти, ведь дизайнер UI будет писать проверки. Код: c# 1. 2. 3. покрывает почти все что вижу. даже методы можно повесить налету. но не хватает обработки чтобы user['Age'] вернуло null как в JS а не падало по ошибке. 3) ExpandoObject в принципе получается выше аналог dynamic за исключением менее компактного кода. Код: c# 1. 2. 3. 4. да и посути тотже Json.NET либа на ExpandoObject вроде построена. 2) и 3) вариант вполне позволяют получив выборку с базы, загнать все колонки в объект и отдать в шаблон. А дальше админ может менять вывод в шаблоне под свои задачи. Т.е. введя в таблицу новое поле "Tel" в Razor шаблоне просто админ укажет Код: c# 1. 2. 3. чем плох такой подход? зачем мне DNN ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2013, 18:07 |
|
||
|
Динамическая структура данных и MVC
|
|||
|---|---|---|---|
|
#18+
*Ihor*, а по мне, это просто толстый троллинг и издевательство. конкретику давай, что за домен. примеры. какие задачи. чем конкретней будет описана задача, тем конкретнее будет ответ. мне нужен дом. понимаете? дом. дом для разных людей, а не для одинаковых, прошу учесть! ну и что гуру посоветуете!? ваш МВЦ по ходу для одинаковых людей. либо Ку, либо неКу. а мне нужно для разных. вы не понимаете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2013, 18:07 |
|
||
|
Динамическая структура данных и MVC
|
|||
|---|---|---|---|
|
#18+
*Ihor*, динамик и експандо обджект совсем для других целей. не для хранения и раскрытия домена. не для вместилища данных. для этого существуют коллекции. где есть скалярные типы и сложные. где есть иерархия и зависимости. в базе они описываются путем раскрытия на связанные таблицы и поля (4-ая форма и иже с ним), которые собираются в реальные классы и коллекции. динамик вам не нужен. забудьте, как страшный сон. он для других целей, совершенно для других. будете дальше копать в эту сторону еще больше увязнете. и обвините всех, кто вам там чего-то понасоветовал. забудьте вообще про динамик. ппц. незнаю уже других слов, чтобы описать эту дурость. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2013, 18:12 |
|
||
|
Динамическая структура данных и MVC
|
|||
|---|---|---|---|
|
#18+
hVostt JavaScript по сути весь динамичный. Даже не типизирован в какой то мере. var a = 1; a = '1'; хотя и есть свои правила. Но в JS даже не встает вопрос с объектами. И любая динамика решается в пару строк. Незря ведь в ASP.NET всетаки засунули JSON и сериализацию как и во многие другие языки. Тотже NodeJS восприняли на ура, потому что JS позволяет очень легко описать любые задачи. Тотже Expando посути это тотже JSON. И вы мне говорите что JSON не хранилище данных ? Что тогда по вашему MongoDB ? Ранее в C# не было и близко динамики, но с каждым разом все больше вводят приближение к JS и ведь не просто так.. пройдет еще время и будет еще больше вариантов. Не хотите динамики.. это ваше дело. Мой принцип, иметь универсальный один метод , вместо 100 вариантов под разные задачи. По поводу тролинга - я постом выше привел вариант что хотел и как связать базу и шаблон. Если для вас это изврат, то видимо JS для вас чтото страшное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2013, 18:26 |
|
||
|
Динамическая структура данных и MVC
|
|||
|---|---|---|---|
|
#18+
hVosttдинамик здесь не нужен. есть базовый домен. есть проперти. наборы пропертей определяются в дополнительной таблице, типа Descriptor, записи которых описывают проперти, принадлежность их к ролям (пользователей?) и другим переменным. рендерится это чудо набором ViewTemplates, вводятся данные в базу набором EditorTemplates. если требуется определять наборы во время функционирования приложения, можно хранить частичные вью в базе и рендерить через RazorGenerator. в общем, просто как дважды два, а вы тут развели. элементарная задача, элементарное решение. на MVC решается влегкую. В твой пенке упущен один маленький момент, без которого view ничего не стоят с динамическими структурами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2013, 18:46 |
|
||
|
Динамическая структура данных и MVC
|
|||
|---|---|---|---|
|
#18+
вот вам конкретика: 1. есть таблица допустим users { name, age , tel} 2. есть темплейты где просто список @foreach <div>@user.name, @user.age , @user.tel</div> 3. есть XML файл с описанием структуры таблицы 4. есть админка, в которой добавив в XML поле address идет речек структуры таблицы с добавлением users { address } колонки. 5. дизайнеру нужна возможность просто отредактировать шаблон добавив @user.address и если он опечатался @user.address2 чтобы не вылетало. все довольно таки просто, шаблоны раскиданы по папкам, есть общий дефотлтный, а есть /client/1/userList.cshtml по реквесту /list/users/filter:age>10/ взять из таблицы содержимое с фильтром, отдать шаблону и сгенерить. Задача очень простая, и динамика нужна потому что структура таблица меняется на ходу. Сделать такое вполне реально и код будет очень гибким и легким. По крайней мере 10 лет уже так работает api. На nodejs такое собрать очень легко, но nodejs не даст всего того что есть в .NET. Тотже к примеру PDF готового решения нету, и тучи других моментов, иначе я бы забил на .NET и сразу собрал бы на nodejs ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2013, 19:03 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=38180257&tid=1358271]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
89ms |
get tp. blocked users: |
2ms |
| others: | 231ms |
| total: | 412ms |

| 0 / 0 |
