/ Align = "left" / to.net 3.5 (od 2.0) [zamknięty]

Zajmuję się tworzeniem nowych aplikacji desktopowych. Czuję się jak w domu z. NET 2.0 i c#. Chyba nie potrzebuję linq, ani dbać o WPF i inne wymyślne słowa kluczowe Vista-oid. Ja też lubię raczej ciasne i cienkie 2.0 redystrybucyjne, tym bardziej z powodu Visty i 7 W Zestawie.

Dlaczego przełączyć na 3.5?

Author: Daniel Mošmondor, 2009-09-01

20 answers

Jedno słowo:

Linq

Gdy wykonasz jedno zapytanie na swoich obiektach używając Linq, nigdy nie wrócisz. Linq to nie tylko bazy danych, możesz mieć każdy rodzaj kolekcji, a jeśli możesz wyrazić siebie funkcjonalnie, możesz zmienić

foreach (obj in myCollection)
{
   if (obj.property == match)
   {
      foundObj = obj;
      break;
   }
}

Do

myCollection.Single(obj => obj.property == match);

EDIT: OR

var foundobj = 
(from obj in myCollection
where obj.property == match)
.Single()
Który ma większy sens? A jeśli chcesz wyrazić znacznie bardziej złożone zapytania, takie jak gdzie to i tamto, z tego wybierz te, które pasują do niektórych inne nieruchomości. Można to zrobić w dwóch wywołaniach funkcji. [[3]} przepraszam za rant, ale naprawdę lubię Linq.
 54
Author: Spence,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-01 04:56:08

Założenie: pracujesz z Visual Studio 2005 i. NET 2.0.

SYSTEM OPERACYJNY Windows 7 zawiera. NET 3.5

powód # 2: istnieją sposoby, aby celować w. NET 2.0 za pomocą Visual Studio 2008 (I VS 2010), dzięki czemu można uzyskać korzyści z produktywności tych narzędzi bez opuszczania. NET 2.0, a następnie przejść do. Net 2+, Gdy jesteś gotowy. (Visual Studio może pomóc ci uniknąć zespołów innych niż. NET 2.0 podczas kod.)

powód # 3 : metody rozszerzenia, w szczególności Klasa statyczna Enumerable. Technicznie rzecz biorąc, część Linq, ale dobry sposób na pisanie kodu czysto, wyraźnie i w bardziej łatwy do utrzymania sposób.

powód # 4 : poprawki błędów do. NET 2.0 framework. Pamiętaj, że. NET 3.0 i. NET 3.5 nadal używają tego samego środowiska uruchomieniowego. NET 2.0 pod maską - po prostu dodają nowe frameworki/biblioteki i kilka sztuczek kompilatora. Pojawiło się ton poprawek błędów do środowiska uruchomieniowego, które tracisz to.

 14
Author: Bevan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-01 01:01:32

Jednym z powodów, aby nie używać 3.5 jest Mono.

Dzisiejsze mono API jest gdzieś w między. NET 2.0 A. NET 3.5 zobacz nasze Mapa Drogowa, aby uzyskać szczegółowe informacje na temat tego, co jest wdrożone.

Wzięte z tutaj .

Innym powodem jest to, że Winforms w ogóle nie ruszył do przodu, więc możesz poczekać do 4.cokolwiek wyjdzie przed skokiem.

Rozumiem, że niektóre rzeczy, takie jak LINQ, mogą być dobrze używane z. Net 2.0, ponieważ jest to tylko Biblioteka.

 8
Author: Dan Rosenstark,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-01 00:14:06

Przejście z. NET 2.0 do. NET 3.5 nie powinno być nawet brane pod uwagę. Oto kilka powodów.

    [[3]}. NET 3.5 jest w pełni wstecznie kompatybilny z. NET 2.0, ponieważ jest zbudowany na tym samym rdzeniu. 3.0 i 3.5 to jedynie rozszerzenia do 2.0.
  • LINQ - możesz używać Linq nawet bez użycia baz danych. Zmienia wszystko. Sama ta funkcja jest warta tego ruchu.
  • wyrażenia Lambda-potężne możliwości wyszukiwania w kolekcji. Związane z LINQ.
  • Anonymous Metody-tworzone mthods bez ich pełnego zdefiniowania.
  • Typy Anonimowe
  • Windows Workflow Foundation-Tworzenie obiegów pracy.
  • Windows Presentation Foundation-zastępuje starsze formularze Windows - może być nadal używany z istniejącymi WinForms.
  • Silverlight - skalowana wersja WPF dla aplikacji internetowych. Analagous do Flasha.
  • Windows Communication Foundation-zastępuje tradycyjne elementy Remotingu i usług internetowych o wiele bardziej solidnym Infrastruktura
  • do tworzenia stron www - ASP.NET MVC Framework-najlepszy!!!!

Bez. Net 3.5 wiele tracisz. Poważnie. Skacz. Będziesz zadowolony.

 8
Author: Anthony Gatlin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-01 02:39:23

Jeśli nie potrzebujesz LINQ, nie chcesz WPF (lub WCF) i nie lubisz rozszerzonego stosowania generyków, prosta odpowiedź brzmi: nie rób tego!

Jednak po użyciu tylko jednej z powyższych funkcji 3.5 będziesz się zastanawiać, jak kiedykolwiek poradziłeś sobie bez. Prawdziwym powodem przejścia na wersję 3.5 jest skorzystanie z tych funkcji.

Więc jeśli jesteś całkowicie zadowolony z 2.0, i nigdy nie powiedział " Chciałbym po prostu... xyz", sugeruję, żebyś został tam, gdzie jesteś.

 7
Author: Kirk Broadhurst,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-01 00:07:06

C# 3.0 ma kilka naprawdę fajnych funkcji, takich jak automatyczne właściwości i inicjalizatory kolekcji - obie z nich naprawdę czyszczą Twój kod. Linq świetnie sprawdza się również przy kolekcjach, wyrażenia Lambda też są fajne.

. NET 3.5 jest również zawarty w systemie Windows 7.

Pytanie brzmi - Dlaczego nie?

 7
Author: Ben Hall,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-01 00:08:29

Ja bym upgrade tylko dla Lambda!

SaveButton.Click += new EventHandler((sender, e) => this.Save());
 3
Author: ChaosPandion,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-01 00:26:11

Jeśli nie musisz używać żadnej z funkcji 3.5, to nie martw się, jest to tylko dodanie nowych bibliotek Framework, CLR i CLI nie zmieniły się, więc wszystko, co piszesz, czy to przy użyciu bibliotek framework od wersji 2.0, 3.0 lub 3.5 wszystko kończy się jako ten sam kod IL. Wiedząc o tym, jeśli w pewnym momencie w przyszłości zdecydujesz się dodać jakąś funkcjonalność 3.5 do swojej aplikacji, możesz to zrobić ze świadomością, że nie będzie problemów z migracją (ike upgrade z 1.1 do 2.0) ponieważ wszystko, co tak naprawdę robisz, to mówienie Visual Studio, aby "pozwoliło Ci dodać biblioteki DLL 3.0/3.5" do swojego projektu. Oczywiście będziesz musiał upewnić się, że Twoi użytkownicy mają zainstalowany. NET 3.0/3.5.

 2
Author: Jaimal Chohan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-01 00:07:31

Znam różne osoby, które czują się jak w domu z C, 8086 assembly, APL, punchcards i przedni przełącznik (nie żartuję). Podają te same powody co Ty.

Radziłbyś programiście assembly wypróbować C # 2.0? Jeśli tak, być może powinieneś wypróbować C # 3.5 z tych samych powodów. Jeśli nie, ciesz się dalej C# 2.0 i wiedz, że ludzie wkrótce zobaczą cię w ten sam sposób, w jaki widzimy dziś programistów assembly. :-)

C # 3.5 jest znacznie lepszy w budowaniu wyższego poziomu abstrakcje niż C # 2.0, tak jak C # 2.0 jest w tym lepszy od C, A C od assembly. Czy nie po to w ogóle programujemy w HLLs?

 2
Author: Ken,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-01 00:20:13

Wygląda na to, że każda aplikacja musi teraz komunikować się z innymi aplikacjami. Więc

  • WCF

Napisawszy w przeszłości bibliotekę komunikacyjną TCP, byłbym zachwycony, zachwycony, ekstatyczny i poza tym całkiem szczęśliwy, gdybym był w stanie uratować te miesiące, spędzając 1 dzień z WCF.

 2
Author: John Fisher,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-01 00:20:48

Najczęściej używam funkcji:

  • LINQ
  • metody rozszerzenia
  • Właściwości automatyczne

Jeśli nie korzystałeś z LINQ ' a i go wypróbowałeś, myślę, że przekonasz się, że jest to (może być) bardzo potężne narzędzie.

 1
Author: Inisheer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-01 00:07:09

Jak daleko jesteś w tyle? . NET 4 już wkrótce. Przetwarzanie w chmurze (za pośrednictwem platformy Azure lub nawet Live Mesh) to kolejna fala, więc prawdopodobnie będziesz chciał być gotowy na łączność sieciową, znając WCF.

Jeśli nie chcesz uczyć się nowych rzeczy, nadal będziesz mógł tworzyć dobre aplikacje komputerowe z 2.0. Ale częścią bycia deweloperem jest zrozumienie, co będzie dalej. Nawet jeśli nie zdecydujesz się kierować na późniejszą wersję frameworka, powinieneś przynajmniej wydać trochę czas nauczyć się trochę LINQ, WPF i WCF, aby poznać ich moc. Wtedy, gdy potrzebujesz czegoś, co jest dostępne tylko w późniejszej wersji frameworka, będziesz wiedział, dlaczego go używasz, a także powinieneś być w stanie uzasadnić pobranie frameworka swoim klientom.

 1
Author: CoderDennis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-01 00:27:23

Nie przekonam Cię do przejścia na 3.5, jeśli tworzysz aplikacje desktopowe dla odbiorców, dla których upgrade będzie uciążliwy(np. użytkownicy pre-Vista na wolnych łączach). W końcu klient jest na pierwszym miejscu.

Jak wspominało kilka innych, Możesz używać wielu nowych funkcji kompilatora C#, nawet jeśli celujesz w 2.0 (np. inicjalizatory obiektów, właściwości automatyczne), sprawdź to Aby uzyskać szczegóły. Możesz również używać LINQ w wersji 2.0, używając LinqBridge biblioteka, która jest bardzo mała i może być dystrybuowana wraz z aplikacją (jest to Linq do obiektów, a nie Linq do SQL)

 1
Author: DSO,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-01 01:17:01

Jeśli tworzysz lub korzystasz z usług internetowych, powinieneś mieć świadomość, że Microsoft uważa teraz Usługi internetowe ASMX za "przestarzałą technologię". Wszystkie nowe usługi webowe powinny być tworzone przy użyciu WCF-który nie jest dostępny do. NET 3.0, a staje się dość dojrzały i stabilny w.NET 3.5.

 1
Author: John Saunders,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-01 03:00:05

Nie powinno być tak naprawdę "przekonać moich użytkowników/klientów do przejścia z. NET 2.0 na 3.5"

Nie powiedziałeś, czy piszesz kod dla klienta/użytkownika, czy tylko jako hobby. Jeśli chodzi o to drugie, to tak, chodzi o to, żeby cię przekonać.

W Przeciwnym Razie, nie widzę, aby twój klient był naprawdę podekscytowany tym, że możesz używać Linq w swoim kodzie, chyba że pozwoli Ci to zrobić znacznie szybciej i bardziej niezawodnie niż wcześniej.

Oczywiście jeśli jesteś doświadczonym programistą 2.0 najprawdopodobniej jesteś już bardzo wydajny nawet bez lambda, składni zapytań itp. Oczywiście, zapewnią pewne ulepszenia, ale prawdopodobnie nie są wystarczająco duże, aby podniecić klienta.

Teraz, jeśli twój klient przychodzi do Ciebie i mówi, Chcę, aby moja nowa aplikacja desktopowa miała GUI jak jedna z tych stron internetowych z fantazyjnymi animacjami itp, To jest oczywiste. Powinieneś poważnie spojrzeć na przejście do. NET 3.0 / 3.5 Dla Windows Presentation Foundation itd.

Podsumowując, jeśli istnieje realny i namacalny powód, aby korzystać z nowszych technologii, idź na to, w przeciwnym razie często jest kosztowne, aby przyspieszyć z nową platformą / środowiskiem bez bezpośrednich korzyści.

 1
Author: Ash,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-01 04:12:59

Szczerze mówiąc, czytając większość odpowiedzi, powody, które podają, dotyczą głównie ulepszeń językowych. Ale jeśli nie masz takiej potrzeby, to pokusiłbym się o pozostanie przy 2.0 z tego powodu, dla którego piszesz ie. szeroki dostęp i unikaj koszmaru kompatybilności z platformą, który mieliśmy tutaj....

 1
Author: Jonathan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-07 12:50:42

Jeśli często używasz repeatera w Asp.Net podobnie jak kontrolki kontrolka ListView jest o wiele czystsza i łatwiejsza w pracy z alternatywą dostępną dla asp.net 3.5.

Od czasu do czasu używam również modułu routingu z MVC i uważam go za znacznie lepszy dla małych witryn niż coś w rodzaju przepisywania url.

 0
Author: Luke Lowrey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-01 03:06:25

Read this blog http://weblogs.asp.net/scottgu/archive/2007/11/19/visual-studio-2008-and-net-3-5-released.aspx

Stąd będziesz miał lepszy pomysł na. Net 3.5 I VS 2008.

Dlaczego nadchodzi wyższa wersja, że wyższa wersja jest łatwa do rozwoju i ma również wysoką wydajność:)

 0
Author: anishMarokey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-01 05:33:53

W tej chwili używam 3.5 dla mojego głównego projektu i jest tak wiele zalet. LINQ, Entity Framework, WPF (szczególnie dla databinding), LINQ, metody rozszerzeń, właściwości automatyczne, wyrażenia LINQ, oh I Lambda (te są niesamowite)! Czy wspominałem o LINQ?

Mając to na uwadze, nadal używam. NET 2.0 do mniejszych projektów, w których nie ma zbyt wiele kodu ani niczego wymyślnego, takich jak narzędzia do konwersji plików lub jakieś małe narzędzie siedzące w tacce na kilka zadań.

I Zawsze używaj najniższej wersji frameworka, którą mogę, o ile spełnia wszystkie moje wymagania. Więc jeśli to tylko małe narzędzie, mogę przejść z 2.0, Jeśli chcę ładny interfejs, używam 3.0, a jeśli mam dużo rzeczy bazy danych do zrobienia, używam 3.5 SP1 z Entity Framework.

 0
Author: Botz3000,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-01 06:33:13

Z powodu profilu klienta. NET 3.51, który ma rozmiar runtime porównywalny do. Net 2.0!

 0
Author: Daniel Mošmondor,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-07 18:52:36