Visual Studio 2010 a .NET Framework 4.0

Tomáš Jecha, MVP, MCSD       11.12.2008       C#, VB.NET, Visual Studio, Offtopic, .NET       13132 zobrazení

Co skrýva připravované Visual Studio 2010 a .NET Framework 4.0 za novinky?

Pro mnohé z nás bylo ještě relativně nedávno novinkou Visual Studio 2008 a .NET Framework 3.5. Ani jsme se nenadáli a Microsoft uvolňuje další a další informace o připravovaném Visual Studiu 2010 a .NET Framewroku 4.0. Nedočkavci mohou stahovat preview (CTP) z stránek Microsoft Visual Studio 2010.

Připravil jsem pro všechny zvědavce krátký soupis všeho, co mě na první pohled zaujalo. Určitě jsem neobsáhnul všechna důležitá témata, ale věřím, že i tak by mohl článek řadu z vás zajímat.

Novinky ve Visual Studiu 2010

Novinek bude celá řada. Velká část z nich se bude týkat lepší integrace již stávajících technologií přímo do vývojového prostředí (WPF, Silverlight). Určitě nemalou část prostředků Microsoft také investoval do nástrojů pro návrh architektury a týmové spolupráce (jak jinak než pomocí TFS - bohužel je to drahá technologie dostupná jen pro větší týmy).

Úvodní obrazovka Visual Studio 2010 CTP:

Visual Studio 2010 CTP

Architecture Explorer

Architecture Explorer je úžasně vypadající funkce. Není ale všechno zlato co se třpytí. Nedokážu říct na kolik bude užitečná v praxi. Jedná se o analytický nástroj, který dokáže v podobě grafu zobrazit návaznosti v programu mezi třemi druhy objektů a to: třída, namespace a assembly. Architecture Explorer nám ukáže mezi jednotlivými objekty návaznosti a zvýrazní tloušťkou čáry sílu návaznosti (počet spojů).

Po uživatelské stránce má Architecture Explorer skvěle propracované GUI a na první pohled vypadá velmi užitečně. Je to nový přístup k procházení a porozumění kódu.

Architecture Explorer (Namespace) 

Architecture Explorer (Class)

Generování sekvenčního diagramu

Další velmi slibně vyhlížející věc. Můžete si téměř odkudkoliv z kódu nechat vygenerovat klasický sekvenční diagram. Zvlášť užitečné, pokud se rozkoukáváte po kódu nebo chcete něco měnit ale bojíte se sesypání funkčnosti, protože jedna z vnořených procedur dělá drobnost, na kterou zapomínáte nebo o ní vůbec nevíte. Tohle mi ve VS dost chybělo.

Sekvenční diagram 

Architecture Layer Diagram

Název mluví sám za sebe. Jedná se o integrovaného návrháře diagramů architektury aplikace. K čemu je to dobré? Nejen ke kreslení hezky vypadajících barevných okýnek. Ve zkratce: takto navržená architektura definuje, jaké části programu mohou mít návaznosti na jiné. Náš kód je pak možné proti tomuto diagramu validovat a udržet tak zamýšlenou architekturu.

Ve výsledku to může vypadat tak, že při sestavování projektu dostanete chybovou hlášku: Funkce XY z vsrtvy XZ volá funkci AB z vrstvy CD. Zobrazená chyba nám jasně napovídá, že zapsaným kódem se porušil návrh vrstev.

Architecture Layer Diagram 

Týmový vývoj a testy

Visual Studio Team System 2010 a nová verze TFS nabízejí společně lepší kontrolu nad celým projektem. Jako obyčejný vývojář bych asi nejlépe ohodnotil funkci přehledné kontroly změněného kódu před vrácením do repozitáře (vidíte konkrétně změněné funkce, metody atp. + tzv. Test Impact View - unit testy, které změny mohly ovlivnit).

Ohledně testů nové VS slibuje lepší nástroje pro testery (screenshoty, zachytávání videa, informace o systému) a obecně lepší podporu testů a jejich plánování.

Další rozsíření

Microsoft na svém webu také slibuje například rozšířenou podporu intellisense JavaScriptu, vylepšený deployment a další. Tyto funkce jsem zatím nezkoumal.

České Visual Studio

Ačkoliv to mnozí můžou považovat jako zbytečnost, do nového Visual Studia bude možnost nainstalovat Czech Language Pack, který zlokalizuje vývojové prostředí. Já osobně tento krok považuji za správný (k VS se čas od času dostanou lidé, kterým angličtina dělá problémy - testeři, překladatelé a hlavně začínající programátoři). Bohužel se zatím neví jak moc a ani které součásti VS jazykový balíček postihne. O jeho dalším vývoji budu informovat.

Novinky v .NET Framework 4.0

Microsoft .NET Framework logo

 

Optional parametry v C#

Do jazyka C# přichází optional parametry (konečně, Visual Basic je má od nepaměti). Tedy parametry, které mají defaultní hodnotu a nemusí se vyplňovat, pokud nechceme. Například:

public void Metoda(string text, bool prevestNaVelkaPismena = false)

No uznejte, není to příjemnější, než:

public void Metoda(string Text)
{
    Metoda(Text, false);
}

public void Metoda(string Text, bool prevestNaVelkaPismena)
{
    ...
}

A co teprve, když je parametrů třeba 5? Navíc psát ke všem funkcím prakticky stejný komentář není moc populární zábava.

Dynamic variables

Nový .NET Framework slibuje větší dynamičnost. K tomu mu dopomáhá datový typ dynamic. Při kompilaci je typ neznámý a určuje se až za běhu. Můžeme na něm volat procedury, číst vlastnosti a to bez jakéhokoliv omezení. V případě, že zapíšu:

dynamicPromenna.NejakaProceduraCoNeexistuje();

...tak kompilace projde, vše je v pořádku, dokud se tento kód neprovede a nezjistí se absence oné metody "NejakaProceduraCoNeexistuje" a nevyvolá tak vyjímku. Ptáte se proč to tak je? Může tím vzniknout přeci tolik chyb.

Bohužel ne všechno je silně typové (příklad za všechny - JavaScript) a přístup k dynamickým datovým typům je pak nejsnažší řešení. Dotazovat se totiž na hodnoty přes reflexi by bylo hodně zdlouhavé a neefektivní. Nikdo neříká, že tento typ použijete, ale je příjemné ho mít v zásobě.

Parallel Linq

V dnešní době prakticky nemáte šanci koupit počítač s jedním jádrem. To je jasná odpověď na otázku, zda je optimalizace softwaru pro více jader aktuální téma. .NET framework 4 přichází s celou řadou zlepšení pro urychlení operací na počítačích s více jádry / procesory. Jedním z nich je Linq rozšíření označené jako Parallel Linq. To nám dovoluje snadné rozdělení provádění jednoho Linq dotazu mezi více procesorů. Například:

var selection = from i in Enumerable.Range(1, 50000).AsParallel() where DlouhoTrvajiciOperace(i) select i;

Takový dotaz díky extension funkci "AsParallel()" bude zpracovávat více vláken najednou. Tato možnost zatím chyběla.

Nový koncept System.Threading

Namespace System.Threading byl do .NET Frameworku verze 4 značně rozšířen. Máme zde LazyInit pro pozdější inicializaci objektů v konkurenčním prostředí, Tasks pro vytváření paralelních úkolů a další.

Nové zajímavé třídy

Třídy .NET Frameworku verze 4 nabídnou tyto funkce pro usnadnění naší práce:

  • Vykreslování grafů (nemá nic společného s kancelářským balíkem Office)
  • MVC framework pro ASP.NET
  • Workflow model
  • System.Collection.Concurrent obsahuje thread-safe kolekce (navržené kvůli parallel computingu, běžné kolekce nejsou thread-save)
  • Ribbon panel (menu z Office 2007)
  • Parsovač jazyku XAML
  • Zaujal mě také datový typ BigInteger určený pro práci s opravdu velkými čísly (jeho velikost v paměti není stálá)

Závěrem

Účelem článku nebylo detailně probrat jednotlivé funkce, ale jen navnadit a připravit na některé (pode mě podstatné) novinky, kterých se s připravovaným Visual Studiem a .NET Frameworkem dočkáme. Budu rád, když se do diskuze vyjádříte, co si o plánech a nápadech Microsoftu myslíte.

 

hodnocení článku

1 bodů / 1 hlasů       Hodnotit mohou jen registrované uživatelé.

 

Mohlo by vás také zajímat

Jednoduchý scheduler v .NETu

Asi to znáte – máte nějaký složitější systém na zpracování velkého objemu dat a čas od času potřebujete vykovat nějakou automatizovanou údržbu – typicky smazat všechny položky starší než několika dní. Možností, jak toho dosáhnout, je hodně. Snažil jsem se vymyslet něco jednoduchého a efektivního.

Jeden antipattern, který dokáže asynchronní programování pořádně znepříjemnit

Co čeká webové vývojáře na platformě .NET, představení .NET Core 1.0

 

 

Nový příspěvek

 

Diskuse: Visual Studio 2010 a .NET Framework 4.0

