powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / ORM vs sql
451 сообщений из 451, показаны все 19 страниц
ORM vs sql
    #37582112
turbovegan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть небольшая база данных из нескольких таблиц. Доступ к БД должен осуществляться через встраиваемый в приложение движок, а не сервер. В разрабатываемой на C# небольшой информационной системе, DataGridView должен осуществлять редактирование одновременно нескольких таблиц (записи из разных таблиц объединенные при помощи JOIN). Фактически нужно чтобы вместо ID человека, например, пользователь работал с его именем и т.д.
В C# для работы с базами данных существует много инструментов, и я, не зная их особенностей и не имея опыта работы, просто теряюсь в выборе. В том числе колеблюсь в выборе между sqlite и sql server compact edition (пока что последний настораживает отсутствием представлений).
Пробовал EF, строго типизированные DataSet'ы, используя мастер из Visual Studio. Только там все легко и понятно, когда дело касается привязки одиночной таблицы к контролам. В итоге пришел к выводу, что мне проще будет вручную делать нужные мне запросы из БД, запихивать данные в свои объекты, и дальше уже работать с ними как мне захочется.
Задача, я полагаю, стандартная. Поэтому, кто уже имел опыт, пожалуйста, напишите как бы вы писали подобную систему.
...
Рейтинг: 0 / 0
ORM vs sql
    #37582163
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
turbovegan,

Есть подозрение, что под словом ORM часто понимают любой построитель забросов. А это не так - ORM-требует понимание концепции, под которую он создавался. (а именно Rich DDD). Без него тоже работает, но смысл зачастую теряется. Поэтому если готовы это изучать - то вперёд.
Иначе поищите себе что-нибудь попроще, типа BLToolkit.
...
Рейтинг: 0 / 0
ORM vs sql
    #37582252
Фотография Asm64D
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по сабжу, понравилось высказывание моего коллеги: "ORM - от лукавого..." (с)
...
Рейтинг: 0 / 0
ORM vs sql
    #37582322
Barkan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
turbovegan,

Что может быть проще создания DAL?
Пиши класс со статическими методами типа:

public static listMyEntity SelectRows() ...
public static MyEntity SelectRow(int ID) ...
public static int InsertRow(MyEntity) ...
public static int UpdateRow(MyEntity) ...
public static int DeleteRow(int ID) ...

И не морочь себе голову. Ж:)
...
Рейтинг: 0 / 0
ORM vs sql
    #37582389
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Asm64Dпо сабжу, понравилось высказывание моего коллеги: "ORM - от лукавого..." (с)
Осталось понять критерии "лукавости" :)
...
Рейтинг: 0 / 0
ORM vs sql
    #37582427
turbovegan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответы.

На самом деле я еще начал загонять себя в рамки того, что можно сделать мастером VS. А ведь те же строго типизированные DataSet'ы и нужные адаптеры я могу написать сам.

Еще вопрос тогда по теме. Чему из всех имеющихся технологий стоит посвятить время на изучение? Все-таки это мощные средства, изучение которых должно в перспективе окупиться при разработке новых систем. EF?
...
Рейтинг: 0 / 0
ORM vs sql
    #37582460
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
turbovegan,

мой выбор - настоящий ORM, в частности - NHibernate. Но это потребует много усилий на изучение. Впрочем, как и EF. Датасеты - фтопку.

А уж дальше решать вам. Почитайте, подумайте, что вам надо. Тогда и решайте.
...
Рейтинг: 0 / 0
ORM vs sql
    #37582579
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изучайте LINQ и LINQ-to-SQL + EF. NHibernate и прочие ОРМы из прошлого века больше не нужны.
...
Рейтинг: 0 / 0
ORM vs sql
    #37582645
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КИзучайте LINQ и LINQ-to-SQL + EF. NHibernate и прочие ОРМы из прошлого века больше не нужны.
Ваша информация пресыщена понтами. Есть много проблем, которые LINQ и EF никак не решают.
...
Рейтинг: 0 / 0
ORM vs sql
    #37582652
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SolYUtorВаша информация пресыщена понтами.Да.
SolYUtorЕсть много проблем, которые LINQ и EF никак не решают.Всё что не решает LINQ решает SQL. Так всегда было - так всегда будет. Не получается написать на C++ - пришем на ассемблере. Не получается написать на LINQ - пишем на SQL.
...
Рейтинг: 0 / 0
ORM vs sql
    #37582711
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУAsm64Dпо сабжу, понравилось высказывание моего коллеги: "ORM - от лукавого..." (с)
Осталось понять критерии "лукавости" :)
Программирование - тоже от него. Раньше сидела себе одна тётка в бухгалтерии и считала всё на счётах с костяшками. А сейчас сидит какая-то непонятная куча баб и девок за компьютерами, и, всё равно, у них что-то вечно не сходится. :(
...
Рейтинг: 0 / 0
ORM vs sql
    #37582718
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КВсё что не решает LINQ решает SQL. Так всегда было - так всегда будет. Не получается написать на C++ - пришем на ассемблере. Не получается написать на LINQ - пишем на SQL.
Например, LINQ и SQL решают проблему синхронизации распределенного кеша второго уровня (да и кеша второго уровня вообще)
...
Рейтинг: 0 / 0
ORM vs sql
    #37582808
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SolYUtorНапример, LINQ и SQL решают проблему синхронизации распределенного кеша второго уровня (да и кеша второго уровня вообще) Это да. И контрола DataGrid там тоже нет.
...
Рейтинг: 0 / 0
ORM vs sql
    #37583132
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SolYUtorturbovegan,

Есть подозрение, что под словом ORM часто понимают любой построитель забросов. А это не так - ORM-требует понимание концепции, под которую он создавался. (а именно Rich DDD). Без него тоже работает, но смысл зачастую теряется. Поэтому если готовы это изучать - то вперёд.
Иначе поищите себе что-нибудь попроще, типа BLToolkit.

И что же такого богатого в настоящем ORM? Расскажи, как этот маппер поможет в обычном и простом варианте:
- Вася Пупкин может создавать накладную и опубликовывать ее для согласования с вышестоящим менеджером. После опубликования, он не имеет возможности ее редактировать.
- Перед сохранением должна выполняться проверка на отсутствие дубликатов в деталировке. Если дубли обнаружены, то взбодрить нужный интерфейс, чтобы на форме сразу отображалась информация об ошибках. Это простой вариант, а в общем случае нужна система с асинхронной проверкой как на сервере так и на клиенте, с возможностью связанных правил и тд.
- Вышестоящий менеджер может только подписать или отправить обратно на корректировку.
- У всех заинтересованных лиц должны появляться сообщения или e-mail c уведомлениями после изменения статуса накладной.
- Муся, не имеет никакого доступа к накладным, может просматривать только задание на уборку помещений.
- Интересуют не частные варианты, а общий случай - одни и те же объекты для Winforms, Asp, Wpf, Silverlight
- 2x и 3х звенки с и возможностью интеграции с внешними сервисами.
...
Рейтинг: 0 / 0
ORM vs sql
    #37583159
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa,

Говорят, что, если у тебя ОРМ, то можешь беспрепятственно заниматься переносом сервера с одного на другой и масштабированием.
Конечно, это - умереть со смеха, но такое таки лохам впаривают. :)
...
Рейтинг: 0 / 0
ORM vs sql
    #37583177
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeГоворят, что, если у тебя ОРМ, то можешь беспрепятственно заниматься переносом сервера с одного на другой и масштабированием. Говорят, что кроссубдное решение это миф, а легкопереносимое - это реальность.
...
Рейтинг: 0 / 0
ORM vs sql
    #37583198
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaЕще один пункт: Изменение бизнес-логики и структуры данных по требованию заказчика на любом этапе разработки вплоть до внедрения.
...
Рейтинг: 0 / 0
ORM vs sql
    #37583212
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa,

Перечисленные задачи не относятся к ORM в частности, и к Data Access в общем.
...
Рейтинг: 0 / 0
ORM vs sql
    #37583247
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SolYUtorSeVa,

Перечисленные задачи не относятся к ORM в частности, и к Data Access в общем.ORM и DataAccess не нужны. Silverlight наше всё.
...
Рейтинг: 0 / 0
ORM vs sql
    #37583259
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОРМ - ерунда
...
Рейтинг: 0 / 0
ORM vs sql
    #37583643
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SolYUtorSeVa,

Перечисленные задачи не относятся к ORM в частности, и к Data Access в общем.
А что же тогда относится к ORM? Банальный, тупой маппинг. Где же rich?
...
Рейтинг: 0 / 0
ORM vs sql
    #37584008
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КSilverlight наше всё.
Так он же умер?
...
...
Рейтинг: 0 / 0
ORM vs sql
    #37584031
GFX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

Прикольная фотка! Это настоящая фотка?
Можете ссылку на источник кинуть. Заранее спасибо!
...
Рейтинг: 0 / 0
ORM vs sql
    #37584046
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
ORM vs sql
    #37585576
Bob Dylan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SolYUtor,
в смысле, кто-то реально работает с кэшем второго уровня?
...
Рейтинг: 0 / 0
ORM vs sql
    #37585606
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bob DylanSolYUtor,
в смысле, кто-то реально работает с кэшем второго уровня?

В смысле я реально работаю с кешем второго уровня.
...
Рейтинг: 0 / 0
ORM vs sql
    #37598635
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosОРМ - ерунда
прошу Сатисфакция. Свои слова нужно аргументировать, а не заниматься вбросами.

И.
Что вы ответите вот на этот кусочек.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
public abstract class ListRecordItem<T> : GridIBindingListRecordPrototype where T : EntityObject
    {
        T mappedobject;
        T fRecordCache;


        public virtual string ObjectContextName { get; set; }
        public ListRecordItem() : this(Activator.CreateInstance(typeof(T)) as T)
        {
            
        }
        public ListRecordItem(EntityObject eObj)
            : base(eObj)
        {
            Assign(eObj);
            Committed = (eObj.EntityKey != null);
        }
        public override void BeginEdit()
        {
            if (IsValidate())
            {
                MapObject(RecordCache as T, mappedobject);
            }
        }

        public override void CancelEdit()
        {
            if (Editing)
            {
                Assign(RecordCache);
                Editing = false;
            }
            base.CancelEdit();
        }
        public override void EndEdit()
        {
            base.EndEdit();
        }
        
        public override void Assign(EntityObject eObj)
        {
            if (eObj == null) return;
            Editing = false;
            if (mappedobject == null || mappedobject.EntityKey == null) { mappedobject = eObj as T; }
            else
            {
                MapObject(mappedobject, eObj as T);
            }
        }

        public abstract void MapObject(T to, T from);

        public override EntityObject RecordCache
        {
            get
            {
                if (fRecordCache == null) fRecordCache = Activator.CreateInstance(typeof(T)) as T;
                return fRecordCache;
            } 
        }

        public override bool CanDelete()
        {
            return true;
        }

        public override bool CanEdit()
        {
            throw new NotImplementedException();
        }

        public override bool IsNew()
        {
            return (mappedobject.EntityKey == null);
        }

        public override EntityObject MappedObject
        {
            get
            {
                return mappedobject;
            }
            set
            {
                mappedobject = value as T;
            }
        }

        public override void Commit()
        {
            if (Editing && IsValidate())
            {
                using (var context = Activator.CreateInstance(Type.GetType(this.ObjectContextName)) as ObjectContext)
                {
                    (context.Connection as EntityConnection).StoreConnection.ConnectionString = ConnectionStringState.GetEntityConnectionString();
                    T m = MappedObject as T;
                    if (IsNew())
                    {
                        context.AddObject(m.GetType().Name, m);
                        try
                        {
                            context.SaveChanges(SaveOptions.AcceptAllChangesAfterSave);
                            Committed = true;
                            Editing = false;
                            Console.WriteLine("Commit");
                            Assign(m);
                        }
                        catch (OptimisticConcurrencyException ex) { Console.WriteLine(ex.Message); }
                        catch (EntityCommandExecutionException ex) { Console.WriteLine(ex.Message); }
                        catch (Exception ex) { Console.WriteLine(ex.Message); }
                    }
                    else
                    {
                        try
                        {

                            context.AttachTo(m.EntityKey.EntitySetName, m);
                        }
                        catch (Exception ex)
                        { Console.WriteLine(ex.Message); }
                        context.ObjectStateManager.ChangeObjectState(m, EntityState.Modified);
                        try
                        {
                            context.SaveChanges(SaveOptions.AcceptAllChangesAfterSave);
                            System.Reflection.PropertyInfo propinfo = m.GetType().GetProperty("recaff");
                            if (propinfo != null)
                            {
                                object o = propinfo.GetValue(m, System.Reflection.BindingFlags.Public, null, null, null);
                                if (int.Parse(o.ToString()) == 0)
                                    UserMessanger.WarningUserConcurrencyWrite();
                            }
                            Assign(m);
                            Committed = true;
                            Editing = false;
                            Console.WriteLine("Commit");
                        }
                        catch (OptimisticConcurrencyException ex) { Console.WriteLine(ex.Message); }
                        catch (EntityCommandExecutionException ex) { Console.WriteLine(ex.Message); }
                        catch (Exception ex) { Console.WriteLine(ex.Message); }
                    }
                }
            }
        }

        public override void Remove()
        {
            if (!IsNew())
                using (var context = Activator.CreateInstance(Type.GetType(this.ObjectContextName)) as ObjectContext)
                {
                    (context.Connection as EntityConnection).StoreConnection.ConnectionString = ConnectionStringState.GetEntityConnectionString();
                    T m = MappedObject as T;
                    context.AttachTo(m.EntityKey.EntitySetName, m);
                    context.ObjectStateManager.ChangeObjectState(m, EntityState.Deleted);
                    try
                    {
                        context.SaveChanges(SaveOptions.AcceptAllChangesAfterSave);
                    }
                    catch (OptimisticConcurrencyException ex) { Console.WriteLine(ex.Message); }
                    catch (EntityCommandExecutionException ex) { Console.WriteLine(ex.Message); }
                    catch (Exception ex) { Console.WriteLine(ex.Message); }
                }
        }

        public override bool IsValidate()
        {
            return false;
        }

        public override void SetDefaultValues(params object[] args)
        {
            throw new NotImplementedException();
        }

        public override object ValidateRecord()
        {
            throw new NotImplementedException();
        }
    }
...
Рейтинг: 0 / 0
ORM vs sql
    #37598640
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
описался мальца, в смысле
япрошу Cатисфакции
...
Рейтинг: 0 / 0
ORM vs sql
    #37598674
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Proga,

Ну ерунда, она ерунда и есть.
...
Рейтинг: 0 / 0
ORM vs sql
    #37598677
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeProga,

Ну ерунда, она ерунда и есть.
где факты?
...
Рейтинг: 0 / 0
ORM vs sql
    #37598848
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Proga,

зачем ты запостил эту портянку?
на ответную :)
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
        public void Генерация_Нормативного_процесса_из_Структуры_изделия_и_Основного_поставщика(Guid contextId, YSBMESDataSet ds, DataTable dt, DataRow dr)
        {
            main.LoadMacroType("Процесс нормативный");

            t_sm = main.GetObjectIDByObjectName("Тип смещения", "Дни");
            t_po = main.GetObjectIDByObjectName("Тип потока", "Материальный");
            t_sv = main.GetObjectIDByObjectName("Тип связи", "КонецВНачало");

            DataRow tpr = ds.Tables["Процесс нормативный"].NewRow();
            tpr["РодительИД"] = DBNull.Value;
            tpr["Наименование"] = "Изготовление " + dr["Наименование"].ToString();
            tpr["Тип смещения"] = t_sm;
            //            tpr["Актуальность"] = true;
            ds.Tables["Процесс нормативный"].Rows.Add(tpr);

            var compozits = main.GetAgregatedTypesByName("Составное изделие");
            var matandpki = main.GetAgregatedTypesByName("Материалы и ПКИ");

            if (!matandpki.Contains("'" + dr["ТипИД"].ToString() + "'")) СоздатьНПизСтруктурыиОП(ds, dr, (Guid)tpr["ИД"], Guid.Empty);

            main.SaveDS();
        }
...
Рейтинг: 0 / 0
ORM vs sql
    #37598861
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosВсё ещё кипятите Пора уже начинать пользоваться строгой типизацией при работе с данными.
...
Рейтинг: 0 / 0
ORM vs sql
    #37598872
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К,

да ладно
все строго типизировано в контракте
...
Рейтинг: 0 / 0
ORM vs sql
    #37598873
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos
Эпическая сила... Пестец пришел заметно...
...
Рейтинг: 0 / 0
ORM vs sql
    #37598875
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosвсе строго типизировано в контракте
...
Рейтинг: 0 / 0
ORM vs sql
    #37598879
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУViPRos
Эпическая сила... Пестец пришел заметно...
...
Рейтинг: 0 / 0
ORM vs sql
    #37598883
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
:):):)
...
Рейтинг: 0 / 0
ORM vs sql
    #37599120
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosProga,

зачем ты запостил эту портянку?
на ответную :)
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
        public void Генерация_Нормативного_процесса_из_Структуры_изделия_и_Основного_поставщика(Guid contextId, YSBMESDataSet ds, DataTable dt, DataRow dr)
        {
            main.LoadMacroType("Процесс нормативный");

            t_sm = main.GetObjectIDByObjectName("Тип смещения", "Дни");
            t_po = main.GetObjectIDByObjectName("Тип потока", "Материальный");
            t_sv = main.GetObjectIDByObjectName("Тип связи", "КонецВНачало");

            DataRow tpr = ds.Tables["Процесс нормативный"].NewRow();
            tpr["РодительИД"] = DBNull.Value;
            tpr["Наименование"] = "Изготовление " + dr["Наименование"].ToString();
            tpr["Тип смещения"] = t_sm;
            //            tpr["Актуальность"] = true;
            ds.Tables["Процесс нормативный"].Rows.Add(tpr);

            var compozits = main.GetAgregatedTypesByName("Составное изделие");
            var matandpki = main.GetAgregatedTypesByName("Материалы и ПКИ");

            if (!matandpki.Contains("'" + dr["ТипИД"].ToString() + "'")) СоздатьНПизСтруктурыиОП(ds, dr, (Guid)tpr["ИД"], Guid.Empty);

            main.SaveDS();
        }



это у тебя портянка, причём вызывает рвотный рефлекс (ассоциация с 1С), а я выложил код на базе которого можно сварганить систему быстрого сохранения данных объекта сгенерированного на базе EF.
надо только в конструкторе выбрать маппинг свойств на параметры.
...
Рейтинг: 0 / 0
ORM vs sql
    #37599128
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и ещё раз почему?
ViPRos ОРМ - ерунда

Факты!
...
Рейтинг: 0 / 0
ORM vs sql
    #37599152
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Proga
Код: c#
1.
Activator.CreateInstance(typeof(T)) as T



Код: c#
1.
return new T();



ListRecordItem
Код: c#
1.
where T : EntityObject, new()

...
Рейтинг: 0 / 0
ORM vs sql
    #37599214
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Proga,

то что ты выложил - код для кода
покажи фаулеру какму нить
а на 1с вся раша пишет
...
Рейтинг: 0 / 0
ORM vs sql
    #37599332
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУProga
Код: c#
1.
Activator.CreateInstance(typeof(T)) as T



Код: c#
1.
return new T();



+
ListRecordItem
Код: c#
1.
where T : EntityObject, new()


сэнкс, заработался однако. башка ужо не варит.

2 ViPRos: ты не увиливай. факты про ОРМ- ерунда жду.
...
Рейтинг: 0 / 0
ORM vs sql
    #37599568
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosа на 1с вся раша пишет
Правильно, стаду хороший тон противопоказан. На кой он им, пущай пишут.

...
...
Рейтинг: 0 / 0
ORM vs sql
    #37599813
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProgaViPRosОРМ - ерунда
прошу Сатисфакция. Свои слова нужно аргументировать, а не заниматься вбросами.

И.
Что вы ответите вот на этот кусочек.


Спрячь и никому не показывай
...
Рейтинг: 0 / 0
ORM vs sql
    #37599903
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
If you let the O/RM command you, you’re lost .
ORM - туфтаThe code that flows data between the model and the database can be written by you (via stored procedures, for example) or by some O/RMs. O/RMs, though, tend to be invasive and dictate too many development and design aspects.

O/RMs can save a lot of work and are a great tool indeed, but poor understanding (or just poor explanation) of their role helps create the domain/database dilemma and makes it harsher every day
...
Рейтинг: 0 / 0
ORM vs sql
    #37599960
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVahe code that flows data between the model and the database can be written by you (via stored procedures, for example) or by some O/RMs. O/RMs, though, tend to be invasive and dictate too many development and design aspects.

Да ладно? Вот прям так диктует аспекты дизайна, и лезет в код? Но даже это было бы хорошо, по сравнению с той феерией бессистемных sql-ляпов, коими богаты многие проекты, и этот форум в частности.

SeVaO/RMs can save a lot of work and are a great tool indeed, but poor understanding (or just poor explanation) of their role helps create the domain/database dilemma and makes it harsher every day


Краткий перевод: если вы не умеете программировать- то программировать плохо получается.
У других хоть какие-то аргументы есть.
Опираться на мнение мелкомягких, которые изобретают кривое колесо, идейно стыренное из open source проектов сообщества (nunit, EF, Unity и т.д.) я бы не стал.
...
Рейтинг: 0 / 0
ORM vs sql
    #37599967
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaDino Esposito: Microsoft .NET: Architecting Applications for the EnterpriseИнтересная ссылка
Dino EspositoНаша позиция в книге - O/RM это просто средство. Нельзя требовать его наличия, и оно не должно влиять на структуру баз данных или моделей данных. Если Вы позволяете O/RM командовать вашей жизнью, вы неудачник. Это и есть настоящая болевая точка.
...
Рейтинг: 0 / 0
ORM vs sql
    #37599971
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WorobjoffSeVaDino Esposito: Microsoft .NET: Architecting Applications for the EnterpriseИнтересная ссылка
Dino EspositoНаша позиция в книге - O/RM это просто средство. Нельзя требовать его наличия, и оно не должно влиять на структуру баз данных или моделей данных. Если Вы позволяете O/RM командовать вашей жизнью, вы неудачник. Это и есть настоящая болевая точка.

Все правильно. Все ORMисты - лузеры.

2 SolYUtor. Аргументы а'la "ORM лучше наших кривых рук" - это для бедных.
...
Рейтинг: 0 / 0
ORM vs sql
    #37600032
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сева, готов ли ты продемонстрировать достойную альтернативу?
...
Рейтинг: 0 / 0
ORM vs sql
    #37600037
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WorobjoffDino EspositoЕсли Вы позволяете O/RM командовать вашей жизнью, вы неудачник. Это и есть настоящая болевая точка.
Осталось только понять, что есть командование жизнью.
...
Рейтинг: 0 / 0
ORM vs sql
    #37600042
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУСева, готов ли ты продемонстрировать достойную альтернативу?
Тебе ничего не поможет. Ковыряйся дальше в Tables
...
Рейтинг: 0 / 0
ORM vs sql
    #37600068
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaМСУСева, готов ли ты продемонстрировать достойную альтернативу?
Тебе ничего не поможет. Ковыряйся дальше в Tables
А другим тоже не в состоянии ничего предложить?
...
Рейтинг: 0 / 0
ORM vs sql
    #37600069
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУWorobjoffпропущено...

Осталось только понять, что есть командование жизнью.Не хочу пилить опилки тут и так все понятно:
Какую ставим себе цель - ту и достигаем.
Серебряной пули не существует.
Кто не хочет в это поверить и ищет ее - еще не совсем пропал.
Кто самоутверждается за счет серебряной пули - тот пропал, т.к. подменил цели.
...
Рейтинг: 0 / 0
ORM vs sql
    #37600076
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Worobjoff
Переливание из пустого в порожнее без какой-либо конкретики. Разговор ни о чем.
...
Рейтинг: 0 / 0
ORM vs sql
    #37600109
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы говорить, что ОРМ зло, нужно предложить альтернативу.
Итого, Сева сдулся, что-то там побулькав, Воробьев постит какую-то полутеоретическую херь.
По существу - задача: нужно обратиться запросом к таблицам, сделать фильтр с пейджингом. Что использовать для доступа к БД и исполнения запроса?
...
Рейтинг: 0 / 0
ORM vs sql
    #37600214
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЧтобы говорить, что ОРМ зло, нужно предложить альтернативу.
Итого, Сева сдулся, что-то там побулькав, Воробьев постит какую-то полутеоретическую херь.
По существу - задача: нужно обратиться запросом к таблицам, сделать фильтр с пейджингом. Что использовать для доступа к БД и исполнения запроса?Мы тут аннотацию к одной очень важной книжонке обсуждали (если ты еще не в курсе).

А "по существу"... Задача - на 5 копеек

Настроить SelectCommand.CommandText и UpdateCommand.CommandText.
Можно писать обновляемое представление, а можно не писать.
Можно хранимки написать, можно не писать.
Можно все зафигачить мышкопрограммированием - сделать датасет с DataTable для грида и DataTable для пейджера. В качестве пейджера BindingNavigator использовать.

Делается на коленке.
...
Рейтинг: 0 / 0
ORM vs sql
    #37600230
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WorobjoffНастроить SelectCommand.CommandText и UpdateCommand.CommandText.
Хардкодить сиквел код, размазывая эту порнографию по приложению? А типизация идет в топку? Бойтесь рефакторинга. Занавес.
WorobjoffДелается на коленке.
Делается без ума.
...
Рейтинг: 0 / 0
ORM vs sql
    #37600235
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУДелается без ума.А это уже - вопрос философский.
Хочется - делай с умом.
Очень хочется - делай с горем от ума.
...
Рейтинг: 0 / 0
ORM vs sql
    #37600246
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WorobjoffА это уже - вопрос философский.
Работать с типизированными объектами - философия? По-моему это нормальная практика.
WorobjoffХочется - делай с умом.
ORM.
...
Рейтинг: 0 / 0
ORM vs sql
    #37600514
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУWorobjoffА это уже - вопрос философский.
Работать с типизированными объектами - философия? По-моему это нормальная практика.
WorobjoffХочется - делай с умом.
ORM.

Муся, ты уже показывал свою нормальную практику времен Net 1.0
...
Рейтинг: 0 / 0
ORM vs sql
    #37600577
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa,
Внешне тут как раз я - консерватор.
А так оно и есть, когда вопрос касается обучения молодых программистов.
Что лучше?
Кода студент через год уже пишет и отдает заказчику программы,
или когда он через год умеет только производить впечатление, но ничего так и не написано?

Я (почему-то) даже и не сомневаюсь что для решения одних и тех же задач уровень квалификации программиста работающего с ORM должен быть значительно выше чем в ADO.NET.
И это даже не смешно когда ты людей набираешь на будущий проект.
...
Рейтинг: 0 / 0
ORM vs sql
    #37600582
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaМуся, ты уже показывал свою нормальную практику времен Net 1.0
Альтернативы-таки не будет? Бульбы не в счёт.
...
Рейтинг: 0 / 0
ORM vs sql
    #37600850
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WorobjoffSeVa,
Внешне тут как раз я - консерватор.
А так оно и есть, когда вопрос касается обучения молодых программистов.
Что лучше?
Кода студент через год уже пишет и отдает заказчику программы,
или когда он через год умеет только производить впечатление, но ничего так и не написано?

Я (почему-то) даже и не сомневаюсь что для решения одних и тех же задач уровень квалификации программиста работающего с ORM должен быть значительно выше чем в ADO.NET.
И это даже не смешно когда ты людей набираешь на будущий проект.
Проблема известная. Нужен framework,базаданщик, модели, которые предоставляют все необходимые интерфейсы для разрботчиков UI, тогда можно сажать любого пионера и даже MCУ с кривыми руками не сможет нанести урон проекту
...
Рейтинг: 0 / 0
ORM vs sql
    #37600880
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ситуация осложняется тем, что психическое расстройство Севы неизлечимо. Она будет много говорить о том, что плохо, но на вопросы что хорошо - будет вжимать хвост к пятой точке и переключаться на другие темы.
...
Рейтинг: 0 / 0
ORM vs sql
    #37600926
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaПроблема известная. Нужен framework,базаданщик, модели, которые предоставляют все необходимые интерфейсы для разрботчиков UI, тогда можно сажать любого пионера и даже MCУ с кривыми руками не сможет нанести урон проектуЧетвертый сон Веры Павловны.
...
Рейтинг: 0 / 0
ORM vs sql
    #37600995
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУСитуация осложняется тем, что психическое расстройство Севы неизлечимо. Она будет много говорить о том, что плохо, но на вопросы что хорошо - будет вжимать хвост к пятой точке и переключаться на другие темы.

Чего мне не хватает под Новый год, так это что-то с тобой обсуждать ;-)
У меня нет вопросов, а твои глубоко по барабану

Всех с Новым годом!!!
...
Рейтинг: 0 / 0
ORM vs sql
    #37600996
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WorobjoffЯ (почему-то) даже и не сомневаюсь что для решения одних и тех же задач уровень квалификации программиста работающего с ORM должен быть значительно выше чем в ADO.NET.


По своему собственному опыту могу сказать, что вы в корне не правы. Работа с L2S, а, особенно, с EF (L2S не всегда верно строит запросы) сильно ускоряла разработку и понизила требования к разработчику в конторе, в которой я работаю)
...
Рейтинг: 0 / 0
ORM vs sql
    #37601007
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchWorobjoffЯ (почему-то) даже и не сомневаюсь что для решения одних и тех же задач уровень квалификации программиста работающего с ORM должен быть значительно выше чем в ADO.NET.


По своему собственному опыту могу сказать, что вы в корне не правы. Работа с L2S, а, особенно, с EF (L2S не всегда верно строит запросы) сильно ускоряла разработку и понизила требования к разработчику в конторе, в которой я работаю)А что именно вы разрабатывали?
2) Для кого?
3) Это был сайт или это было деск-топ приложение?
4) Какая архитектура?
5) И что именно разрабатывали до включения EF в свои средства разработки? Какой был там проект?
...
Рейтинг: 0 / 0
ORM vs sql
    #37601024
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Биллинговая система для водоканала города с миллионом+ жителей
3) Десктоп
4) Клиент-сервер
5) Я как раз и начал работу с этой задачи, так что опираюсь на комментарии начальства.
...
Рейтинг: 0 / 0
ORM vs sql
    #37601046
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати вообще не понятно, причем тут я) Что проще написать - строго типизированный LINQ запрос (кроме L2S/EF я ни с чем на данный момент не работал, я в курсе что не все ORM имеют реализацию LINQ) или текст SQL запроса + передачу параметров в него?
...
Рейтинг: 0 / 0
ORM vs sql
    #37601184
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaМСУСитуация осложняется тем, что психическое расстройство Севы неизлечимо. Она будет много говорить о том, что плохо, но на вопросы что хорошо - будет вжимать хвост к пятой точке и переключаться на другие темы.

Чего мне не хватает под Новый год, так это что-то с тобой обсуждать ;-)
У меня нет вопросов, а твои глубоко по барабану

Всех с Новым годом!!!

С Новым годом, лапонька! )
...
Рейтинг: 0 / 0
ORM vs sql
    #37601369
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch1) Биллинговая система для водоканала города с миллионом+ жителей
3) Десктоп
4) Клиент-сервер
5) Я как раз и начал работу с этой задачи, так что опираюсь на комментарии начальства.Вопрос не раскрыт:
КАК вы измерили понижение требований к квалификации программистов?

Уволили дядек и наняли вместо них студентов, и переписали набело старый биллинг на 3 месяца быстрее?
...
Рейтинг: 0 / 0
ORM vs sql
    #37601380
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchКстати вообще не понятно, причем тут я) Что проще написать - строго типизированный LINQ запрос (кроме L2S/EF я ни с чем на данный момент не работал, я в курсе что не все ORM имеют реализацию LINQ) или текст SQL запроса + передачу параметров в него?Мне проще отладить запрос в редакторе SQL. Особенно когда запросов в БД много и когда они глубоко структурированы. Более того, многие аналитики владеют SQL, и нередко - получше чем студенты-программисты.
...
Рейтинг: 0 / 0
ORM vs sql
    #37601693
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сева, сынок, побухал? А теперь расскажи нам, что есть хорошо в практике доступа к данным.
...
Рейтинг: 0 / 0
ORM vs sql
    #37601734
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WorobjoffLelouchКстати вообще не понятно, причем тут я) Что проще написать - строго типизированный LINQ запрос (кроме L2S/EF я ни с чем на данный момент не работал, я в курсе что не все ORM имеют реализацию LINQ) или текст SQL запроса + передачу параметров в него?Мне проще отладить запрос в редакторе SQL. Особенно когда запросов в БД много и когда они глубоко структурированы. Более того, многие аналитики владеют SQL, и нередко - получше чем студенты-программисты.

Правило 80% помните?) 80% запросов обычно настолько просты, что на время их написания больше влияют создания объектов команды и передача в них параметров, нежели чем собственно написания кода SQL.
Worobjoffмногие аналитики владеют SQL, и нередко - получше чем студенты-программисты
Вы для запросов
Код: sql
1.
SELECT * FROM [TABLE] WHERE [DATE1] > @date1 AND [DATE2] = @date2 

тоже аналитиков используете?)

А большмнство запросов в большинстве систем именно такие )))
...
Рейтинг: 0 / 0
ORM vs sql
    #37601742
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WorobjoffУволили дядек и наняли вместо них студентов, и переписали набело старый биллинг на 3 месяца быстрее?
За 6 месяцев переписали программу которую разрабатывали и развивали года 4.
...
Рейтинг: 0 / 0
ORM vs sql
    #37601827
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchПравило 80% помните?) 80% запросов обычно настолько просты...
+1, это называется рутинный код. ORM как-раз искореняет это зло.
...
Рейтинг: 0 / 0
ORM vs sql
    #37601850
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchПравило 80% помните?) 80% запросов обычно настолько просты, что на время их написания больше влияют создания объектов команды и передача в них параметров, нежели чем собственно написания кода SQL.


А остальные 20% сводят всю затею на нет.
...
Рейтинг: 0 / 0
ORM vs sql
    #37601910
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaLelouchПравило 80% помните?) 80% запросов обычно настолько просты, что на время их написания больше влияют создания объектов команды и передача в них параметров, нежели чем собственно написания кода SQL.


А остальные 20% сводят всю затею на нет.

В чем же?)
context.ExecuteStoreQuery (для EF) конечно не лучший путь, но позволяет спокойно использовать SQL. Или религия не позволяет?
...
Рейтинг: 0 / 0
ORM vs sql
    #37602448
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaА остальные 20% сводят всю затею на нет.
А обосновать?
...
Рейтинг: 0 / 0
ORM vs sql
    #37602580
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прикольно! Сегодня на эту же сабжевую тему спорил в форуме "ява".
Короче, фигня всё это. Учите SQL, и пользуйте его.
...
Рейтинг: 0 / 0
ORM vs sql
    #37602628
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeПрикольно! Сегодня на эту же сабжевую тему спорил в форуме "ява".
Короче, фигня всё это. Учите SQL, и пользуйте его.

А обосновать? (с) МСУ.
P.S. Тут вроде никто не утверждает, что SQL знать не надо)
...
Рейтинг: 0 / 0
ORM vs sql
    #37602679
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch,

Обосновать - только практикой. Хелловорлдом, например. :)
...
Рейтинг: 0 / 0
ORM vs sql
    #37602728
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeLelouch,

Обосновать - только практикой. Хелловорлдом, например. :)

Да, использовать для Hello, world ORM действительно излишне... Убедили...
...
Рейтинг: 0 / 0
ORM vs sql
    #37603567
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeКороче, фигня всё это. Учите SQL, и пользуйте его.

Lelouch80% запросов обычно настолько просты, что ...

Ну выучил я

Код: sql
1.
SELECT * FROM TABLE WHERE ...



... выучил. Зазубрил, можно сказать. А что дальше? В "бой" с этими познаниями?
...
Рейтинг: 0 / 0
ORM vs sql
    #37604033
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУViPRos
Эпическая сила... Пестец пришел заметно...
муся,а как можно строго типизировать общение без протокола (контракта)?
вот ты изголяешься как хошь на клиенте, строишь всякие маппинги и т.д.
а что будет если я на стороне сервера просто убью пару табличек (которые нужны на клиенте и все красиво отмаппено и строго так типизировано) после всех потуг на стороне клиента?
...
Рейтинг: 0 / 0
ORM vs sql
    #37604087
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

А Вы можете на пальцах мне объяснить чем лучше ОРМ простых SQL-запросов к базе?
...
Рейтинг: 0 / 0
ORM vs sql
    #37604367
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchSELECT * FROM [TABLE] WHERE [DATE1] > @date1 AND [DATE2] = @date2

А большмнство запросов в большинстве систем именно такие )))С вашими системами все понятно.
Дальше можно не продолжать. )))
...
Рейтинг: 0 / 0
ORM vs sql
    #37604389
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchWorobjoffУволили дядек и наняли вместо них студентов, и переписали набело старый биллинг на 3 месяца быстрее?
За 6 месяцев переписали программу которую разрабатывали и развивали года 4.Это круто! Переписать программу набело в 8 раз быстрее.

Т.к. есть правило "один-к-одному": Переписание системы набело вместе с внедрением занимает столько же времени сколько было потрачено на старую версию. Не я придумал, правило Спольски или Макконнелла. Лично я видел по крайней мере 4 примера из жизни подтвердивших это правило.

Это реально круто, даже интересно стало узнать подробности.
...
Рейтинг: 0 / 0
ORM vs sql
    #37604431
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WorobjoffLelouchSELECT * FROM [TABLE] WHERE [DATE1] > @date1 AND [DATE2] = @date2

А большмнство запросов в большинстве систем именно такие )))С вашими системами все понятно.
Дальше можно не продолжать. )))

То есть в ваших системах, чтобы показать пользователю какой-нибудь список необходимо использовать запросы с десятками join, курсоры, etc.?
И естественно все эти запросы надо пропускать через аналитиков.. )
...
Рейтинг: 0 / 0
ORM vs sql
    #37604443
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeМСУ,

А Вы можете на пальцах мне объяснить чем лучше ОРМ простых SQL-запросов к базе?
Сравните
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
var conection = new SqlConection("<conection string>");
var command = conection.CreateCommand();
command.CommantText = @"SELECT * FROM [TABLE] WHERE [DATE1] > @date1 AND [DATE2] = @date2"
command.Parameters.Add(new SqlParameter("@date1", DateTime.Now));
command.Parameters.Add(new SqlParameter("@date2", DateTime.Now));
var listOfResult = new List<Result>();
using(var reader = command.ExecuteReader)
{
	while(reader.Read())
	{
		var temp = new Result()
		{
			Field1 = (int)reader["field1"],
			Field2 = reader["field2"] as double?,
			<etc>
		};
		listOfResult.Add(temp);
	}
}


c

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
var context = new MyObjectContext();
var listOfResult = (from obj in context.Table
		   where obj.Date1 > DateTime.Now && obj.Date2 = DateTime.Now
		   select new Result()
		   {
			Field1 = obj.field1,
			Field2 = obj.field2,
			<etc>
		   }).ToList()


Во втором случае можно к тому же обойтись сгенерированным классом. или анонимным.
...
Рейтинг: 0 / 0
ORM vs sql
    #37604455
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchShSergeМСУ,

А Вы можете на пальцах мне объяснить чем лучше ОРМ простых SQL-запросов к базе?
Сравните
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
var conection = new SqlConection("<conection string>");
var command = conection.CreateCommand();
command.CommantText = @"SELECT * FROM [TABLE] WHERE [DATE1] > @date1 AND [DATE2] = @date2"
command.Parameters.Add(new SqlParameter("@date1", DateTime.Now));
command.Parameters.Add(new SqlParameter("@date2", DateTime.Now));
var listOfResult = new List<Result>();
using(var reader = command.ExecuteReader)
{
	while(reader.Read())
	{
		var temp = new Result()
		{
			Field1 = (int)reader["field1"],
			Field2 = reader["field2"] as double?,
			<etc>
		};
		listOfResult.Add(temp);
	}
}


c

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
var context = new MyObjectContext();
var listOfResult = (from obj in context.Table
		   where obj.Date1 > DateTime.Now && obj.Date2 = DateTime.Now
		   select new Result()
		   {
			Field1 = obj.field1,
			Field2 = obj.field2,
			<etc>
		   }).ToList()


Во втором случае можно к тому же обойтись сгенерированным классом. или анонимным.

А что сравнивать? По скорости выполнения ef будет проигрывать минимум в десять раз. С кодогенератором получить готовый код будет не медленней. Это тривиальный случай, а для сложных, пока ты будешь бросать камушки в черный ящик, можно будет протестировать минумум три варианта на чистом sql и выбрать лучший.
...
Рейтинг: 0 / 0
ORM vs sql
    #37604497
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
var listOfResult = new List<Result>();


Так только идиёты делают(Ц).
Все данные должны обрабатываться на SQL-сервере, а выхлоп из них должен получаться именно такой, чтобы данные отобразить именно сейчас и здесь, без прокрутки (в большинстве случаев). Так что, при чём здесь лист и нафиг он вообще нужен - большой вопрос.
...
Рейтинг: 0 / 0
ORM vs sql
    #37604498
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПС. А кода всё равно получится больше. Что коннекшин стринг отменили?
...
Рейтинг: 0 / 0
ORM vs sql
    #37604510
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeПС. А кода всё равно получится больше. Что коннекшин стринг отменили?
Он в app.config ))
...
Рейтинг: 0 / 0
ORM vs sql
    #37604513
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSerge
Код: c#
1.
var listOfResult = new List<Result>();


Так только идиёты делают(Ц).
Все данные должны обрабатываться на SQL-сервере, а выхлоп из них должен получаться именно такой, чтобы данные отобразить именно сейчас и здесь, без прокрутки (в большинстве случаев). Так что, при чём здесь лист и нафиг он вообще нужен - большой вопрос.

Дада, вы правы тут нужен ObservableCollection. И Bindind дата грида. Но, извините, в блокноте мне было лень вспоминать написание. А то, что использование DataTable в случае WPF - прошлый век, признает даже Seva
...
Рейтинг: 0 / 0
ORM vs sql
    #37604532
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosа что будет если я на стороне сервера просто убью пару табличек (которые нужны на клиенте и все красиво отмаппено и строго так типизировано) после всех потуг на стороне клиента?
А что если я сервер со всеми клиентами оболью бензином и подожгу? Твой "випрос" продолжит работу?

ShSergeМСУ, А Вы можете на пальцах мне объяснить чем лучше ОРМ простых SQL-запросов к базе?
Уже 100500 раз объяснял. Вот тут вкратце.

WorobjoffLelouchС вашими системами все понятно. Дальше можно не продолжать. )))
А что понятно-то? Чем Ваша лучше?

SeVaА что сравнивать? По скорости выполнения ef будет проигрывать минимум в десять раз.
А почему не в 20?

SeVaС кодогенератором получить готовый код будет не медленней.
Расшифруй свой потуг мысли.

ShSergeТак только идиёты делают(Ц).
Все данные должны обрабатываться на SQL-сервере, а выхлоп из них должен получаться именно такой, чтобы данные отобразить именно сейчас и здесь, без прокрутки (в большинстве случаев). Так что, при чём здесь лист и нафиг он вообще нужен - большой вопрос.
1. Сергей, изучите L2S-EF. RTFM. А потом мы продолжим про "идиотов".
2. Во-вторых, расшифруйте "данные должны обрабатываться на SQL-сервере". Что и куда там должно?
...
Рейтинг: 0 / 0
ORM vs sql
    #37604542
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ...расшифруйте "данные должны обрабатываться на SQL-сервере". Что и куда там должно?
Там должны обрабатываться данные (!) все. Даже, если напишете 1+2 - только на SQL-сервере. По многим причинам, хотя бы по таким элементарным, что числовые типы совершенно однозначно не маппятся. Примерчики лень искать. Здесь на сайте за предыдущий месяц раза два спрашивали, не помню в каком форуме, но не сишарповом, по-моему.
ПС. Я рад бы похоливарить на эту тему, если Вы не будете вести себя агрессивно, только не сегодня. Уже на форуме про яву накушался хороших слов. :)
...
Рейтинг: 0 / 0
ORM vs sql
    #37604543
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУУже 100500 раз объяснял. Вот тут вкратце.


Начать лучше с этого ORM is the Vietnam of the Computer Science
...
Рейтинг: 0 / 0
ORM vs sql
    #37604544
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouchблокноте мне было лень вспоминать написание. А то, что использование DataTable в случае WPF - прошлый век, признает даже Seva

Этот код будет на серверной стороне, а на клиенте ObservableCollection
...
Рейтинг: 0 / 0
ORM vs sql
    #37604552
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeТам должны обрабатываться данные (!) все. Даже, если напишете 1+2 - только на SQL-сервере.
1. Во-первых, это бред. 1 + 2 можно и не на SQL сервере исполнять. SQL сервер - это хранение данных, а не математический слой.
2. Во-вторых, чем его запрос не угодил? Конкретно по пунктам.
ShSergeПо многим причинам, хотя бы по таким элементарным, что числовые типы совершенно однозначно не маппятся.
А по-русски?

SeVaМСУУже 100500 раз объяснял. Вот тут вкратце.

Начать лучше с этого ORM is the Vietnam of the Computer Science
Начинать лучше с другого: Объекты и искусство моделирования данных
...
Рейтинг: 0 / 0
ORM vs sql
    #37604576
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaLelouchблокноте мне было лень вспоминать написание. А то, что использование DataTable в случае WPF - прошлый век, признает даже Seva

Этот код будет на серверной стороне, а на клиенте ObservableCollection
Какой код? У меня всего-дишь создается коллекция объектов - результатов запроса. Я ни строчки ее обработки не писал...
...
Рейтинг: 0 / 0
ORM vs sql
    #37604579
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchТо есть в ваших системах, чтобы показать пользователю какой-нибудь список необходимо использовать запросы с десятками join, курсоры, etc.?
И естественно все эти запросы надо пропускать через аналитиков.. )1. "Какой-нибудь" список для пользователя - это в среднем 5-10 джойнов. Но есть и на десятки.
2. Курсоры не пишем, и писать не собираемся.
3. Неправильное у вас представление о взаимодействии с аналитиками.

Это - зарубежная ERP.
...
Рейтинг: 0 / 0
ORM vs sql
    #37604591
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WorobjoffLelouchТо есть в ваших системах, чтобы показать пользователю какой-нибудь список необходимо использовать запросы с десятками join, курсоры, etc.?
И естественно все эти запросы надо пропускать через аналитиков.. )1. "Какой-нибудь" список для пользователя - это в среднем 5-10 джойнов. Но есть и на десятки.
2. Курсоры не пишем, и писать не собираемся.
3. Неправильное у вас представление о взаимодействии с аналитиками.

Это - зарубежная ERP.

По вашему ORM не справится с 5-10 join'ами?
...
Рейтинг: 0 / 0
ORM vs sql
    #37604593
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУНачинать лучше с другого: Объекты и искусство моделирования данных
Mуся, я без этой статьи давно уже говорил, что ORM можно использовать только в качестве тупого DAL и что все они расчитаны на жирные графы объектов, которые совершенно неприспособлены для требований UI(разным use case нужны разные данные).
...
Рейтинг: 0 / 0
ORM vs sql
    #37604595
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchWorobjoffпропущено...
1. "Какой-нибудь" список для пользователя - это в среднем 5-10 джойнов. Но есть и на десятки.
2. Курсоры не пишем, и писать не собираемся.
3. Неправильное у вас представление о взаимодействии с аналитиками.

Это - зарубежная ERP.

По вашему ORM не справится с 5-10 join'ами?Думаю что справится. Но это будет хардкод, в котором к тому же, надублируется изрядно функционал. Представления в базе используются многими.
Запросы не очень легкие для сервера, и возможности оптимизации уже исчерпаны. Как тут будет вести ORM?
...
Рейтинг: 0 / 0
ORM vs sql
    #37604597
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WorobjoffLelouchТо есть в ваших системах, чтобы показать пользователю какой-нибудь список необходимо использовать запросы с десятками join, курсоры, etc.?
И естественно все эти запросы надо пропускать через аналитиков.. )1. "Какой-нибудь" список для пользователя - это в среднем 5-10 джойнов . Но есть и на десятки.
2. Курсоры не пишем, и писать не собираемся.
3. Неправильное у вас представление о взаимодействии с аналитиками.

Это - зарубежная ERP.
10-15 Join'ов это простые запросы. Если он выполняется медленно всегда можно из ORM получить код генерируемого SQL и понять как это можно решить (я про индексы).
...
Рейтинг: 0 / 0
ORM vs sql
    #37604600
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WorobjoffLelouchпропущено...


По вашему ORM не справится с 5-10 join'ами?Думаю что справится. Но это будет хардкод, в котором к тому же, надублируется изрядно функционал . Представления в базе используются многими.
Запросы не очень легкие для сервера, и возможности оптимизации уже исчерпаны. Как тут будет вести ORM?

Всмысле? Что именно надублируется? join идет через подзапросы. EF это умеет.
...
Рейтинг: 0 / 0
ORM vs sql
    #37604604
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchWorobjoffпропущено...
Думаю что справится. Но это будет хардкод, в котором к тому же, надублируется изрядно функционал . Представления в базе используются многими.
Запросы не очень легкие для сервера, и возможности оптимизации уже исчерпаны. Как тут будет вести ORM?

Всмысле? Что именно надублируется? join идет через подзапросы. EF это умеет.В EF есть аналог SQL-представлений?
...
Рейтинг: 0 / 0
ORM vs sql
    #37604605
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaLelouchпропущено...

Сравните
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
var conection = new SqlConection("<conection string>");
var command = conection.CreateCommand();
command.CommantText = @"SELECT * FROM [TABLE] WHERE [DATE1] > @date1 AND [DATE2] = @date2"
command.Parameters.Add(new SqlParameter("@date1", DateTime.Now));
command.Parameters.Add(new SqlParameter("@date2", DateTime.Now));
var listOfResult = new List<Result>();
using(var reader = command.ExecuteReader)
{
	while(reader.Read())
	{
		var temp = new Result()
		{
			Field1 = (int)reader["field1"],
			Field2 = reader["field2"] as double?,
			<etc>
		};
		listOfResult.Add(temp);
	}
}


c

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
var context = new MyObjectContext();
var listOfResult = (from obj in context.Table
		   where obj.Date1 > DateTime.Now && obj.Date2 = DateTime.Now
		   select new Result()
		   {
			Field1 = obj.field1,
			Field2 = obj.field2,
			<etc>
		   }).ToList()


Во втором случае можно к тому же обойтись сгенерированным классом. или анонимным.

А что сравнивать? По скорости выполнения ef будет проигрывать минимум в десять раз. С кодогенератором получить готовый код будет не медленней. Это тривиальный случай, а для сложных, пока ты будешь бросать камушки в черный ящик, можно будет протестировать минумум три варианта на чистом sql и выбрать лучший.А я положу комбобокс на форму и в его свойстве запишу:
"SELECT * FROM [TABLE] WHERE [DATE1] > getdate() AND [DATE2] = getdate()"
И ни одной строчки программного кода.

Или настрою атрибут свойства доменного объекта. Тогда в комбобоксе будет только имя этого свойства.
...
Рейтинг: 0 / 0
ORM vs sql
    #37604620
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Люблю SQL, но в процессе составления запросов из строк, есть вероятность допустить ошибку, об этой ошибке я предпочитаю узнать во время компиляции а не во время исполнения.

зы
Склеенный из строк запрос - есть длинный "magic string".
...
Рейтинг: 0 / 0
ORM vs sql
    #37604623
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонЛюблю SQL, но в процессе составления запросов из строк, есть вероятность допустить ошибку, об этой ошибке я предпочитаю узнать во время компиляции а не во время исполнения.

А вы его, как все нормальные люди, тестируйте сначала под манажемент студией и смотрите при этом план запроса (желательно).
Тот факт, что компилятор не выдал ошибки, абсолютно не означает, что запрос правильный. :)
...
Рейтинг: 0 / 0
ORM vs sql
    #37604626
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WorobjoffSeVaпропущено...


А что сравнивать? По скорости выполнения ef будет проигрывать минимум в десять раз. С кодогенератором получить готовый код будет не медленней. Это тривиальный случай, а для сложных, пока ты будешь бросать камушки в черный ящик, можно будет протестировать минумум три варианта на чистом sql и выбрать лучший.А я положу комбобокс на форму и в его свойстве запишу:
"SELECT * FROM [TABLE] WHERE [DATE1] > getdate() AND [DATE2] = getdate()"
И ни одной строчки программного кода

Это какой-то особый комбобокс или я что то не знаю про стандартные контролы?. А если мне нужно в качестве параметров не 2 текущих времени, а 2, выбираемых пользователем?
И еще, что, если мне не надо выполнять повторный запрос при повторном открытии формы?

P.S. WFP combobox + EF:
Код: c#
1.
combobox1.ItemsSource = from i in context.Table1 select i;


Кода как видите тоже немного.

L2S точно умеет использовать вьюхи в базе, так что я думаю что и EF на это способен.
...
Рейтинг: 0 / 0
ORM vs sql
    #37604630
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WorobjoffЭто - зарубежная ERP.
Да хоть отечественная. Какое это имеет отношение к вышесказанному?
SeVaМСУНачинать лучше с другого: Объекты и искусство моделирования данных
Mуся, я без этой статьи давно уже говорил, что ORM можно использовать только в качестве тупого DAL и что все они расчитаны на жирные графы объектов, которые совершенно неприспособлены для требований UI(разным use case нужны разные данные).
У тебя каша в голове.
WorobjoffДумаю что справится. Но это будет хардкод, в котором к тому же, надублируется изрядно функционал. Представления в базе используются многими.
Каким образом многие коррелируют с дата-слоем конкретного (-ых) приложения (-ий)?
WorobjoffЗапросы не очень легкие для сервера, и возможности оптимизации уже исчерпаны. Как тут будет вести ORM?
Религия запрещает использовать сторед объекты, намапленные на типизированный контекст?
WorobjoffВ EF есть аналог SQL-представлений?
EF - это не аналог БД. RTFM. Воробье, изучите тему, - Ваши высказывания отдают ламеризмом. Другими словами, мелете языком, вообще не понимая сути. Без обид.
...
Рейтинг: 0 / 0
ORM vs sql
    #37604631
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WorobjoffА я положу комбобокс на форму и в его свойстве запишу:
"SELECT * FROM [TABLE] WHERE [DATE1] > getdate() AND [DATE2] = getdate()"
Вот это называется жесткий хардкод. Прощай рефакторинг.
...
Рейтинг: 0 / 0
ORM vs sql
    #37604633
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И кстати EF озволяет сопоставлять сущности нескольким таблицам. http://msdn.microsoft.com/ru-ru/library/cc716698.aspx
...
Рейтинг: 0 / 0
ORM vs sql
    #37604651
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУWorobjoffЭто - зарубежная ERP.
Да хоть отечественная. Какое это имеет отношение к вышесказанному?
SeVaпропущено...

Mуся, я без этой статьи давно уже говорил, что ORM можно использовать только в качестве тупого DAL и что все они расчитаны на жирные графы объектов, которые совершенно неприспособлены для требований UI(разным use case нужны разные данные).
У тебя каша в голове.
WorobjoffДумаю что справится. Но это будет хардкод, в котором к тому же, надублируется изрядно функционал. Представления в базе используются многими.
Каким образом многие коррелируют с дата-слоем конкретного (-ых) приложения (-ий)?
WorobjoffЗапросы не очень легкие для сервера, и возможности оптимизации уже исчерпаны. Как тут будет вести ORM?
Религия запрещает использовать сторед объекты, намапленные на типизированный контекст?
WorobjoffВ EF есть аналог SQL-представлений?
EF - это не аналог БД. RTFM. Воробье, изучите тему, - Ваши высказывания отдают ламеризмом. Другими словами, мелете языком, вообще не понимая сути. Без обид.
Муся, у тебя торичелливая пустота в голове, только с ней ты мог дать ссылку на подобную статью, агитируя за ORM.
...
Рейтинг: 0 / 0
ORM vs sql
    #37604656
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУWorobjoffА я положу комбобокс на форму и в его свойстве запишу:
"SELECT * FROM [TABLE] WHERE [DATE1] > getdate() AND [DATE2] = getdate()"
Вот это называется жесткий хардкод. Прощай рефакторинг.А запрос в LINQ - не хардкод. Ага.
Ты как скорпион в полемике - бьешь себя своим же хвостом.
...
Рейтинг: 0 / 0
ORM vs sql
    #37604658
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУViPRosа что будет если я на стороне сервера просто убью пару табличек (которые нужны на клиенте и все красиво отмаппено и строго так типизировано) после всех потуг на стороне клиента?
А что если я сервер со всеми клиентами оболью бензином и подожгу? Твой "випрос" продолжит работу?

т.е. ты понимаешь, что твоя "строгая типизация" - МИФ?
А с ВИПРОС все проще.
Фиг кто сможет удалить таблицу, да хоть атрибут, если она использована хоть в одном методе ВИПРОС без соответствующих прав, а если права есть и эти действия могут привести к неработоспособности методов, то методы метятся как "неисполнимые" и менеджер методов просто не будет их вызывать, а сгенерирует ихзепшн.
т.е. метод выставляет контекстные требования к хранилищу, а менеджер метаданных пытается их удовлетварить. это я называю контрактом.
...
Рейтинг: 0 / 0
ORM vs sql
    #37604828
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaМуся, у тебя торичелливая пустота в голове, только с ней ты мог дать ссылку на подобную статью, агитируя за ORM.
Сева, у тебя смешение фантазии и действительности в разуме, дай ему отдохнуть - он помутнён. Только ты можешь юзкейсы сравнивать с далом.

WorobjoffМСУпропущено...
Вот это называется жесткий хардкод. Прощай рефакторинг.А запрос в LINQ - не хардкод. Ага.
Ты как скорпион в полемике - бьешь себя своим же хвостом.
Видимо у Вас представление о хардкоде несколько иное. Именно Ваш magic string и есть хардкод. Про рефакторинг комментарии будут? Вот тут всё сказано: 11866713
Изменится поле, как рефакторить будете по всему проекту?

ViPRosт.е. ты понимаешь, что твоя "строгая типизация" - МИФ?
В чем миф, отец? :)
...
Рейтинг: 0 / 0
ORM vs sql
    #37604844
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosэто я называю контрактом.
Это не контракт, это банальная обработка исключения. Я тоже так умею
...
Рейтинг: 0 / 0
ORM vs sql
    #37604845
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WorobjoffТы как скорпион в полемике - бьешь себя своим же хвостом.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
SELECT 
    p.Description,
    s.Name,
    (SELECT COUNT(*) FROM PurchaseItem pi WHERE p.ID = pi.PurchaseID) PurchaseItemCount	
FROM Purchase p
    LEFT OUTER JOIN 
        Customer c 
            INNER JOIN Address a ON c.AddressID = a.ID
            LEFT OUTER JOIN SalesPerson s ON c.SalesPersonID = s.ID
    ON p.CustomerID = c.ID	
WHERE
    (a.State = 'WA' OR p.CustomerID IS NULL)
    AND p.ID in
    (
        SELECT PurchaseID FROM PurchaseItem
        GROUP BY PurchaseID HAVING SUM (SaleAmount) > 1000
    )
ORDER BY
    (SELECT SUM (SaleAmount) FROM PurchaseItem pi WHERE p.ID = pi.PurchaseID) DESC



Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
from p in db.Purchases
where p.Customer.Address.State == "WA" || p.Customer == null
let purchaseValue = p.PurchaseItems.Sum (pi => pi.SaleAmount)
where purchaseValue > 1000
orderby purchaseValue descending
select new
{
   p.Description,
   p.Customer.SalesPerson.Name,
   PurchaseItemCount = p.PurchaseItems.Count()
}



Что скажешь, скорпион? :) Во-вторых, у меня на этапе компиляции будет известно об ошибке, в отличие от хардкодного сиквел-запроса.
...
Рейтинг: 0 / 0
ORM vs sql
    #37604857
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУWorobjoffТы как скорпион в полемике - бьешь себя своим же хвостом.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
SELECT 
    p.Description,
    s.Name,
    (SELECT COUNT(*) FROM PurchaseItem pi WHERE p.ID = pi.PurchaseID) PurchaseItemCount	
FROM Purchase p
    LEFT OUTER JOIN 
        Customer c 
            INNER JOIN Address a ON c.AddressID = a.ID
            LEFT OUTER JOIN SalesPerson s ON c.SalesPersonID = s.ID
    ON p.CustomerID = c.ID	
WHERE
    (a.State = 'WA' OR p.CustomerID IS NULL)
    AND p.ID in
    (
        SELECT PurchaseID FROM PurchaseItem
        GROUP BY PurchaseID HAVING SUM (SaleAmount) > 1000
    )
ORDER BY
    (SELECT SUM (SaleAmount) FROM PurchaseItem pi WHERE p.ID = pi.PurchaseID) DESC



Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
from p in db.Purchases
where p.Customer.Address.State == "WA" || p.Customer == null
let purchaseValue = p.PurchaseItems.Sum (pi => pi.SaleAmount)
where purchaseValue > 1000
orderby purchaseValue descending
select new
{
   p.Description,
   p.Customer.SalesPerson.Name,
   PurchaseItemCount = p.PurchaseItems.Count()
}

Даже мысли не допускаю эту порнографию хардкодить.
МСУ, ты сам за других додумываешь, и сам этим своим додумкам отвечаешь на этом сайте.
Сам с собой так.
...
Рейтинг: 0 / 0
ORM vs sql
    #37604858
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Math.Pi-r, оставь свои пионерские статейки при себе. Кроме table ты ничего не видел
...
Рейтинг: 0 / 0
ORM vs sql
    #37604861
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУWorobjoffТы как скорпион в полемике - бьешь себя своим же хвостом.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
SELECT 
    p.Description,
    s.Name,
    (SELECT COUNT(*) FROM PurchaseItem pi WHERE p.ID = pi.PurchaseID) PurchaseItemCount	
FROM Purchase p
    LEFT OUTER JOIN 
        Customer c 
            INNER JOIN Address a ON c.AddressID = a.ID
            LEFT OUTER JOIN SalesPerson s ON c.SalesPersonID = s.ID
    ON p.CustomerID = c.ID	
WHERE
    (a.State = 'WA' OR p.CustomerID IS NULL)
    AND p.ID in
    (
        SELECT PurchaseID FROM PurchaseItem
        GROUP BY PurchaseID HAVING SUM (SaleAmount) > 1000
    )
ORDER BY
    (SELECT SUM (SaleAmount) FROM PurchaseItem pi WHERE p.ID = pi.PurchaseID) DESC



Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
from p in db.Purchases
where p.Customer.Address.State == "WA" || p.Customer == null
let purchaseValue = p.PurchaseItems.Sum (pi => pi.SaleAmount)
where purchaseValue > 1000
orderby purchaseValue descending
select new
{
   p.Description,
   p.Customer.SalesPerson.Name,
   PurchaseItemCount = p.PurchaseItems.Count()
}



Что скажешь, скорпион? :) Во-вторых, у меня на этапе компиляции будет известно об ошибке, в отличие от хардкодного сиквел-запроса.

За такие запросы нужно голову откручивать. В твоем случае - задницу
...
Рейтинг: 0 / 0
ORM vs sql
    #37604870
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaMath.Pi-r, оставь свои пионерские статейки при себе. Кроме table ты ничего не видел
С..а, а что есть ещё, расскажи?
SeVaЗа такие запросы нужно голову откручивать. В твоем случае - задницу
А за какие не нужно откручивать голову, в моём случае задницу?
...
Рейтинг: 0 / 0
ORM vs sql
    #37604871
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
SELECT 
    p.Description,
    s.Name,
    (SELECT COUNT(*) FROM PurchaseItem pi WHERE p.ID = pi.PurchaseID) PurchaseItemCount	
FROM Purchase p
    LEFT OUTER JOIN 
        Customer c 
            INNER JOIN Address a ON c.AddressID = a.ID
            LEFT OUTER JOIN SalesPerson s ON c.SalesPersonID = s.ID
    ON p.CustomerID = c.ID	
WHERE
    (a.State = 'WA' OR p.CustomerID IS NULL)
    AND p.ID in
    (
        SELECT PurchaseID FROM PurchaseItem
        GROUP BY PurchaseID HAVING SUM (SaleAmount) > 1000
    )
ORDER BY
    (SELECT SUM (SaleAmount) FROM PurchaseItem pi WHERE p.ID = pi.PurchaseID) DESC


Данила, да Вы что совсем офонарели? Пардон, конечно, за эмоции. А немного подумать слабо?
...
Рейтинг: 0 / 0
ORM vs sql
    #37604873
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeДанила, да Вы что совсем офонарели? Пардон, конечно, за эмоции. А немного подумать слабо?
А что не так? Лучше по-существу и в подробностях, конечно.
...
Рейтинг: 0 / 0
ORM vs sql
    #37604875
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, мне нравится эта публика :)

1. Орут, SQL и только он! Если что-то сложное - ORM на помойку, так как не справится поделие с вычурной фантазией разработчика.
2. Привёл более менее сложный запрос.
3. Теперь орут, что за сложные запросы нужно жопу вместо головы ввинчивать.
...
Рейтинг: 0 / 0
ORM vs sql
    #37604880
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

Он сложный только в голове, на самом деле - простой. Намудрили, однако с подзапросами. Сейчас переписывать его не буду - лень. У меня сегодня ДР и я уже некоторую разминочку сделал.
ПС. Кстати, этот самый салеэмаунт у Вас какого типа?
...
Рейтинг: 0 / 0
ORM vs sql
    #37604882
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сразу бросилось в глаза ордербай по сабселекту. Это - кошмар.
...
Рейтинг: 0 / 0
ORM vs sql
    #37604936
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeПарамонЛюблю SQL, но в процессе составления запросов из строк, есть вероятность допустить ошибку, об этой ошибке я предпочитаю узнать во время компиляции а не во время исполнения.

А вы его, как все нормальные люди, тестируйте сначала под манажемент студией и смотрите при этом план запроса (желательно).
Тот факт, что компилятор не выдал ошибки, абсолютно не означает, что запрос правильный. :)

Пока все нормальные люди тестируют о смотрят планы каждого мелкого запроса я предпочитаю заниматся чем то полезным )
Да, и незабудте проверять и тестировать все запросы после каждого изменения логики, я подозреваю времни у вас не меренно :)
...
Рейтинг: 0 / 0
ORM vs sql
    #37604980
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУViPRosэто я называю контрактом.
Это не контракт, это банальная обработка исключения. Я тоже так умею
значит не въехал
у тебя настройка маппинг - разовая процедура, после маппинга никто не отслеживает изменение в серверной стороне (ну, конечно, если ты там один, тоо перенастроишь маппинг, сгенерируешь тонну "классов", изменишь свои "пратиал классы" (костыли одним словом) и вышлешь "новую версию" бедным юзверам, а они будут трахаться с БД и т.д.)
а у ВИПРОС перманентный маппинг с возможной потерей функциональности прикладного кода, но с четким предупреждением о петере функциональности прикладного кода и причине потери, а сама ВИПРОС непотопляема. :)
...
Рейтинг: 0 / 0
ORM vs sql
    #37604983
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонShSergeпропущено...

А вы его, как все нормальные люди, тестируйте сначала под манажемент студией и смотрите при этом план запроса (желательно).
Тот факт, что компилятор не выдал ошибки, абсолютно не означает, что запрос правильный. :)

Пока все нормальные люди тестируют о смотрят планы каждого мелкого запроса я предпочитаю заниматся чем то полезным )
Да, и незабудте проверять и тестировать все запросы после каждого изменения логики, я подозреваю времни у вас не меренно :)
значит твое полезное не зависит от реакции системы твоей
бывают такие гениальные проги, выхлоп которой можно ждать и год, если этот выхлоп = лечение рака или мылен баксов
...
Рейтинг: 0 / 0
ORM vs sql
    #37605009
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosМСУпропущено...

Это не контракт, это банальная обработка исключения. Я тоже так умею
значит не въехал
у тебя настройка маппинг - разовая процедура, после маппинга никто не отслеживает изменение в серверной стороне (ну, конечно, если ты там один, тоо перенастроишь маппинг, сгенерируешь тонну "классов", изменишь свои "пратиал классы" (костыли одним словом) и вышлешь "новую версию" бедным юзверам, а они будут трахаться с БД и т.д.)
а у ВИПРОС перманентный маппинг с возможной потерей функциональности прикладного кода, но с четким предупреждением о петере функциональности прикладного кода и причине потери, а сама ВИПРОС непотопляема. :)

Да, есть некоторые субстанции, которые не тонут... Сори, не удержался.
Кстати так и не понял разницы в плане удаления объекта БД. Что мегасупавипрос при попытке обращения (насколько я понял) выдаст Ихсепшн (или как ты там извратнулся над словом Exception), что EF выдаст его же при выполнении запроса.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605014
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchViPRosпропущено...

значит не въехал
у тебя настройка маппинг - разовая процедура, после маппинга никто не отслеживает изменение в серверной стороне (ну, конечно, если ты там один, тоо перенастроишь маппинг, сгенерируешь тонну "классов", изменишь свои "пратиал классы" (костыли одним словом) и вышлешь "новую версию" бедным юзверам, а они будут трахаться с БД и т.д.)
а у ВИПРОС перманентный маппинг с возможной потерей функциональности прикладного кода, но с четким предупреждением о петере функциональности прикладного кода и причине потери, а сама ВИПРОС непотопляема. :)

Да, есть некоторые субстанции, которые не тонут... Сори, не удержался.
Кстати так и не понял разницы в плане удаления объекта БД. Что мегасупавипрос при попытке обращения (насколько я понял) выдаст Ихсепшн (или как ты там извратнулся над словом Exception), что EF выдаст его же при выполнении запроса.
ну тут на форуме токо для того и собираются что бы друг дружка нетонущим срванивать
так что не переживай, ты не первый
ЕФ выдасть ихзепшн и твоя прога скорее всего умрет
а ВИПРОС сам же обработает (спрячеть или сделаеть пункт меню или кнопочку недоступной, не запустит прогу и т.д.)
а если БД изменится средствами ВИПРОС то она просто не дасть ее изменить, если это приведеь к потере функциональности в зависимости от прав)
...
Рейтинг: 0 / 0
ORM vs sql
    #37605018
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosзначит твое полезное не зависит от реакции системы твоей

Мое полезное это уделять больше времени логике а не поиском глупых ошибок, для сего есть дебагер и среда разработки.
У многих правда дебагером выступает конечный пользователь, это веселые как правило конторы )
...
Рейтинг: 0 / 0
ORM vs sql
    #37605053
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosLelouchпропущено...


Да, есть некоторые субстанции, которые не тонут... Сори, не удержался.
Кстати так и не понял разницы в плане удаления объекта БД. Что мегасупавипрос при попытке обращения (насколько я понял) выдаст Ихсепшн (или как ты там извратнулся над словом Exception), что EF выдаст его же при выполнении запроса.
ну тут на форуме токо для того и собираются что бы друг дружка нетонущим срванивать
так что не переживай, ты не первый
ЕФ выдасть ихзепшн и твоя прога скорее всего умрет
а ВИПРОС сам же обработает (спрячеть или сделаеть пункт меню или кнопочку недоступной, не запустит прогу и т.д.)
а если БД изменится средствами ВИПРОС то она просто не дасть ее изменить, если это приведеь к потере функциональности в зависимости от прав)
Никто не запрещает перехватывать исключения EF.
Кнопочка это очень просто. А если выполняемая операция является частью последовательности операций, например выполняемых в 1 транзакции? Я предпочту исключение и откат транзакции, чем отсутствие вызова метода и неправильные результаты работы.
P.S. Слабо представляю зачем заказчик сам полезет в базу, да еще через левый механизм.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605057
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchНикто не запрещает перехватывать исключения EF.
Кнопочка это очень просто. А если выполняемая операция является частью последовательности операций, например выполняемых в 1 транзакции? Я предпочту исключение и откат транзакции, чем отсутствие вызова метода и неправильные результаты работы.
P.S. Слабо представляю зачем заказчик сам полезет в базу, да еще через левый механизм.
1.Ты их не перехватываешь. Уверен.
2. Зачем откатывать то, что изначально не пройдет.
3. Ты слабо представялешь что такое левая система. Для нормальной системы левой является DBA и что то типа SSMS.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605067
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosLelouchНикто не запрещает перехватывать исключения EF.
Кнопочка это очень просто. А если выполняемая операция является частью последовательности операций, например выполняемых в 1 транзакции? Я предпочту исключение и откат транзакции, чем отсутствие вызова метода и неправильные результаты работы.
P.S. Слабо представляю зачем заказчик сам полезет в базу, да еще через левый механизм.
1.Ты их не перехватываешь. Уверен.
2. Зачем откатывать то, что изначально не пройдет.
3. Ты слабо представялешь что такое левая система. Для нормальной системы левой является DBA и что то типа SSMS.

1. Мне даже в страшном сне не надо представлять изменение БД заказчиком. (А если он все же это изменит без санкции меня как разработчика, и программа ляжет, то он же мне и платить будет за восстановление...)
2. Что изначально не пройдет? написано подряд вызов 5и методов, 3й не работает. Остальные 4 же выполняться?
3. То что MS SMS не является необходимой для работы системы я согласен. Но не ты, ни "випрос" не могут запретить пользователю влезть в БД с ее помощью. Отсюда ценность прав на изменение БД в твоем "випрос" = 0.

P.S. Я не могу понять как Хорошим решением может быть возможность пользователя как угодно влезть в БД, изменить ее структуру, а потом еще надеяться на правильную работу бизнес-логики. То что программа не будет вылетать с исключениями - не является признаком правильной работы.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605081
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch1. Мне даже в страшном сне не надо представлять изменение БД заказчиком. (А если он все же это изменит без санкции меня как разработчика, и программа ляжет, то он же мне и платить будет за восстановление...)
2. Что изначально не пройдет? написано подряд вызов 5и методов, 3й не работает. Остальные 4 же выполняться?
3. То что MS SMS не является необходимой для работы системы я согласен. Но не ты, ни "випрос" не могут запретить пользователю влезть в БД с ее помощью. Отсюда ценность прав на изменение БД в твоем "випрос" = 0.

P.S. Я не могу понять как Хорошим решением может быть возможность пользователя как угодно влезть в БД, изменить ее структуру, а потом еще надеяться на правильную работу бизнес-логики. То что программа не будет вылетать с исключениями - не является признаком правильной работы.
1. Как бы ты не старался описать предметную область (п.о.)) исчерпывающим образом (если она не стандартизировано) у тебя это не получится в силу объективных причин. Потому лучше дать возможность модельщику доописать п.о. А вот это "доописать" должно быть стандартизировано, токо тогда заказчик может привязать стандартное отраслевое ПО к своей п.о.
2. Вызов 5 методов не должно реализоваться хардкодингом. Пользователь может написать или переписать некторые из них. Значит должен быть применен способ межметодного :) общения, т.е. настравиавмые рабочие потоки (благо в НЕТ это встоена). А вот вход этого настраиваемого рабочего потока должен быть четко специфирован, что бы можно было бы эти спецификации можно было сверить со спецификациями поставщика инфы и при несовпадение не запускать рабочий потокю Нефиг вызываь часть потока, если изначально ясно что поток завершится ошибкой из за несоблюдения интерфеса поставщиком. так как точка входа в рабочий поток известен (обычно это визуальный интерфесный элемент), то можно его блокировать.
2. Т ыможешь изменить БД как цгодно, просто ВИПРОС при запуска потока проверит согласованность контекста требований и предложений. Но, рекомендуемый способ изменения - через менеджер метаданных ВИПРОС, тогда коллизий воще не возгикнет.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605097
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeМСУ, Он сложный только в голове, на самом деле - простой.
Не спорю, откуда ж тогда такой ажиотаж? :)

ShSergeНамудрили, однако с подзапросами. Сейчас переписывать его не буду - лень. У меня сегодня ДР и я уже некоторую разминочку сделал.
А сможете ли его переписать с более эффективным планом? Кстати, с днюхой поздравляю! :)

ShSergeСразу бросилось в глаза ордербай по сабселекту. Это - кошмар.
А что делать, если такие требования. Кстати, кто-то давеча вещал, что все вычисления должны быть средствами сиквел сервера

ViPRosпосле маппинга никто не отслеживает изменение в серверной стороне
А это и не надо никому, это лишний бубен, влияющий на производительность. Это в классической двузвенке еще можно побаловать? А если у нас сервер приложений? Так что за такие отслеживания авторитетно ставлю тебе двойку.

ViPRosЕФ выдасть ихзепшн и твоя прога скорее всего умрет
Часто ли у тебя бывают случаи "случайных" изменений схемы данных на стороне БД? Я плакал... :)
...
Рейтинг: 0 / 0
ORM vs sql
    #37605103
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosLelouch1. Мне даже в страшном сне не надо представлять изменение БД заказчиком. (А если он все же это изменит без санкции меня как разработчика, и программа ляжет, то он же мне и платить будет за восстановление...)
2. Что изначально не пройдет? написано подряд вызов 5и методов, 3й не работает. Остальные 4 же выполняться?
3. То что MS SMS не является необходимой для работы системы я согласен. Но не ты, ни "випрос" не могут запретить пользователю влезть в БД с ее помощью. Отсюда ценность прав на изменение БД в твоем "випрос" = 0.

P.S. Я не могу понять как Хорошим решением может быть возможность пользователя как угодно влезть в БД, изменить ее структуру, а потом еще надеяться на правильную работу бизнес-логики. То что программа не будет вылетать с исключениями - не является признаком правильной работы.
1. Как бы ты не старался описать предметную область (п.о.)) исчерпывающим образом (если она не стандартизировано) у тебя это не получится в силу объективных причин. Потому лучше дать возможность модельщику доописать п.о. А вот это "доописать" должно быть стандартизировано, токо тогда заказчик может привязать стандартное отраслевое ПО к своей п.о.
2. Вызов 5 методов не должно реализоваться хардкодингом. Пользователь может написать или переписать некторые из них. Значит должен быть применен способ межметодного :) общения, т.е. настравиавмые рабочие потоки (благо в НЕТ это встоена). А вот вход этого настраиваемого рабочего потока должен быть четко специфирован, что бы можно было бы эти спецификации можно было сверить со спецификациями поставщика инфы и при несовпадение не запускать рабочий потокю Нефиг вызываь часть потока, если изначально ясно что поток завершится ошибкой из за несоблюдения интерфеса поставщиком. так как точка входа в рабочий поток известен (обычно это визуальный интерфесный элемент), то можно его блокировать.
2. Т ыможешь изменить БД как цгодно, просто ВИПРОС при запуска потока проверит согласованность контекста требований и предложений. Но, рекомендуемый способ изменения - через менеджер метаданных ВИПРОС, тогда коллизий воще не возгикнет.


1. Пока-что это получалось.
2. Почему это не должен быть? Мне нужно выполнить 5 методов в строгой последовательности (и это отнюдь не единичный случай). Мне вот даже интересно, как ты блокируешь элемент управления?
Код: c#
1.
2.
3.
4.
public void Start_Click(object sender, EventArgs e)
{
    // вызов метода.
}


Ты из этого кода поймешь, что блокировать надо?) (Даже если использовать RoutedCommand - за разрешение выполнения команды отвечает CanExecute, а не Execute).

3. Мне не нужно чтобы его менял заказчик. У заказчика часто даже нет ИТ отдела, только пара админов. Кто у него будет ПО дописывать? (Это кстати справедливо и для весьма крупных предприятий, а-ля водоканалы (наш основной профиль). Их ИТ отделы состоят из 10ка человек, которые и так умирают на поддержке универсальной межотраслевой 1С. Второе такое счастье им особо не надо, поэтому заказывают системы "под ключ".)

P.S. И как ты будешь обновлять ПО заказчика, если он может переписать твою систему как ему вздумается?
P.P.S. Судя по сайту ВИПРОС я бы его стандартным межотраслевым ПО не назвал.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605118
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch1. Пока-что это получалось.
2. Почему это не должен быть? Мне нужно выполнить 5 методов в строгой последовательности (и это отнюдь не единичный случай). Мне вот даже интересно, как ты блокируешь элемент управления?
Код: c#
1.
2.
3.
4.
public void Start_Click(object sender, EventArgs e)
{
    // вызов метода.
}


Ты из этого кода поймешь, что блокировать надо?) (Даже если использовать RoutedCommand - за разрешение выполнения команды отвечает CanExecute, а не Execute).

3. Мне не нужно чтобы его менял заказчик. У заказчика часто даже нет ИТ отдела, только пара админов. Кто у него будет ПО дописывать? (Это кстати справедливо и для весьма крупных предприятий, а-ля водоканалы (наш основной профиль). Их ИТ отделы состоят из 10ка человек, которые и так умирают на поддержке универсальной межотраслевой 1С. Второе такое счастье им особо не надо, поэтому заказывают системы "под ключ".)

P.S. И как ты будешь обновлять ПО заказчика, если он может переписать твою систему как ему вздумается?
P.P.S. Судя по сайту ВИПРОС я бы его стандартным межотраслевым ПО не назвал.
1. Рад за тебя.
2. Лучше вызов этих 5 методов оформить как рабочий поток, конфигурацию которой можно поменять в любое время не меняя прогу.
3. Вот ты описал какой то вентиль для водопроводной трубы. Там диаметр, напор и т.д. не знаю что. твоя система работает в орловской губернии. А в Брянской губернии есть вентили с 2 регулируемыми положениями. Что для брянщину надо переделать прогу? или лучше дать возможность ввести новые параметры для венитля и переделать метод (написать другой)? я думаю второй вариант лучше.
4. ПО и БД обновляется автоматом, с учетом изменений внесенных пользователем в ПО и в БД.
5. ВИПРОС платформа. На неу написаны несколько отраслевых решений (ВИП.Бюджетирование, ВИП.APS, ВИП.MES и т.д.)
...
Рейтинг: 0 / 0
ORM vs sql
    #37605127
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosLelouch1. Пока-что это получалось.
2. Почему это не должен быть? Мне нужно выполнить 5 методов в строгой последовательности (и это отнюдь не единичный случай). Мне вот даже интересно, как ты блокируешь элемент управления?
Код: c#
1.
2.
3.
4.
public void Start_Click(object sender, EventArgs e)
{
    // вызов метода.
}


Ты из этого кода поймешь, что блокировать надо?) (Даже если использовать RoutedCommand - за разрешение выполнения команды отвечает CanExecute, а не Execute).

3. Мне не нужно чтобы его менял заказчик. У заказчика часто даже нет ИТ отдела, только пара админов. Кто у него будет ПО дописывать? (Это кстати справедливо и для весьма крупных предприятий, а-ля водоканалы (наш основной профиль). Их ИТ отделы состоят из 10ка человек, которые и так умирают на поддержке универсальной межотраслевой 1С. Второе такое счастье им особо не надо, поэтому заказывают системы "под ключ".)

P.S. И как ты будешь обновлять ПО заказчика, если он может переписать твою систему как ему вздумается?
P.P.S. Судя по сайту ВИПРОС я бы его стандартным межотраслевым ПО не назвал.
1. Рад за тебя.
2. Лучше вызов этих 5 методов оформить как рабочий поток, конфигурацию которой можно поменять в любое время не меняя прогу.
3. Вот ты описал какой то вентиль для водопроводной трубы. Там диаметр, напор и т.д. не знаю что. твоя система работает в орловской губернии. А в Брянской губернии есть вентили с 2 регулируемыми положениями. Что для брянщину надо переделать прогу? или лучше дать возможность ввести новые параметры для венитля и переделать метод (написать другой)? я думаю второй вариант лучше.
4. ПО и БД обновляется автоматом, с учетом изменений внесенных пользователем в ПО и в БД.
5. ВИПРОС платформа. На неу написаны несколько отраслевых решений (ВИП.Бюджетирование, ВИП.APS, ВИП.MES и т.д.)

5. Кроме внедрений ВИП. MES на 2 предприятиях на сайте ничего не сказано. Вывод о особой популярности напрашивается сам.
2. Ответь на вопрос как ты контрол заблокируешь.
3. Нет, я опишу вентиль как объект с N регулируемыми положениями и напишу общий метод для N положений, или, например пользуясь конфигурацией IOC контейнера подменю то что необходимо для Брянска.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605151
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch,

1. популярность тут не при чем, если випрос сделает для тех, кто ее спонсировал, то что им надо, то это уже будет 100 миллионов экономии для страны
2. ты зациклился на рефлексии, у випрос свои метаданные, и она знает все о своих формах, кнопках, методах, событиях и т.д. и автоматом их генерирует из метаданных
3. ты просто НЕ МОГ ЗНАТЬ что у вентиля будет N положений (никто пока не сконструировал :) и никакой фаулер тебе в этом не поможет

в общем, все мы пишем мертвые проги (устаревшие в день выпуска) в первые несколько лет свей практики, а потом начинаем дкмать о вечном и т.д., но к тому моменту обычно уже зависимы материально и блокированы во времени
но иногда получется так, что у некоторых появляется возможность чудить, чего и тебе желаю
...
Рейтинг: 0 / 0
ORM vs sql
    #37605158
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos2. ты зациклился на рефлексии
Отгадай с одного раза, - на чём ты зациклился?
ViPRosв общем, все мы пишем мертвые проги
Нет уж. Ты пишешь мертвые проги, а мы создаем хорошие решения ;)
...
Рейтинг: 0 / 0
ORM vs sql
    #37605162
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosLelouch,

1. популярность тут не при чем, если випрос сделает для тех, кто ее спонсировал, то что им надо, то это уже будет 100 миллионов экономии для страны
2. ты зациклился на рефлексии, у випрос свои метаданные, и она знает все о своих формах, кнопках, методах, событиях и т.д. и автоматом их генерирует из метаданных
3. ты просто НЕ МОГ ЗНАТЬ что у вентиля будет N положений (никто пока не сконструировал :) и никакой фаулер тебе в этом не поможет

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

1. А еще с помощью випрос мы завоюем Марс, Луну и Проксиму Центавра.
2. При чем тут рефлексия, метаданные и т.д., ты мне скажи как ты контрол заблокруешь? Разрешишь мне использовать только свои? А что если мне нужен свой контрол, которого нет в ВИПРОСе? А что если мне нужно какое-то особое расположение контролов (группировка по влкадкам, etc)? А что, если заказчик потребует конкретно ему 1 изменить отображение какой-либо информации?
3. Я специально написал, что подменю через конфигурацию IoC контейнера нужные мне классы. И что мне помешает это сделать, если вентиль появился через пару лет?
...
Рейтинг: 0 / 0
ORM vs sql
    #37605168
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch,

вощем тупо конечно так
но все ж
в випрос пользователь может конфигурировать контролы как хочет, хоть в таб хоть в корзину, хоть куда
ты можешь менять контрол на совместимый другой
добавить новый к существующему и т.д.
а то что у тя исключительный случай через контейнер в випрос просто конфигурация потоков и методов - обыденность
...
Рейтинг: 0 / 0
ORM vs sql
    #37605170
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУViPRos2. ты зациклился на рефлексии
Отгадай с одного раза, - на чём ты зациклился?
ViPRosв общем, все мы пишем мертвые проги
Нет уж. Ты пишешь мертвые проги, а мы создаем хорошие решения ;)
уйди, противный
...
Рейтинг: 0 / 0
ORM vs sql
    #37605177
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos
Сахават, те что в лоб, что полбу... Ты как инопланетян е н ёпт.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605182
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosLelouch,

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

А если слой презентации должен быть написан и на WPF и на ASP? У вас есть наборы контролов и для того и для того?
...
Рейтинг: 0 / 0
ORM vs sql
    #37605197
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch,

нет
пока только для винформс
так как в тех предприятиях где будет випрос нет интернета :)
даже внутренние сети иногда не сообщаются :(
...
Рейтинг: 0 / 0
ORM vs sql
    #37605200
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУViPRos
Сахават, те что в лоб, что полбу... Ты как инопланетян е н ёпт.
и тебя с праздником
...
Рейтинг: 0 / 0
ORM vs sql
    #37605210
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шуму много, но на вопрос так никто и не ответил, почему ORM плохо.
Единственный С..а что-то там сносно повякал из кустов полубредятину и загнулся. Тайна не раскрыта.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605223
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosLelouch,

нет
пока только для винформс
так как в тех предприятиях где будет випрос нет интернета :)
даже внутренние сети иногда не сообщаются :(

=> Ваше решение настолько узкоспециализированно, что говорить о каком-либо стандарте и не представляется.
А что мешало разделить платформу на независимые части, зачем было клеить монолит от получения и обработки данных до презентации?

P.S. Мы действительно далеко от темы топика ушли. Что вы имеете против ОРМ, не напомните? Кроме того что "Они не нужны, а випрос наше все."
...
Рейтинг: 0 / 0
ORM vs sql
    #37605226
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей, хоть у Вас и днюха, но позволю себе немного Вас помучать )
Дадите адекватный комментарий вот этому? 11866063
А то не красиво получается, грубо высказались, а аргументов так и не было.

P.S. Вы хоть представляете, что данный код делает?
...
Рейтинг: 0 / 0
ORM vs sql
    #37605252
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУСергей, хоть у Вас и днюха, но позволю себе немного Вас помучать )
Дадите адекватный комментарий вот этому? 11866063
А то не красиво получается, грубо высказались, а аргументов так и не было.

P.S. Вы хоть представляете, что данный код делает?
МСУ, не обижайтесь и поймите меня правильно. У меня есть, что сказать. Я не первый день (и не первый десяток лет) в бизнесе. Не имею в виду дотнет, впрочем, сами понимаете.
Не то, чтобы я агрессивно рекламирую свой паттерн программирования, но просто рекомендую, как проще.
Несколько проектов написал с нуля. То есть, начиная с проектирования БД (70%) и заканчивая клиентским отображением (25%). Любая, даже очень сложная база, раскладывается в элементарные мастер-детейл. Если Вы мне не верите, могу формально доказать, только неохота. Просто поверьте. В таком случае, написание программы (я про базы данных говорю) сводится к написанию грида (и детейла от грида) и редактирования конкретной записи. Что может быть проще? Ну при чём здесь ОРМы? Понимаю, на распил - пойдут, но пилите-не пилите, а дело-то делать надо. Вот и рекомендую (по секрету).
...
Рейтинг: 0 / 0
ORM vs sql
    #37605256
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

Если насчёт листов - сами подумайте.
ПС. Сегодня со своим сыном встречался (25 лет, а не видел его 19 лет), зовут его, как и Вас - Даниил (Вас так зовут?). Сам ему имя давал.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605263
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Серж, невооруженным глазом чувствую, Вы уже под градусом :)
Как сынишка, возмужал поди за столько лет!
...
Рейтинг: 0 / 0
ORM vs sql
    #37605266
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУСерж, невооруженным глазом чувствую, Вы уже под градусом :)
Как сынишка, возмужал поди за столько лет!
Есть маленько.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605269
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

Только в данном случае, я не не Вашей стороне. Ничего личного.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605281
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Данила,

Просто вопрос - такие инструменты, как, например, JdbcTemplate, включаются или исключаются из того множества инструментов, которые ты подразумеваешь, говоря об "ORM"?
...
Рейтинг: 0 / 0
ORM vs sql
    #37605290
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зы, не имел дело с данным инструментом.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605306
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУзы, не имел дело с данным инструментом.ну так прочитал бы в википедии по-быстрому, ты же умеешь. Мне просто не приходит в голову ничего похожего из дотнета прямо сейчас
...
Рейтинг: 0 / 0
ORM vs sql
    #37605357
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зы,

свиду обычный датаадаптер НЕТ
...
Рейтинг: 0 / 0
ORM vs sql
    #37605363
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchА что мешало разделить платформу на независимые части, зачем было клеить монолит от получения и обработки данных до презентации?

P.S. Мы действительно далеко от темы топика ушли. Что вы имеете против ОРМ, не напомните? Кроме того что "Они не нужны, а випрос наше все."
1. не монолит
2. развивается
3. ОРМ ненужная технология. не надо скрещивать ужа с ежом. нужны объекты - работайте с объектной системой, нужны датасеты - работайте с реляционной отображение одного мира в другой - нетривиальная(зачастую невозможная) задача, обычно сложнее чем конструирование каждого из миров
зачем такие сложности, которые однозначно приведут к ненужному осложнению проги и лишениям
нафига строгая типизация, когда нужен динамизм? а то бла бла про компиляторной типизацию и тут же dynamic, дебильные дженерики, маппинг и т.д. фигня
должен быть четкий контракт между процессами и нарушения этого контракта должна караться третьей системой, которя над этими процессами и отслеживает контракт
...
Рейтинг: 0 / 0
ORM vs sql
    #37605364
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

не совсем, датаадаптер умеет мапить только в свои страшные датасеты, ну и попутно имеет несколько перделок в комплекте.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605365
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыViPRos,

не совсем, датаадаптер умеет мапить только в свои страшные датасеты, ну и попутно имеет несколько перделок в комплекте.
ну можно быстро обучить к этому и датаадаптер и датаридер и т.д.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605370
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

Да можно вообще все руками написать, тем не менее у меня к Даниле конкретный вопрос, надеюсь как прочтет - ответит.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605371
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а датасеты самое лучшее что придумал микрософт
особо радует понятие реляционной связи которая отсутствует в СКЛ сервере
если выкинут ООП потуги, то скл БД чистенько так отображается на пользовательские подсхемы (хотя скл не имеет такого развитого понятия подсхема - многотабличное вью) -классика
...
Рейтинг: 0 / 0
ORM vs sql
    #37605375
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

Не надо грузить мой мозг этой ерундой, и вообще не засоряй тред, а то Данила продинамит с ответом под видом "пропустил"
...
Рейтинг: 0 / 0
ORM vs sql
    #37605455
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosLelouchА что мешало разделить платформу на независимые части, зачем было клеить монолит от получения и обработки данных до презентации?

P.S. Мы действительно далеко от темы топика ушли. Что вы имеете против ОРМ, не напомните? Кроме того что "Они не нужны, а випрос наше все."
1. не монолит
2. развивается
3. ОРМ ненужная технология. не надо скрещивать ужа с ежом. нужны объекты - работайте с объектной системой, нужны датасеты - работайте с реляционной отображение одного мира в другой - нетривиальная(зачастую невозможная) задача, обычно сложнее чем конструирование каждого из миров
зачем такие сложности, которые однозначно приведут к ненужному осложнению проги и лишениям
нафига строгая типизация, когда нужен динамизм? а то бла бла про компиляторной типизацию и тут же dynamic, дебильные дженерики , маппинг и т.д. фигня
должен быть четкий контракт между процессами и нарушения этого контракта должна караться третьей системой, которя над этими процессами и отслеживает контракт

1. Какой же не монолит, если при использовании вашего випроса на аппсервере я не получу ни 1 преимущества, вами заявленного? кроме проверки БД на соответствие контракту?
3. Команда ADO .NET вот уже лет 5 так не считает.)

Зачем мне динамическая типизация если база строго типизирована? Dinamic относится к ORM чуть более чем никак (да и к CLR кстати помоему тоже). Называть Jeneric дибильным может только реально недалекий человек ))) И кстати Jeneric'и появились года за 3 до L2S.

А подчеркнутое - это не маппинг?)
...
Рейтинг: 0 / 0
ORM vs sql
    #37605458
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И кстати Generic'и появились в .NET года за 3 до L2S. И какое они отношение имеют к ОРМ совсем не понятно. Наличие в моделе EntitySet<EntityType> делает их дебильными?
...
Рейтинг: 0 / 0
ORM vs sql
    #37605494
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыМСУзы, не имел дело с данным инструментом.ну так прочитал бы в википедии по-быстрому, ты же умеешь. Мне просто не приходит в голову ничего похожего из дотнета прямо сейчас
Вообщем, это простой паттерн (теймплейт, практика) для доступа к данным. Альтернатива в дотнете - The Enterprise Library Data Access Application Block . То есть это никакой не ORM.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605502
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosа датасеты самое лучшее что придумал микрософт
Датасеты (типизированные) самое лучшее худшее, что придумал майкрософт.
А на обычных же датасетах строят свои DAL'ы к хранилищам вообще полоумные.
ViPRosдебильные дженерики, маппинг и т.д. фигня
Генерики - это самое лучше, что есть в дотнете. Даже в джаве они "искуственные", не такие как в дотнете.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605516
Enomay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DataSet'ы офигительны когда разработка ведется от базы.
Но так как от базы в наше время никто не разрабатывает, кроме тех, кто остался в 2000м году, то DataSetы не нужны конечно же.

Но ORM применим в обоих подходах.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605520
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вскм вумным и продвинутым!
Покажите свои проги(ну часть или хоть что то реальное(не копи файл или там показ слайдов, а допустим расчет зарплаты), а не копипаст от книг), докажите то, о чем вы тут лялякаете!
...
Рейтинг: 0 / 0
ORM vs sql
    #37605522
Enomay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ViPRos,

посмотри MS Axapta или Navision, можешь еще посмотреть JD Edwards, бывший Sun, ныне Oracle.
В базе строятся только отчеты. Вся логика на уровне AppServer.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605526
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EnomayВся логика на уровне AppServer.
И это правильно, ибо масштабируемо, надежно, отказоустойчиво, мобильно, тестируемо, рефакторно, скаффолдингово.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605528
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУViPRosа датасеты самое лучшее что придумал микрософт
Датасеты (типизированные) самое лучшее худшее, что придумал майкрософт.
А на обычных же датасетах строят свои DAL'ы к хранилищам вообще полоумные.
ViPRosдебильные дженерики, маппинг и т.д. фигня
Генерики - это самое лучше, что есть в дотнете. Даже в джаве они "искуственные", не такие как в дотнете.
ну насчет микрософт я конечно загнул. Датасеты = Мидас, но микрософт туда сунул релейшн (круче чем в СКЛ).
Типизированные Датасеты хороши для описания метаданных (так как там жесткая структура), а нетипизированные для самих данных. Для улучшения читаемости хорошо бы к нетипизированным датасетам и их внутренностям обращаться через
dynamic, что бы можно было писать ds.Tables.musyatable.Rows.RowId.Columns.ColumnId или ds.musyatable.RowId.ColumnId.
Дженерики полное говно, все построено на object, на каждый тип создается в рантайме копия кода, постоянные проверки ограничений и т.д. делает их неприменимым в высокочувствительных алгоритмах
Мусь, ну покажи хоть кусок какой нить проги, токо не долбаный мембершип
...
Рейтинг: 0 / 0
ORM vs sql
    #37605530
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EnomayViPRos,

посмотри MS Axapta или Navision, можешь еще посмотреть JD Edwards, бывший Sun, ныне Oracle.
В базе строятся только отчеты. Вся логика на уровне AppServer.
и потому они часами разузловывают 1 изделие, 2 сутки считают МРП и т.д.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605531
Enomay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ViPRosи потому они часами разузловывают 1 изделие,

есть знакомый проект, где это в базе делалось. больше суток. очень долгой и дорогой была оптимизация. выигрыш был процентов 15%. что уже неимоверно круто. в случае с App-сервером достаточно было бы доставить пару кластеров и распаралелить задачу на них.

ViPRos2 сутки считают МРП и т.д.

где 2е суток считается? кем?
данные либо уже посчитаны, либо, если это отчет, считаются в базе. ORM тут никак тормозом быть не может. а вот база не тянет... это да.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605532
Enomay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ViPRosТипизированные Датасеты хороши для описания метаданных (так как там жесткая структура), а нетипизированные для самих данных. Для улучшения читаемости хорошо бы к нетипизированным датасетам и их внутренностям обращаться через
dynamic, что бы можно было писать ds.Tables.musyatable.Rows.RowId.Columns.ColumnId или ds.musyatable.RowId.ColumnId.


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

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


ересь какая-то.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605535
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot ViPRos]МСУпропущено...
1. Для улучшения читаемости хорошо бы к нетипизированным датасетам и их внутренностям обращаться через
dynamic, что бы можно было писать ds.Tables.musyatable.Rows.RowId.Columns.ColumnId или ds.musyatable.RowId.ColumnId.
2. Дженерики полное говно, все построено на object, на каждый тип создается в рантайме копия кода, постоянные проверки ограничений и т.д. делает их неприменимым в высокочувствительных алгоритмах
Мусь, ну покажи хоть кусок какой нить проги, токо не долбаный мембершип

1. Нет там никакого улучшения: ни интелисенса, ни комментариев, ни . Одно и тоже что и строка. Только выглядит "круто и объектно", по удобству написания ничем не лучше.
2. Вы с явой попутали, это там генерики не поддерживаются на уровне среды исполнения и заменяются а список объектов + кучи кастов.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605536
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сори, случайно не тот тег Quote стер.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605538
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Enomayгде 2е суток считается? кем?
данные либо уже посчитаны, либо, если это отчет, считаются в базе. ORM тут никак тормозом быть не может. а вот база не тянет... это да.
не рассказывай басни
твоя аксапта просто умрет от моих изделий, а не то бы рассчитать расписание
...
Рейтинг: 0 / 0
ORM vs sql
    #37605540
Enomay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ViPRosне рассказывай басни
твоя аксапта просто умрет от моих изделий, а не то бы рассчитать расписание

был вопрос о расчете зп?
причем тут изделия? для огромных размеров деревьев существуют кастомные решение. но опять же, причем тут orm?
...
Рейтинг: 0 / 0
ORM vs sql
    #37605541
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Enomay
то есть мы возвращаемся обратно в 2000й год. когда весь мир доказал что типизация это хорошо и правильно, ибо позволяет отловить не малую часть ошибок на этапе компиляции, упрощает тестирование, а так же показывает ошибки и в рантайме... мы всё это выбрасываем и возвращаемся к php, где баг из-за неправильного типа данных можно искать месяцами. браво.

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


ересь какая-то.
Никакой типизации и НЕТ!
я уж говорил про синхронизацию с БД тут.
че ересь то? или ты просто их не пробовал? как со скоростью? не сравнивал?
...
Рейтинг: 0 / 0
ORM vs sql
    #37605543
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Lelouch]ViPRosпропущено...


1. Нет там никакого улучшения: ни интелисенса, ни комментариев, ни . Одно и тоже что и строка. Только выглядит "круто и объектно", по удобству написания ничем не лучше.
2. Вы с явой попутали, это там генерики не поддерживаются на уровне среды исполнения и заменяются а список объектов + кучи кастов.

1. все равно удобно, чем есть
2. такое же говно и в нет
...
Рейтинг: 0 / 0
ORM vs sql
    #37605544
Enomay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ViPRosНикакой типизации и НЕТ!

вообще нет? в базе данные тоже в строках все лежат? или в блобах?

ViPRosя уж говорил про синхронизацию с БД тут.

какая синхронизация? причем тут синхронизация?

ViPRosче ересь то? или ты просто их не пробовал? как со скоростью? не сравнивал?

сравнивать по скорости с чем?
тебе уже написали выше, что такое Generics ты совершенно не знаешь. тут даже добавить больше нечего.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605545
Enomay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ViPRos2. такое же говно и в нет

то есть человек совершенно не владеющий предметом что-то пытается доказать. это уже даже не смешно.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605547
Enomay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ViPRosкак со скоростью? не сравнивал?

да, кстати. если сравнивать использование генериков с датасетами, то последние сливают по всем параметрам. как по скорости, так и по кол-ву потребляемой памяти. а уж если мы их через сервисы передавать захотим, то еще и проц нагрузит постоянной обработкой огромных XML.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605551
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosТипизированные Датасеты хороши для описания метаданных (так как там жесткая структура)
Типизированные датасеты - это зло, причем беспощадное. ORM даёт и метаданные, и типизацию.
ViPRosа нетипизированные для самих данных.
Когда заранее неизвестна структура - единственный случай применимости датасетов.
ViPRosДля улучшения читаемости хорошо бы к нетипизированным датасетам и их внутренностям обращаться через
dynamic
Я плакал... Это гвоздь в надгробие с надписью проверки именования членов и их типов на этапе коипиляции. Сахват, у тебя что не пост, то отжиг.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605555
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

да вы просто пишите монументальные проги
а у меня неизвестно не только структура, но и поведение
...
Рейтинг: 0 / 0
ORM vs sql
    #37605558
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosМСУ,

да вы просто пишите монументальные проги
а у меня неизвестно не только структура, но и поведение

И наверное даже не известно, что это программа...
...
Рейтинг: 0 / 0
ORM vs sql
    #37605559
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosМСУ, да вы просто пишите монументальные проги
а у меня неизвестно не только структура, но и поведение
Сахват, ты куришь не ту траву, выдыхай. У тебя смешалось всё в кучу, кони, люди, трава же.
Вот тебе адекватный аргумент озвучили - распараллеливание задачи на третьем звене (апп сервер). Как будешь параллелить, если твоя немасштабируемая гавнологика хостится на сиквел сервере.
У меня же в бой вступят тредпул, таски, Parallel, PLINQ. Аргументы?
...
Рейтинг: 0 / 0
ORM vs sql
    #37605561
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да и вообще облака с параллелями придумали идиоты. Накойхер (с) оно нужно, если может математику база данных считать. Бугага
...
Рейтинг: 0 / 0
ORM vs sql
    #37605565
Bob Dylan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,


вообще-то первый совет классиков тем, кто хочет построитъ распределённую систему,
гласит: "не распределайте ничего, если можно не распределятъ"

пул соединений, вообще-то, на стороне базы , находится,
PLINQ к обращениям к базам данных тоже неприменим,
единственное, что можно сделатъ с EF лучше- это кэширование,
так что подумайте, у кого и где что смешалосъ
...
Рейтинг: 0 / 0
ORM vs sql
    #37605569
Enomay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ViPRosEnomay,

это ТВОИ проблемы, а не мои
а дженерики в НЕТ точно так же работают
и воще пшел нах, я эти дженерики еще на коболе делал

да да, мы уже все поняли что ты совершенно не разбираешься в предмете. не нужно больше это доказывать.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605573
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosEnomay,

это ТВОИ проблемы, а не мои
а дженерики в НЕТ точно так же работают
и воще пшел нах, я эти дженерики еще на коболе делал

http://msdn.microsoft.com/ru-RU/library/f4a6ta2h(v=vs.80).aspx] Conversions are no longer necessary because each specialized generic class natively contains the value type. © MSDN. Выслушаю доказательства вашей теории по Generic'ам.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605576
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bob DylanМСУ, вообще-то первый совет классиков тем, кто хочет построитъ распределённую систему,
гласит: "не распределайте ничего, если можно не распределятъ"
Второй совет классиков - ничего не нужно кодировать, если можно кодировать. А третий - убей себя об стену, если стена рядом. Браво.
Bob Dylanпул соединений, вообще-то, на стороне базы , находится,
тредпул != пул соединений, вообще-то
Bob DylanPLINQ к обращениям к базам данных тоже неприменим
А я о чем говорю? Именно поэтому бизнес-логика на стороне БД - зло.
Bob Dylanединственное, что можно сделатъ с EF лучше- это кэширование,
так что подумайте, у кого и где что смешалосъ
Смешалось у Вас в голове.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605581
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУВообщем, это простой паттерн (теймплейт, практика) для доступа к данным. Альтернатива в дотнете - The Enterprise Library Data Access Application Block . То есть это никакой не ORM.
Ну а то что оно может выборку возвращать в виде списка объектов через row mapper не считается? По сути ведь тоже - маппинг представления из базы на объект. Я не спорю, просто уточняю.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605583
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch
Зачем мне динамическая типизация если база строго типизирована?
Немного вброшу - а если база NoSQL? А то тут все в порыве спора немного на скуль сервере зациклились :)
...
Рейтинг: 0 / 0
ORM vs sql
    #37605586
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchViPRosEnomay,

это ТВОИ проблемы, а не мои
а дженерики в НЕТ точно так же работают
и воще пшел нах, я эти дженерики еще на коболе делал

http://msdn.microsoft.com/ru-RU/library/f4a6ta2h(v=vs.80).aspx] Conversions are no longer necessary because each specialized generic class natively contains the value type. © MSDN. Выслушаю доказательства вашей теории по Generic'ам.
дружок, а об этом и говорю

However, if at another point in your program code another Stack<T> class is created, this time with a different value type such as a long or a user-defined structure as its parameter, the runtime generates another version of the generic type, this time substituting a long in the appropriate places in MSIL. Conversions are no longer necessary because each specialized generic class natively contains the value type.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605587
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыНу а то что оно может выборку возвращать в виде списка объектов через row mapper не считается? По сути ведь тоже - маппинг представления из базы на объект. Я не спорю, просто уточняю.
Ну маппинг это еще пол-дела, хорошо бы еще иметь свой внутренний язык для кодогенерации SQL конкретного типа SQL сервера (MS SQL, Oracle, DB2, ...).
EF/L2S - это язык Linq. В Nibernate - это ICriteria и HSQL.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605589
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыНемного вброшу - а если база NoSQL? А то тут все в порыве спора немного на скуль сервере зациклились :)
Этим и чудесен ORM, что работает с многими серверами. Databases supported by NHibernate
...
Рейтинг: 0 / 0
ORM vs sql
    #37605592
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Entity Framework, LINQ and Model-First for the Oracle Database

P.S. А вот L2S прекратил развитие и работает только с MS SQL... :(
...
Рейтинг: 0 / 0
ORM vs sql
    #37605598
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosLelouchпропущено...


http://msdn.microsoft.com/ru-RU/library/f4a6ta2h(v=vs.80).aspx] Conversions are no longer necessary because each specialized generic class natively contains the value type. © MSDN. Выслушаю доказательства вашей теории по Generic'ам.
дружок, а об этом и говорю

However, if at another point in your program code another Stack<T> class is created, this time with a different value type such as a long or a user-defined structure as its parameter, the runtime generates another version of the generic type, this time substituting a long in the appropriate places in MSIL. Conversions are no longer necessary because each specialized generic class natively contains the value type.

Во-первых , я вам не дружок, во-вторых, тут написано что каждый раз при использовании разных параметров типов среда исполнения генерирует для каждого из них СВОЙ собственный тип. Где вы тут видите подход Java с использованием листа объектов и вставкой в код методов преобразований?)

P.S. С вами спорить бред, почитайте Рихтера.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605599
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУViPRosМСУ, да вы просто пишите монументальные проги
а у меня неизвестно не только структура, но и поведение
Вот тебе адекватный аргумент озвучили - распараллеливание задачи на третьем звене (апп сервер). Как будешь параллелить, если твоя немасштабируемая гавнологика хостится на сиквел сервере.
У меня же в бой вступят тредпул, таски, Parallel, PLINQ. Аргументы?
1. Делать допзвены не проблема, не вижу нужды в них
2. а все эти Paralell и т.д. неинтеллектуальная тупость, я должен разбить, сортировать и т.д.. легче и точнее вручную. И датасеты не помеха не для тредпул, не для таск и не для параллель.

я говорю о том , что КЛАСС в КОДЕ = ЗЛО!!! это МЕРТВЫЙ код. Никакие атрибуты и т.д. больному не помогут. ООП для надуманных задач.
И тебе повезло что я дома и радикулит замучил, а то еще раз тебе напомнил, что ВИПРОС пофиг где находится методы, на сервере, на клиенте или на каком еще хостинге (ну это я загнул, но в планах).
...
Рейтинг: 0 / 0
ORM vs sql
    #37605601
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchВо-первых , я вам не дружок, во-вторых, тут написано что каждый раз при использовании разных параметров типов среда исполнения генерирует для каждого из них СВОЙ собственный тип. Где вы тут видите подход Java с использованием листа объектов и вставкой в код методов преобразований?)

P.S. С вами спорить бред, почитайте Рихтера.
Подруга, я про то и говорил, что в рантайме МЕДЛЕННО. А Джаву и т.д. приплели вы.
В гробу видал рихтеров этих.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605602
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosИ тебе повезло что я дома и радикулит замучил, а то еще раз тебе напомнил, что ВИПРОС пофиг где находится методы, на сервере, на клиенте или на каком еще хостинге (ну это я загнул, но в планах).

[offtop] XDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD [/offtop]
...
Рейтинг: 0 / 0
ORM vs sql
    #37605604
Enomay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
зыLelouchЗачем мне динамическая типизация если база строго типизирована?
Немного вброшу - а если база NoSQL? А то тут все в порыве спора немного на скуль сервере зациклились :)

запросто - RavenDB - всё строго типизировано.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605605
Enomay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ViPRosEnomayпропущено...
запросто - RavenDB - всё строго типизировано.
тупой, то что типизировано что то в одном процессе и в другом не означает что они синхронно типизированы

какой-то бред
RavenDB в себе хранит .NET типы.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605606
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosLelouchВо-первых , я вам не дружок, во-вторых, тут написано что каждый раз при использовании разных параметров типов среда исполнения генерирует для каждого из них СВОЙ собственный тип. Где вы тут видите подход Java с использованием листа объектов и вставкой в код методов преобразований?)

P.S. С вами спорить бред, почитайте Рихтера.
Подруга, я про то и говорил, что в рантайме МЕДЛЕННО. А Джаву и т.д. приплели вы.
В гробу видал рихтеров этих.

Конечно, гораздо выгоднее пихать все в список объектов, постоянно используя приведения(а иначе никак не обработаешь... а ну да через динамик (кстати а динамик не требует ли больше ресурсов для своей работы?) )), молясь, чтобы кто-то не впихнул в список левый объект (а то ведь приведение может и исключение вызвать), и вызывая упаковку/распаковку значимых типов...
А ну да, великим разработчикам ВИПРОС, экономящим стране 100 млн. $ некогда читать книги никому не известного Рихтера и т.д. ... ) Надо же работать над распилом экономией 100 млн $ ))
...
Рейтинг: 0 / 0
ORM vs sql
    #37605607
Enomay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ViPRosПодруга, я про то и говорил, что в рантайме МЕДЛЕННО. А Джаву и т.д. приплели вы.


медленно что? в сравнении с чем?
сравни работу с массивом где происходит боксинг/анбоксинг, и скорость дженериков, потом прозрей.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605608
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EnomayNoSQL?
Пишем свой кастом провайдер, тут пример или тут .

