Re[2]: Давайте поговорим о c# 3.0
От: VladD2 Российская Империя www.nemerle.org
Дата: 19.09.08 18:41
Оценка: :)
Здравствуйте, MxKazan, Вы писали:

MK>Согласен с p.s. ...реальным плюсом со времен C# 1.1 явились только generic'и...меня огорчают extension methods...Подстановка типов для generic'ов...Кому оно необходимо?..А еще я бы убил yield return...


Я не понял — это такой тонкий стеб?

Если нет, то я знаю отличный C# который тебе подойдет — Java. Отличный такой каменный топор с поддержкой ООП. Как раз для тех кто боится машин и оборудования.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Давайте поговорим о c# 3.0
От: MxKazan Португалия  
Дата: 20.09.08 09:26
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, MxKazan, Вы писали:


MK>>Согласен с p.s. ...реальным плюсом со времен C# 1.1 явились только generic'и...меня огорчают extension methods...Подстановка типов для generic'ов...Кому оно необходимо?..А еще я бы убил yield return...


VD>Я не понял — это такой тонкий стеб?


VD>Если нет, то я знаю отличный C# который тебе подойдет — Java. Отличный такой каменный топор с поддержкой ООП. Как раз для тех кто боится машин и оборудования.


Причем здесь Java? Меня спросили про C# 3.0, я высказал своё мнение. На мой взгляд, в языке появляется всё больше и больше способов, как любят говорить некоторые, "выстрелить себе в ногу". Я не боюсь ни машин, ни оборудования и часто на ура воспринимаю разные нововведения. Но вот я чувствую, что скоро только и придется заниматься отучением "молодых" где ни попадя впихивать extension methods, юзать без понимания смысла yield return, попутно занимаясь разгадыванием, какой же generic метод решил вызвать компилятор, из-за того, что позволил чуваку не вписывать тип-параметр. Знаю одну очень хорошую фирму, небольшую, но с очень высоким профессиональным уровнем. Они свой Framework для бизнес-приложений давно наваяли в том варианте, который теперь используются в dependency properties в WPF. Так вот не торопятся переходить на .Net 3, именно потому что не видят от этого плюсов. С первого на второй перескочили практически сразу. Для меня это показатель.
Re[4]: Давайте поговорим о c# 3.0
От: Lloyd Россия  
Дата: 20.09.08 14:44
Оценка:
Здравствуйте, MxKazan, Вы писали:

MK>Так вот не торопятся переходить на .Net 3, именно потому что не видят от этого плюсов. С первого на второй перескочили практически сразу.


Неужели их даже линк не вдохновил?
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Re[5]: Давайте поговорим о c# 3.0
От: MxKazan Португалия  
Дата: 20.09.08 15:37
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Здравствуйте, MxKazan, Вы писали:


MK>>Так вот не торопятся переходить на .Net 3, именно потому что не видят от этого плюсов. С первого на второй перескочили практически сразу.


L>Неужели их даже линк не вдохновил?


Если рассматривать Linq как средство доступа к БД, то ими разработанный Фреймворк сам позволяет делать примерно то же самое — есть низкий уровень генерации SQL, а всё остальное — обычные .Net классы, умело вписанные в стандартные задачи бизнеса. Поэтому Linq им просто не нужен. Более того, как человек использовавший и то и другое, не могу однозначно сказать что лучше. Подозреваю, что другие сферы применения Linq не сильно представлены в их приложениях, чтобы ради этого переходить на новый FW.

По мне, Linq — хорошая вещь как идея, надо было упомянуть его вместе с generic'ами. Но реализация Linq-to-Sql огорчила, например, невозможностью сделать DELETE без предварительного SELECT'а. Возможно я просто не нашел как, времени тогда было немного, буду рад если кто поделится ссылками.
Re[6]: Давайте поговорим о c# 3.0
От: Lloyd Россия  
Дата: 20.09.08 17:44
Оценка:
Здравствуйте, MxKazan, Вы писали:

MK>Если рассматривать Linq как средство доступа к БД, то ими разработанный Фреймворк сам позволяет делать примерно то же самое — есть низкий уровень генерации SQL, а всё остальное — обычные .Net классы, умело вписанные в стандартные задачи бизнеса. Поэтому Linq им просто не нужен. Более того, как человек использовавший и то и другое, не могу однозначно сказать что лучше. Подозреваю, что другие сферы применения Linq не сильно представлены в их приложениях, чтобы ради этого переходить на новый FW.


Нет, я имел в виду Linq to Objects

MK>По мне, Linq — хорошая вещь как идея, надо было упомянуть его вместе с generic'ами. Но реализация Linq-to-Sql огорчила, например, невозможностью сделать DELETE без предварительного SELECT'а. Возможно я просто не нашел как, времени тогда было немного, буду рад если кто поделится ссылками.


Не знаю, сработает ли, но можно пропробовать создать пустую сущность с выставленным ID, приаттачить ее к контексту, и потом удалить ее из контекста.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Re[7]: Давайте поговорим о c# 3.0
От: Sinclair Россия https://github.com/evilguest/
Дата: 20.09.08 20:47
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Не знаю, сработает ли, но можно пропробовать создать пустую сущность с выставленным ID, приаттачить ее к контексту, и потом удалить ее из контекста.

Речь не об ID.
Речь об аналоге

delete * from students s where (select min(mark) from exam where exam.studentID = s.id) < 3

Заселектить таких студентов мы можем только в путь. А вот делитнуть — не вполне понятно как.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[4]: Давайте поговорим о c# 3.0
От: IT Россия linq2db.com
Дата: 20.09.08 22:42
Оценка: +1
Здравствуйте, MxKazan, Вы писали:

MK>Так вот не торопятся переходить на .Net 3, именно потому что не видят от этого плюсов. С первого на второй перескочили практически сразу. Для меня это показатель.


Это показатель того, что со временем люди становятся всё более и более консервативными и всё больше и больше боятся расстаться со своим хламом.
Неясность изложения обычно происходит от путаницы в мыслях.
Если нам не помогут, то мы тоже никого не пощадим.
Re[8]: Давайте поговорим о c# 3.0
От: MxKazan Португалия  
Дата: 20.09.08 23:49
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, Lloyd, Вы писали:


L>>Не знаю, сработает ли, но можно пропробовать создать пустую сущность с выставленным ID, приаттачить ее к контексту, и потом удалить ее из контекста.

S>Речь не об ID.
S>Речь об аналоге

S>
S>delete * from students s where (select min(mark) from exam where exam.studentID = s.id) < 3
S>

S>Заселектить таких студентов мы можем только в путь. А вот делитнуть — не вполне понятно как.

Именно об этом речь. Сделать что-то вроде "DELETE FROM tblMyTable WHERE myTableField = myProvidedValue" Как? Просмотрел ряд форумов, где прямо так и писали, мол "не могёт так Linq-To-Sql" — вначале заселекти всё, что myTableField = myProvidedValue, а потом уже удаляй. Никак ведь не катит, а
Re[5]: Давайте поговорим о c# 3.0
От: MxKazan Португалия  
Дата: 21.09.08 00:04
Оценка:
Здравствуйте, IT, Вы писали:

IT>Здравствуйте, MxKazan, Вы писали:


MK>>Так вот не торопятся переходить на .Net 3, именно потому что не видят от этого плюсов. С первого на второй перескочили практически сразу. Для меня это показатель.


IT>Это показатель того, что со временем люди становятся всё более и более консервативными и всё больше и больше боятся расстаться со своим хламом.


