Visual Studio 2010: новий вигляд і можливості

В Microsoft є дуже хороша традиція – випускати чергову версію Visual Studio (VS) одночасно з кожним великим оновленням платформи. Так і VS 2010 очікується нинішньої осені, як раз до релізу Windows 7/Server 2008 R2. А поточна бета досить стабільна для того, щоб з нею познайомитися.


Visual Studio для компанії Microsoft є продуктом "стратегічного призначення". Випустивши більше десяти років тому першу версію по-справжньому інтегрованого середовища розробки, що включає все необхідне для створення додатків за допомогою різних мов програмування (тоді, в 1997 р. підтримувалися VB, VC + +, VJ + + і FoxPro), редмондская корпорація визначила VS не тільки як універсальний інструмент побудови рішень для платформи Windows, але і як потужний маркетинговий засіб. Дійсно, величезна клієнтська база швидко робить масовими буквально всі технології, які потрапляють в Visual Studio. До Наприклад, успіх ASP.NET в значній мірі обумовлений появою в VS, завдяки чому "звичайні" програмісти змогли легко долучитися до веб-розробці. Враховуючи особливу роль, до VS застосовуються і відповідні методи просування: досить демократичні ціни, наявність цілком функціональних безкоштовних редакцій Express і безліч програм, що дозволяють окремим категоріям користувачів отримати професійну середовище розробки безкоштовно або зі значною знижкою. Тому й вихід кожної нової версії Visual Studio – знакова подія для всієї ІТ-індустрії.


VS 2010 в першу чергу позиціонується як "нативна" середовище розробки для очікуваних нинішньої осені Windows 7 і Windows Server 2008 R2. Одночасно планується і вихід. NET Framework 4.0 – своєрідної метаплатформи, розгортання якої буде можливо на всіх актуальних клієнтських і серверних версіях Windows. Також VS 2010 повинна стати середовищем розробки і для Silverlight 3, реліз якої відбувся в першій половині липня – для її підтримки необхідно завантажити та встановити відповідний SDK і розширення для IDE. Ще серед підтримуваних платформ не можна не згадати Microsoft Office 2010, Windows Mobile 6.5, а також "хмарну" Windows Azure Services Platform. А повний список дуже довгий, оскільки традиційні. NET Framework 2.0-3.5, SQL Server 2000-2008, Microsoft Offi-ce 2007, SharePoint 2007, Win32/MFC (на C + +) та інші додатково розширюються численними SDK і спеціальними шаблонами. Таким чином, кожна наступна версія Visual Studio стає все більш функціональною і універсальною, але ж відомо, що стрімке екстенсивний розвиток програмних продуктів нерідко перетворює їх в справжніх "монстрів". Втім, творці VS прийняли ряд запобіжних заходів, зокрема, перекроїли як механізм розширень, так і користувальницький інтерфейс, практично не змінювався з 2002 р.


Інтерфейс і можливості IDE


Хоча і візуально, і функціонально новий інтерфейс максимально нагадує колишній, він сильно відрізняється технологічно – тепер для промальовування робочої області замість Windows Forms використовується WPF. Це не тільки додало зовнішнього лоску, але і дозволило реалізувати безліч удосконалень, спрямованих на підвищення продуктивності роботи, в тому числі і з урахуванням зрослих можливостей продукту. До Наприклад, у вікні вибору типу проекту, а також в інспектора властивостей з'явилися поля, відфільтровує невідповідні елементи у міру введення потрібного назви; редактор тепер дозволяє масштабувати текст колесом прокрутки миші при натиснутій клавіші Ctrl так само, як це робиться в браузері; покращилася підтримка декількох моніторів; при розробці з застосуванням модульних тестів буде корисна нова функція, відображає в реальному часі тести, на результат яких можуть вплинути поточні зміни початкового коду. Був значно перероблений і візуальний редактор WPF / Silverlight – тепер його можливості впритул наблизилися до Expression Blend, що навіть створює підстави виключити останній з набору інструментів, якщо для візуальної розробки на базі XAML застосовується VS 2010.


Тим не менш, як ми вже згадували, інтерфейс здасться зовсім звичним досвідченим користувачам – збережені не тільки місця розташування основних елементів, а й їхні значки (у всякому разі, у поточній беті). Так що в естетичному та функціональному плані новації можна лише вітати. А от з швидкодією не виключені проблеми. Традиційно IDE Visual Studio цілком лояльно ставилася до скромних системних ресурсів – принаймні, для комфортного її використання не був потрібен суперсучасний комп'ютер. Нинішній реліз, ймовірно, стане переломним у цьому відношенні: нова IDE споживає помітно більше процесорних ресурсів і ОЗУ, тому дуже бажаний досить продуктивний ПК, оснащений до того ж сучасної відеокартою. Для професійного розробника це, швидше за все, не буде мати скільки-небудь серйозного значення, а ось типовий студент, що вивчає програмування на своєму нетбуці, може зіткнутися з дратівливої повільністю середовища розробки. Втім, у творців Visual Studio ще є час поліпшити ситуацію до виходу фінальної версії.


Серед найбільш цікавих новинок IDE слід відзначити Architecture Explorer, що дозволяє аналізувати складний програмний код в графічній формі. Відображаються класи та їх члени, взаємозв'язку між ними, існують режими графічного подання інформації з різним ступенем деталізації, від кожного елемента можна безпосередньо перейти до вихідного коду. Особливу цінність Architecture Explorer представляє при вивченні сторонніх програм та колективної роботи над об'ємними проектами. Покращилася також підтримка мови UML, тепер VS спочатку дозволяє створювати п'ять типів діаграм: класів, прецедентів, послідовностей, діяльності та компонентів. Крім того, розробники обіцяють, що незабаром після виходу релізу VS 2010 стануть доступні всі типи UML-діаграм – у вигляді самостійних доповнень або в пакеті оновлень.


Окремої уваги заслуговує вдосконалений відладчик, який і раніше був предметом гордості Visual Studio. Тепер він доповнений функцією, що отримала назву "історична налагодження" (Historical Debugging), здатної викликати справжню заздрість у користувачів інших IDE. Традиційно для точного виявлення джерела помилки застосовуються точки зупину і покрокове виконання коду до тих пір, поки не виникне виняток. Програмісти зі стажем не з чуток знайомі з цим втомливим заняттям – нерідко покрокова прокрутка і перевірка поточного значення змінних займає набагато більше часу, ніж власне написання коду. Функція історичної налагодження дозволить радикально спростити даний процес – при її активації всі дії програми, аж до виклику методів і обробки подій, відстежуються і зберігаються. Таким чином, у багатьох випадках для пошуку помилки взагалі немає необхідності використовувати точки зупину, досить перервати роботу програми з допомогою отладчика і в спеціальному вікні переглянути історію виконання (За винятком значень локальних змінних, збереження яких не передбачено з міркувань продуктивності). Потім стан програми можна покроково перегортувати вперед-назад ("минуле" позначається спеціальним значком – стрілкою з годинником) або відразу переходити до будь-якої потрібної точки. Оскільки активація цієї функції для збереження всієї історії роботи програми може викликати значну додаткову навантаження на систему, передбачені можливість обмеження максимального обсягу протоколів і гнучка настройка відслідковуються методів і подій.


Нова мова F #



Microsoft не часто балує користувачів Visual Studio новими мовами програмування, що входять в стандартний комплект поставки: трійка C # / VB / C + + залишалася незмінною з 2002 р. І хоча розширити середовище розробки можна безліччю різних мов, встановивши їх в якості додатків, навіть від самої Microsoft (наприклад, IronPython або IronRuby), все ж таки це більше доля ентузіастів, а основна маса розробників задовольняється тим що є. Тому поява F # у складі VS 2010 дуже знаменно, і важливий тут не стільки сам факт, скільки те, що ця мова представляє зовсім іншу парадигму – функціональне програмування, аж до теперішнього часу не особливо популярне в лавах середньостатистичних програмістів.


Найцікавіше, що вперше функціональний мова максимально адаптований до використання в. NET Framework, відповідно, він не заперечує і імперативного підходу. З тієї ж причини F # не особливо почитаємо пуристів функціонального програмування, хоча це нітрохи не применшує його достоїнств як повноцінного функціонального мови, що дозволяє скористатися перевагами багатообіцяючою парадигми.


Протягом тривалого часу F # існував в якості дослідницького проекту, основне завдання якого – збагатити імперативна мова C # можливостями, традиційно доступними лише функціональним мовам. Безліччю нововведень C # 3.0 з VS 2008 завдячує саме йому. Сам по собі F # не створений з чистого аркуша в Microsoft, в його основу покладено досить популярний (якщо так взагалі можна говорити про функціональні мовами) OCaml, який, у свою чергу, йде корінням до одного з перших типізованих функціональних мов ML. Незважаючи на те що синтаксично F # і OCaml досить близькі, вони не еквівалентні: грубо кажучи, перший являє собою підмножина другого, доповнене доступом до коштів. NET Framework. Однак деякі програми на OCaml можуть бути практично без модифікацій скомпільовані F #, зворотне також справедливо, зрозуміло, за відсутності звернень до класів. NET Framework.


У цілому, поява F # в складі Visual Studio свідчить про те, що розробники з Microsoft покладають великі надії на функціональне програмування, що особливо актуально в епоху багатоядерних процесорів і непомірно зрослої складності внутрішньої структури вихідного коду великих проектів. Звичайно, F # не позиціонується як заміна традиційним універсальним імперативним мовам, зокрема C #, і їх розвиток у напрямку асиміляції найбільш вдалих ідей декларативного програмування не припиниться. Швидше за все, F #, як і багато інших функціональних мови, займе своє місце серед інших, спеціалізуючись на вирішенні певного класу задач так само, як, наприклад, SQL зайняв нішу інструментів для маніпулювання реляційними даними. Можна припустити, що в найближчому майбутньому володіння хоча б одним функціональним мовою з'явиться в числі професійних вимог до типового програмісту, подібно до того як сьогодні необхідно знання того ж SQL.


.NET Framework 4.0



У четвертій версії. NET Framework з'явилося безліч нововведень, що відображають найбільш сучасні течії в програмуванні та розвитку апаратної бази. У першу чергу це стосується підтримки набирають популярність динамічних мов, реалізованої за допомогою розширення середовища виконання CLR (Common Language Runtime) спеціальним набором сервісів, що одержали назву DLR (Dynamic Language Runtime). У той час як DLR перш за все цікаве розробникам динамічних мов, створюють або портіруют їх у. NET Framework (слід зазначити, що офіційно в Microsoft їх два – IronRuby і IronPython, що розвиваються у вигляді відкритих проектів на CodePlex.com), існуючі мови з суворою типізацією також отримали його підтримку. Наприклад, в C # з'явився новий тип dynamic, змінні якого не проходять перевірку типу під час компіляції, що може бути корисно при взаємодії з динамічними та скриптовими мовами.


Наступне важливе нововведення. NET 4, що відображає дух часу – поява цілої платформи для підтримки паралельних обчислень, що іменується PCP (Parallel Computing Platform). Безумовно, створювати "паралельні" програми можна було і в попередніх версіях. NET Framework, PCP же відрізняється підходом до їх побудови, покликаним максимально полегшити життя розробникам. Не секрет, що саме складність розпаралелювання завдань і недостатня пристосованість поширених мов програмування до управління потоками коду, що виконуються паралельно, є основними стримуючими факторами, які перешкоджають ефективному використанню сучасним ПО можливостей багатоядерних мікропроцесорів. Тому PCP – довготривала ініціатива Microsoft, яка полягає в реалізації окремих компонентів, і цілком заслуговує особливого розгляду. Якщо говорити коротко про найбільш цікаві можливості PCP, то слід виділити Task Parallel Library (TPL) і Parallel LINQ (PLINQ). TPL являє собою набір класів і API для автоматичного розпаралелювання задач. Зокрема, TPL пропонує варіанти реалізації циклів, що передбачають паралельне виконання ітерацій (якщо їх результати не залежать один від одного) при автоматичному масштабуванні за кількістю ядер процесора. На практиці (якщо мова йде про цикли) використання TPL зводиться до того, що там, де можливо, розробник замінює звичайні конструкції циклами з застосуванням TPL і отримує суттєвий виграш в продуктивності без будь-яких додаткових дій на зразок самостійного створення пулу потоків і т. п. Відповідно, PLINQ – це еволюція декларативного мови для роботи з даними LINQ, доступного для C # / VB (ko-online.com.ua/36977). Від звичайного LINQ він відрізняється також можливістю автоматичного розпаралелювання запиту, якщо порядок даних, що повертаються або виконуваних операцій не важливий – досить просто вказати в запиті, що його можна виконувати паралельно, все інше візьме на себе PLINQ.


Безлічі удосконалень піддалася і базова бібліотека класів BCL. У супутній документації тільки заголовків розділів, присвячених новим функціям, близько двох десятків. Не будемо перераховувати їх повністю, відзначимо лише деякі, на наш погляд, найбільш цікаві. Підтримка довгої арифметики тепер стає стандартною функцією. NET Framework: з'явився клас BigInteger, а окремі мови (F # в їх числі) придбали вбудовану підтримку відповідної структури. Робота з ізольованим сховищем даних (Isolated Storage) для додатків з обмеженим доступом до файлової системи (відноситься в першу чергу до WPF-програмам, що виконуються в браузері, – XBAP, а також поширюваним за технологією ClickOnce) тепер повністю уніфікована з таким для Silverlight-додатків. Покращені інструменти введення-виведення: запити до файлової системи тепер повертають колекції замість масивів, що збільшує швидкість роботи в тому випадку, коли не потрібно завантажувати весь список; статичний тип File тепер містить нові методи, що дозволяють ефективно читати і записувати текстові файли за допомогою LINQ, не створюючи додаткових структур даних; з'явилася підтримка стандартних для ОС Windows відображуваних в пам'ять (memory mapped) файлів, що раніше було можливо тільки за допомогою сторонніх бібліотек; покращилися алгоритми компресії з простору імен System.IO.Compression, а також усунутий існуючий раніше ліміт в 4 ГБ на максимальний розмір стисливого потоку даних. Крім того, розширено механізми моніторингу продуктивності і використовуваних ресурсів, удосконалено технології управління і синхронізації потоків.


Висновок


Навіть по настільки короткому огляду нескладно зрозуміти, що розробники Visual Studio 2010 не сиділи склавши руки. Звичайно, в ньому охоплені далеко не всі цікаві нововведення, і не тільки з міркувань розумного обсягу статті, а й у силу того, що список змін бета-версії ще не остаточно зафіксований, а багато хто з них навіть не задокументовані. Зокрема, за кадром залишилися нововведення, що стосуються поліпшеної колективної розробки у версії Team System – однієї з ключових областей, якої при створенні VS 2010 приділялася особлива увага. Теми розробки для Windows Mobile ми також не стосувалися, адже відповідний SDK поки навіть не включений до складу VS 2010.


Одним словом, темпи розвитку Visual Studio можна поставити в приклад іншим компаніям, що спеціалізуються в цій же області. А окремої похвали, безумовно, заслуговує саме тісна взаємодія Microsoft з клієнтами і партнерами, в першу чергу через співтовариство MSDN.com, яке, за словами Соми Сомасегара (Soma Somasegar), керівника підрозділу засобів розробки Microsoft, залучає понад 20 млн унікальних відвідувачів щомісячно і забезпечує кваліфіковані відповіді на більшість поставлених на форумах питань. Таким ось чином і формується екосистема з лояльних розробників і постачальників рішень, багато років є одним з найважливіших факторів успіху платформ Microsoft.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*