P.S. Сахват, ты не в адеквате. Отдыхай.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605609
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУПишем свой кастом провайдер
Ошибся в цитировании, писал для зы. Второй вариант для хибера (линк не вставился): NHibernate Membase caching provider
...
Рейтинг: 0 / 0
ORM vs sql
    #37605611
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУНу маппинг это еще пол-дела, хорошо бы еще иметь свой внутренний язык для кодогенерации SQL конкретного типа SQL сервера (MS SQL, Oracle, DB2, ...).
EF/L2S - это язык Linq. В Nibernate - это ICriteria и HSQL.
Так язык - это желаемое или необходимое? Почему не может быть ORM только для конкретной базы?
Вот например, более высокая абстракция MyBatis ( http://www.mybatis.org/core/) - уже ORM или ещё нет?
...
Рейтинг: 0 / 0
ORM vs sql
    #37605613
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЭтим и чудесен ORM, что работает с многими серверами. Databases supported by NHibernate Да пусть работает, я про заявление о строгой типизации базы
...
Рейтинг: 0 / 0
ORM vs sql
    #37605615
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Enomayзапросто - RavenDB - всё строго типизировано.
Не читал, но вот другой пример - MongoDB, никакой типизации
...
Рейтинг: 0 / 0
ORM vs sql
    #37605630
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchА ну да, великим разработчикам ВИПРОС, экономящим стране 100 млн. $ некогда читать книги никому не известного Рихтера и т.д. ... ) Надо же работать над распилом экономией 100 млн $ ))
Вот в МАИ взяли ДЕЛМИА И САП и попытались промоделировать процесс изготовления одной фигни для нового завода. Дык просто не смогли за 3 месяца. В ВИПРОС занял 10 дней.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605632
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУEnomayNoSQL?
P.S. Сахват, ты не в адеквате. Отдыхай.
А я по твоему что делаю :)
ООП фигня
...
Рейтинг: 0 / 0
ORM vs sql
    #37605635
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыМСУНу маппинг это еще пол-дела, хорошо бы еще иметь свой внутренний язык для кодогенерации SQL конкретного типа SQL сервера (MS SQL, Oracle, DB2, ...).
EF/L2S - это язык Linq. В Nibernate - это ICriteria и HSQL.
Так язык - это желаемое или необходимое? Почему не может быть ORM только для конкретной базы?
Вот например, более высокая абстракция MyBatis ( http://www.mybatis.org/core/) - уже ORM или ещё нет?
Язык - ПЛОХО. Не нужен. Если он не расширяем стандартным образом.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605636
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EnomayViPRosПодруга, я про то и говорил, что в рантайме МЕДЛЕННО. А Джаву и т.д. приплели вы.


медленно что? в сравнении с чем?
сравни работу с массивом где происходит боксинг/анбоксинг, и скорость дженериков, потом прозрей.
какой блин боксинг/анбоксинг? указатели рулят
...
Рейтинг: 0 / 0
ORM vs sql
    #37605641
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыТак язык - это желаемое или необходимое?
Срорее, необходимое.
зыПочему не может быть ORM только для конкретной базы?
Отчего ж не может, может. L2S - для конкретного типа сервера (MSSQL), например.
зыДа пусть работает, я про заявление о строгой типизации базы
Ты ж спросил про "конкретность базы", а теперь говоришь о другом - о типизации. Определись. Типизация априори должна быть в ORM, исходя даже из самого названия - объектный маппинг.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605644
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кусок соственной проги со всеми приблудами кто нить покажет?
или вы все работаете в цру?
...
Рейтинг: 0 / 0
ORM vs sql
    #37605646
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
самый симпотный орм - kynetic
...
Рейтинг: 0 / 0
ORM vs sql
    #37605653
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ауууу
скукота :(
...
Рейтинг: 0 / 0
ORM vs sql
    #37605679
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУзыТак язык - это желаемое или необходимое?
Срорее, необходимое.
зыПочему не может быть ORM только для конкретной базы?
Отчего ж не может, может. L2S - для конкретного типа сервера (MSSQL), например.

ок, тогда mybatis/ibatis, получается, тоже не ORM? Там нет собственного языка, транслируемого в XXX. Ну и наверное ещё каких-то свистелок, которые ты называешь необходимыми. Просто ты явно не ответил.

МСУзыДа пусть работает, я про заявление о строгой типизации базы
Ты ж спросил про "конкретность базы", а теперь говоришь о другом - о типизации. Определись.
да что ты, я не спрашивал про "конкретность базы". Я вообще адресовал свой вопрос Lelouch , к тебе у меня были другие. Не люблю смешивать.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605685
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыок, тогда mybatis/ibatis, получается, тоже не ORM? Там нет собственного языка, транслируемого в XXX. Ну и наверное ещё каких-то свистелок, которые ты называешь необходимыми. Просто ты явно не ответил.
Согласен, что "неявно" ответил. И не отвечу, потому что нет однозначного определения ORM. Каждый продукт сам себя позиционирует.
Хибер позиционирует себя как ORM.
Telerik OpenAccess позиционирует себя как ORM.
BLToolkit позиционирует себя как ORM.
EF позиционирует себя как ORM.
...
Enterprise Library Data Access Block позиционирует себя как практику (хелпер, другими словами).

зыда что ты, я не спрашивал про "конкретность базы". Я вообще адресовал свой вопрос Lelouch , к тебе у меня были другие. Не люблю смешивать.
Ок, тогда сорри.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605687
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зы, по поводу JdbcTemplate: Доступ к данным в Spring

...Существует много статей о том, как делать инъекцию зависимости в Spring, но очень мало толковой информации о подключениях к базам данных. В Spring это можно делать либо напрямую при помощи JDBC либо использовать ORM технологии, например, Hibernate .

Согласись, очевиден четкий контраст: либо горбатый, либо не горбатый.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605693
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыLelouchЗачем мне динамическая типизация если база строго типизирована?
Немного вброшу - а если база NoSQL? А то тут все в порыве спора немного на скуль сервере зациклились :)

Раз уж именно мне, то :

1) Тема топика SQL vs ORM. )))
2) Честно, не сталкивался с нетипизированными хранилищами
3) noSQL бывает типизированным (это ответили до меня)
4) Даже при отсутсвтии строгой типизации в бд использую ORM и получу строгую типизацию.

Подход без строгой типизации (нетипизированный датасет) все равно особых плюсов не имеет - при работе или придется приводить типы, или использовать dynamic, что сильно мешает и может привести к краху в рантайме при попытке использования несуществующего метода / поля / свойства, etc.
Или я не правильно понял вопрос?
...
Рейтинг: 0 / 0
ORM vs sql
    #37605703
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S. Из примеров по MongoDB, приводимых Вами:
Код: c#
1.
2.
3.
4.
BsonDocument book;
string author = book["author"].AsString;
DateTime publicationDate = book["publicationDate"].AsDateTime;
int pages = book["pages", -1].AsInt32; // default value is -1


Как видите, все равно преобразования типа необходимо.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605704
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
*
Код: plaintext
приводимой
...
Рейтинг: 0 / 0
ORM vs sql
    #37605711
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosкусок соственной проги со всеми приблудами кто нить покажет?
или вы все работаете в цру?

Вот вам, маленький запросик которых в приложении сотни.
Конечно вы его протестировали в студии, посмотрели план, и так каждый раз после любого изменения.
Эффективно.. :)
...
Рейтинг: 0 / 0
ORM vs sql
    #37605726
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchP.S. Из примеров по MongoDB, приводимых Вами:

Как видите, все равно преобразования типа необходимо.
преобразование необходимо исключительно для работы с данными в строго типизированном языке C#. Если клиентом будет javascript, то преобразование уже не нужно ;) Да и если в одной строке может лежать документ с полем "foo" и значением типа string, а в другой - документ с полем "foo" и значением типа number, то это и называется отсутствие строгой типизации в базе.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605727
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

я все к тому спрашивал, чтобы вляпаться с тобой в очередную игру слов про ORM или не ORM. Если называть инструмент ORM'ом, если у него есть базовый функционал маппинга сырых данных из базы на какую-то модель данных, то да, без ORM сейчас почти никто не обходится и для игнорирования нужны веские причины. Хотя вот в небольшом проекте с NoSQL (для Lelouch заодно) вместо ORM был простой валидатор по динамической схеме данных. Потому что были динамические формы и никакой объектной модели (кроме списка пользователей), и нужно было всего-лишь сохранить форму как документ, и уметь смапить документ обратно на форму для редактирования.

Если настаивать на понятии ORM как на обязательном присутствии свистелок и переделок, то примеров, почему не нужно использовать такой тяжелый инструмент как ORM, уже может быть много. Либо нужен баланс. Для простых модулей типа user management нет смысла изобретать очередной CRUD велосипед, а уже там, где преимущественно нужны быстрые, разнообразные и эффективные выборки с отображением данных, ORM избыточен. Особенно хибернейт.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605728
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"чтобы НЕ вляпаться" конечно же
...
Рейтинг: 0 / 0
ORM vs sql
    #37605740
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонВот вам, маленький запросик которых в приложении сотни.
Конечно вы его протестировали в студии, посмотрели план, и так каждый раз после любого изменения.
Эффективно.. :)
почему любители compile-time проверок все время любят приводить в пример опечатки в строках? А если я опечатался и написал >= , или вместо нуля единицу? А сколько в адовом 11867369 запросе можно опечаток наделать — я вообще молчу. У тебя же все равно будут юниттесты, правильно? :) они и свалятся в случае ошибки.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605741
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыМСУ, я все к тому спрашивал, чтобы не вляпаться с тобой в очередную игру слов про ORM или не ORM.
Я это почувствовал изначально, поэтому старался "неявно" отвечать. Но когда вопрос стал ребром "горбатый или не горбатый" - я отписался про "самопроизвольную" трактовку вендора.

Но, так или иначе, мы привыкли к тому, что в ORM'ах есть
1. Готовые для работы классы (либо пишем руками, либо кодогенерируем с хранилища)
2. Язык общения с хранилищем (транслятор в SQL)
3. По возможности поддержка различных видов БД (нетрудно реализовать из п.2)
4. По возможности поддержка возможности создания новой БД из набора классов (в хибере делается одной строчкой SchemaExport.Execute())

зыЕсли называть инструмент ORM'ом, если у него есть базовый функционал маппинга сырых данных из базы на какую-то модель данных
Маппинг - это самое последнее и самое простое. Нужна схема, прежде всего. Нужны классы. Нужен движок-транслятор. Вот, что самое сложное.

[quot зы]такой тяжелый инструмент как ORM
В том-то и соль, что он не тяжелый. Он шустр и понятен, как березовый лист. Запросы выполняются там же на сервере, программист же общается с типизированными данными. Скорость та же. Микросекунды на маппинг объектов в коллекции не в счет. Тот же датасет дольше будет заполняться, чем наполнится коллекция того же хибера или EF.
Самое шустрое же - это IDataReader, но работать с ним так или иначе невозможно.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605743
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыпочему любители compile-time проверок все время любят приводить в пример опечатки в строках? А если я опечатался и написал >= , или вместо нуля единицу?
Потому, что данный вид ошибки является самым распространенным. А от логической ошибки же (ошибки в бизнес-логике) ничего не спасёт, даже серебряная пуля.
зыУ тебя же все равно будут юниттесты, правильно? :) они и свалятся в случае ошибки.
Точно так же, можно ошибиться в юнит-тесте и написать 0 вместо 1. Так что мы ходим рекурсивно по кругу.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605765
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ
Точно так же, можно ошибиться в юнит-тесте и написать 0 вместо 1. Так что мы ходим рекурсивно по кругу.
да, и тестеры тоже ошибаются, и так всегда и вываливаются ошибки на продакшн, это реальность но все-таки давай рассматривать юнит-тесты как достаточный уровень защиты от подобных ошибок.

МСУМаппинг - это самое последнее и самое простое. Нужна схема, прежде всего. Нужны классы. Нужен движок-транслятор. Вот, что самое сложное.

маппинг - это результат работы всего, что ты написал выше. Именно что последнее, и базовое :) Транслятор->база->схема->маппинг. Тут именно что ничего тяжелого. Тяжелое и непредсказуемое начинается когда подключают, например, хибернейт. Если он избыточен для задачи, то достаточно jdbctemplate/mybatis для получения результата в виде POJO, с которым уже можно работать дальше используя парадигмы объектов. В основном это некая небольшая простая постобработка на стороне приложения перед выводом на клиент.
Тут нет серебряной пули, так что спор — нужен ORM или нет без конкретной задачи сводится к простому мерянью пиписьками вида "а у меня проект больше и без ORM мы бы его делали в 10 раз дольше".
...
Рейтинг: 0 / 0
ORM vs sql
    #37605777
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыно все-таки давай рассматривать юнит-тесты как достаточный уровень защиты от подобных ошибок.
Ок. Но зачем доводить до последнего рубежа обороны, если можно на начальном этапе отсеять такую ошибку (ошибки именований или типов).
Далее - продуктивность и удобство работы (интелиссенс). Влияет ли на скорость и качество разработки? Или в помойное ведро его, этот подсказыватель? Думаю, тут всё очевидно.

зымаппинг - это результат работы всего, что ты написал выше. Именно что последнее, и базовое :)
Это результат, окончательный расчёт. Но, чтобы его сделать, нужно иметь полноценный движок, вот в нем вся и трудность.

[quot зы]Тяжелое и непредсказуемое начинается когда подключают, например, хибернейт. Если он избыточен для задачи, то достаточно jdbctemplate/mybatis для получения результата в виде POJO, с которым уже можно работать дальше используя парадигмы объектов.[/quot
Не понимаю, всё же. В чём тяжелость и избыточность хибера? Нужно переключиться на другую БД (например, Oracle) - переключаем провайдер в конфиге. Нужно развернуть базу по схеме в инсталляторе - вызываем метод, который по схеме все сделает.

Но так или иначе, самое ценное в ORM - это типизация хранилища, как следствие родной человеческий интелиссенс, с которым одно удовольствие работать. Рутинные же SELECT FROM WHERE в прошлом.

зыТут нет серебряной пули, так что спор — нужен ORM или нет без конкретной задачи сводится к простому мерянью пиписьками вида "а у меня проект больше и без ORM мы бы его делали в 10 раз дольше".
Нужен. Тысячу раз нужен, зы. Однозначно нужен, даже если база постоянна и прочие фантики не интересны.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605794
Enomay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LelouchP.S. Из примеров по MongoDB, приводимых Вами:
Код: c#
1.
2.
3.
4.
BsonDocument book;
string author = book["author"].AsString;
DateTime publicationDate = book["publicationDate"].AsDateTime;
int pages = book["pages", -1].AsInt32; // default value is -1


Как видите, все равно преобразования типа необходимо.

ну конечно. вы бы еще работу с чистым rest показали.
использовать готовую библиотеку для доступа к MongoDB с поддержкой типов слабо?
хотя бы вот так http://habrahabr.ru/blogs/aspnet_mvc/93598/
...
Рейтинг: 0 / 0
ORM vs sql
    #37605800
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К МСУ добавить нечего, разве что - носить стринги не наша ориентация )
...
Рейтинг: 0 / 0
ORM vs sql
    #37605803
Enomay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
зыДля простых модулей типа user management нет смысла изобретать очередной CRUD велосипед, а уже там, где преимущественно нужны быстрые, разнообразные и эффективные выборки с отображением данных, ORM избыточен. Особенно хибернейт.

ORM не исключает быстрых и эффективных выборок.
его основная задача - маппинг. с этой задачей он отлично справляется. это на порядок удобнее нежели работать с классическим ADO.NET. он снимает кучу рутинной работы.

но и логику на нем строить так же можно, и нужно, если есть необходимость.
для примера. была необходимость отображать все записи из определенных таблиц.
через время появилось требование записи не удалять физически, а маркировать как Deleted. используя ORM, я пропишу это условие в одном месте и все запросы будут работать правильно. в вашем случае вы будете тупым поиском пересматривать все текстовые запросы и хранимые процедуры. а если добавится еще условие? будете лазить еще и еще. при этом нет никакого контроля, что вы не сломали нигде ничего. ведь тестами это покрыть вы не можете.

используя ORM, я могу наследовать логику, а значит и запросы к базе. в вашем случае, вам придется использовать динамический SQL, который привнесет дополнительный ад в проект.

использовать чистый сиквел имеет смысл только тогда, когда нужно обрабатывать огромные объемы данных. обычно это OLAP.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605805
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EnomayLelouchP.S. Из примеров по MongoDB, приводимых Вами:
Код: c#
1.
2.
3.
4.
BsonDocument book;
string author = book["author"].AsString;
DateTime publicationDate = book["publicationDate"].AsDateTime;
int pages = book["pages", -1].AsInt32; // default value is -1


Как видите, все равно преобразования типа необходимо.

ну конечно. вы бы еще работу с чистым rest показали.
использовать готовую библиотеку для доступа к MongoDB с поддержкой типов слабо?
хотя бы вот так http://habrahabr.ru/blogs/aspnet_mvc/93598/

А к чему ваш комментарий, можно вопрос? Может сначала перечитаете вопрос, на который я отвечал?
...
Рейтинг: 0 / 0
ORM vs sql
    #37605809
Enomay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МСУ Но так или иначе, самое ценное в ORM - это типизация хранилища, как следствие родной человеческий интелиссенс, с которым одно удовольствие работать. Рутинные же SELECT FROM WHERE в прошлом.


на самом деле самое ценное в ORM - это возможность работать с объектами, а не строками в таблицах. это существенно при использовании ООП.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605811
Enomay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LelouchА к чему ваш комментарий, можно вопрос? Может сначала перечитаете вопрос, на который я отвечал?

вы написали что необходимо преобразование. преобразование чего во что?
конечно в том или ином виде оно всегда и везде есть. я уверен что даже внутри сиквела. но используя нормальные ORM, у вас не возникает необходимость делать это самому. и к тому же отпадает необходимость в том коде, что вы привели как пример.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605813
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EnomayLelouchА к чему ваш комментарий, можно вопрос? Может сначала перечитаете вопрос, на который я отвечал?

вы написали что необходимо преобразование. преобразование чего во что?
конечно в том или ином виде оно всегда и везде есть. я уверен что даже внутри сиквела. но используя нормальные ORM, у вас не возникает необходимость делать это самому. и к тому же отпадает необходимость в том коде, что вы привели как пример.

Еще раз посмотрите на что я отвечал... Вопрос ОРМ не касался.)
...
Рейтинг: 0 / 0
ORM vs sql
    #37605915
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУНе понимаю, всё же. В чём тяжелость и избыточность хибера? Нужно переключиться на другую БД (например, Oracle) - переключаем провайдер в конфиге. Нужно развернуть базу по схеме в инсталляторе - вызываем метод, который по схеме все сделает.

большинство проектов, о которых я знаю, либо никогда не меняли базу, либо делали это исключительно ради оптимизации (например, переход с sql на nosql). Нельзя тупо поменять базу, ничего не поменять в коде и получить +500% в скорости. Так что ИМХО смена базы — проблема и, соответственно, выгода, сильно надуманы. Да, ты сейчас скажешь что ORM позволит оставить бОльшую часть кода как есть, но тот же переход sql->nosql требует заодно и смены подхода к работе с данными. А количество кода, которое необходимо будет переписать, зависит не от факта использования ORM, а от наличия первоначальной абстракции DAL и BL.

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

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


МСУНо так или иначе, самое ценное в ORM - это типизация хранилища, как следствие родной человеческий интелиссенс, с которым одно удовольствие работать. Рутинные же SELECT FROM WHERE в прошлом.

Ну ты уж определись, тебе чтобы код быстрее писать, или чтобы написанный код быстрее работал. Иногда приходится чем-то жертвовать.
Селекты бывают рутинные только если ты работаешь с таблицами данных по типу простых CRUD по ключу, и это не обязательно должно работать сверхбыстро. Тут да, я уже писал, ORM пожалуйста. Ну а в остальных случаях те же селекты, фром, вэрэ, куда ж без них :) но уже в других ракурсах.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605918
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Enomayиспользуя ORM, я пропишу это условие в одном месте и все запросы будут работать правильно. в вашем случае вы будете тупым поиском пересматривать все текстовые запросы и хранимые процедуры. а если добавится еще условие? будете лазить еще и еще. при этом нет никакого контроля, что вы не сломали нигде ничего. ведь тестами это покрыть вы не можете.


Я не очень понимаю, как ты представляешь себе архитектуру приложения с ORM и без? Почему, если нет ORM, то обязательно все будет раскидано по разным частям кода? Ну вот просто как-то не понимаю :)
Enomayиспользуя ORM, я могу наследовать логику, а значит и запросы к базе. в вашем случае, вам придется использовать динамический SQL, который привнесет дополнительный ад в проект.

а с ORM, если нужно делать выборки по динамическим критериям, не нужно будет писать динамический запрос на одном из этих самых языков запросов? sql-подобный как в хибернейте или какие-нибудь конструкторы критериев? это не как АД выглядит? :) что за предрассудки?
...
Рейтинг: 0 / 0
ORM vs sql
    #37605919
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонViPRosкусок соственной проги со всеми приблудами кто нить покажет?
или вы все работаете в цру?

Вот вам, маленький запросик которых в приложении сотни.
Конечно вы его протестировали в студии, посмотрели план, и так каждый раз после любого изменения.
Эффективно.. :)
Парамоша, в ВИПРОС вся эта фигня генерируется и кешируется
при изменении чего нить кеш проверяется на валидность и приводится в нужный вид если возможно или метится как говно
(это по части СКЛ запросов = виртуальные типы)
потом проверяются методы использующие данный тип и т.д.

а воще все делатеся наоборот - из метаданных генерируются БД и запросы(виртуальные типы - вью)
...
Рейтинг: 0 / 0
ORM vs sql
    #37605936
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыEnomayиспользуя ORM, я пропишу это условие в одном месте и все запросы будут работать правильно. в вашем случае вы будете тупым поиском пересматривать все текстовые запросы и хранимые процедуры. а если добавится еще условие? будете лазить еще и еще. при этом нет никакого контроля, что вы не сломали нигде ничего. ведь тестами это покрыть вы не можете.


Я не очень понимаю, как ты представляешь себе архитектуру приложения с ORM и без? Почему, если нет ORM, то обязательно все будет раскидано по разным частям кода? Ну вот просто как-то не понимаю :)
Enomayиспользуя ORM, я могу наследовать логику, а значит и запросы к базе. в вашем случае, вам придется использовать динамический SQL, который привнесет дополнительный ад в проект.

а с ORM, если нужно делать выборки по динамическим критериям, не нужно будет писать динамический запрос на одном из этих самых языков запросов? sql-подобный как в хибернейте или какие-нибудь конструкторы критериев? это не как АД выглядит? :) что за предрассудки?

Если под динамическими критериями подразумевается то что запрос меняется в зависимости от условий то на LINQ это спокойно пишется без SQL, Entitu SQL , etc.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605939
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchЕсли под динамическими критериями подразумевается то что запрос меняется в зависимости от условий то на LINQ это спокойно пишется без SQL, Entitu SQL , etc.
да спасибо что глаза открыл, я этого и не отрицал. Я говорил что выглядит это по сути так же как составление динамического запроса на sql. Так что аргумент Enomay про какие-то там сложности мне не очень понятен.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605941
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыLelouchЕсли под динамическими критериями подразумевается то что запрос меняется в зависимости от условий то на LINQ это спокойно пишется без SQL, Entitu SQL , etc.
да спасибо что глаза открыл, я этого и не отрицал. Я говорил что выглядит это по сути так же как составление динамического запроса на sql. Так что аргумент Enomay про какие-то там сложности мне не очень понятен.

Нет, это выглядит совершенно по другому.)
...
Рейтинг: 0 / 0
ORM vs sql
    #37605942
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати напиши мне без стороннего кода условие where с поиском по названию поля, переданному как аргумент, на linq
да ладно, можешь не писать, суть надеюсь понял. Задача стара как боян и существует с момента появления самого linq, и вроде как самой библиотекой она так и осталась нерешенной.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605947
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыкстати напиши мне без стороннего кода условие where с поиском по названию поля, переданному как аргумент, на linq
да ладно, можешь не писать, суть надеюсь понял. Задача стара как боян и существует с момента появления самого linq, и вроде как самой библиотекой она так и осталась нерешенной.

Тупой вариант switch-case по названию полей не рассматривать?
...
Рейтинг: 0 / 0
ORM vs sql
    #37605954
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
фуфуфу. конечно нет
...
Рейтинг: 0 / 0
ORM vs sql
    #37605957
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыВ хибере очень много всего, что нужно можно настроить, чтобы заработало
Имхо, так правильней. Лейтмотивом версии 3.2 можно считать "Меньше настроек, больше дела."


зыНапример, мне нужно делать выборки актуальных данных по вроде бы простым динамическим критериям. Нужно делать очень быстро, много и на большом объеме данных. Хибер не в состоянии это закэшировать, просто нет таких алгоритмов. Он хорошо справляется с поиском по ключу, но сложнее — проходит мимо. Лучше взять инструмент проще и эффективнее, например mybatis, и получить то, что мне нужно, сразу и без танцев.
Вы часом не OLAP на хибер пытались навесить? Может быть пример очень быстро, много и на большом объеме данных приведёте? А то похоже на ситуацию "выбери любых два пункта"
Да и проекции в хибере никто не отменял, и выполняются они намного быстрее работы с сущностями.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605960
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchНет, это выглядит совершенно по другому.)
а что другого-то? ты правде в глаза погляди, решение проблемы на большинстве предлагаемых инструментов выглядит одинаково +- пара букв.

http://www.mybatis.org/core/statement-builders.html
и хреначь в свое удовольствие.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605968
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SolYUtorВы часом не OLAP на хибер пытались навесить? Может быть пример очень быстро, много и на большом объеме данных приведёте? А то похоже на ситуацию "выбери любых два пункта"
Да и проекции в хибере никто не отменял, и выполняются они намного быстрее работы с сущностями.
нет, упаси меня от olap и кубов. Какой конкретный пример? Любой публичный сервис, задача которого — обрабатывать выборки хотя-бы со скоростью пару десятков тысяч запросов в секунду по базе размером, ну пусть от 50гигабайт, уже лучше давно пора начать избавлять от хибернейта и прочих монстров. Хотел привести социальную сеть, но неразумно — там можно много и яростно кэшировать и актуальность там не критична. Пусть будет какой-нибудь сервис для совместной работы людей над XXX в реальном времени. Выборки включают фильтрацию по правам, коллекциям и атрибутам XXX для отображения данных конкретному пользователю.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605969
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыLelouchНет, это выглядит совершенно по другому.)
а что другого-то? ты правде в глаза погляди, решение проблемы на большинстве предлагаемых инструментов выглядит одинаково +- пара букв.

http://www.mybatis.org/core/statement-builders.html
и хреначь в свое удовольствие.

А если я в этом инструменте сначала вызову метод Where а потом Join? он переместит строку Join выше условия?
Код: java
1.
2.
3.
4.
5.
6.
BEGIN(); // Clears ThreadLocal variable
  SELECT("P.ID, P.USERNAME, P.PASSWORD, P.FIRST_NAME, P.LAST_NAME");
  FROM("PERSON P");
  if (p.id != null) {
  WHERE("P.ID like #{id}");
  }


Linq:
Код: c#
1.
2.
3.
4.
5.
6.
 var query = from i in context.Person
                        select i;
            if (p.Id != null)
            {
                query = query.Where(i => i.Id == id);
            }


Прям одно и тоже, особенно с типизацией и возможностью обработки noSQL (для EF достаточно найти провайдера. а для этой библиотеки что?)
...
Рейтинг: 0 / 0
ORM vs sql
    #37605972
Enomay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
зыЯ не очень понимаю, как ты представляешь себе архитектуру приложения с ORM и без? Почему, если нет ORM, то обязательно все будет раскидано по разным частям кода? Ну вот просто как-то не понимаю :)


Обычно если человек использует ORM, то как правило вся логика работы с данным сконцентрирована в одном слое - DAL.
Та же ситуация может быть и при использовании SQL запросов, прописанных в коде.
Другое дело когда мы начинаем примазывать тут использование хранмых процедур. Тут уже отследить где какая выборка, становится сложнее. Хранимые могут вызываться другими хранимыми и так далее. Проблема в том, что DAL слой с ORM при поддержке современных IDE очень легко поддерживать, рефакторить.

зыа с ORM, если нужно делать выборки по динамическим критериям, не нужно будет писать динамический запрос на одном из этих самых языков запросов? sql-подобный как в хибернейте или какие-нибудь конструкторы критериев? это не как АД выглядит? :) что за предрассудки?

опять же, это будет тестируемо и как минимум будет содержать значительно меньше синтаксических ошибок, в силу строгой типизации.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605977
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch,

даже не близко
...
Рейтинг: 0 / 0
ORM vs sql
    #37605979
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ответ на ваш вопрос про поле по названию:

Код: c#
1.
2.
List<Table1> users = context.Table1Set.Where("it.Name LIKE @usernameToMatch",
                    new ObjectParameter("usernameToMatch", "1")).OrderBy(u => u.Name).ToList();
