Что нового в .NET 3.0?
Действительное новая версия, это 3.5.
WCF, WPF и т.д.Это что такое?
Действительное новая версия, это 3.5.А у меня почему то сложилось впечатление что это тот же net 3.0 только с vNext.
там куча оптизизаций JIT-а и GC, там новые типы в namespace System, там Linq и другие хорошие штуки. Там C# 3.0, в конце концов.
там куча оптизизаций JIT-а и GC, там новые типы в namespace System,Ну это скорее эволюция, нежели что то новое.
там Linq и другие хорошие штуки.
Под vNext я имею в виду всю эту бадягу.
тогда мне тяжело понять, что должно считаться новой версией. То, что на .net 3.5 способ написания приложений местами сильно изменится, соблазняет меня сейчас для нового проекта использовать .net 3.5, а не 3.0
тогда мне тяжело понять, что должно считаться новой версией.Ну вот тот же WPF.
То, что на .net 3.5 способ написания приложений местами сильно изменится,
Например?
соблазняет меня сейчас для нового проекта использовать .net 3.5, а не 3.0
А что отталкивает?
Например?Например, третий шарп + LINQ очень сильно упрощают жизнь при разработке.
так это скорее либа к .net-у, чем сам .net.
так это скорее либа к .net-у, чем сам .net.А что у флеймворка может появится нового кроме либ и оптимизации?
А что у флеймворка может появится нового кроме либ и оптимизации?Ну синтаксис C# может измениться.
Некрософт хочет, чтобы старые проги компилились на новом языке.
Ну синтаксис C# может измениться.Имхо, язык программирования это не есть фича фреймворка.
поменяться основные возможности.
появление тех же generic-ов - это изменение самого .net-а.
появление каких-нибудь yield-ов или expression-ов - это тоже изменение самого .net-а.
т.е. одно дело добавление либы где-то там "сбоку", и совсем другое - появляение новых "инструментов" для написания этих самых либ/кода
expression-овЭто что такое?
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);
формирует в переменной exprLambda вот такое дерево:
Разве этим не компилятор C# занимается?
соответственно, которое можно разобрать, модифицировать, выполнить и т.д.И почему этого нельзя сделать в NET 2.0?
не вижу смысла в дискуссии: .net vs C#
> И почему этого нельзя сделать в NET 2.0?
каким образом? написать свой компилятор?
появление каких-нибудь yield-ов или expression-ов - это тоже изменение самого .net-а.
---
Incorrect. Генерики — это свойство дотнета, йилды — нет. Точнее, есть такое определение дотнета, при котором эти фичи добавляются на разных уровнях, и это довольно логичное определение. Собственно, добавление генериков изменило MSIL/CLR, а йилды это чисто компиляторный синтаксический сахар.
Вот!
а йилды это чисто компиляторный синтаксический сахар.да. К тому же с очень неприятными подводными камнями.
да. К тому же с очень неприятными подводными камнями.Типа?
не вижу смысла в дискуссии: .net vs C#т.к. конкретные фичи компилятора C# строго привязаны к определенной версии .net-а.
Дада, какими?
Серьезным откровением и неудобством было то, что при использовании yield-а генерируется пустой метод IEnumerator.Reset, кидающий exception.
Логично в общем-то. Он же не знает, как правильно отресетить твой метод — просто запуск начальной части может привести к фантастическим совершенно багам.
Оставить комментарий
valkira
Какие изменения произошли в новой версии дот-нет? Что новенького? Опишите вкратце плиз, а то инета ща нету, а ведь жутко интересно!