konto usunięte

Temat: Nowości .NET 4.0 ale mało znane

Chciałem założyć wątek w sprawie mało znanych nowości .NET4.0/VS2010. Oficjalna lista jest pewno znana, dla przypomnienia dobre i zarazem zagregowane podsumowanie zawarte jest na blogu nieocenionego Scotta Gu, ale chciałem jakoś wyciągnąć informacje o mało znanych/popularnych zmianach.

Aby nie zaczynać z pustymi rękoma oto co ja znalazłem: programistyczna obsługa FirstChanceException, do tej pory możliwa tylko przez debugger Visual Studio (albo ja nie znałem innego sposobu)
using System;
static class Program {
static void Main(string[] args) {
AppDomain.CurrentDomain.FirstChanceException += (s,e) => {
Console.WriteLine("FirstChanceException: " + e.Exception.Message);
};
try {
int n = int.Parse("12x");
Console.WriteLine("Odczytana wartnosc: " + n);
} catch {
//nic sie nie stalo...
}
}
}

konto usunięte

Temat: Nowości .NET 4.0 ale mało znane

Thread.Yield
SpinLock
LambdaExpression.CompileToMethod - dla mnie bomba, potem podglądam efekt w Reflectorzemaciek kański edytował(a) ten post dnia 20.04.10 o godzinie 19:48
Jerzy M.

Jerzy M. C#/JavaScript
Developer

Temat: Nowości .NET 4.0 ale mało znane

http://bogdanbrinzarea.wordpress.com/2009/04/24/learni...

Taki zbiór znalazłem, z pewnych powodów jeszcze całego nie ogarnąłem ;-)

konto usunięte

Temat: Nowości .NET 4.0 ale mało znane

Uważam że warto się zapoznać z tym:

http://msdn.microsoft.com/en-us/library/ee855831.aspx

Szczególnie sekcja dotycząca lockowania w eventach.

Nowości nowościami ale najbardziej nowe i zaskakujące jest to gdy naszą aplikacje bądź komponent z migrujemy na 4.0 i się okrze że działa inaczej bądź nie działa w ogolę. a lockowanie w eventach może być problemem nie łatwym do zlokalizowania.Bartosz Adamczewski edytował(a) ten post dnia 23.04.10 o godzinie 11:07

konto usunięte

Temat: Nowości .NET 4.0 ale mało znane

Bartosz Adamczewski:
lockowanie w eventach może być problemem nie łatwym do zlokalizowania.
Masz oczywiście rację, ale wystarczy stosować dobre praktyki aby tego problemu w ogóle nie zauważyć. Te praktyki to:
- używać lock tylko na dedykowanych, prywatnych obiektach (BTW lepiej pisać lock-free code)
- zawsze używać patternu z lokalną zmienną, tj:
var handler = SomeEvent;
if(null!=hander) handler(....);

Microsoft dość luźno stosuje się do własnych zaleceń:)

konto usunięte

Temat: Nowości .NET 4.0 ale mało znane

Zgadzam się, lecz nie zawsze jest możliwe unikanie locków na kodzie, może inaczej bardzo ciężko jest napisać lock free code w skomplikowanych scenariuszach wątkowania.

Co do prywatnej zmiennej to jak najbardziej tak, ale jeśli część projektu jest "legacy" i dostajemy takie eventy (czy inne zmiany) w spadku wtedy jest pewien problem z przejściem pomiędzy platformami.

Co do dodatków jeszcze to:
http://community.bartdesmet.net/blogs/bart/archive/200... (nie wiem czy nie ma tego w spisie linków, jeśli jest to przepraszam)

Przy okazji Linq, Lambd polecam jeszcze ten teoretyczny aspekt:
http://community.bartdesmet.net/blogs/bart/archive/200...Bartosz Adamczewski edytował(a) ten post dnia 23.04.10 o godzinie 13:05

Następna dyskusja:

Prosta stronka ale w .NET




Wyślij zaproszenie do