...
Рейтинг: 0 / 0
ORM vs sql
    #37605980
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosLelouch,

даже не близко

Браво, правда это был сарказм.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605982
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosLelouch,

даже не близко

Если вы насчет оператора like то мне просто было не интересно искать его реализацию кроме показанной выше на 2 поста)
...
Рейтинг: 0 / 0
ORM vs sql
    #37605983
Enomay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
зыфуфуфу. конечно нет

IQueriable творит чудеса. в купе с extension и спецификациями.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605985
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchViPRosLelouch,

даже не близко

Браво, правда это был сарказм.
да какой нафиг сарказм
хардкод детектед
...
Рейтинг: 0 / 0
ORM vs sql
    #37605986
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchОтвет на ваш вопрос про поле по названию:

Код: c#
1.
2.
List<Table1> users = context.Table1Set.Where("it.Name LIKE @usernameToMatch",
                    new ObjectParameter("usernameToMatch", "1")).OrderBy(u => u.Name).ToList();


а вот это уже недалко от датасет :):)
можно и покруче
...
Рейтинг: 0 / 0
ORM vs sql
    #37605988
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosLelouchпропущено...


Браво, правда это был сарказм.
да какой нафиг сарказм
хардкод детектед
То есть это:

Код: java
1.
2.
3.
4.
5.
6.
BEGIN(); // Clears ThreadLocal variable
  SELECT("P.ID, P.USERNAME, P.PASSWORD, P.FIRST_NAME, P.LAST_NAME");
  FROM("PERSON P");
  if (p.id != null) {
  WHERE("P.ID like #{id}");
  }


не хардкод, а это:
Код: c#
1.
2.
3.
4.
5.
6.
var query = from i in context.Person
                        select i;
            if (p.Id != null)
            {
                query = query.Where(i => i.Id == id);
            }


хардкод?)
P.S. Отвечали не Вам)
P.P.S. Идите Generic'и пробуйте, потом напишите эссе о их ужасной производительности) Я прочту) Честно :)
...
Рейтинг: 0 / 0
ORM vs sql
    #37605990
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchА если я в этом инструменте сначала вызову метод Where а потом Join? он переместит строку Join выше условия?

а если я с головой не дружу, компьютер мне поможет? :) в linq ты не можешь случайно переставлять все подряд местами, иначе получится что из базы выходит все, а фильтрует приложение.
LelouchПрям одно и тоже, особенно с типизацией и возможностью обработки noSQL (для EF достаточно найти провайдера. а для этой библиотеки что?)
Я уже писал выше свое отношение к смене сервера, нужно следить за дискуссией. Так что если нужен nosql, я буду сразу на нем писать. Кстати mybatis поддерживает только sql, впрочем как и linq to sql.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605991
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosLelouchОтвет на ваш вопрос про поле по названию:

Код: c#
1.
2.
List<Table1> users = context.Table1Set.Where("it.Name LIKE @usernameToMatch",
                    new ObjectParameter("usernameToMatch", "1")).OrderBy(u => u.Name).ToList();


а вот это уже недалко от датасет :):)
можно и покруче

До датасета как до луны) Точнее датасету до этого)))
...
Рейтинг: 0 / 0
ORM vs sql
    #37605993
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыLelouchА если я в этом инструменте сначала вызову метод Where а потом Join? он переместит строку Join выше условия?

а если я с головой не дружу, компьютер мне поможет? :) в linq ты не можешь случайно переставлять все подряд местами, иначе получится что из базы выходит все, а фильтрует приложение.
LelouchПрям одно и тоже, особенно с типизацией и возможностью обработки noSQL (для EF достаточно найти провайдера. а для этой библиотеки что?)
Я уже писал выше свое отношение к смене сервера, нужно следить за дискуссией. Так что если нужен nosql, я буду сразу на нем писать. Кстати mybatis поддерживает только sql, впрочем как и linq to sql.
В EF могу, генерация SQL не зависит от построения LINQ запроса.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605996
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыЛюбой публичный сервис, задача которого — обрабатывать выборки хотя-бы со скоростью пару десятков тысяч запросов в секунду по базе размером, ну пусть от 50гигабайт, уже лучше давно пора начать избавлять от хибернейта и прочих монстров
Если у вас 20к запросов в секунду - то NHibernate не самая большая ваша проблема. :) Ни один сервер БД не выдержит такой нагрузки. Это один фиг распределённая система, никакой ACID там и в помине не будет.
...
Рейтинг: 0 / 0
ORM vs sql
    #37605998
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SolYUtorзыЛюбой публичный сервис, задача которого — обрабатывать выборки хотя-бы со скоростью пару десятков тысяч запросов в секунду по базе размером, ну пусть от 50гигабайт, уже лучше давно пора начать избавлять от хибернейта и прочих монстров
Если у вас 20к запросов в секунду - то NHibernate не самая большая ваша проблема. :) Ни один сервер БД не выдержит такой нагрузки. Это один фиг распределённая система, никакой ACID там и в помине не будет.
да ладно
...
Рейтинг: 0 / 0
ORM vs sql
    #37605999
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EnomayДругое дело когда мы начинаем примазывать тут использование хранмых процедур. Тут уже отследить где какая выборка, становится сложнее. Хранимые могут вызываться другими хранимыми и так далее. Проблема в том, что DAL слой с ORM при поддержке современных IDE очень легко поддерживать, рефакторить.

Что, использование ORM уже запрещает использование хранимок? Не использование ORM говорит о том, что все написано на хранимках? Что за стереотипы.
Enomayопять же, это будет тестируемо и как минимум будет содержать значительно меньше синтаксических ошибок, в силу строгой типизации.
чтобы что-то было тестируемо, нужно заложить это в архитектуру. Три буквы в аббревиатуре не делают из говна конфетку. А поскольку тестировать можно много чего, будем считать что синтаксические ошибки тоже тестируемы, я выше уже писал МСУ, иногда нужно чем-то жертвовать.
...
Рейтинг: 0 / 0
ORM vs sql
    #37606000
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch,

1. чистой воды хардкод
2. Датаадаптер так и работает в принципе
3. когда я писал дженерик код через alter на коболе ты под стол пешком ходила
...
Рейтинг: 0 / 0
ORM vs sql
    #37606001
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchОтвет на ваш вопрос про поле по названию:

превосходно, но это же вставка чистого SQL без проверок в compile time :) не нужно себе противоречить, и раз уж допускаешь исключения, то допускай их везде, в том числе на самом высоком уровне — в подходе.
...
Рейтинг: 0 / 0
ORM vs sql
    #37606002
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зы я выше уже писал МСУ, иногда нужно чем-то жертвовать.
лучше МСУ
и другими кодерами
...
Рейтинг: 0 / 0
ORM vs sql
    #37606007
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchВ EF могу, генерация SQL не зависит от построения LINQ запроса.
и даже groupby можно куда угодно всунуть? ;)
...
Рейтинг: 0 / 0
ORM vs sql
    #37606008
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SolYUtorЕсли у вас 20к запросов в секунду - то NHibernate не самая большая ваша проблема. :) Ни один сервер БД не выдержит такой нагрузки. Это один фиг распределённая система, никакой ACID там и в помине не будет.
да ладно, вот тут 11861435 ребята и 750k выжимали ;)
...
Рейтинг: 0 / 0
ORM vs sql
    #37606009
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosLelouch,

1. чистой воды хардкод
2. Датаадаптер так и работает в принципе
3. когда я писал дженерик код через alter на коболе ты под стол пешком ходила

Во-первых, я мужского пола - не "дружочек" или как вы там меня назвали я вам просто по причине того, что для начала мы не знакомы.
Во-вторых, удачи и дальнейшего удовольствия общения с чудо-платформой випрос, позволяющей строить только 2х-звенные решения только на WinForms. Интересно, а то что МС вот уже как лет 5 от их разработки отказалась вас не смутило?
В-третьих, приведите, наконец, пример работы с Вашими метаданными, чтобы мы пали ниц перед пример НЕ хардкода.)
...
Рейтинг: 0 / 0
ORM vs sql
    #37606016
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch,

1. аааа, извини, не въехал, дмуал раз не друг, то подруга (ну не враг же)
2. випрос тут не при чем, просто я пытаюсь сказать что КЛАСС в коде = ХАРДКОД проблемной области, что = Монументальная прога, мертворожденная и предлагаю конфигурировать класс(метаданные) вне кода, а в коде только интерпретировать.
3. счас я к удовльствию некоторых дома (я гастарбайтер в москоу, но живу в орле) и випрос тут принципиально не установлена
вот приеду где то в >20 числа и если не забудешь то покажу, как строятся метаданные, как генерируются персистентные и виртуальные типы, как интерпретируется и т.д.
...
Рейтинг: 0 / 0
ORM vs sql
    #37606020
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыLelouchВ EF могу, генерация SQL не зависит от построения LINQ запроса.
и даже groupby можно куда угодно всунуть? ;)

После groupby доступен только ключ в дальнейших запросах) Но, да, можно.

Код: c#
1.
2.
3.
4.
5.
var query = from item in context.Table2Set
                        select item;
            var query2 = from i in query
                         group i by i.Name;
            query2 = query2.Where(i => i.Key == "2");
...
Рейтинг: 0 / 0
ORM vs sql
    #37606021
Enomay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мы кажется отвлеклись от сути.
давайте опишем проблему и её, так сказать, оптимальные решения.
поставим задачу и попытаемся её решить. а там посмотрим, что оптимальнее.
...
Рейтинг: 0 / 0
ORM vs sql
    #37606022
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мс ни от чего не отказался
мс решает свои внутренные проблемы, то ей нужен что то типа линк, то дженерики ТОЛЬКО для коллекций, то ОРМ для М, то ТПЛ для ХНА и т.д.
и она всю эту побочную фигню пуляет в мсдн
а кодеры жрут
...
Рейтинг: 0 / 0
ORM vs sql
    #37606025
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зынет, упаси меня от olap и кубов.
Фигасе. А ну-ка расскажи, как ты по большим объемам отчеты снимаешь? По боевой базе? Или с большими объемами не работаешь?
зыкстати напиши мне без стороннего кода условие where с поиском по названию поля, переданному как аргумент, на linq
да ладно, можешь не писать, суть надеюсь понял. Задача стара как боян и существует с момента появления самого linq, и вроде как самой библиотекой она так и осталась нерешенной.
Что за детский сад, зы? DLINQ
...
Рейтинг: 0 / 0
ORM vs sql
    #37606031
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

про то и ратуем, но это не столбовая дорога мс, а просто пример
...
Рейтинг: 0 / 0
ORM vs sql
    #37606035
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Enomayмы кажется отвлеклись от сути.
давайте опишем проблему и её, так сказать, оптимальные решения.
поставим задачу и попытаемся её решить. а там посмотрим, что оптимальнее.
проблема простая, я считаю, что вот это хардкод
и что никакой гарнитии нет,что это фиговина будет работать, хотя и прокомпилируется
Код: c#
1.
2.
3.
4.
5.
var query = from item in context.Table2Set
                        select item;
            var query2 = from i in query
                         group i by i.Name;
            query2 = query2.Where(i => i.Key == "2");
...
Рейтинг: 0 / 0
ORM vs sql
    #37606036
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosEnomayмы кажется отвлеклись от сути.
давайте опишем проблему и её, так сказать, оптимальные решения.
поставим задачу и попытаемся её решить. а там посмотрим, что оптимальнее.
проблема простая, я считаю, что вот это хардкод
и что никакой гарнитии нет,что это фиговина будет работать, хотя и прокомпилируется
Код: c#
1.
2.
3.
4.
5.
var query = from item in context.Table2Set
                        select item;
            var query2 = from i in query
                         group i by i.Name;
            query2 = query2.Where(i => i.Key == "2");



Поверьте, я проверил. Будет.
...
Рейтинг: 0 / 0
ORM vs sql
    #37606038
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch,

пусть и он проверит :)
неужто не доходит простая мысль?
...
Рейтинг: 0 / 0
ORM vs sql
    #37606040
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зайди в БД и замени key на GUID
и попробуй запусти еще раз компиляцию? есть ошибки?
теперь запусти
есть ошибки?
...
Рейтинг: 0 / 0
ORM vs sql
    #37606043
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosзайди в БД и замени key на GUID
и попробуй запусти еще раз компиляцию? есть ошибки?
теперь запусти
есть ошибки?

1. Если обновить модель то будет ошибка) а L2S по-моему даже вылетит на создании контекста.
2. Key это поле после group by, его нет в таблице если что.
...
Рейтинг: 0 / 0
ORM vs sql
    #37606044
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыда ладно, вот тут 11861435 ребята и 750k выжимали

Хм. Они конечно пошли дальше... Они отказались от SQL и много чего еще...
...
Рейтинг: 0 / 0
ORM vs sql
    #37606046
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыбольшинство проектов, о которых я знаю, либо никогда не меняли базу, либо делали это исключительно ради оптимизации (например, переход с sql на nosql).
Речь не о "случайном" изменении базы, а о подобной возможности. Я учавствовал в проектах, в которых заложена поддержка различных БД (Oracle, MS SQL). И это круто. Как будешь решать такую задачу, дублировать дата-слой под каждую БД?

зыНельзя тупо поменять базу, ничего не поменять в коде и получить +500% в скорости.
Можно. И скорость тут не причем.

зыТак что ИМХО смена базы — проблема и, соответственно, выгода, сильно надуманы.
Это реальность, зы, с которой ты просто не сталкивался.

зыДа, ты сейчас скажешь что ORM позволит оставить бОльшую часть кода как есть, но тот же переход sql->nosql требует заодно и смены подхода к работе с данными.
И это тоже. SQL vs NOSQL - разные подходы, сомневаюсь, что такой переход возможен. Давай возьмем лучше Oracle и MSSQL, самые распространенные корпоративные сервера. Переход безболезненный. Без ORM это практически невозможно.

зыА количество кода, которое необходимо будет переписать, зависит не от факта использования ORM, а от наличия первоначальной абстракции DAL и BL.
Абстракция изначально заложена в движок ORM. Наличие провайдера даст возможность генерировать "свой" SQL. Вот и вся абстракция. По кол-ву таких абстракций (кол-во поддерживаемых СУБД) хибер - лидер.

зыВ хибере очень много всего, что нужно настроить, чтобы заработало. Более высокий порог вхождения.
Та я тебя умоляю, проще пареной репы :) Посложнее, конечно, чем L2S, но не до базрассудства.

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

зыОсобенно коварны транзакции и кэш. В некоторых случаях кэш вообще нафиг не нужен, а он есть.
Зы, ну вот что ты фантазируешь, а? ;)

зыА если несколько серверов — появляется ещё и проблема репликации кэша.
Ты имеешь ввиду, если несколько нод в кластере. Так вот пишется либо свой балансировщик, либо вынос кеша на слой БД. Второе проще. Это как встроенная возможность хранения ASP.NET сессии в БД для такой кластерной архитектуры. Ничего сложного.

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

зыНапример, мне нужно делать выборки актуальных данных по вроде бы простым динамическим критериям. Нужно делать очень быстро, много и на большом объеме данных. Хибер не в состоянии это закэшировать, просто нет таких алгоритмов. Он хорошо справляется с поиском по ключу, но сложнее — проходит мимо. Лучше взять инструмент проще и эффективнее, например mybatis, и получить то, что мне нужно, сразу и без танцев.
На больших наборах только OLAP поможет. Для поиска - полнотекст. Другого не дано. Какие размеры для тебя большие?
Для меня - несколько терабайт (разумеется, никаких блобов).

зыНу ты уж определись, тебе чтобы код быстрее писать, или чтобы написанный код быстрее работал. Иногда приходится чем-то жертвовать.
В том-то и дело, что то и другое.
...
Рейтинг: 0 / 0
ORM vs sql
    #37606050
Enomay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ViPRosмс ни от чего не отказался
мс решает свои внутренные проблемы, то ей нужен что то типа линк, то дженерики ТОЛЬКО для коллекций, то ОРМ для М, то ТПЛ для ХНА и т.д.
и она всю эту побочную фигню пуляет в мсдн
а кодеры жрут

ты для чего эту бессмысленную фигню тут написал?
...
Рейтинг: 0 / 0
ORM vs sql
    #37606052
Enomay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ViPRosLelouch,

пусть и он проверит :)
неужто не доходит простая мысль?

какая мысль? обычный составной запрос.
...
Рейтинг: 0 / 0
ORM vs sql
    #37606054
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchViPRosзайди в БД и замени key на GUID
и попробуй запусти еще раз компиляцию? есть ошибки?
теперь запусти
есть ошибки?

1. Если обновить модель то будет ошибка) а L2S по-моему даже вылетит на создании контекста.
2. Key это поле после group by, его нет в таблице если что.
ну тогда о какой строгой типизации речь? и нафига столько гемора, если все равно Ашибка гарантирована?
...
Рейтинг: 0 / 0
ORM vs sql
    #37606055
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosзайди в БД и замени key на GUID
А если полить бензином сервер с БД и поджечь, работать будет?
Странное занятие, так просто менять типы в хранилище. Найми себе хорошего проектировщика DBD и освободи свою жизнь от создания схемы данных.

P.S. Сахават, хватит откровенно гнать. Уже не смешно.
...
Рейтинг: 0 / 0
ORM vs sql
    #37606056
Enomay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ViPRosзайди в БД и замени key на GUID
и попробуй запусти еще раз компиляцию? есть ошибки?
теперь запусти
есть ошибки?

что за фигня? в бд поменяли и нигде больше не меняли? так при таком подходе оно упадёт при любом подходе.
...
Рейтинг: 0 / 0
ORM vs sql
    #37606059
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EnomayМСУ Но так или иначе, самое ценное в ORM - это типизация хранилища, как следствие родной человеческий интелиссенс, с которым одно удовольствие работать. Рутинные же SELECT FROM WHERE в прошлом.


на самом деле самое ценное в ORM - это возможность работать с объектами, а не строками в таблицах. это существенно при использовании ООП.

Ну а я что сказал?
...
Рейтинг: 0 / 0
ORM vs sql
    #37606067
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУViPRosзайди в БД и замени key на GUID
А если полить бензином сервер с БД и поджечь, работать будет?
Странное занятие, так просто менять типы в хранилище. Найми себе хорошего проектировщика DBD и освободи свою жизнь от создания схемы данных.

P.S. Сахават, хватит откровенно гнать. Уже не смешно.
Муся, я ниче не гоню.
Я задал 2 вопроса по просбе Еномая
1. про хардкод
2. строгую типизацию
и жду ответа
...
Рейтинг: 0 / 0
ORM vs sql
    #37606072
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SolYUtorХм. Они конечно пошли дальше... Они отказались от SQL и много чего еще...
Ну вот как раз от sql не отказывались, прочитай внимательней. Просто некоторые кейсы, которые нужно было оптимизировать, реализовали напрямую. Но тут дело даже не в этом, там сравнивается с тем, сколько может выдавать простая база на простом железе, а это больше 20k.
...
Рейтинг: 0 / 0
ORM vs sql
    #37606074
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУА ну-ка расскажи, как ты по большим объемам отчеты снимаешь? По боевой базе? Или с большими объемами не работаешь?

Данила, проснулся и сразу в бой :) Зачем мне рассказывать о том, чем я не занимаюсь?
МСУЧто за детский сад, зы? DLINQ
Это же уже обсудили, нужно было перечитать топ вначале, раз отстал на пару страниц.
...
Рейтинг: 0 / 0
ORM vs sql
    #37606079
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыДанила, проснулся и сразу в бой :)
Если бы :) С работы приехал, все праздники похерились...
зыЗачем мне рассказывать о том, чем я не занимаюсь?
Ок. Просто меня смутило, как ты стал открещиваться от олапов.
зыЭто же уже обсудили, нужно было перечитать топ вначале, раз отстал на пару страниц.
Хм, вроде всё прочитал. Видел предложили штатными средстами разрулить, я предложил более гибкий DLINQ - вещь!
...
Рейтинг: 0 / 0
ORM vs sql
    #37606085
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пойду-ка я спать, завтра зайду - чую зы ответную херачит на пергаменте
...
Рейтинг: 0 / 0
ORM vs sql
    #37606087
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыНу вот как раз от sql не отказывались, прочитай внимательней. Просто некоторые кейсы, которые нужно было оптимизировать, реализовали напрямую.
Отказались. Работает только в режиме поиска по ключу, вот и результаты близки к memcached (хотя и опережают его). Хотя я не отрицаю того факта, что совместная работа с SQL по-прежнему возможна.

зыНо тут дело даже не в этом, там сравнивается с тем, сколько может выдавать простая база на простом железе, а это больше 20k.
Вернуть три поля, по ключу, когда вся БД в памяти - ОК, может. А как насчёт другой работы: Insert, update, delete, транзакции на несколько таблиц... Ляжет он на пару-тройку порядков раньше.
...
Рейтинг: 0 / 0
ORM vs sql
    #37606088
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУРечь не о "случайном" изменении базы, а о подобной возможности. Я учавствовал в проектах, в которых заложена поддержка различных БД (Oracle, MS SQL). И это круто. Как будешь решать такую задачу, дублировать дата-слой под каждую БД?
зыНельзя тупо поменять базу, ничего не поменять в коде и получить +500% в скорости.
Можно. И скорость тут не причем.

Ну отлично. Когда мне нужно будет решать эту задачу — я этим займусь :) Я с самого начала преложил отойти от сферического коня в вакууме, потому что его обсуждение бессмысленно. Иногда быстрее и эффективнее написать решение конкретной проблемы, не стараясь заложить в неё все возможные юскейсы, подстилки и прочую бутафорию. Это все стоит денег и отнимает время, а на конкуретном рынке нет ни того ни другого. Возьми вконтакт, например. Даже имея предмет прямого копирования, они занимались с самого начала такой ерундой, как полная абстракция от хранилища данных? Да они бы таким образом не взлетели.

МСУИ это тоже. SQL vs NOSQL - разные подходы, сомневаюсь, что такой переход возможен. Давай возьмем лучше Oracle и MSSQL, самые распространенные корпоративные сервера. Переход безболезненный. Без ORM это практически невозможно.

Зачем переходить с oracle на mssql и обратно? Забыли, что понадобится новая фича, которая есть в другом сервере? Или лицензия закончилась? Или разница между ними в +500% производительности на тех же данных с теми же запросами?
А вот переход на nosql — возможная реальность, на mongodb много case studies, почитай.


МСУзыА если внезапно начнет глючить в неумелых руках, то ошибки можно искать долго и упорно.
Зы, не аргумент. Неумелым рукам и мороженое противопоказано, подавится и умрет.

Да поверь, на проде в безобидных местах под нагрузкой начинались такие необъяснимые финты с пулом и прочими внутренностями, что пришлось в срочном порядке выпиливать нафиг, благо он там не сильно нужен был. Я конечно не уверен в идеальной прямости рук программистов, но я уверен в том, что это достаточно умные люди. На форумах коммьюнити встречались такие же случаи, но без ответа. Хибернейт — это очень большой и очень черный ящик. А, как известно, надежность систем уменьшается с возрастанием их сложности.
МСУзыОсобенно коварны транзакции и кэш. В некоторых случаях кэш вообще нафиг не нужен, а он есть.
Зы, ну вот что ты фантазируешь, а? ;)

фантазирую о чем? уточни

МСУТы имеешь ввиду, если несколько нод в кластере. Так вот пишется либо свой балансировщик, либо вынос кеша на слой БД. Второе проще. Это как встроенная возможность хранения ASP.NET сессии в БД для такой кластерной архитектуры. Ничего сложного.

1) зачем писать свой балансировщик для монстра, если можно просто поднять скорость выкинув монстра? все дело в конкретной проблеме. Тем более что ты говоришь об этом, как будто описанная тобой задача - как два пальца обоссать.
2) да, кэшировать в БД, чтобы быстрее делать выборки из БД — это самое оно.

МСУЕсли не умеешь водить - не садись, мне не нравятся такие аргументы. Хибер не сложен, верь мне.

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


МСУНа больших наборах только OLAP поможет. Для поиска - полнотекст. Другого не дано. Какие размеры для тебя большие?
Для меня - несколько терабайт (разумеется, никаких блобов).

божеж ты мой, зачем ты приплел сюда OLAP и полностекст? я тут 11871560 привел конкретный пример.
...
Рейтинг: 0 / 0
ORM vs sql
    #37606091
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЕсли бы :) С работы приехал, все праздники похерились...

а я проболел, так что разделяю похеренные праздники

МСУХм, вроде всё прочитал. Видел предложили штатными средстами разрулить, я предложил более гибкий DLINQ - вещь!
да вот буквально тут вроде поставили точку 11871672
...
Рейтинг: 0 / 0
ORM vs sql
    #37606095
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SolYUtorОтказались. Работает только в режиме поиска по ключу, вот и результаты близки к memcached (хотя и опережают его). Хотя я не отрицаю того факта, что совместная работа с SQL по-прежнему возможна.

да нененене, может мы разное читали? там ясно написано что для всех остальных запросов идет через обычный sql, а для самых быстрых - напрямую. Поэтому они и рады. И мемкэш выкинули, и от скуля не отказались.

SolYUtorВернуть три поля, по ключу, когда вся БД в памяти - ОК, может. А как насчёт другой работы: Insert, update, delete, транзакции на несколько таблиц... Ляжет он на пару-тройку порядков раньше.
да не спорю, просто обычно производительность измеряют на чтениях (ну или показах страниц) — все-таки показывать надо чаще, чем изменять. Ну и опять, все зависит от конкретики...
...
Рейтинг: 0 / 0
ORM vs sql
    #37606096
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыLelouchОтвет на ваш вопрос про поле по названию:

превосходно, но это же вставка чистого SQL без проверок в compile time :) не нужно себе противоречить, и раз уж допускаешь исключения, то допускай их везде, в том числе на самом высоком уровне — в подходе.

Это не SQL.
...
Рейтинг: 0 / 0
ORM vs sql
    #37606098
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это предикат написанный в форме строки.
P.S. Впилите кнопку редактирования ><
...
Рейтинг: 0 / 0
ORM vs sql
    #37606101
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchЭто предикат написанный в форме строки.
P.S. Впилите кнопку редактирования ><
неважно, если подразумевать истинное значение аббревиатуры — это очередная разновидность sql, которая зашита в строку и падает только во время выполнения.
...
Рейтинг: 0 / 0
ORM vs sql
    #37606104
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыLelouchЭто предикат написанный в форме строки.
P.S. Впилите кнопку редактирования ><
неважно, если подразумевать истинное значение аббревиатуры — это очередная разновидность sql, которая зашита в строку и падает только во время выполнения.

Ок, 1 из 100 запросов упадет только во время выполнения. Это весомая причина делать оставшиеся 99 такими же...
...
Рейтинг: 0 / 0
ORM vs sql
    #37606106
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchОк, 1 из 100 запросов упадет только во время выполнения. Это весомая причина делать оставшиеся 99 такими же...
да мы можем до утра спорить :) весомая причина в выборе инструмента тут может быть только одна — требуемая производительность. А аргументов без конкретной задачи у нас обоих нет.

И мне кажется мы отклонились от сути в детали. Интересную книгу недавно читал о психологии "thinking, fast and slow". Там было хорошее наблюдение — при попытке ответить на сложный вопрос, если у вас нет ответа сразу, то человек склонен заменить его на более простой, на который у него есть ответ. Такая подмена зачастую подменяет предмет вопроса и остается незамеченной, но в результате данный ответ скорее всего неверен.
...
Рейтинг: 0 / 0
ORM vs sql
    #37606113
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыLelouchОк, 1 из 100 запросов упадет только во время выполнения. Это весомая причина делать оставшиеся 99 такими же...
да мы можем до утра спорить :) весомая причина в выборе инструмента тут может быть только одна — требуемая производительность. А аргументов без конкретной задачи у нас обоих нет.

И мне кажется мы отклонились от сути в детали. Интересную книгу недавно читал о психологии "thinking, fast and slow". Там было хорошее наблюдение — при попытке ответить на сложный вопрос, если у вас нет ответа сразу, то человек склонен заменить его на более простой, на который у него есть ответ. Такая подмена зачастую подменяет предмет вопроса и остается незамеченной, но в результате данный ответ скорее всего неверен.

Ок, отвечу на более сложный - я при встрече с такой ситуацией напишу switch case по имени колонки, благо набор столбцов множество конечное (Но кстати я с такой ситуацией, когда надо использовать столбец по его названию еще ни разу не столкнулся)
Это позволит остаться в рамках строгой типизации и проверки при компиляции, не сильно увеличив код (столбцов до 10 уж точно). Я вообще-то всего лишь ответил на Ваш вопрос о возможности, но нигде не написал что сделаю так.

P.S. То средство построение SQL которое привели вы - костыль, к тому же плохо написанный. Даже в древней программе фирмы где я работаю, написанной на делфи + FB, похожий костыль хотя бы сам умел впихивать Join раньше Where, а order после where (чисто как пример)
...
Рейтинг: 0 / 0
ORM vs sql
    #37606117
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыЯ с самого начала преложил отойти от сферического коня в вакууме, потому что его обсуждение бессмысленно.
То есть как это бессмысленно? Это достоинство ORM. Могу напомнить название сабжа.

зыИногда быстрее и эффективнее написать решение конкретной проблемы, не стараясь заложить в неё все возможные юскейсы, подстилки и прочую бутафорию. Это все стоит денег и отнимает время, а на конкуретном рынке нет ни того ни другого.
Стоп. Никто просто так закладывать такие возможности не будет. У одной компании при внедрении нашего софта - Oracle, у другой лицензия MS SQL, у третьей DB2. А теперь представь себе потери, если мы заложились только под сиквел.
Система вида корпоративного документооборота + биллинговые педали со всевозможными вытекающими. Как правило, в биллинге обычно оракуль, в документообороте сиквел или оракуль. Опять будешь говорить - ситуация надуманная?

зыВозьми вконтакт, например. Даже имея предмет прямого копирования, они занимались с самого начала такой ерундой, как полная абстракция от хранилища данных? Да они бы таким образом не взлетели.
Возьми, например, 1С, Documentum, SAP, ... Эти системы не завязываются на один вид БД. Они смотрят вдаль и в свой кошелек.

зыЗачем переходить с oracle на mssql и обратно?
Выше всё объяснил.

зыЗабыли, что понадобится новая фича, которая есть в другом сервере? Или лицензия закончилась? Или разница между ними в +500% производительности на тех же данных с теми же запросами?
Насчет фичей - придется обломиться. Либо написать отдельные плагины для таких фич. В качестве архитектурного подхода рекомендую рассмотреть MEF. Загружай фичи конкретной СУБД и радуйся. Если без этого никак.

зыДа поверь, на проде в безобидных местах под нагрузкой начинались такие необъяснимые финты с пулом и прочими внутренностями, что пришлось в срочном порядке выпиливать нафиг, благо он там не сильно нужен был. Я конечно не уверен в идеальной прямости рук программистов, но я уверен в том, что это достаточно умные люди.
Ну мы щас говорим о средней температуре по больнице. Никакой конкретики и сути. Что-то там было, а что было - фиг знает. Ну сам понимаешь, ничего сказать не могу тут. Могу погадать, разве что, на кофе :)

зыНа форумах коммьюнити встречались такие же случаи, но без ответа. Хибернейт — это очень большой и очень черный ящик. А, как известно, надежность систем уменьшается с возрастанием их сложности.
Ну кто ж тебя так хибером напугал, зы? ;) Не бойся ты так. Всё там стабильно работает, данная ORM не первый год замужем.

зыфантазирую о чем? уточни
Обо всём, что я зацитировал.

зы1) зачем писать свой балансировщик для монстра, если можно просто поднять скорость выкинув монстра? все дело в конкретной проблеме. Тем более что ты говоришь об этом, как будто описанная тобой задача - как два пальца обоссать.
2) да, кэшировать в БД, чтобы быстрее делать выборки из БД — это самое оно.
1. А в чем сложность его написать? Можешь вообще в отдельном облаке хостить свои кеши.
2. Не для больших наборов, только для общего хранения. С сессией тоже так сделать можно, не написав строчки кода.
3. Кстати, чем не нравится вариант кеширования на каждой ноде в кластере? Вообще ни строчки кода.

зыЯ не знаю, может под .net его как-то упростили или недоделали, что ты в нем так уверен, он ведь из явы пришел. Ну и не нравятся аргументы — пожалуйста, кушай наздоровье, я ж не настаиваю
Ну если не знаешь, зачем в спич полез? )

зыбожеж ты мой, зачем ты приплел сюда OLAP и полностекст? я тут 11871560 привел конкретный пример.
Как зачем, ты ж сам первый начал.

авторпревосходно, но это же вставка чистого SQL без проверок в compile time :) не нужно себе противоречить, и раз уж допускаешь исключения, то допускай их везде, в том числе на самом высоком уровне — в подходе.
Ты же сам захотел динамику - поэтому без проверки. Типизированной динамики не бывает
...
Рейтинг: 0 / 0
ORM vs sql
    #37606125
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУСистема вида корпоративного документооборота + биллинговые педали со всевозможными вытекающими. Как правило, в биллинге обычно оракуль, в документообороте сиквел или оракуль. Опять будешь говорить - ситуация надуманная?

Данила, я скажу то, что говорил с самого начала — ситуация конкретная, кушай ORM наздоровье. Следующие 5 цитат сразу скипну, потому что они не добавляют ничего нового, та же самая жвачка.

МСУНу кто ж тебя так хибером напугал, зы? ;) Не бойся ты так.
я просто боюсь сложных вещей, если я вижу что-то сложное, мне сразу кажется, что это можно сделать проще.
...
Рейтинг: 0 / 0
ORM vs sql
    #37606129
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыя просто боюсь сложных вещей, если я вижу что-то сложное, мне сразу кажется, что это можно сделать проще.
Реально, кроме шуток, скачай себе последний хибер, открой пару блогов для стартапа и создай тестовый проект на чистом hbm. Проникнись хибером пару тройку дней. Обещаю, тебе очень понравится этот инструмент. Потом копни глубже, покури разные там флюенты, HILO, сложные мапы типа hierarchy mapping, сложные детачи и критерии, кастомные subquery с кастомными трансформаторами и иже. Хибер - это вещь.
...
Рейтинг: 0 / 0
ORM vs sql
    #37606134
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

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

перефразируя 11872177 на тебя. Перед тобой ставят абстрактный вопрос — лучше использовать ORM или работать напрямую? Правильный ответ — "не знаю", потому что у абстрактного вопроса задача так же абстрактна. Но ты подсознательно формулируешь для себя новый вопрос "нравится ли мне работать напрямую? — нет. Нравится ли мне ORM? — да", и отвечаешь, что нужно использовать ORM полюбому, хотя уже исходный вопрос был заменен.
...
Рейтинг: 0 / 0
ORM vs sql
    #37606137
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыМСУ, это мишура, фантики, доп.опции для авто. Обычно хочется всего и сразу, просто потому что оно есть и доступно.
В том-то и дело, что ORM - это всё и сразу. Но дело твоё.

зылучше использовать ORM или работать напрямую? Правильный ответ — "не знаю", потому что у абстрактного вопроса задача так же абстрактна. Но ты подсознательно формулируешь для себя новый вопрос "нравится ли мне работать напрямую? — нет. Нравится ли мне ORM? — да", и отвечаешь, что нужно использовать ORM полюбому, хотя уже исходный вопрос был заменен.
Да, нужно использовать ORM полюбому. Только так. Даже для тех же мемкешей есть свои порты в виде отдельного провайдера.
...
Рейтинг: 0 / 0
ORM vs sql
    #37606340
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ок
...
Рейтинг: 0 / 0
ORM vs sql
    #37606363
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зы Но ты подсознательно формулируешь для себя новый вопрос "нравится ли мне работать напрямую? — нет. Нравится ли мне ORM? — да", и отвечаешь, что нужно использовать ORM полюбому, хотя уже исходный вопрос был заменен.
А другого ответа быть не может. Поколение Пепси выбирает ORM, тк sql не знают и знать не хотят. Поэтому на голубом глазу показывают совершенно уродский запрос и при всем желании ничего другого сделать не смогут.
...
Рейтинг: 0 / 0
ORM vs sql
    #37606371
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosПарамоша, в ВИПРОС вся эта фигня генерируется и кешируется
при изменении чего нить кеш проверяется на валидность и приводится в нужный вид если возможно или метится как говно
(это по части СКЛ запросов = виртуальные типы)
потом проверяются методы использующие данный тип и т.д.


В отличие от вас я вижу это уже в процессе набора кода )

ViPRosа воще все делатеся наоборот - из метаданных генерируются БД и запросы(виртуальные типы - вью)

EF Code First - просто и чисто.
Понять так и не хотим что таблица это уже типизированная сущность, но ее типы мы просто переводим в - c#, можно и на оборот, в зависимости была у нас готовая база или нет.
...
Рейтинг: 0 / 0
ORM vs sql
    #37606398
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa Поколение Пепси выбирает ORM, тк sql не знают и знать не хотят.

Изучение ORM как раз нужно начинать с SQL, чтобы понять что происходит и зачем.
В программах с чувствительной точностью и корректировкой в реальном времени переходят на машинный код, и здесь в узких местах переход на SQL никто не запрещает.
...
Рейтинг: 0 / 0
ORM vs sql
    #37606420
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонViPRosПарамоша, в ВИПРОС вся эта фигня генерируется и кешируется
при изменении чего нить кеш проверяется на валидность и приводится в нужный вид если возможно или метится как говно
(это по части СКЛ запросов = виртуальные типы)
потом проверяются методы использующие данный тип и т.д.


В отличие от вас я вижу это уже в процессе набора кода )

ViPRosа воще все делатеся наоборот - из метаданных генерируются БД и запросы(виртуальные типы - вью)

EF Code First - просто и чисто.
Понять так и не хотим что таблица это уже типизированная сущность, но ее типы мы просто переводим в - c#, можно и на оборот, в зависимости была у нас готовая база или нет.

Просто и чисто не было и быть не может, тк объекты и нормализованные таблицы - две большие разницы.
...
Рейтинг: 0 / 0
ORM vs sql
    #37606445
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaтк объекты и нормализованные таблицы - две большие разницы.

Это одна сущность, с которой удобней работать используя .NET фремворк + C# а не извращатся с хранимками, затем кидать данные в жалкий датасет и снова преобразовывать типы для правильных вычислений уже в приложении.
...
Рейтинг: 0 / 0
ORM vs sql
    #37606472
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонSeVaтк объекты и нормализованные таблицы - две большие разницы.

Это одна сущность, с которой удобней работать используя .NET фремворк + C# а не извращатся с хранимками, затем кидать данные в жалкий датасет и снова преобразовывать типы для правильных вычислений уже в приложении.
Бред
...
Рейтинг: 0 / 0
ORM vs sql
    #37606799
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaПарамонпропущено...
Это одна сущность, с которой удобней работать используя .NET фремворк + C# а не извращатся с хранимками, затем кидать данные в жалкий датасет и снова преобразовывать типы для правильных вычислений уже в приложении.
Бред
Согласен, С..а. Извращение с хранимками и датасетами полный бред.
...
Рейтинг: 0 / 0
ORM vs sql
    #37606844
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Под бредом Сева подразумевал поток мыслей гражданина, это же очевидно. Поддакиваешь тому, что сам придумал.
...
Рейтинг: 0 / 0
ORM vs sql
    #37606862
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не аргументированный ответ (мычание) в стиле Севы - жалкий немощный пук в кустах, а не постановка речи.

P.S. А в чём сознание гражданина не кореллирует с действительностью?
...
Рейтинг: 0 / 0
ORM vs sql
    #37606867
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в стереотипах.
я на протяжении трех страниц пытался донести неокрепшим дегенеративным умам ничтожность хода их мыслей, но, к сожалению, переоценил свои силы.
за сим раскланиваюсь.
...
Рейтинг: 0 / 0
ORM vs sql
    #37606871
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стереотипы часто стираются, особенно у неокрепших. Я на протяжении более десятка страниц пытался донести неокрепшим дегенеративным умам ничтожность хода их мыслей, но, к сожалению, переоценил свои силы. Но не всё потеряно, буду дальше вживлять разум в их мертвый мозг.
...
Рейтинг: 0 / 0
ORM vs sql
    #37606928
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУНо не всё потеряно, буду дальше вживлять разум в их мертвый мозг.

Напрасное занятие, у некоторых в процессе размораживания мозга, происходит закипание фикалий )
В их конторах, где сидит пара ящеров, и пилит один проект на пятилетку, никто и никогда не притронится к технологии моложе 40 лет, ибо если не осилят (а шанс не велик), то всей командой на сбор бутылок у метро )
...
Рейтинг: 0 / 0
ORM vs sql
    #37606959
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
выявились 4 группы
1. понимающие суть и плюющие на фантики
2. непонимающие суть но ослепленные мишурой
3. МСУ
4. 2 которые имеют шанс стать 1 (лелоуч)
...
Рейтинг: 0 / 0
ORM vs sql
    #37606963
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosвыявились 4 группы
1. понимающие суть и плюющие на фантики
2. непонимающие суть но ослепленные мишурой
3. МСУ
4. 2 которые имеют шанс стать 1 (лелоуч)

Я бы поделил так:

1. Сторонники ORM.
2. Сторонники SQL.
3. ViPRos.
...
Рейтинг: 0 / 0
ORM vs sql
    #37606987
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Випрос на этот раз близок к истине как никогда
...
Рейтинг: 0 / 0
ORM vs sql
    #37607091
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонВ их конторах, где сидит пара ящеров, и пилит один проект на пятилетку, никто и никогда не притронится к технологии моложе 40 лет
Всё так, согласен.
Lelouch1. Сторонники ORM.
2. Сторонники SQL.
3. ViPRos.
У третьего пункта даже название соответствующее :)
...
Рейтинг: 0 / 0
ORM vs sql
    #37607274
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosвыявились 4 группы
1. понимающие суть и плюющие на фантики


Не ясно, кого можно отнести к этой группе, понимающие - понимают что SQL тоже фантик, а не первородное чудо, и в свое время в него тоже кидали весомые аргументы, типа - "хрень", но вроде прижился.
И да, количество фантиков растет, пропорционально сложности приложения.
...
Рейтинг: 0 / 0
ORM vs sql
    #37607295
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Три богатыря - старая гвардия (ящеры, предсмертники), не желающие новомодных "фантиков"

Сахават, Зыня и С..а
...
Рейтинг: 0 / 0
ORM vs sql
    #37607720
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё не читал. Выводы сделал:
1. LINQ - технология настоящего и будущего. Это строгая типизация и прочие удобства С# + производительность SQL.
2. SQL - для оптимизации.
3. LINQ - не ОРМ.
4. ОРМ не нужен.
...
Рейтинг: 0 / 0
ORM vs sql
    #37607823
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей, определитесь, о каком "LINQ" идёт увещевание. А то каша масляная...
...
Рейтинг: 0 / 0
ORM vs sql
    #37607844
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей, определитесь, о каком "LINQ" идёт увещевание. А то каша масляная...LINQ2SQL разумеется...
...
Рейтинг: 0 / 0
ORM vs sql
    #37608180
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. C# - технология настоящего и будущего. Это строгая типизация и прочие удобства С# + производительность параллелей.
2. Параллели - для оптимизации.
3. C# - не ЯООП.
4. ЯООП не нужен.
...
Рейтинг: 0 / 0
ORM vs sql
    #37608673
brainproof
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по моему тут просто холивар с переходом на личности. эт печально, если люди опускают до такого уровня да будь ты трижды мега гуру.
...
Рейтинг: 0 / 0
ORM vs sql
    #37608940
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaА другого ответа быть не может. Поколение Пепси выбирает ORM, тк sql не знают и знать не хотят. Поэтому на голубом глазу показывают совершенно уродский запрос и при всем желании ничего другого сделать не смогут.Не бывает уродских SQL-запросов. Бывают уродские планы выполнения. Оптимизатору пох на красоту SQL...
...
Рейтинг: 0 / 0
ORM vs sql
    #37608945
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ1. C# - технология настоящего и будущего. Это строгая типизация и прочие удобства С# + производительность параллелей.
2. Параллели - для оптимизации.
3. C# - не ЯООП.
4. ЯООП не нужен. ЯООП - это чё?
...
Рейтинг: 0 / 0
ORM vs sql
    #37608999
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К ЯООП - это чё?
Языческая организация освобождения Палестины
...
Рейтинг: 0 / 0
ORM vs sql
    #37609035
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда понятно...
...
Рейтинг: 0 / 0
ORM vs sql
    #37615013
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужна помощь вашего клуба по сабжу (ОРМ Хибер).
- есть длинная бизнес транзакция на клиенте (напр. Визард)
- Hibernate работает на коротких Session-Per-Request
- Получается желательно Session-Per-View (десктоп)

- Без ОРМ, в СУБД, это решается элементарно уровнем изоляции
READ_COMMITED.
- Как расширить транзакцию с ОРМ шире одного реквеста?
- Или как в ОРМ хранить состояние \ Снимок БД?


ТЗ
http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=909575&msg=11905049

теория темы
http://www.sql.ru/forum/actualthread.aspx?tid=909575&pg=1

практический код решения на Java
http://www.sql.ru/forum/actualthread.aspx?tid=909083&pg=1
...
Рейтинг: 0 / 0
ORM vs sql
    #37615085
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Нужна помощь вашего клуба по сабжу (ОРМ Хибер).
- есть длинная бизнес транзакция на клиенте (напр. Визард)
- Hibernate работает на коротких Session-Per-Request
- Получается желательно Session-Per-View (десктоп)

- Без ОРМ, в СУБД, это решается элементарно уровнем изоляции
READ_COMMITED.
- Как расширить транзакцию с ОРМ шире одного реквеста?
- Или как в ОРМ хранить состояние \ Снимок БД?


ТЗ
http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=909575&msg=11905049

теория темы
http://www.sql.ru/forum/actualthread.aspx?tid=909575&pg=1

практический код решения на Java
http://www.sql.ru/forum/actualthread.aspx?tid=909083&pg=1

svenon, так красиво и по хамски пел про AppSever, а на деле предлагает какой-то маразм с выборками кэша hibernate.
Решение только средствами ORM c длинными и прочими транзакциями, на мой взгляд, - это вариант через одно место.
Нужен десктоп или это чистый web?
...
Рейтинг: 0 / 0
ORM vs sql
    #37615117
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa,
нужен чистый веб.
Десктоп нет проблем с длинными, т.к. там нет реквеста вообще
...
Рейтинг: 0 / 0
ORM vs sql
    #37615120
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
посмотрел, все ОРМ'ы требуют своё закрытие на конец HTTP запроса (myBatis тоже).
Хотя на деле всё IT поёт за rich ГУИ на веб
...
Рейтинг: 0 / 0
ORM vs sql
    #37615175
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
Мб я что то не так понял, но на EF можно так:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
TestEdDatabaseEntities _context;

        IDbTransaction _transaction;

        public Form1()
        {
            InitializeComponent();
            _context = new TestEdDatabaseEntities();
        }

        private void OpenTransaction_Click(object sender, EventArgs e)
        {
            if (this._transaction == null)
            {
                if (_context.Connection.State == ConnectionState.Closed)
                {
                    _context.Connection.Open();
                }
                _transaction = _context.Connection.BeginTransaction(IsolationLevel.ReadCommitted);
            }

        }

        private void ChangeData_Click(object sender, EventArgs e)
        {
            if (_transaction != null)
            {
                Random r = new Random();
                foreach (var item in _context.Table1Set)
                {
                    item.SearctField1 = r.Next();
                }
                _context.SaveChanges();
            }
        }

        private void CloseTransaction_Click(object sender, EventArgs e)
        {
            if (_transaction != null)
            {
                _transaction.Commit();
                _context.Connection.Close();
                _transaction = null;
            }
        }


Длинная транзакция, изоляция измененных данных... Вроде то что вы искали(правда не на хибере, но вы же уже про все ORM говорить стали...)
...
Рейтинг: 0 / 0
ORM vs sql
    #37615184
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123- есть длинная бизнес транзакция на клиенте (напр. Визард)Если это самоцель - ничего путного не получится.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615187
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что мешает накопить данные на клиенте и отправить их в одной транзакции в конце работы мастера?
...
Рейтинг: 0 / 0
ORM vs sql
    #37615192
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К,
визард или вкладки в веб самоцель?
- вы не видели в веб визардов? Пошаговых операций? AJAX?
- это вопрос к заказчику
...
Рейтинг: 0 / 0
ORM vs sql
    #37615195
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЧто мешает накопить данные на клиенте и отправить их в одной транзакции в конце работы мастера?
- накопить как? В клиенте в куки?
- весь объект или только ID?
- в ТЗ есть допусловия на перезапрос к этим сырым данным.
В десктопе это обычное плёвое дело.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615196
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch,
ммм. Так я не вкурю. Я не знаю его архитектуру. Но он (EF) ведь к серверному ORM не имеет отношение ;)
...
Рейтинг: 0 / 0
ORM vs sql
    #37615197
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Lelouch,
ммм. Так я не вкурю. Я не знаю его архитектуру. Но он (EF) ведь к серверному ORM не имеет отношение ;)

Что есть серверная ORM? oO

P.S. Вариант с помощью CommitableTransaction:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
TestEdDatabaseEntities _context;        
        CommittableTransaction _tr;

        public Form1()
        {
            InitializeComponent();
            _context = new TestEdDatabaseEntities();
        }

        private void OpenTransaction_Click(object sender, EventArgs e)
        {
            _tr = new CommittableTransaction(new TransactionOptions()
            {
                IsolationLevel = IsolationLevel.ReadCommitted
            });
        }

        private void ChangeData_Click(object sender, EventArgs e)
        {
            var oldTransaction = Transaction.Current;
            Transaction.Current = _tr;
            _context.Connection.Open();
            Random r = new Random();
            foreach (var item in _context.Table1Set)
            {
                item.SearctField1 = r.Next();
            }
            _context.SaveChanges();
            Transaction.Current = oldTransaction;
        }

        private void CloseTransaction_Click(object sender, EventArgs e)
        {
            _tr.Commit();
        }

...
Рейтинг: 0 / 0
ORM vs sql
    #37615199
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По-моему даже google такого термина не знает...
...
Рейтинг: 0 / 0
ORM vs sql
    #37615202
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch,
проблема в технической стороне. Хибер это умеет?
Как это у него решается?
Можно ли запретить у него сброс в БД (flush) и делать запросы к его кэшу не сбрасывая до последнего длинного бизнес-коммита.
Вроде хибер одинаков с Java.
Как решается проблема потокового HTTP запроса и НЕ потокозащищённости Хибера
...
Рейтинг: 0 / 0
ORM vs sql
    #37615205
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Алексей К,
визард или вкладки в веб самоцель?
- вы не видели в веб визардов? Пошаговых операций? AJAX?
- это вопрос к заказчикуТут вопрос про длинную транзакцию в БД, вызванную, как мне показалось, архитектурой тех самых вкладок (их независимость и т. п.) С обычным-то десктопом длиная транзакция в БД ни к чему хорошему не приводит, а тут ещё и Веб.
Petro123Алексей КЧто мешает накопить данные на клиенте и отправить их в одной транзакции в конце работы мастера?
- накопить как? В клиенте в куки?
- весь объект или только ID?
- в ТЗ есть допусловия на перезапрос к этим сырым данным.
В десктопе это обычное плёвое дело.Наверное как-то можно не перегружать веб-страницу на протяжении всего времени жизни мастера. Обмениваться данными между страницами мастера с помощью JavaScript.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615206
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchЧто есть серверная ORM? oO
термин спорный, но....
в коде нет VIEW и public Form1()
...
Рейтинг: 0 / 0
ORM vs sql
    #37615208
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КС обычным-то десктопом длиная транзакция в БД ни к чему хорошему не приводит
вы не правы. Всё замечательно.
Код: c#
1.
2.
3.
4.
5.
begin tran (не в бд)
- новый мастер
- получили из триггера его ID
- вставили заказ-дочку в детайл
commit (не в бд)
...
Рейтинг: 0 / 0
ORM vs sql
    #37615209
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНаверное как-то можно не перегружать веб-страницу на протяжении всего времени жизни мастера. Обмениваться данными между страницами мастера с помощью JavaScript.
обмен не проблема по AJAX асинхронно.
Проблема, что на 5 погрузок по AJAX и 6-ой HTTP-POST серевер-хибер забыл про первые 5.
Он раньше 5 раз коммитил и сбрасывал в БД
...
Рейтинг: 0 / 0
ORM vs sql
    #37615210
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Или организовывать на сервере поддержку бизнес-сессий с хранением промежуточных данных, механизмом "убивания" подвисших сессий и т. п.

зы: Веб для бизнеса не нужен. Представлен типичный пример гемора на пустом месте. :-)
...
Рейтинг: 0 / 0
ORM vs sql
    #37615212
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Мои комментарии относятся к:
Petro123посмотрел, все ОРМ'ы требуют своё закрытие на конец HTTP запроса (myBatis тоже).
Я об этом кстати написал: Lelouch(правда не на хибере, но вы же уже про все ORM говорить стали ...)

С хибером никогда не сталкивался, а java меня волнует в данный момент чуть более чем никак.

P.S. Имхо NHibernate должен поддерживать MSDTC (CommitableTransaction к нему относится). Что есть в java подобного - я не в курсе.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615214
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123обмен не проблема по AJAX асинхронно.
Проблема, что на 5 погрузок по AJAX и 6-ой HTTP-POST серевер-хибер забыл про первые 5.
Он раньше 5 раз коммитил и сбрасывал в БДВы меня не поняли. Цель - не перегружать веб -страницу при переключении между страницами мастера.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615215
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123LelouchЧто есть серверная ORM? oO
термин спорный, но....
в коде нет VIEW и public Form1()

Я вам должен 3х звенку для 5минутного примера городить?)
...
Рейтинг: 0 / 0
ORM vs sql
    #37615217
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch,
т.е на входе АппСервер или Вебсервер есть В ПОТОКЕ функция реквест (HTTP запрос).
Обычный веб - выстрелил и забыл.
Мне нужно чтобы хибер был синглетоном и помнил состояние.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615218
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Алексей КС обычным-то десктопом длиная транзакция в БД ни к чему хорошему не приводит
вы не правы. Всё замечательно.
Код: c#
1.
2.
3.
4.
5.
begin tran (не в бд)
- новый мастер
- получили из триггера его ID
- вставили заказ-дочку в детайл
commit (не в бд)

Может быть.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615220
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch,

А что хелловорлды сейчас за большее время пишутся? Не умеете, так и скажите. :(
...
Рейтинг: 0 / 0
ORM vs sql
    #37615221
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchИмхо NHibernate должен поддерживать MSDTC (CommitableTransaction к нему относится).
про это спасибо. Бум ждать инфу именно про хибер, т.к. много общего именно в нём.
Спс.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615223
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КPetro123обмен не проблема по AJAX асинхронно.
Проблема, что на 5 погрузок по AJAX и 6-ой HTTP-POST серевер-хибер забыл про первые 5.
Он раньше 5 раз коммитил и сбрасывал в БДВы меня не поняли. Цель - не перегружать веб -страницу при переключении между страницами мастера.
AJAX не перегружает
...
Рейтинг: 0 / 0
ORM vs sql
    #37615224
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Мне нужно чтобы хибер был синглетоном и помнил состояние.Перед этим надо убедиться в невозможности накопления данных на клиенте яваскриптом.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615225
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КPetro123Мне нужно чтобы хибер был синглетоном и помнил состояние.Перед этим надо убедиться в невозможности накопления данных на клиенте яваскриптом.
ну как он накопит?
Есть3 вкладки с кнопками:
- Персона
- Заказы
- Адреса
Там куча данных по подгрузке страничной.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615226
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeLelouch,

А что хелловорлды сейчас за большее время пишутся? Не умеете, так и скажите. :(

Я жду вашего примера, посмотреть как вы умеете ;)
...
Рейтинг: 0 / 0
ORM vs sql
    #37615227
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Алексей Кпропущено...
Вы меня не поняли. Цель - не перегружать веб -страницу при переключении между страницами мастера.
AJAX не перегружаетНу раз так - что мешает обмениваться данными между страницами на клиенте? Правда, может оказаться что сделать поддержку бизнес-сессий на сервере проще. Тут надо сравнивать.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615231
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Кбизнес-сессий на сервере проще. Тут надо сравнивать.
то то и оно :)
Нужна бизнес-сессия для длинной бизнес-транзакции (шире одного реквеста).
Ормы заточены на один реквест - пришли парам, сделал HTML, выплюнул и ЗАБЫЛ.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615232
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ну как он накопит?
Есть3 вкладки с кнопками:
- Персона
- Заказы
- Адреса
Там куча данных по подгрузке страничной.Ну Вам виднее. Если на клиенте сделать трудно/невозможно - надо делать бизнес-сессии на сервере. Вариантов вроде как больше нет.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615235
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Ормы заточены на один реквестТут я не соглашусь. Вы можете открывать/закрывать сессию в ОРМ когда и где захотите. Сделайте статический словарь с сессиями типа:
Код: c#
1.
2.
3.
4.
static class SessionStorage
{
    static readonly Dictionary<Guid, ISession> IdToSession = new Dictionary<Guid, ISession>();
}


Я с хибером не работал, может там уже есть что-то готовое для этого. А если нет - самому написать вроде как не проблема.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615237
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123 Ормы заточены на один реквест - пришли парам, сделал HTML, выплюнул и ЗАБЫЛ.
Да, это именно так. Но таким образом заточены не только ОРМы, а вообще весь вэб.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615239
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К...
А не проще в http сессии хранить объект контекста?
...
Рейтинг: 0 / 0
ORM vs sql
    #37615245
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К,
покопаю, но это вроде равноценно что открыть в синглетоне на все потоки?
Там контейнер для массовости запускает Java класс в потоках.
Поэтому хибер пишут надо в старте потока\реквест открыть и в конце\реквест закрыть.
Замкнутый круг.
2 транзакции и 2 сессии ХИБЕРА тогда могут пересечься.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615247
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchАлексей К...
А не проще в http сессии хранить объект контекста?
проще, только везде читаю что для ОРМ ссылки нельзя.
Это ведь и есть менеджер реквестов для веб-сессии
...
Рейтинг: 0 / 0
ORM vs sql
    #37615248
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Алексей Кпропущено...
Перед этим надо убедиться в невозможности накопления данных на клиенте яваскриптом.
ну как он накопит?
Есть3 вкладки с кнопками:
- Персона
- Заказы
- Адреса
Там куча данных по подгрузке страничной.

Есть другой вариант - один бизнес-объект Персона, который содержит деталировки: Заказы, Адреса и большую кучу всего остального.
Этот БО должен быть сериализуем, чтобы была возможность держать его в кэше сессии,вытаскивать детишек по требованию, и сохранять все изменения при вызове только одного метода - Save.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615249
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergePetro123 Ормы заточены на один реквест - пришли парам, сделал HTML, выплюнул и ЗАБЫЛ.
Да, это именно так. Но таким образом заточены не только ОРМы, а вообще весь вэб.
да .
Но ведь (матом) корпоратив EE идёт в веб.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615251
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Lelouchпропущено...

А не проще в http сессии хранить объект контекста?
проще, только везде читаю что для ОРМ ссылки нельзя .
Это ведь и есть менеджер реквестов для веб-сессии

Поясните...
...
Рейтинг: 0 / 0
ORM vs sql
    #37615252
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaЕсть другой вариант - один бизнес-объект Персона, который содержит деталировки: Заказы, Адреса и большую кучу всего остального.
Этот БО должен быть сериализуем, чтобы была возможность держать его в кэше сессии,вытаскивать детишек по требованию, и сохранять все изменения при вызове только одного метода - Save.
+1
Так и Должно делаться в веб, но заказчик не шарит и хочет конструктор вкладок, а транзакция OK Отмена для всех сразу.
На десктоп это можно.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615254
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch,
Начало сессии - 1 запрос = в Java создался класс Session.
Он как раз для корзин покупателя и т.д. Туда можно ложить то, что сохранить между запросами.
Везде читаю, что хибер-сессию надо закрыть на конец запроса.
Т.е. даже если положим туда, то он при закрытии сбросит в БД и зафиксирует запрос 1.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615259
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123SeVaЕсть другой вариант - один бизнес-объект Персона, который содержит деталировки: Заказы, Адреса и большую кучу всего остального.
Этот БО должен быть сериализуем, чтобы была возможность держать его в кэше сессии,вытаскивать детишек по требованию, и сохранять все изменения при вызове только одного метода - Save.
+1
Так и Должно делаться в веб, но заказчик не шарит и хочет конструктор вкладок, а транзакция OK Отмена для всех сразу.
На десктоп это можно.
А какая разница десктоп или вэб? Есть БО c возможность сохранения и отмены, а где он находится нет никакой разницы. Не знаю как в вашей унылой java, а в с# есть готовые фреймворки с готовым функционалом.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615260
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
т.е. туда можно ложить чисто данные, потом доставать и типа мержить и ложить в ОРМ обратно.
Неудобно.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615262
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Lelouch,
Начало сессии - 1 запрос = в Java создался класс Session.
Он как раз для корзин покупателя и т.д. Туда можно ложить то, что сохранить между запросами.
Везде читаю, что хибер-сессию надо закрыть на конец запроса.
Т.е. даже если положим туда, то он при закрытии сбросит в БД и зафиксирует запрос 1.

http сессия у вас живет 1 запрос? Если нет, то почему хибер-сессия сама закроется?
...
Рейтинг: 0 / 0
ORM vs sql
    #37615265
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaНе знаю как в вашей унылой java, а в с# есть готовые фреймворки с готовым функционалом.
возможно это так кажется.

бум ждать спецов по хиберу или jdbcTemplate (это на Java без орм)
Вот так делается в Java, но мне ооочень не нравится...
http://www.k-press.ru/cs/2009/3/ts/ts.asp
------
Вынужден отлучиться. Но с ночи буду мониторить тему регулярно.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615266
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Lelouch,
Начало сессии - 1 запрос = в Java создался класс Session.
Он как раз для корзин покупателя и т.д. Туда можно ложить то, что сохранить между запросами.
Везде читаю, что хибер-сессию надо закрыть на конец запроса.
Т.е. даже если положим туда, то он при закрытии сбросит в БД и зафиксирует запрос 1.
Ваши ORM - путь в никуда
...
Рейтинг: 0 / 0
ORM vs sql
    #37615268
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouchhttp сессия у вас живет 1 запрос? Если нет, то почему хибер-сессия сама закроется?
возможно в контейнере сервлетов. Он создаёт поток и запускает класс Java.
Написано в доках - надо закрыть.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615269
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa,
ответь по той ссылке вверху.
Ухожу :)
...
Рейтинг: 0 / 0
ORM vs sql
    #37615280
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaPetro123Lelouch,
Начало сессии - 1 запрос = в Java создался класс Session.
Он как раз для корзин покупателя и т.д. Туда можно ложить то, что сохранить между запросами.
Везде читаю, что хибер-сессию надо закрыть на конец запроса.
Т.е. даже если положим туда, то он при закрытии сбросит в БД и зафиксирует запрос 1.
Ваши ORM - путь в никуда
И SQL - лишь остановка на этом пути ;)
...
Рейтинг: 0 / 0
ORM vs sql
    #37615288
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa...Ваши ORM - путь в никуда
И наши.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615291
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Алексей К,
покопаю, но это вроде равноценно что открыть в синглетоне на все потоки?
Там контейнер для массовости запускает Java класс в потоках.
Поэтому хибер пишут надо в старте потока\реквест открыть и в конце\реквест закрыть .
Замкнутый круг.
2 транзакции и 2 сессии ХИБЕРА тогда могут пересечься."Надо" и "можно" - разные вещи. :-) Просто пишут про наиболее распространённый сценарий. Если хибер позволяет обращаться к сессии последовательно из разных потоков (т. е. в один момент времени с сессией работает только один поток) - вроде должно получиться.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615292
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123т.е. туда можно ложить чисто данные, потом доставать и типа мержить и ложить в ОРМ обратно.
Неудобно.
Нет. Никаких данных и БД нет. А есть бизнес-объекты. Person.Load()->Person.Address.Load()-> Редактируем -> Person.Serialize() -> Сохранить в кэше -> Переход на другую страницу -> Достаем из кэша -> Person.Deserialize() -> Person.Comments.Load() -> Редактируем -> Person.Save() (все упало в БД) или Person.Undo().
Второй вариант - хранить diffgram'ы, по которым можно сделать все необходимые телодвижения.

Чтобы сделать все единообразным я бы использовал паттерн репозиторий, это позволит абстрагироваться от деталей
...
Рейтинг: 0 / 0
ORM vs sql
    #37615294
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и не забыть организовать синхронизацию при работе с самим Dictionary.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615297
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaНет. Никаких данных и БД нет. А есть бизнес-объекты. Person.Load()->Person.Address.Load()-> Редактируем -> Person.Serialize() -> Сохранить в кэше -> Переход на другую страницу -> Достаем из кэша -> Person.Deserialize() -> Person.Comments.Load() -> Редактируем -> Person.Save() (все упало в БД) или Person.Undo().
Второй вариант - хранить diffgram'ы, по которым можно сделать все необходимые телодвижения.

Чтобы сделать все единообразным я бы использовал паттерн репозиторий, это позволит абстрагироваться от деталейЭто всё понятно. Есть 100500 способов организации кэша. Хибер - один из них. Вопрос - как организовать доступ к кэшу из разных HTTP-реквестов.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615306
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КSeVaНет. Никаких данных и БД нет. А есть бизнес-объекты. Person.Load()->Person.Address.Load()-> Редактируем -> Person.Serialize() -> Сохранить в кэше -> Переход на другую страницу -> Достаем из кэша -> Person.Deserialize() -> Person.Comments.Load() -> Редактируем -> Person.Save() (все упало в БД) или Person.Undo().
Второй вариант - хранить diffgram'ы, по которым можно сделать все необходимые телодвижения.

Чтобы сделать все единообразным я бы использовал паттерн репозиторий, это позволит абстрагироваться от деталейЭто всё понятно. Есть 100500 способов организации кэша. Хибер - один из них. Вопрос - как организовать доступ к кэшу из разных HTTP-реквестов.

Я не спец в этой web'ской полове, но сессии с нужной идентификацией - это не проблема.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615314
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже, для господ джавистов составные БО - полное откровение. Если его нет, то есть еще вариант - CQRS & Event Sourcing.
Описывать полностью не буду, большие подозрения, что это будет таже серия
...
Рейтинг: 0 / 0
ORM vs sql
    #37615377
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Алексей КЧто мешает накопить данные на клиенте и отправить их в одной транзакции в конце работы мастера?
- накопить как? В клиенте в куки?
Сессия? Вьюстейт? Табличка БД с привязкой по гуиду? window.localStorage? window.sessionStorage? Куки?
...
Рейтинг: 0 / 0
ORM vs sql
    #37615380
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вполне можно на самой страничке накопить.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615381
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Нужна бизнес-сессия для длинной бизнес-транзакции (шире одного реквеста).
Для длительных операций - асинхронно отправляем транзакцию на сервер и возвращаем страницу: http://api.jquery.com/jQuery.ajax/
asyncBoolean
Default: true
By default, all requests are sent asynchronously (i.e. this is set to true by default). If you need synchronous requests, set this option to false. Cross-domain requests and dataType: "jsonp" requests do not support synchronous operation. Note that synchronous requests may temporarily lock the browser, disabling any actions while the request is active.
В чём сложность?
Petro123 Ормы заточены на один реквест - пришли парам, сделал HTML, выплюнул и ЗАБЫЛ.
Так мог сказать только дегенерат, который не понимает, что ORM и реквест - монописуально-фиолетово-некоррелируемые вещи.
Еще раз в закрепление - мастера и прочая шелуха в вебе реализуется за два чиха. Проблема, раздутая на пустом месте с пузырями и откровенными глупостями.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615383
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeВполне можно на самой страничке накопить.
+1

Я вообще не понял проблемы. Petro123 городит какую-то хрень :)
...
Рейтинг: 0 / 0
ORM vs sql
    #37615396
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

Не говори так. Человек, по моей подсказке, из явы (там вообще только один форум, почему-то. Не могу понять почему так сделано) отпостил сюда. А Вы сразу - про какую-то хрень. Сами хрень никогда не писали? Может ли кто похвастаться таким богатым количеством банов, как Вы?
...
Рейтинг: 0 / 0
ORM vs sql
    #37615400
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучше написать в форум Asp.Net. Тут вопрос скорее по web чем про ОРМ.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615409
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЛучше написать в форум Asp.Net. Тут вопрос скорее по web чем про ОРМ.
Это почему? И на вэбе и не на вэбе можно писать как на ОРМ, так и не на ОРМ. Вы не знали этого?
...
Рейтинг: 0 / 0
ORM vs sql
    #37615472
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

Я не в обиде.:)
Сессия хибера на реквест. Так у него в доке.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615483
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123МСУ, Я не в обиде.:)
Это радует :)
Petro123Сессия хибера на реквест. Так у него в доке.
1. А что если у нас не сайт? Десктоп, безсессионный веб-сервис. Откуда браться сессии?
2. А что, если я сессию в ASP.NET сайте положу в Cache или в Application?
...
Рейтинг: 0 / 0
ORM vs sql
    #37615486
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
3. Так или иначе, что конкретно мешает сделать мастер или что там у Вас?
...
Рейтинг: 0 / 0
ORM vs sql
    #37615502
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,
я добрался до компа - счас быстро на всё отвечу.
- я с десктопа пришёл. Там есть Уровень изоляции, которого в ОРМ нету.
Как быть?
- вопрос Очень конкретный из ТЗ по ссылке. Не хочется заказчика посылать по дальше, т.к. надо учесть веб-http
...
Рейтинг: 0 / 0
ORM vs sql
    #37615504
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ3. Так или иначе, что конкретно мешает сделать мастер или что там у Вас?
нет
- у вас тут есть портированный хибер = NHibernate?
- я предпологаю, что методы схожи
- как вы делаете длинные транзакции. На Java их очень не любят и открещиваются
...
Рейтинг: 0 / 0
ORM vs sql
    #37615507
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,
если у ОРМ есть 2 кэша, то можно ли выключить синхронизацию его и сделать "снимок".
Т.е. писать в него CRUD а потом разом на 5 реквест либо в БД либо стереть с доски?
...
Рейтинг: 0 / 0
ORM vs sql
    #37615511
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в Java нижний уровень прихода POST это
- аппсервер на 80 порту
- получил запрос
- если их много, то В ПОТОКЕ запускает сервлет (Java код)
- там в начале Хибер.Опен и в конце Хибер.Сессия.Закрыть

Как это у Вас?
...
Рейтинг: 0 / 0
ORM vs sql
    #37615512
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУОткуда браться сессии?
это сессия Хибера, а не HTTP.
Я тоже был злой что они назвали одинаково :)
...
Рейтинг: 0 / 0
ORM vs sql
    #37615515
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУДля длительных операций - асинхронно отправляем транзакцию на сервер и возвращаем страницу: http://api.jquery.com/jQuery.ajax/
да.
у меня на сайте это так и работает
...
Рейтинг: 0 / 0
ORM vs sql
    #37615516
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спс. Хочу найти точки соприкосновения Java \ Net. Хотя это "параллельные вселенные"
______________________________________________
"Сложнее всего в мире достигнуть простоты — это крайняя граница опыта и последнее усилие гения". © George Sand.
AutoPOI.ru — ГИС-технологии для Oracle
...
Рейтинг: 0 / 0
ORM vs sql
    #37615535
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123спс. Хочу найти точки соприкосновения Java \ Net. Хотя это "параллельные вселенные"
Странные вещи говорите... .
Кстати, сишарп (если вы про дотнет) также далёк от темы форума "ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM", как и ява. Вы в курсе, что ещё некоторое время назад был в моде J# ? А лет 7 назад браузеры (в т.ч. ИЕ) поставлялись вместе с JVM и своего рода JRE? Это было до тех пор, пока сун (тогда ещё сун, а не орасл) не разосралась со всем миром.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615541
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123- я с десктопа пришёл. Там есть Уровень изоляции, которого в ОРМ нету. Как быть?
Написать хранимую процедуру и намапить её в схему. Использовать и радоваться. И веб тут не при чем.
Petro123как вы делаете длинные транзакции. На Java их очень не любят и открещиваются
Ничего ужасного - вызываете асинхронно серверный метод, не дожидаясь результата, отдаёте страничку обратно клиенту. Когда метод отрабатывает - ловите факт отработки в клиентском или серверном колбэке. Всё. Что может быть проще?
Petro123МСУ, если у ОРМ есть 2 кэша, то можно ли выключить синхронизацию его и сделать "снимок".
Т.е. писать в него CRUD а потом разом на 5 реквест либо в БД либо стереть с доски?
По-русски, чё Вам нужно? А то получается Вы не в теме, пытаетесь спедалировать задачу, но выходит у Вас весьма криво. В результате - не можете объяснить по-человечески.
Petro123МСУОткуда браться сессии?
это сессия Хибера, а не HTTP.
Я тоже был злой что они назвали одинаково :)
Так я про асповую сессию и говорю, а не хиберовую. Причем тут "сессия хибера на реквест"? Я могут сессию хибера в асповую сессию положить, в кеш, в аппликейшен. При чем тут реквест-то? Во-вторых, во всех доках пишут, что хиберовая сессия должна быть как можно короче: поработали с БД и прибили. Поэтому пусть на реквест, в чем проблема-то? Нужно еще будет - еще раз создадим хиберовую сессию. А вот фабрику ISessionFactory нужно глобально кешить. От неё и порождать хиберовые сессии.
Petro123МСУДля длительных операций - асинхронно отправляем транзакцию на сервер и возвращаем страницу: http://api.jquery.com/jQuery.ajax/
да. у меня на сайте это так и работает
Ну так а в чём пыль-то?
...
Рейтинг: 0 / 0
ORM vs sql
    #37615656
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeАлексей КЛучше написать в форум Asp.Net. Тут вопрос скорее по web чем про ОРМ.
Это почему? И на вэбе и не на вэбе можно писать как на ОРМ, так и не на ОРМ. Вы не знали этого?Ну вопрос-то про веб а не про ОРМ. :-)
Petro123- я с десктопа пришёл. Там есть Уровень изоляции, которого в ОРМ нету.Вроде как на десктопе уровней изоляции тоже нет. Они в БД и прочих хранилищах, поддерживающих транзакции. Не знаю как в явах и прочих, но в дотнетах есть довольно удобный ThreadStatic-контекст (класс TransactionScope ), позволяющий управлять транзакциями. А поскольку это контекст - ему пофиг через что Вы идёте в БД - через ОРМ или "врукопашную". При описании TransactionScope можно явно указать уровень изоляции (по дефолту - Serializable).
...
Рейтинг: 0 / 0
ORM vs sql
    #37615671
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSerge,
ну почему, есть некоторые вещи мемебера "зы" которые я поддерживаю
Можно и так сказать: "нафига мне ОРМ":
- придётся вынести БЛ из БД на аппсервер в ОРМ и один из недостатков выше я написал
- не всегда нужно маппить в классы, т.к. ГУИ бывает заточено на биндинг датасетов.
и т.д.
Я просто столкнулся с конкретной задаче.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615674
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
основной вопрос - знает тут кто NHibernate или будем про теорию?
Я не против и про теорию.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615676
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КВроде как на десктопе уровней изоляции тоже нет. Они в БД и прочих хранилищах, поддерживающих транзакции. Не знаю как в явах и прочих, но в дотнетах есть довольно удобный ThreadStatic-контекст (класс TransactionScope ), позволяющий управлять транзакциями. А поскольку это контекст - ему пофиг через что Вы идёте в БД - через ОРМ или "врукопашную". При описании TransactionScope можно явно указать уровень изоляции (по дефолту - Serializable).
я вижу только Вы меня поняли
Т.е. по простому вы через этот контекст ходите? Или тут не программисты больше?
...
Рейтинг: 0 / 0
ORM vs sql
    #37615678
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если чисто по сабжу, то 2 необходимых условия ОРМ перед SQL:
- необходимо бизнес-логика (БЛ) писать через ООП\Класы
- клиентской части тоже нужен ООП\Классы (а не Контрол - Биндинг - DataSet)
IMHO
...
Рейтинг: 0 / 0
ORM vs sql
    #37615681
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУPetro123- я с десктопа пришёл. Там есть Уровень изоляции, которого в ОРМ нету. Как быть?
Написать хранимую процедуру и намапить её в схему.

==== я вынес всю БЛ в ОРМ. Мешать ХП с БЛ в ОРМ не очень хорошо.

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

====== который идёт за данными в ОРМ?

не дожидаясь результата, отдаёте страничку обратно клиенту. Когда метод отрабатывает - ловите факт отработки в клиентском или серверном колбэке. Всё. Что может быть проще?

===== это вы не о длинных, а об асинхронности. Не по теме.

Petro123МСУ, если у ОРМ есть 2 кэша, то можно ли выключить синхронизацию его и сделать "снимок".
Т.е. писать в него CRUD а потом разом на 5 реквест либо в БД либо стереть с доски?
По-русски, чё Вам нужно?

===== ну, вот уже пробую 3 раунда. Прогресс есть. ТЗ выше по ссылке от заказчика.

Petro123пропущено...

это сессия Хибера, а не HTTP.
Я тоже был злой что они назвали одинаково :)
Так я про асповую сессию и говорю, а не хиберовую.

========== наконец то. Вот про это подробнее. Я так понял вы сессию HTTP называете асповой :)

Причем тут "сессия хибера на реквест"? Я могут сессию хибера в асповую сессию положить

===== замечательно. У нас говорят, что нельзя. Т.к. сложный объект не сериализуемый.

, в кеш, в аппликейшен. При чем тут реквест-то? Во-вторых, во всех доках пишут, что хиберовая сессия должна быть как можно короче: поработали с БД и прибили. Поэтому пусть на реквест, в чем проблема-то?

==== давайте не разбрасываться. Можем мы положить \ удлинить хиберовскую положив в асповскую?


Нужно еще будет - еще раз создадим хиберовую сессию.

====== поздно. Ещё раз, значит у прошлой был коммит.

А вот фабрику ISessionFactory нужно глобально кешить. От неё и порождать хиберовые сессии.
Petro123пропущено...

да. у меня на сайте это так и работает
Ну так а в чём пыль-то?

===== пока пытаюсь совместить термины.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615685
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К TransactionScope ), позволяющий управлять транзакциями.
очень классная штука.
В Java метод (по ссылке выше в конце) намного сложнее и мне не нравится.
Конечно для моей текущей задачи это оверхед, но на будущее спс.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615818
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123если чисто по сабжу, то 2 необходимых условия ОРМ перед SQL:
- необходимо бизнес-логика (БЛ) писать через ООП\Класы
- клиентской части тоже нужен ООП\Классы (а не Контрол - Биндинг - DataSet)
IMHO

ORM - тупой DAL и только. В нормально спроектированных бизнес-объектах он может быть лубым, а вы пытаетесь из ORM слепить пулю, на которую он совершенно не расчитан.
Кроме геммороя вы ничего не получите.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615968
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaORM - тупой DAL и только. В нормально спроектированных бизнес-объектах он может быть лубым, а вы пытаетесь из ORM слепить пулю, на которую он совершенно не расчитан.
Кроме геммороя вы ничего не получите.Если LINQ2SQL считать ОРМом - то это далеко не "тупой DAL". В нём прекрасно описывается логика, которая "раньше" описывалась в SQL.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615986
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaPetro123если чисто по сабжу, то 2 необходимых условия ОРМ перед SQL:
- необходимо бизнес-логика (БЛ) писать через ООП\Класы
- клиентской части тоже нужен ООП\Классы (а не Контрол - Биндинг - DataSet)
IMHO
ORM - тупой DAL и только. В нормально спроектированных бизнес-объектах он может быть лубым, а вы пытаетесь из ORM слепить пулю, на которую он совершенно не расчитан.
Кроме геммороя вы ничего не получите.
я уже не так категоричен как раньше.
Для задач корпоратива на ГУИ-веб - возможно тупой.
А для публичных сайтов - пойдёт.
Везде ньансы.
...
Рейтинг: 0 / 0
ORM vs sql
    #37616869
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123 я вынес всю БЛ в ОРМ. Мешать ХП с БЛ в ОРМ не очень хорошо.
Это очень плохо, выносить бизнес в ORM :) Логику нужно выносить в Logic Layer. А там уже можно и "умные" хп поюзать, если сильно хочется. Хибер отлично дружит с хп.

Petro123который идёт за данными в ОРМ?
Да.

Petro123это вы не о длинных, а об асинхронности. Не по теме.
Как может быть это не по теме, если Вы сами сказали, что $.ajax async как-раз и юзаете. Мигрень?

Petro123ну, вот уже пробую 3 раунда. Прогресс есть. ТЗ выше по ссылке от заказчика.
Да нафига мне Ваш тз, Вы человеческим языком объясните.

Petro123наконец то. Вот про это подробнее. Я так понял вы сессию HTTP называете асповой :)
Ну пипец... Да.

Petro123замечательно. У нас говорят, что нельзя. Т.к. сложный объект не сериализуемый.
Хорошо, а в Application пробовали? Ключ должен быть с привязкой к юзеру, разумеется: Application["ID" + UserName].
Во-вторых, зачем хиберовую сессию куда-то прятать? Асинхронно пнули серверный метод, попали под отдельно выделенный тредпулом поток, в нем создалась хиберовая сессия, прошла длительная операция. Всё. Зачем сессию хибера куда-то сохранять?

Petro123давайте не разбрасываться. Можем мы положить \ удлинить хиберовскую положив в асповскую?
В Application точно можно. Во-вторых, это бред. Неверна постановка задачи - хибер сессию не нужно ни куда кешировать.

Petro123поздно. Ещё раз, значит у прошлой был коммит.
Причем тут коммит прошлой?

Petro123пока пытаюсь совместить термины.
Вы задачу лучше обрисуйте. По пунктам.
...
Рейтинг: 0 / 0
ORM vs sql
    #37617186
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУВы задачу лучше обрисуйте. По пунктам.
ну давай попробуем

с клиента приходит 3 вызова в любой очерёдности
Код: plaintext
1.
2.
3.
www.test?Person
www.test?Adress
www.test?Zakaz
www.test?OK или www.test?Cancel

последний приходит в конце

НА СЕРВЕРЕ один сервлет на все вызовы-реквест в потоке
============

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
function Servlet(параметры)
{
Хибер.Сессия.Старт

     бизнес-логика

Хибер.Сессия.Закрыть
}


Это из доки по хиберу - короткие транзакции. Открыл, HTML выплюнул - закрыл.
Если это понятно, продолжим.
...
Рейтинг: 0 / 0
ORM vs sql
    #37617188
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Корзину покупателя в веб как делают?
...
Рейтинг: 0 / 0
ORM vs sql
    #37617193
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Корзину покупателя в веб как делают?

Имхо хранят данные в сессии без всяких там записей в хибере/бд/etc.
...
Рейтинг: 0 / 0
ORM vs sql
    #37617216
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchPetro123Корзину покупателя в веб как делают?
Имхо хранят данные в сессии без всяких там записей в хибере/бд/etc.
именно. Даже больше.
Первые корзины хранили цену и код товара в JS на клиенте.
НО выше пример с БЛ десктопа сложнее.
Выстрелил и забыл (Веб) никому счас не нужен.
...
Рейтинг: 0 / 0
ORM vs sql
    #37617221
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Что мешает накапливать данные на странице (вариантов масса, хоть в js массиве синхронизируемся, хоть даже в name формы, а про сессии, куки и иже уж молчу). А потом всё это слить на сервер.
2. Корзина - проще пареной репы. Можно на куках, можно на профилях.

Гоу ту асп.нет форум, короче. Я устал толкать кирпичую стену. Объяснять джависту элементарные асповые вещи под соусом "я не буду это есть" - не моё.
Если хотите разобраться, ваяйте тестовый сайт на хибере, закидывайте в асп.нет форум, задавайте адекватно вопрос. Там помогу. А тут гонять сопли по десятому разу уже надоело.
...
Рейтинг: 0 / 0
ORM vs sql
    #37617227
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchPetro123Корзину покупателя в веб как делают?

Имхо хранят данные в сессии без всяких там записей в хибере/бд/etc.

Корзина на сессии? :) Где взять такой травы?
...
Рейтинг: 0 / 0
ORM vs sql
    #37617229
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,
так и скажи. Я пойму - асповый форум.
У нас то он один.
Всё равно спасибо. Было познавательно. Не всё ж в своём соку вариться. Удачи!
...
Рейтинг: 0 / 0
ORM vs sql
    #37617232
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123, не, ну без обид. Какой-то разговор глухого с немым получается... Явист жарит моск дотнетчику. Достало, епт.
...
Рейтинг: 0 / 0
ORM vs sql
    #37617242
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,
абсолютно без.
Я тоже вашего брата мало мало...
ShSerge приглашал когда, я сказал - слишком разные мы :)
Тему я всю прочёл. 30% не понял, 70 понял, 10% твоих доводов фигня, 90 правда :)
Удачи!
...
Рейтинг: 0 / 0
ORM vs sql
    #37617263
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Петро, бросайте гавножабу, курите человеческий оспонет :)
...
Рейтинг: 0 / 0
ORM vs sql
    #37617276
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУLelouchпропущено...


Имхо хранят данные в сессии без всяких там записей в хибере/бд/etc.

Корзина на сессии? :) Где взять такой травы?

Никогда их не писал, и в ближайший год не буду точно, профиль конторы не тот ) Сие было всего лишь скромное мнение )
...
Рейтинг: 0 / 0
ORM vs sql
    #37617287
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchСие было всего лишь скромное мнение )
Ок. Так вот знайте, корзина на сессии - это тоже самое, что корзина на урле :)
...
Рейтинг: 0 / 0
451 сообщений из 451, показаны все 19 страниц
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / ORM vs sql
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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