Возможно и так. Однако, как я уже писал в соседней ветке, попробовав оба подхода (их FW и Linq), сам не могу сказать что Linq прямо так уж круче. В любом случае, не назвал бы работников той фирмы консервативными. Скорее они реально стараются взешивать "а надо ли?". Возможно Linq просто не оказался столь мощным аргументом (и я понимаю почему, опять же, см. соседний тред), а остальное — extensions и пр.лабуда успешно получены путем создания собственной библиотеки контролов. Ну вот, например, прежде чем перейти на FW2, плюсы generic'ов выясняли различными тестами — реально ли быстрее. Да — быстрее, выше, сильнее. Что могут предложить нововведения C# 3.0?
Re[6]: Давайте поговорим о c# 3.0
От: IT Россия linq2db.com
Дата: 21.09.08 00:47
Оценка: +1
Здравствуйте, MxKazan, Вы писали:

MK>Что могут предложить нововведения C# 3.0?


Я не знаю какие задачи они решают, поэтому без понятия что им может предложить C#.

Мне C# 3.0 дал следующее:

1. Типизацию работы с данными БД.
2. linq 2 objects принципиально изменил способы обработки данных в памяти.
3. Возможность работать в функциональном стиле с человеческим лицом.
Неясность изложения обычно происходит от путаницы в мыслях.
Если нам не помогут, то мы тоже никого не пощадим.
Re[8]: Давайте поговорим о c# 3.0
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 21.09.08 06:55
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, Lloyd, Вы писали:


L>>Не знаю, сработает ли, но можно пропробовать создать пустую сущность с выставленным ID, приаттачить ее к контексту, и потом удалить ее из контекста.

S>Речь не об ID.
S>Речь об аналоге

S>
S>delete * from students s where (select min(mark) from exam where exam.studentID = s.id) < 3
S>

S>Заселектить таких студентов мы можем только в путь. А вот делитнуть — не вполне понятно как.

Если такие запросы выполнять, то Identity Tracking совсем работать не будет.
Re[7]: Давайте поговорим о c# 3.0
От: MxKazan Португалия  
Дата: 21.09.08 08:35
Оценка:
Здравствуйте, IT, Вы писали:

IT>Здравствуйте, MxKazan, Вы писали:


MK>>Что могут предложить нововведения C# 3.0?


IT>Я не знаю какие задачи они решают, поэтому без понятия что им может предложить C#.


IT>Мне C# 3.0 дал следующее:


IT>1. Типизацию работы с данными БД.

Ну в этом Linq далеко не первый. При этом в нём и гемора хватает, см. про удаление
Автор: MxKazan
Дата: 21.09.08
. Мне также, например, не понравилось отсутствие того, что в ADO Entity Framework называют концептуальным слоем. Насколько я понимаю, Linq-to-Sql настраивается на модель БД при помощи атрибутов, следовательно, например, при изменении имени поля, мне приходится заниматься перегенерацией классов и перекопиляцией. Я уже и молчу про то, что куча настроек теряется при перегенерации (например, касательно участия поля в update'ах)

IT>2. linq 2 objects принципиально изменил способы обработки данных в памяти.

Так. Я видимо не в теме. А что принципиального нового linq 2 objects внёс по части "способы обработки данных в памяти"?

IT>3. Возможность работать в функциональном стиле с человеческим лицом.

Честно говоря, никогда не страдал от отсутствия подобного в C#
Re[8]: Давайте поговорим о c# 3.0
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 21.09.08 08:45
Оценка:
Здравствуйте, MxKazan, Вы писали:

IT>>1. Типизацию работы с данными БД.

MK>Ну в этом Linq далеко не первый. При этом в нём и гемора хватает, см. про удаление
Автор: MxKazan
Дата: 21.09.08
. Мне также, например, не понравилось отсутствие того, что в ADO Entity Framework называют концептуальным слоем. Насколько я понимаю, Linq-to-Sql настраивается на модель БД при помощи атрибутов, следовательно, например, при изменении имени поля, мне приходится заниматься перегенерацией классов и перекопиляцией. Я уже и молчу про то, что куча настроек теряется при перегенерации (например, касательно участия поля в update'ах)

Вы просто не умеете его готовить. Я юзаю Linq с самого релиза, проблем не возникало.

IT>>2. linq 2 objects принципиально изменил способы обработки данных в памяти.

MK>Так. Я видимо не в теме. А что принципиального нового linq 2 objects внёс по части "способы обработки данных в памяти"?

IT>>3. Возможность работать в функциональном стиле с человеческим лицом.

MK>Честно говоря, никогда не страдал от отсутствия подобного в C#

Вы действительно не в тебе, были бы в теме — оценили бы преимущества.

ЗЫ. Я подобное мнение видел у прожженых C++ников, которые впоследствие перешли на C#.
Re[9]: Давайте поговорим о c# 3.0
От: MxKazan Португалия  
Дата: 21.09.08 09:16
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Здравствуйте, MxKazan, Вы писали:


IT>>>1. Типизацию работы с данными БД.

MK>>Ну в этом Linq далеко не первый. При этом в нём и гемора хватает, см. про удаление
Автор: MxKazan
Дата: 21.09.08
. Мне также, например, не понравилось отсутствие того, что в ADO Entity Framework называют концептуальным слоем. Насколько я понимаю, Linq-to-Sql настраивается на модель БД при помощи атрибутов, следовательно, например, при изменении имени поля, мне приходится заниматься перегенерацией классов и перекопиляцией. Я уже и молчу про то, что куча настроек теряется при перегенерации (например, касательно участия поля в update'ах)

G>Вы просто не умеете его готовить. Я юзаю Linq с самого релиза, проблем не возникало.
Не-не-не, так дело не пойдёт. Есть конкретная задача, я её привел в теме, куда ведет ссылка. Прошу, выдайте мне решение. Я хочу удалить объекты из базы, просто по какому-то критерию.

IT>>>2. linq 2 objects принципиально изменил способы обработки данных в памяти.

MK>>Так. Я видимо не в теме. А что принципиального нового linq 2 objects внёс по части "способы обработки данных в памяти"?

IT>>>3. Возможность работать в функциональном стиле с человеческим лицом.

MK>>Честно говоря, никогда не страдал от отсутствия подобного в C#

G>Вы действительно не в тебе, были бы в теме — оценили бы преимущества.

Отмахнуться — это удобно. А ответить на вопрос?

G>ЗЫ. Я подобное мнение видел у прожженых C++ников, которые впоследствие перешли на C#.

Можно расслабиться и спокойно общаться. Мой профессиональный опыт — 3 года сплошного C#. Никакого C++.
Re[10]: Давайте поговорим о c# 3.0
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 21.09.08 09:27
Оценка: :)
Здравствуйте, MxKazan, Вы писали:

MK>Здравствуйте, gandjustas, Вы писали:


G>>Здравствуйте, MxKazan, Вы писали:


IT>>>>1. Типизацию работы с данными БД.

MK>>>Ну в этом Linq далеко не первый. При этом в нём и гемора хватает, см. про удаление
Автор: MxKazan
Дата: 21.09.08
. Мне также, например, не понравилось отсутствие того, что в ADO Entity Framework называют концептуальным слоем. Насколько я понимаю, Linq-to-Sql настраивается на модель БД при помощи атрибутов, следовательно, например, при изменении имени поля, мне приходится заниматься перегенерацией классов и перекопиляцией. Я уже и молчу про то, что куча настроек теряется при перегенерации (например, касательно участия поля в update'ах)

G>>Вы просто не умеете его готовить. Я юзаю Linq с самого релиза, проблем не возникало.
MK>Не-не-не, так дело не пойдёт. Есть конкретная задача, я её привел в теме, куда ведет ссылка. Прошу, выдайте мне решение. Я хочу удалить объекты из базы, просто по какому-то критерию.
Не получится никак. Вернее совсем никак. Это противречит реализации Linq2SQL. Я готов мириться с такой вселенской несправедливостью, учитывая кучу других полезностей.
Если вам нужны все возможности SQL, то используйте SQL, а не Linq.
Re[11]: Давайте поговорим о c# 3.0
От: MxKazan Португалия  
Дата: 21.09.08 09:31
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Здравствуйте, MxKazan, Вы писали:


MK>>Здравствуйте, gandjustas, Вы писали:


G>>>Здравствуйте, MxKazan, Вы писали:


IT>>>>>1. Типизацию работы с данными БД.

MK>>>>Ну в этом Linq далеко не первый. При этом в нём и гемора хватает, см. про удаление
Автор: MxKazan
Дата: 21.09.08
. Мне также, например, не понравилось отсутствие того, что в ADO Entity Framework называют концептуальным слоем. Насколько я понимаю, Linq-to-Sql настраивается на модель БД при помощи атрибутов, следовательно, например, при изменении имени поля, мне приходится заниматься перегенерацией классов и перекопиляцией. Я уже и молчу про то, что куча настроек теряется при перегенерации (например, касательно участия поля в update'ах)

G>>>Вы просто не умеете его готовить. Я юзаю Linq с самого релиза, проблем не возникало.
MK>>Не-не-не, так дело не пойдёт. Есть конкретная задача, я её привел в теме, куда ведет ссылка. Прошу, выдайте мне решение. Я хочу удалить объекты из базы, просто по какому-то критерию.
G>Не получится никак. Вернее совсем никак. Это противречит реализации Linq2SQL. Я готов мириться с такой вселенской несправедливостью, учитывая кучу других полезностей.
G>Если вам нужны все возможности SQL, то используйте SQL, а не Linq.
Ну если бы в мире существовали только два способа работы с БД: Linq и SQL, то да, юзал бы SQL.
Но есть и третий путь
Re[12]: Давайте поговорим о c# 3.0
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 21.09.08 09:57
Оценка:
Здравствуйте, MxKazan, Вы писали:

G>>Если вам нужны все возможности SQL, то используйте SQL, а не Linq.

MK>Ну если бы в мире существовали только два способа работы с БД: Linq и SQL, то да, юзал бы SQL.
MK>Но есть и третий путь
Угу, написать свой Linq. Но вряд ли удастся добиться тойже функциональности, что Linq2SQL.
Некоторые проблемы, существующие в Linq вы можете решить, но получите кучу других проблем.

В вашем случае гораздо проще написать метод, генерирующий нужный SQL код по Query Expression.
Re[13]: Давайте поговорим о c# 3.0
От: Lloyd Россия  
Дата: 21.09.08 10:15
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>В вашем случае гораздо проще написать метод, генерирующий нужный SQL код по Query Expression.


Это разве проще?!! Это ж процентов 80 Linq2SQL-а.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Re[14]: Давайте поговорим о c# 3.0
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 21.09.08 10:24
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Здравствуйте, gandjustas, Вы писали:


G>>В вашем случае гораздо проще написать метод, генерирующий нужный SQL код по Query Expression.


L>Это разве проще?!! Это ж процентов 80 Linq2SQL-а.

а)это проще чем писать аналогичный фреймворк с нуля
б)это проще, чем переписывать все приложение на SQL
в)если нужен простой случай выборки в delete (без подзапросов), то это действительно просто
Re[10]: Давайте поговорим о c# 3.0
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 21.09.08 12:13
Оценка: :)
Здравствуйте, MxKazan, Вы писали:

G>>ЗЫ. Я подобное мнение видел у прожженых C++ников, которые впоследствие перешли на C#.

MK>Можно расслабиться и спокойно общаться. Мой профессиональный опыт — 3 года сплошного C#. Никакого C++.

Вот и выросло новое поколение


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.