Консоль Window в седьмой версии подверглась интересным изменениям. До Windows 7 «ядро» консоли содержалось в процессе Csrss.exe (Client/Server Runtime Subsystem), который по соображениям безопасности не мог полностью использовать графическую оболочку. Это вызывало несколько проблем:
- не всегда работал Drag&Drop в консоли,
- темы оформления не применялись к окну консоли.
Давайте вспомним Windows XP:

Видно, что оформление отсутствует как у окна, так и у полос прокрутки.
В Windows Vista заголовки и границы всех окон стали отрисовываться с помощью нового DWM (Desktop Window Manager). Но оформления полос прокрутки нет, т.к. это внутренняя часть окна:

В Windows 7 часть реализации консоли, отвечающая за ввод-вывод, была вынесена в отдельный процесс, Conhost.exe:

Conhost.exe является прослойкой между cmd.exe (или другим приложением командной строки) и CSRSS. Это и позволяет полность применить темы оформления к окну консоли и использовать Drag&Drop:

MinWin – минималистическая операционная система, состоящая лишь из ядра Windows и нескольких компонентов, таких как драйвера устройств, драйвера файловой системы, компоненты стека TCP/IP. В этот набор не входят графическая подсистема, аудио компоненты, оболочка, сервисы и т.д. Разрабатывать (отделать от остальных компонентов системы) начали одновременно с разработкой Висты.
MinWin это:
MinWin, запущенная на виртуальной машине (в консоле видно работающий веб-сервер):

Надо понимать, что MinWin – это не какая-то редакция Windows, это часть Windows 7 (и Windows Server 2008R2), которая по отдельности доступна только разработчикам Microsoft.
Схематически отношения Windows и MinWin можно изобразить следующим образом:

Как видно, чтобы выделить MinWin, пришлось переработать некоторые компоненты (разделить или объединить). Например, библиотека kernel32.dll разделилась на kernel32.dll и kernelbase.dll. А чтобы эти изменения не коснулись программ высших уровней, вызовы всех «удаленных» функций в старых Dll перенаправляются в библитеки от MinWin. Например:
- Kernel32.dll → Kernelbase.dll
- Advapi32.dll → Kernelbase.dll
Чтобы уменьшить количество физических Dll, которые необходимо загружать при старте, многие Dll в MinWin стали содержать в себе наборы функций из разных API, а это усложняло дальнейшую разработку системы. Чтобы избежать такой проблемы, наборы функций из родственных API были объединены в так называемые Виртуальные DLL (Virtual Dll).
Например: api-ms-win-core-errorhandling-l1-1-0.dll, где номера обозначают уровень иерархии в системе, мажорную и минорную версию. Схема отображения виртуальных Dll в физические хранится в Apisetschema.dll.
Все виртуальные Dll существуют физически, но не содержат в себе реализаций функций:
C:\Windows\System32>dir /a api* /B
api-ms-win-core-console-l1-1-0.dll
api-ms-win-core-datetime-l1-1-0.dll
api-ms-win-core-debug-l1-1-0.dll
api-ms-win-core-delayload-l1-1-0.dll
api-ms-win-core-errorhandling-l1-1-0.dll
api-ms-win-core-fibers-l1-1-0.dll
api-ms-win-core-file-l1-1-0.dll
api-ms-win-core-handle-l1-1-0.dll
api-ms-win-core-heap-l1-1-0.dll
api-ms-win-core-interlocked-l1-1-0.dll
api-ms-win-core-io-l1-1-0.dll
api-ms-win-core-libraryloader-l1-1-0.dll
api-ms-win-core-localization-l1-1-0.dll
api-ms-win-core-localregistry-l1-1-0.dll
api-ms-win-core-memory-l1-1-0.dll
api-ms-win-core-misc-l1-1-0.dll
api-ms-win-core-namedpipe-l1-1-0.dll
api-ms-win-core-processenvironment-l1-1-0.dll
api-ms-win-core-processthreads-l1-1-0.dll
api-ms-win-core-profile-l1-1-0.dll
api-ms-win-core-rtlsupport-l1-1-0.dll
api-ms-win-core-string-l1-1-0.dll
api-ms-win-core-synch-l1-1-0.dll
api-ms-win-core-sysinfo-l1-1-0.dll
api-ms-win-core-threadpool-l1-1-0.dll
api-ms-win-core-ums-l1-1-0.dll
api-ms-win-core-util-l1-1-0.dll
api-ms-win-core-xstate-l1-1-0.dll
api-ms-win-security-base-l1-1-0.dll
api-ms-win-security-lsalookup-l1-1-0.dll
api-ms-win-security-sddl-l1-1-0.dll
api-ms-win-service-core-l1-1-0.dll
api-ms-win-service-management-l1-1-0.dll
api-ms-win-service-management-l2-1-0.dll
api-ms-win-service-winsvc-l1-1-0.dll
18 ноября на конференции Microsoft Professional Developer (PDC) был анононсирован выход бета-версии Silverlight 4. Этот релиз предназначен для разработчиков, а значит, что пока еще нет плагина для конечных пользователей или лицензии «go-live».
Silverlight 4 и утилиты для разработки
Чтобы разрабатывать приложения на Silverlight 4 потребуются несколько утилит. Вот ссылки на них:
Это полный список утилит, которые помогут познакомиться с Silverlight 4. Необходимый минимум из них это Visual Studio 2010 и Silverlight Tools.
Полный список нововведений Silverlight 4 Beta
Ещё...
В июле я писал, как включить поддержку Intel VT на ноутбуках Sony Vaio. И вот в конце октября, перед выходом Windows 7, Sony выпустила официальные обновления биоса для своих компьютеров, включающих эту поддержку.
Обновления существуют для следующих серий:
Настольные ПК Vaio
- VGC-JS Series
- VGC-LN series
- VGC-LV Series
- VGC-RT Series
Ноутбуки Vaio
- VGN-AW Series
- VGN-CS Series
- VGN-FW Series
- VGN-NS Series
- VGN-NW Series
- VGN-P Series
- VGN-SR Series
- VGN-TT Series
- VGN-Z Series
Скачать BIOS для своей модели, включающий Intel VT, можно с сайта support.vaio.sony.eu.
Установщик очень удобный, работает в любой версии Windows, не надо загружать никакой DOS с флешек. После обновления в настройках биоса появится пункт Enable Intel Virtualization Technology.
После этого можно наслаждаться виртуализацией, пользуясь XP Mode в Windows 7.

С сегодняшнего дня любой желающий может скачать вторую бета-версию Visual Studio 2010.
Улучшения в Visual Studio 2010 и .NET 4
VS 2010 и .NET 4 несут в себе огромное количество улучшений и дополнений. Изменения затронули разработку в ASP.NET, WPF, WinForms, SharePoint, Silverlight, разработку многопоточных программ и облачное программирование. VS 2010 также содержит тысячи улучшений ядра IDE, редактора кода, поддержки языков, утилиты проектирования и тестирования ПО.
Team Foundation Server 2010 теперь очень прост в установке (требуется всего 20 минут, чтобы установить систему котроля кода, отслеживания ошибок и задач, и систему автоматической сборки), может быть установлен как на сервер в домене, так и на клиентскую машину, неподключенную к домену.
Версии Visual Studio 2010
Линейка VS 2010 была упрошена. Существуют 4 версии:
- Visual Studio Express: Бесплатная среда разработки для Web, VB, C# и C++
- Visual Studio 2010 Professional: Профессиональная среда разработки, которая может использоваться с Team Foundation Server. В пакет также включено 50 часов/месяц использования процессорного времени в Windows Azure.
- Visual Studio 2010 Premium: Версия Premium включает возможности Professional и дополнительные утилиты разработки (расширенный профиллер и дебагер, анализатор кода), дополнительную поддержку баз данных, утилиту тестинования интерфейсов и другое. Прилагается 100 часов/месяц использования процессорного времени в Windows Azure.
- Visual Studio 2010 Ultimate: Версия Ultimate включает Premium плюс расширенные возможности разработки, тестирования и проектирования, включая Intellitrace (исторический отладчик), UML, управление лабораториями тестирования и т.д. Прилагается 250 часов/месяц использования процессорного времени в Windows Azure.
Совместная работа с Visual Studio 2008
VS 2010 и .NET 4.0 могут быть установлены на одной машине с VS 2008 и .NET 3.5. Вы можете установить бета-версию VS 2010 и продолжать разработку в VS 2008.
Go-Live лицензия
.NET 4 и VS 2010 Beta 2 включает лицензию «go-live», которая позволяет использование бета-версии продуктов в коммерческих целях.

При использовании XP Mode в Windows 7 возникает вопрос — а как пользоваться встроенными утилитами Windows XP в среде Windows 7, такими как Explorer, Media Player, командная строка, Internet Explorer?
Теоретически, для включения такой возможности, нужно лишь добавить ярлыки на эти программы в меню Пуска в Windows XP, и после этого они добавятся в меню Windows 7, откуда эти программы можно будет запускать. Но такой способ почему-то не всегда срабатывает.
Я сделал установщик, который добавляет иконки запуска наиболее популярных приложений в меню пуска в Windows XP. А поскольку это Windows Installer, то ярлыки сразу же появятся и в Windows 7.
Установка
- Включите Windows XP Mode
- Установите ProgramsIcons.msi (83 kb) внутри этой гостевой системы
В меню Windows XP добавятся значки запуска:

И автоматически в Windows 7, откуда и можно будет запускать:
В итоге
Windows Media Player 10, Internet Explorer 6, Explorer XP и Cmd в Windows 7:

Информация для студентов ФПМИ.
Ещё...
Сегодня был выпущен финальный релиз бесплатного антивируса — Microsoft Security Essentials.
Системные требования:
- Windows XP (SP 2 или SP 3); Windows Vista (SP 0, SP 1 или SP 2); Windows 7
- Для Windows XP – процессор 500 МГц или выше, 1 Гб ОЗУ или выше
- Для Windows Vista и Windows 7 – процессор 1 ГГц или выше, 1 Гб ОЗУ или выше
- 140 Мб свободного места на диске
Руссой локализации пока, к сожалению, нет.
Дистрибутив антивируса имеет размер менее 5 Мб. Обновления антивирусных баз производится каждый день через Windows Update.
Я с начала лета был бета-тестером этого продукта, установил его на все свои компьютеры. Потери производительности я не заметил, всё работает отлично. Я очень доволен этим антивирусом :)
Windows Virtual PC – новая версия пакета виртуализации, разработанного специально для Windows 7.

Основные отличия от Virtual PC 2007:
- Поддержка USB-устройств – можно использовать принтеры, сканеры, камеры в гостевых ОС
- Поддержка многопоточности – можно запускать несколько виртуальных машин одновременно без потери производительности на многопроцессорных системах
- Перенаправление смарт-карт – можно использовать смарт-карты в гостевых ОС
- Интеграция с Windows Explorer – все виртуальные машины представлены в одной виртуальной папке (%USER%\Virtual Machines)
- Windows XP Mode – пакет для Virtual PC, включающий в себя предустановленную лицензионную копию Windows XP SP3, которую можно использовать в качестве гостевой ОС
- Виртуальные приложения – при использовании XP Mode можно работать с приложениями в гостевой ОС, как будто они запущены на вашем компьютере
Все эти нововведения я продемонстрирую ниже.
Ещё...
В ASP.NET 4, которая сейчас доступна в виде бета-версии, включены ряд изменений, улучшающих основные функции платформы. Опишу несколько из них:
Упрощение файла web.config
С каждой новой версией ASP.NET, начиная с первой и заканчивая версией 3.5, файл web.config, содержащий настройки веб- приложения, неумолимо рос. Происходило это из-за добавления новых расширений, таких как AJAX, роутинг и интеграция с IIS 7. Всё труднее было конфигурировать веб-приложение. Например, web.config этого сайта занимает 13 килобайт.
В .NET Framework 4 основные конфигурационные элементы были перемещены в файл machine.config, а приложения ASP.NET теперь наследуют эти настройки. Это позволяет сделать файл web.config совсем пустым или хранить в нём только несколько строк:
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation targetFramework="4.0" />
</system.web>
</configuration>
Гибкое кэширование
Начиная с ASP.NET 1.0 кеширование вывода позволяло разработчикам хранить сгенерированные страницы и элементы управления в оперативной памяти. При последующих веб-запросах ASP.NET мог выдать ответ быстрее за счет использования ранее сгенерированного содержимого. Однако, было одно ограничение — содержимое кэша всегда хранилось только в оперативной памяти, и на серверах с большой нагрузкой кэш конкурировал с памятью, необходимой для обработки других запросов.
ASP.NET 4 позволяет разработчику создать один или несколько собственных провайдеров кэша. «Output-cache providers» могут использовать любой механизм хранения HTML-содержимого. Это делает возможным создать провайдеры кэша с хранением данных как на локальных жестких дисках, так и на удаленных ресурсах – share, ftp, cloud.
Провайдеры кэша представляют собой классы типа System.Web.Caching.OutputCacheProvider. Разработчик может конфигурировать провайдер кэша в файле web.config, используя секцию providers элемента outputCache. Например:
<caching>
<outputCache defaultProvider="AspNetInternalProvider">
<providers>
<add name="DiskCache"
type="Test.OutputCacheEx.DiskOutputCacheProvider, DiskCacheProvider"/>
</providers>
</outputCache>
</caching>
По-умолчанию в ASP.NET 4 все HTTP-запросы, генерирующие страницы и элементы управления, используют кэш-провайдер оперативной памяти – AspNetInternalProvider. Разработчику лишь требуется изменить параметр defaultProvider элемента outputCache для выбора своего провайдера.
Конечно, можно использовать разные провайдеры кэша для разных элементов и страниц. Проще всего это сделать, дописав в коде страницы новый параметр providerName. Например:
<%@ OutputCache Duration="60" VaryByParam="None" providerName="DiskCache" %>
Кроме кэш-провайдеров в ASP.NET 4 разработчик может выбирать стратегию кэширования веб-приложений. Например, можно кэшировать «Топ 10» страниц сайта в памяти, в то время, как менее популярные страницы будут кэшироваться на диск.
Ещё...