Je mozne prekompilovat projekt v VS2010 z .NET4 na starsi verzi? Hledal jsem vsude, navody na netu nepomahaji. VS2010 ultimate. Nasel jsem pouze moznost zalozit novy projekt se starsim .NET, ale nikoliv zmenu rozpracovaneho projektu. Predem diky za odpoved.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Automaticky to nijak nelze. Můžete si ale založit projekt pro .NET například 2.0 a ručně přesunou soubory do této starší verze (obsah souboru definující projekt csproj je čitelný a lze tak překopírovat i celé odkazy na soubory projektu). Pak přidáte reference na knihovny ve starší verzi a zkontrolujete, zda nepoužíváte něco, co ve starší verzi neexistuje.

Ale automatické řešení asi nebude. Není to častá činnost.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

VS 2010 Express. Jak založit projekt se starší verzí .net? Pořád mi tam cpe reference s verzi 4 a nedá si to rozmluvit. Napadá mě framework 4.0 odinstalovat ze systemu, muže se něco pokazit, když verzi 4 v žádne aplikaci nevyužívám?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Diskuse: Visual Studio 2010 a .NET Framework 4.0

Skvělý článek, už jsem chtěl něco podobného napsat také. Z Frameworku 4.0 se nejvíce těším na PFX (Parallel FX Library) což je podpora pro paralelní zpracování úloh (TPL a PLINQ). Bohužel k mému zklamání bude Ribbon UI pouze pro WPF a ve Windows Forms nic nového (snad jen ta komponenta pro vytváření grafů, kterou Microsoft koupil od Dundasů).

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Taky jsem doufal, že se objeví něco nového pro Windows Forms... Je škoda že se Microsoft zaměřuje takhle hodně na WPF a další technologie na úkor Windows Forms.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Navíc komponenta pro grafy byla zamýšlená hlavně kvůli webům... Windows forms nemají konkurenci, proto se podlě mě do nich Microsoft moc nehrne. Naopak ASP.NET má mnoho konkurenčních technologií, i z toho důvodu je stále rozvíjen.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Musím se ještě jednou vrátit k tomuto článku. Již několikrát na tomto webu bylo zmiňováno, že Windows Forms nemají konkurenci. To absolutně není pravda. Windows Forms mají obrovskou konkurenci: MFC, VCL, wxWidgets, GTK+, Swing, Qt a desítky dalších. To Windows Presentation Foundation nemá žádnou konkurenci (nebo snad znáte nějaký GUI Framework založený na hardwarově akcelerované vektorové grafice s možností zobrazení 3D objektů, multimédií a animací?) a přesto Microsoft tlačí nové komponenty právě pro něj. Nechat Windows Forms stranou je od Microsoftu naprosto nelogický krok vedle, tím spíš že Windows Forms je stále nejpoužívanější GUI pro Windows aplikace a navíc WPF není určeno k nahrazení Windows Forms ale pouze jako jeho alternativa.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Myslel jsem trochu jinak. WinForms jsou nejpoužívanější a nemyslím, že by je třeba MFC mělo šanci kdykoliv dohnat. Naopak ASP.NET bojuje o popularitu s nejedním konkurentem. WPF je pak trochu jiný příběh - do toho se cpou peníze, protože Microsoft ví, že tuto technologii musí dotlačit k "dokonalosti" a to ještě nějakou dobu potrvá.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Dobrý den,

Ribbon UI je k dispozici ve verzi .NET Framework 3.5 s možností editace pomocí XML dokumentu nebo nově také pomocí Ribbon designeru. Je možné ho používat pro Office aplikace (doplňky), ale také pro vlastní Windows aplikace. Je k tomu potřeba se zaregistrovat na stránkách Microsoftu a je tam jedna podmínka, že Vámi vytvořené aplikace s použitím Ribbon prvku nesmí přímo konkurovat aplikacím sady Office. Takže hurá do Ribbonu už ve verzi .NET Framework 3.5. Je to super prvek a dobře se s ním pracuje!

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Děkuji za doplnění.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Grafy su uz vonku:

http://weblogs.asp.net/scottgu/archive/2...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Diskuse: Visual Studio 2010 a .NET Framework 4.0

Ten Framework je zkomolený i jak já rychle píšu. Jo a já už mám Betu 1 Studia 2010 Pro, a při instalaci tam bylo logo Microsoft Visual Studio Team System Beta 1 2010 (Maintantetace Mode)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Diskuse: Visual Studio 2010 a .NET Framework 4.0

Odkaz na stažení uvedený v úvodu článku nefunguje.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Měli jen krátkodobý výpadek, nestalo se to poprvé, už to zase funguje.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.

Nyní zakládáte pod článkem nové diskusní vlákno.
Pokud chcete reagovat na jiný příspěvek, klikněte na tlačítko "Odpovědět" u některého diskusního příspěvku.

Nyní odpovídáte na příspěvek pod článkem. Nebo chcete raději založit nové vlákno?

 

  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback