Software Consulting & Architecture
Application Design & Development
Home Resume Blog Pictures Contact Articles

Ръководство за C# 3.0 и LINQ

Въведение

За пет години (официално – седем от обяването) съществуване .NET Framework и създаденият специално език C# промениха много начина на разработване на софтуер. Може дори да се каже, че направиха революция като обединиха няколко важни възможности, които до онзи момент съществуваха накуп само в Java, а именно:

·         Силно типизирани данни

·         Улеснено управление на паметта, чрез „събирач на боклук“ (Garbage Collector)

·         Архитектура, базирана на виртуална машина

·         Управление на грешки базирано на обработване на изключения

·         Обширна библиотеки, които покриват голям диапазон от функционалност.

Със втората версия на .NET Framework ( пусната на пазара през декември 2004 ) бяхме свидетели на множество нови допълнения към C#, които позволяват създаването на много по-елегантни ( и по-лесно читаеми) сорсове. Въпреки, че много от вас са запознати с тях нека ги обобщим:

·         Частични класове (partial classes)позволяват разделянето на един клас в няколко файла

·         Generics или параметризирани типове

·         Нова форма на цикли, въвеждаща yield оператора, подобно на езика Python

·         Анонимни методи

·         Модификатори за достъп могат да бъдат задавани независимо към помощните get и set методи на свойствата.

·         Стойностни типове, които могат да приемат стойност null

·         Обединяващ оператор ??, който връща първият от операндите, който не е null и др.

(Вече има достатъчно ресурси по темата, така че няма да продължавам с описанието на C# 2.0)

Нека да продължим към

Visual Studio 2008 и C# 3.0

Предполагам, че много от вас са чували за Visual Studio 2008 (доскоро познато под кодовото име ”Orcas” ) и за LINQ. Това е следващата версия на популярното Visual Studio (версия 9), което ще бъде пуснато на пазара с новата версия 3.0 на C#.  Както може да се очаква с тази версия на C# ще се добави още функционалност,  която още повече ще увеличи производителността на софтуерните инженери. Някои от тези допълнение са:

·         Подобрена инициализация на обектите

C# 2.0

C# 3.0

Movie movie = new Movie();

movie.Name = “Space wars”;

movie.Director = “George Lucas”;

Movie movie = new Movie {Name=” Space wars”, Director = “George Lucas”};

·         Инициализация на колекции подобно на масиви

C# 2.0

C# 3.0

SomeList list = new SomeList();

List.Add(1);

List.Add(2);

SomeList list = new SomeList {1, 2};

·         Подразбиране на типа на променливите

var text = “my text”;

=

String text = “my text”;

·         Имплицитно типизиране на масивите, в зависимост от данните

int[] arr=new int[] { 1, 2, 3 }

=

var arr = new int[] { 1, 2, 3 }

 

·         Ламбда изрази

listOfFoo.Where(delegate(Foo x) { return x.size > 10; })

e еднозначно на

listOfFoo.Where(x => x.size > 10);

 

·         Компилатора превежда ламбда изразите към силно типизирани делегати или към дървета от изрази (expression trees)

·         Анонимни типове

var x = new { Name = "Galcho" }

 

·         Разширения на методи

·         LINQ – Language INtegrated Query или като опит за превод – заявки вградени в езика.

Всяка от тези нови функции ще разгледаме в детайли в отделна секция на това ръководство.

Както виждате Майкрософт работят по интересни възможности, които ще пренесат C# на едно ново ниво. Големият въпрос тук е “Откъде да започнем?“. Този път нека започнем отзад напред. Така ще се разкрие най-голямото предимство на C# 3.0, а именно LINQ, като после ще покажем в детайли останалите нововъведения, които правят LINQ възможно.

Ако в началото не са ви познати езиковите конструкции – не се притеснявайте – ще ги обясним в детайли в следващи секции.

Изисквания за стартиране на примерите

Повечето примери могат да се изпълнят на Visual Studio 2005, но трябва да имате инсталирано допълнението Microsoft.NET LINQ Preview (May 2006) (може да го свалите оттук http://www.microsoft.com/downloads/details.aspx?familyid=1e902c21-340c-4d13-9f04-70eb5e3dceea )

След инсталирането на LINQ Preview (May 2006) ще имате няколко нови шаблона за проекти във Visual Studio.

Препоръчвам да изберете LINQ Console Application или LINQ Windows Forms Application. Конструкциите, които ще бъдат показани може да се поставят в обработчик на събитие на бутон от Windows Forms приложение или в метода Main на класът Program Към датата на писане на този текст най-актуалната версия е Beta 2, която може да бъде свалена като машина във формат VirtualPC (http://www.microsoft.com/downloads/details.aspx?familyid=1ff0b35d-0c4a-40b4-915a-5331e11c39e6&displaylang=en) или като инсталационни файлове (http://www.microsoft.com/downloads/details.aspx?FamilyId=69055927-458B-4129-9047-FCC4FACAE96C&displaylang=en).

Внимание: Visual Studio 2008 Beta 2 не е продукт, който е пуснат в продажба и все още не се поддържа от Майкрософт. Имайки в предвид това, не се препоръчва инсталацията му на машина, която се използва за разработка на комерсиални софтуерни продукти, тъй като тази версия все още не е достатъчно стабилна.

Примерите могат да бъдат сваляни от съответните връзки.

Следваща част: Въведение в LINQ и основни възможности
Galcho.com © 2005-2007 :: Privacy Policy :: Terms Of Use