Что нового в .NET 3.0?

valkira

Какие изменения произошли в новой версии дот-нет? Что новенького? Опишите вкратце плиз, а то инета ща нету, а ведь жутко интересно!

tashka

это просто добавление WCF, WPF и т.д.
Действительное новая версия, это 3.5.

valkira

WCF, WPF и т.д.
Это что такое?

timefim

Действительное новая версия, это 3.5.
А у меня почему то сложилось впечатление что это тот же net 3.0 только с vNext.

Helga87

ненене
там куча оптизизаций JIT-а и GC, там новые типы в namespace System, там Linq и другие хорошие штуки. Там C# 3.0, в конце концов.

timefim

там куча оптизизаций JIT-а и GC, там новые типы в namespace System,
Ну это скорее эволюция, нежели что то новое.
там Linq и другие хорошие штуки.

Под vNext я имею в виду всю эту бадягу.

Helga87

тогда мне тяжело понять, что должно считаться новой версией. То, что на .net 3.5 способ написания приложений местами сильно изменится, соблазняет меня сейчас для нового проекта использовать .net 3.5, а не 3.0

timefim

тогда мне тяжело понять, что должно считаться новой версией.
Ну вот тот же WPF.
То, что на .net 3.5 способ написания приложений местами сильно изменится,

Например?
соблазняет меня сейчас для нового проекта использовать .net 3.5, а не 3.0

А что отталкивает?

aleks058

Например?
Например, третий шарп + LINQ очень сильно упрощают жизнь при разработке.

Dasar

> Ну вот тот же WPF.
так это скорее либа к .net-у, чем сам .net.

timefim

так это скорее либа к .net-у, чем сам .net.
А что у флеймворка может появится нового кроме либ и оптимизации?

valkira

А что у флеймворка может появится нового кроме либ и оптимизации?
Ну синтаксис C# может измениться.

aleks058

Скорее не измениться, а расшириться.
Некрософт хочет, чтобы старые проги компилились на новом языке.

timefim

Ну синтаксис C# может измениться.
Имхо, язык программирования это не есть фича фреймворка.

Dasar

> А что у флеймворка может появится нового кроме либ и оптимизации?
поменяться основные возможности.
появление тех же generic-ов - это изменение самого .net-а.
появление каких-нибудь yield-ов или expression-ов - это тоже изменение самого .net-а.
т.е. одно дело добавление либы где-то там "сбоку", и совсем другое - появляение новых "инструментов" для написания этих самых либ/кода

timefim

expression-ов
Это что такое?

Dasar

Вот такая запись:

Expression<Func<int, bool>> exprLambda = x => (x & 1) == 0;

формирует в переменной exprLambda вот такое дерево:
Expression<Func<int, bool>> exprLambda = Expression.Lambda<Func<int, bool>>(
Expression.EQ(
Expression.BitAnd(xParam, Expression.Constant(1
Expression.Constant(0
xParam);
соответственно, которое можно разобрать, модифицировать, выполнить и т.д.

timefim

формирует в переменной exprLambda вот такое дерево:

Разве этим не компилятор C# занимается?
соответственно, которое можно разобрать, модифицировать, выполнить и т.д.
И почему этого нельзя сделать в NET 2.0?

Dasar

> Разве этим не компилятор C# занимается?
не вижу смысла в дискуссии: .net vs C#
> И почему этого нельзя сделать в NET 2.0?
каким образом? написать свой компилятор?

bleyman

появление тех же generic-ов - это изменение самого .net-а.
появление каких-нибудь yield-ов или expression-ов - это тоже изменение самого .net-а.
---
Incorrect. Генерики — это свойство дотнета, йилды — нет. Точнее, есть такое определение дотнета, при котором эти фичи добавляются на разных уровнях, и это довольно логичное определение. Собственно, добавление генериков изменило MSIL/CLR, а йилды это чисто компиляторный синтаксический сахар.
Вот!

6yrop

а йилды это чисто компиляторный синтаксический сахар.
да. К тому же с очень неприятными подводными камнями.

nikita270601

да. К тому же с очень неприятными подводными камнями.
Типа?

Dasar

> Incorrect. Генерики — это свойство дотнета, йилды — нет.
не вижу смысла в дискуссии: .net vs C#
т.к. конкретные фичи компилятора C# строго привязаны к определенной версии .net-а.

bleyman

Дада, какими?

Dasar

Серьезным откровением и неудобством было то, что при использовании yield-а генерируется пустой метод IEnumerator.Reset, кидающий exception.

bleyman

Логично в общем-то. Он же не знает, как правильно отресетить твой метод — просто запуск начальной части может привести к фантастическим совершенно багам.
Оставить комментарий
Имя или ник:
Комментарий: