12/22/2008

Microsoft Windows 7

Информация о Windows 7 - здесь, блог.
Бета версии для тестирования будут доступны в январе 2009 г.

12/15/2008

Кризис - это новые возможности!

В переводе с греческого кризис означает не только «опасность», но и «ВОЗМОЖНОСТЬ»!
У молодых ИТ-компаний есть возможность бесплатно получить все необходимое лицензионное ПО! Для этого надо стать участником Microsoft BizSpark.

BizSparkдоступ к технологиям, в том числе

  • Средства для дизайна, разработки и тестирования (Expression Studio, VS TS c MSDN Premium, Team Foundation Server (TFS Standard edition)

  • Лицензии на промышленное использование для решений типа SaaS (Windows Server, SQL Server, SharePoint Portal Server, Systems Center, BizTalk Server, Live Services; Cloud Services/Azure по мере доступности)

BizSparkподдержка

  • Профессиональная поддержка от Microsoft: 2 инцидента технической поддержки на компанию

  • Доступ к MSDN Premium

  • Поддержка Партнеров по сообществу BizSpark : консультации, инвестиции, хостинг, и пр.

Регистрация в программе бесплатна! Подробнее ...

12/09/2008

Blog-engine на основе ASP.NET MVC

Microsoft Oxite - blog-engine на основе ASP.NET MVC.
Язык разработки - C#. База данных - SQL Server Express.
На Oxite построен MIX Online.

11/17/2008

C# 4.0

В C# 4.0 добавлены новые возможности. Анонимные объекты можно передавать в метод и обращаться к свойствам/методам объекта:


public Form1()

{

var item = new { Id = 1, Value = "v1"};

Write(item);


var data = new { Id = 1, Name = "d1" };

Write(data);

}

public static void Write(dynamic value)

{

System.Diagnostics.Trace.Write(value.Id);

}

Появляется возможность приводить тип обобщенных делегатов:

delegate T Provider<out T>();
...

Provider<int> vp = delegate
{
return 1;
};
Provider<object> op = vp;
vp =(Provider<int>) op;

Добавлены значения параметров по-умолчанию и именованные параметры:

public void Method(int id, string name = "name", int value = 1)
{
}

вызывать можно так:
Method(1);
Method(1, "my name");
Method(1, value: 10);

11/09/2008

Silverlight 2.0: ServiceReferences.ClientConfig

Если в .ClientConfig-файле нет необходимых данных, то попытка обратиться к wcf-сервису из Silverlight 2.0 приводит к ошибке: System.Collections.Generic.KeyNotFoundException was unhandled by user code, Message="The given key was not present in the dictionary."

Пример правильного конфигурационного файла.

[ServiceReferences.ClientConfig]

<configuration>

    <system.serviceModel>

        <bindings>

            <basicHttpBinding>

                <binding
name="WSHttpBinding_IService1">

                    <security
mode="None" />

                </binding>

            </basicHttpBinding>

        </bindings>

        <client>

            <endpoint
address="http://localhost:3646/Service1.svc"
binding="basicHttpBinding"

             bindingConfiguration="WSHttpBinding_IService1"
contract="ServiceReference1.IService1"

             name="WSHttpBinding_IService1" />

        </client>

    </system.serviceModel>

</configuration>

10/29/2008

На PDC08 представлен новый набор контролов для Silverlight 2.0

Silverlight Toolkit - 12 новых контролов, исходники, юнит-тесты, темы, примеры, документация.

Использование JSON в Silverlight 2.0

Äëÿ ñåðèàëèçàöèè îáúåêòîâ â JSON ïðåäíàçíà÷åí DataContractJsonSerializer.
Íàïðèìåð, åñòü ñëåäóþùèé êëàññ:

public class DTO
{
    public Guid Id { get; set; }
    public string Value { get; set; } 

    public override string ToString()
    {
        return string.Concat("{Id='", this.Id, "', Value='", this.Value, "'}");
    }
}

ñîçäàåì ýêçåìïëÿð êëàññà:
var ct = new DTO() { Id = Guid.NewGuid(), Value = "hello" };

ñåðèàëèçîâàòü:
string json = JSON.Serialize(ct); 

ïîëó÷èì:
{"Id":"a90417e2-9689-4d80-8c34-b1faeb14823b","Value":"hello"}

äåñåðèàëèçîâàòü:
DTO dto = JSON.Deserialize<DTO>(json);

--

public static class JSON
{
    public static string Serialize(object value)
    {
        // ñîçäàòü ñåðèàëèçàòîð
        DataContractJsonSerializer js = new DataContractJsonSerializer(value.GetType());

        // ñîçäàòü ñòðèì; è çàïèñàòü â íåãî ðåçóëüòàò ñåðèàëèçàöèè
        MemoryStream ms = new MemoryStream();
        js.WriteObject(ms, value);

        // ïîëó÷èòü ñòðîêó èç ñòðèìà
        // v1:
        ms.Position = 0;
        using (StreamReader reader = new StreamReader(ms))
            return reader.ReadToEnd();

        // v2:
        // byte[] bytes = ms.ToArray();
        // return System.Text.Encoding.UTF8.GetString(bytes, 0, bytes.Length);
    }

    public static T Deserialize<T>(string json)
    {
        // ñîçäàòü ñåðèàëèçàòîð
        DataContractJsonSerializer js = new DataContractJsonSerializer(typeof(T));
        // ñîçäàòü ñòðèì; è çàïèñàòü â íåãî ñòðîêó
        MemoryStream ms = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(json));
        // äåñåðèàëèçîâàòü ...
        return (T)js.ReadObject(ms);
    }
}

 

10/28/2008

Microsoft в ажуре

В ажуре (перен.) в полном порядке ...

27 октября Рэй Оззи, главный программный архитектор Microsoft, представил платформу Windows Azure (azure - по-английски означает "лазурь") - операционная система нового типа.

Windows Azure позволит переместить обычные настольные приложения в интернет, реализовать концепуию - "ПО как услуга"..

Windows Azure позволит IT-отделам компаний сократить расходы на инфраструктуру, переложив обычные задачи на свои датацентры (тысячи серверов Microsoft, которые предоставляют дисковое пространство и вычислительные мощности; нагрузка на cерверах распределяется автоматически, число серверов легко увеличить, а данные на них хранятся сразу в трех экземплярах, чтобы избежать потерь; вся информация пользователей будет синхронизироваться между их сайтами и устройствами).

Вместе с Windows Azure будут предлагаться онлайновые сервисы: Windows Live, Exchange Online, SharePoint Online, Microsoft Dynamics CRM Online, Office Communications Online и Office Live Meeting.

Использование UserControl'ов в Silverlight 2.0

Например, в Silverlight Application определен юзер-контрол SilverlightControl1 в следующих файлах:

[SilverlightControl1.xaml]

<UserControl
x:Class="SilverlightApplication8.SilverlightControl1"

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

    <Grid
x:Name="LayoutRoot"
Background="Red">

        <TextBlock
Text="Hello" />

    </Grid>

</UserControl>


[SilverlightControl1.xaml.cs]

using System.Windows.Controls;

 
 

namespace SilverlightApplication8

{

    public
partial
class
SilverlightControl1 : UserControl

    {

        public SilverlightControl1()

        {

            InitializeComponent();

        }

    }

}


Для использования SilverlightControl1 в Page.xaml надо добавить атрибут ...
Пример Page.xaml c добавленным SilverlightControl1:

<UserControl
x:Class="SilverlightApplication8.Page"

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

    Width="400"
Height="300"
xmlns:MyControl="clr-namespace:SilverlightApplication8">

    <Grid
x:Name="LayoutRoot"
Background="White">

        <MyControl:SilverlightControl1
x:Name="sc1"
Width="100"
Height="100" />

    </Grid>

</UserControl>


Примечание: Visual Studio 2008 все юзер-контролы подчеркивает волнистой линией и в Error List выводится предупреждение. Например, для MyControl:SilverlightControl1 в Error List выводится следующий текст:

Warning 1 The element 'Grid' in namespace 'http://schemas.microsoft.com/winfx/2006/xaml/presentation' has invalid child element 'SilverlightControl1' in namespace 'clr-namespace:SilverlightApplication8'. List of possible elements expected: 'Grid.ShowGridLines, Grid.ColumnDefinitions, Grid.RowDefinitions, Grid.Background, Grid.IsItemsHost, Grid.Style, Grid.OverridesDefaultStyle, Grid.Triggers, Grid.Resources, Grid.DataContext, Grid.Language, Grid.Tag, Grid.InputScope, Grid.LayoutTransform, Grid.Width, Grid.MinWidth, Grid.MaxWidth, Grid.Height, Grid.MinHeight, Grid.MaxHeight, Grid.Margin, Grid.FocusVisualStyle, Grid.Cursor, Grid.ForceCursor, Grid.ToolTip, Grid.ContextMenu, Grid.InputBindings, Grid.CommandBindings, Grid.AllowDrop, Grid.RenderSize, Grid.RenderTransform, Grid.RenderTransformOrigin, Grid.Opacity, Grid.OpacityMask, Grid.BitmapEffect, Grid.BitmapEffectInput, Grid.ClipToBounds, Grid.Clip, Grid.SnapsToDevicePixels, Grid.IsEnabled, Grid.IsHitTestVisible, Grid.Focusable, sgUIElement, sgFrameworkElement, sgShape, Ellipse, Line, Path, Polygon, Polyline, Rectangle, sgPanel, Canvas, DockPanel, Grid, TabPanel, ToolBarOverflowPanel, sgStackPanel, ToolBarPanel, UniformGrid, sgVirtualizingPanel, VirtualizingStackPanel, WrapPanel, sgControl, sgC....


Как избавиться от предупреждения?

8/30/2008

Получить имя файла при drag'n'drop над WebBrowser'ом

Задача: над WebBrowser'ом сбрасывается файл; надо получить имя файла.
Решение: подписаться на событие Navigating ...

public partial class Form1 : Form
{
public Form1()
{
WebBrowser wb = new WebBrowser();
wb.AllowWebBrowserDrop = true;
wb.Dock = DockStyle.Fill;
wb.Parent = this;
wb.Navigating += (s, e) =>
{
if (e.Url.Scheme == "file")
{
e.Cancel = true;
MessageBox.Show(e.Url.OriginalString); // путь к файлу
}
};
}
}

Примечание: если выполнить drag'n'drop для линка Recycle Bin, то в WebBrowser отобразится содержимое Recycle Bin.

8/28/2008

Lutz Roeder продал .NET Reflector

После 8 лет работы Lutz Roeder продал свой знаменитый и очень полезный Reflector for .NET компании Red Gate.

.NET Reflector™ останется бесплатным!

We will continue to maintain a free version for the benefit of the community. [...] Over the next few months we will be exploring ways we can make Reflector even more useful to .NET Developers. We always welcome feedback from the community so, if you have any ideas, please post them on the Reflector forum.
...

Вышел IE beta 2

Вышел Internet Explorer 8 Beta 2. Новшества: InPrivate - приватный режим работы (IE не ведет журнал посещений; не сохраняет временные файлы; позволяет свести к минимуму ту информацию, которую могут собрать владельцы сайтов о посетителе).
Обновления: Activities (позволяет найти информацию, связанную с данными на веб-странице или переслать содержимое страницы в другое приложение); WebSlices (позволяет отслеживать изменения определенного фрагмента страницы).

Для установки IE8 beta 2 требуется снести beta 1; для этого в "Control Panel (Control Panel Home) - Programs - View installed updates" надо выбрать Windows Internet Explorer 8.

Windows Internet Explorer 8 Beta 2 for Windows Vista and Windows Server 2008.

8/23/2008

Умный склеиватель фотографий - Photosynth

Photosynth - позволяет создавать панорамы и 3D композиции из фотографий. Для этого снимки надо загрузить в Photosynth, который проанализирует их и восстановит сцену или объект.
В основе Microsoft Photosynth лежит технологию обработки цифровых изображений и зума Seadragon.
Photosynth уже используется в сочетании с Virtual Earth.

Вышел SP1 для Visual Studio 2008

Пакет обновлений (service pack 1) для Visual Studio 2008 весит больше 800 Mb.

Проблема: после установки возможно, что перестанет работать Intellisense для xaml-файлов.
Решение: в папке C:\Program File или в сети находим файл XamlPresentation2006.xsd; копируем его в папку C:\Program Files\Microsoft Visual Studio 9.0\Xml\Schemas; в Visual Studio 2008 открываем Wpf-проект; открываем любой xaml-файл в проекте; жмем F4; выделяем строку Schemas; жмем на [...]; жмем Add и указываем файл XamlPresentation2006.xsd;

7/30/2008

Каждому по Midori от Microsoft

Microsoft разрабатывает принципиально новую операционную систему Midori, которая сделает программы независимыми от "железа" и будет заточена под работу с удаленными приложениями.
В основе Midori лежит асинхронная архитектура и технология виртуализации Microsoft Hyper-V.
Midori создается на базе операционной системы Singularity, которая была создана с нуля. Главным приоритетом ОС является надежность. Базой для новой системы является микроядро, написанное на языке Sing# (расширение языка C#).
Исходный код Singularity выложены на сайте Microsoft Codeplex.

см. Programming with Midori.
Midori’s applications would be created using .NET languages that will be compiled to native code using the Bartok compiler and runtime system. ...


P.S.
помидори - так произносится слово помидор по-грузински :)

6/26/2008

Требуются гении

Срочно щелкаем по ссылке http://www.hey-genius.com и присоединяемся. Не прогадаете. Будет интересно и есть из чего выбрать:

Mobile Solutions


Ultra-Mobile PC—Bolster the development of extremely portable, lightweight, fully-featured, go-anywhere Microsoft Windows® XP computers.

Windows® Automotive—Help build the next generation of Microsoft technology and tools that deliver a broad range of navigation, communication, information, and in-car entertainment solutions.

Smartphones—Pull out all the stops in mobile phone technology. Smartphones have all the functions of a great mobile phone but with e-mail, Web browsing, instant messaging, music downloads, and more.

Business Productivity


Microsoft Dynamics™—Drive solutions for automating and streamlining financial, customer relationship, and supply chain processes in ways that help our customers thrive.

Groove—Create the next feature set for Microsoft® Office Groove® 2007, our fleet-footed collaboration software that helps teams work together more effectively—anywhere, anytime, with anyone.

Home Entertainment


Microsoft® TV—Improve the functionality of IPTV, which delivers hundreds of channels and features like video-on-demand to TVs via phone lines.

Games


Xbox®—Continue the gaming revolution that is Xbox, our insanely popular and powerful gaming platform that encompasses Xbox and Xbox 360™ systems, our premier Xbox Live® online gaming service, and unique digital entertainment experiences that revolve around gamers.

Microsoft Game Studios—Build on the success of such Microsoft classics as “Age of Empires®,” “Microsoft Flight Simulator®,” and “Halo®” as you bring your passion and expertise to the development of bold new gaming visions.

Speech Recognition


Microsoft® Speech Server—Help create speech-enabled applications that are accessible by standard telephones, cell phones, PDAs, Tablet PCs, smart phones, and desktop PCs.

Supercomputing


Microsoft® Windows® Compute Cluster Server—Expand the functionality of this versatile solution that brings the enormous power of high-performance computing to desktop and workgroup computers using a familiar Windows®-based development environment.

Mapping Systems


Microsoft® Virtual Earth™—Help perfect new releases of our mapping and location service that combines our Microsoft® MapPoint® Web Service with high-demand innovations around bird's eye, satellite, and aerial imagery, map styles, usability, and enhanced local search.

Online Services


MSN®—Help drive demand or create new offerings in MSN, with broad opportunities in MSN® Search, Windows Live™ Spaces, MSN® Music, Windows Live™ Messenger, video, and dozens of other online services and applications.

Microsoft® Office Live Meeting—Build new features for our popular online collaboration and meeting solution to new heights as you help our customers meet with colleagues, customers, and suppliers without leaving their desks.

Microsoft® Live Labs—Apply your insights to the development of Internet-centric applied-research programs, including rapidly prototyping and launching of emerging technologies, incubating entirely new inventions, and improving and accelerating Windows Live™ offerings.

Digital Media


Windows Media® Player—Improve the performance and user experience for our breakthrough digital media solution for consumers.

Server


Microsoft® SQL Server™—Help increase awareness for our comprehensive database platform that provides enterprise-class data management with integrated business intelligence (BI) tools.

Robotics


Microsoft® Robotics Studio—Cultivate customers for our Windows®-based environment that allows academic, hobbyist, and commercial developers to easily create robotic applications for a wide variety of computing platforms.

Development Platforms


Microsoft® .NET Framework—Help the developer community implement many of our widely-adopted common language runtime and class libraries for creating a host of new software applications and Web services.

Microsoft® Visual Studio®—Develop new features for our flagship developer tool platform that simplifies and streamlines the creation of dynamic Windows®, Web, mobile, and Microsoft® Office-based solutions.

P.S.

http://ru.wikipedia.org/wiki/Гениальность

6/13/2008

Использование Silverlight

Вывод графики на веб-страницу можно организовать с помощью Silverlight. Например, надо вывести черный квадрат. Ниже приводится код страницы с встроенной графикой:

<html>
<body>
<script type="'text/xaml'" id="'scene'"><?xml version='1.0'?>
<canvas xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" x="http://schemas.microsoft.com/winfx/2006/xaml">
<rectangle width="50" height="50" stretch="Fill" fill="Black">
</canvas>
</script>
<object type="application/ag-plugin" classid="clsid:DFEAF541-F3E1-4C24-ACAC-99C30715084A"
style="border: 0px; width: 100px; height: 100px;">
<param name="source" value="#scene">
</object>
</body>
</html>

Если установлен Silverlight (версия 2.0 - весит чуть больше 4Mb), то можно код примера сохранить в текстовом файле с расширением .htm и открыть в IE.

Усложним задачу. Добавим текст Hello и при щелчке левой кнопкой мыши будем выводить сообщение. Ниже в примере болдом выделено то, что было добавлено:

<html>
<body>
<script>
function showDlg()
{
alert(1);
}
</script>

<script type='text/xaml' id='scene'><?xml version='1.0'?>
<Canvas xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Rectangle Width="50" Height="50" Stretch="Fill" Fill="Red" />
<TextBlock Text="Hello" MouseLeftButtonDown="showDlg" />
</Canvas>
</script>
<object type="application/ag-plugin" classid="clsid:DFEAF541-F3E1-4C24-ACAC-99C30715084A"
style="border: 0px; width: 100px; height: 100px;">
<param name="source" value="#scene" />
</object>
</body>
</html>

P.S.
Кстати, в Silverlight есть множество контролов, которые поддерживают связывание данных и т.д. А обработчики можно создавать на C# в бесплатной Visual Studio.
Так что же выбрать для реализации интранет сайта: Silverlight или флеш (Adobe Flash)? ;)

6/11/2008

Еще одна площадка для общения

Сайт http://culmination.culminis.com создан при поддержке Microsoft TechNet и Culminis.
Любой, у кого есть Live ID, может управлять рабочими группами / блогами, назначать события; есть теги и т.д. и т.п.
Страницы приходят быстро.

P.S.
Live ID и прикольные почтовый ящики по 5 Gb можно получить в Мыльнице.

6/09/2008

AJAX vs Silverlight

Вообще-то AJAX нельзя сравнивать с Silverlight'ом, потому что AJAX предназначен ТОЛЬКО для обмена данными между браузером и сервером. А Silverlight - это графика, видео, анимация, обмен данными, реализация логики на современном языке программирования C# и многое другое в одном флаконе (бесплатно, весит 4Mb). Silverlight создан в Microsoft в рамках стратегии Web user experience (UX).

Предположим, что есть следующая Задача: надо в браузере отобразить прямоугольник (заливка: вертикальный градиент - зеленый в синий, размер: 800 px на 3000 px) с текстом Hello (цвет: белый); при клике на Hello надо отправить на сервер, например, время клиента. Решение: открыть графический редактор, создать в нем прямоугольник с градиентной заливкой, написать слово Hello; сохранить в файле в одном из форматов (jpeg, gif, png); создать html-страницу, добавить в нее тег img ... и т.д. и т.п; да, еще надо написать на Jscript код, который обработает нажатие (с этим придется повозиться). Минусы: вес у jpg-файла получится больше 40Kb; графику создавалась вручную.

Но так было раньше. А теперь Решение (на Silverlight 2): создается xaml-файл, примерно такой:
<UserControl x:Class="SilverlightApplication2.Page"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="800" Height="3000">
<Canvas>
<Rectangle Stroke="#FF000000" Width="800" Height="3000">
<Rectangle.Fill>
<LinearGradientBrush>
<LinearGradientBrush.GradientStops>
<GradientStop Color="#FF00FF00" Offset="0"/>
<GradientStop Color="#FF0000FF" Offset="1"/>
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>
<TextBlock Text="Hello" FontFamily="Georgia" FontSize="18" Margin="100,10,10,10"/>
</Canvas>
</UserControl>

И все! Никаких графических редакторов не надо. И самое главное, что "Hello" можно заменить программно. Обработчик клика можно писать не на Jscript, а на C# и не надо никакой возни с определением положения текста в рисунке! Анимация тоже делается достаточно просто. После того как xaml-файл создан, он загружается в Silverlight (ActiveX-компонент). Кстати, Silverlight существует для разных браузеров (под Windows, Linux, КПК и смартфонов) и работает везде одинаково.

Существует удобный графический редактор для создания xaml-файлов - это Expression Design, который входит в состав Microsoft Expression Studio. Кстати, многие из тех, кто был на remix.ru получили Expression Studio в подарок, так что не пропустите следующий remix.

P.S.
некоторые называют Silverlight - сервелат :)

6/04/2008

Веб-камера с углом обзора в 360 градусов

Веб-камер RoundTable с углом обзора в 360 градусов предназначена для проведения видеоконференций с участием большого количества людей. Камера автоматически переключается на того участника конференции, который начинает говорить.



Имеется возможность передачи как панорамного, так и портретного изображения. RoundTable была разработана в рамках проекта RingCam.

Microsoft Surface

Видео о настоящем и будущем Microsoft Surface - http://www.microsoft.com/surface/index.html, а также полезные ссылки на блог команды и т.д.

6/02/2008

Проблема веб-интерфейсов.

Ситуация: открываю почтовый ящик через веб-интерфейс, набираю текст, нажимаю кнопку "отправить".

Проблема
: текст письма отсылается, но до сервера текст не доходит, а в ответ приходит пустая страница; первая мысль - текст потерян.

Решение:
1) запускаем Fiddler (http://www.fiddlertool.com/Fiddler2/version.asp, Install Fiddler2)
2) в главном меню выбираем Tools - WinINET Options...
3) в списке подключений выбираем текущее и нажимаем "Настроить", включаем "Использовать прокси-сервер ...", в Адрес пишем 127.0.0.1, в Порт - 8888.

С этого момента Fiddler начнет перехватывать трафик между броузером. Теперь возвращаемся в броузер и нажимаем F5. В результате броузер повторно посылает данные серверу. Открываем Fiddler. Выбираем в правом окне закладку Session Inspector, затем Raw. Забираем текст письма из текстового поля.

5/30/2008

Книги

Набрал себе книг:

Буду читать, а некоторые только пробегу взглядом, вдруг что-то интересное попадется.

5/29/2008

В основе Windows 7 лежит Windows Server 2008

Ведущий специалист по разработке Windows Стивен Синофски (Steven Sinofsky) в интервью, опубликованном на сайте CNET News, сообщил, что Windows 7 будет построена на ядре Windows Server 2008, а не на новом ядре MinWin, как сообщалось ранее.
Ядро Windows Server 2008 является усовершенствованным ядром операционной системы Windows Vista, благодаря чему все приложения, созданные для Vista, должны стабильно работать в Windows 7. ...

Expression Studio 2

Expression Studio 2 включает функционал Silverlight, поддержку PHP и возможность импортировать файлы из программы Adobe Photoshop.


Expression Studio 2 предлагает более ста новых функций, включая набор элементов интерфейса Microsoft Silverlight, позволяющий создавать универсальные кросс-браузерные и межплатформенные веб-приложения. Основные функции нового пакета включают:

Expression Web 2 теперь поддерживает язык программирования PHP, а также позволяет импортировать файлы из программы Adobe Photoshop.

Expression Blend 2 в дополнение к полной поддержке Silverlight, реализованы функции поддержки векторной анимации, а также улучшен пользовательский интерфейс за счет одновременного представления Дизайн/XAML.

Expression Design 2 обладает улучшенными функциями экспорта, включая возможность экспортировать разметку.

Expression Media 2 представляет собой надежное решение для управления ресурсами, предназначенными для профессиональных фотографов и дизайнеров. Поддерживает все последние форматы Microsoft Office 2007 и Microsoft Office для Mac 2008.

Expression Encoder 2 позволяет быстро подготовить видео-материалы для публикации в интернете в любом из форматов Web 2.0 — потоковое видео, интерактивная презентация и многих других.

Все инструменты совместимы со средами разработки Visual Studio® 2005 и Visual Studio 2008.

С полным перечнем возможностей можно ознакомиться здесь: http://www.microsoft.com/expression/products/Overview.aspx.

Заказчики могут приобрести полный пакет решений за 699 (предварительная стоимость, за исключением налогов и других сборов) долларов США у ведущих розничных продавцов (например: Softline и Softkey) начиная с начала июня текущего года. ...

Перспективные ниши для создания стартапов

Самыми перспективными нишами для создания стартапов Стив Балмер считает сервисы для малого бизнеса и здравоохранение. ...

Компилятор PHP для .NET Framework

Алексей Магилевский: есть очень интересный комьюнити-проект, называется Phalanger Project (The PHP Language Compiler for the .NET Framework). Это по сути «PHP.NET». И, возможно, когда-нибудь прямо в Silverlight'e можно будет писать на PHP.
Что такое Silverlight — мы взяли такую серьезную штуку, как .Net Framework, сделали ее микроверсию (в которой, тем не менее, можно полноценно писать на нескольких языках), и запихали все это в крошечный плагин. Благодаря нему можно писать программы, которые работают в браузере клиента. И писать не на каком-то скриптовом языке, который мало что умеет. И программы при этом работают с производительностью в сотни раз больше, чем у того же JavaScript.
Silverlight — несложная технология. ...

Microsoft Surface. Windows 7. Мультитач.

Surface - стол, поверхность которого - это сенсорной экран.

Пример использования: на Surface кладут, например, два телефона. Вокруг телефонов на Surface появляются картинки, названия MP3-файлов. Движением руки картинку можно переместить в сторону другого телефона, это действие запустит операцию копирования файлов.


(url)

В Windows 7 будет поддерживаться больше чем просто два или три одновременных нажатия. Мультитач (одновременный ввод) позволяет по-новому взаимодействовать с компьютерами.
«Офисные работники и домашние пользователи начнут взаимодействовать с ПК на абсолютно другом уровне. Роль голоса и жестов займут в пользовательском интерфейсе видное место» (С) Билл Гейтс.

В ближайшем будущем ожидается рост на рынке сенсорных дисплеев.

5/24/2008

.NET на железках

Железки - это ресурсо-ограниченные устройства, которые используются в домашних системах автоматизации, промышленных датчиках, в автомобилях, в периферийных устройствах, карманных устройствах, розничных дисплеях, медицинских мониторах и т.д. и т.п.

Для программирования железок предназначен .NET Micro Framework, который вырос из Smart Personal Objects Technology (SPOT, см. здесь).

На Embedded World 2008 было объявлено о выпуске .NET Micro Framework 2.5, которая поддерживает стек протокола TCP/IP и позволяет создавать устройства с поддержкой веб-сервисов (Web Services on Devices).

.NET Micro Framework позволяет разработчикам взять полное преимущество языка C# и богатые возможности разработки и отладки, которые предоставляет Visual Studio. Кроме того, SDK предлагает расширяемую эмуляцию аппаратных средств, графическую отладку эмулированных и реальных аппаратных средств, для производства качественных решений быстрее, чем раньше.

.NET Micro Framework SDK не только работает с Visual Studio и предлагает расширяемый эмулятор, но также поддерживается множеством аппаратных платформ, основанных на ядрах процессоров ARM7 и ARM9. Framework также позволяет изготовителям устройств соединять эти платформы фактически с любыми периферийными аппаратными средствами.

Подробнее здесь и здесь.

5/22/2008

SQLClub.ru расстался с Linux, Apache и MySQL

В ночь с 15 на 16 мая 2008 года сайт SQLClub.ru был переведен с операционной системы Linux, веб-сервера Apache и СУБД MySQL на операционную систему Windows, веб-сервер IIS и сервер баз данных SQL Server. Выбор бесплатной версии SQL Server 2005 Express Edition был обусловлен тем, что она идеально подходит для хостинга базы данных форума, прекрасно интегрируется с многочисленными средствами веб-разработки, в частности, PHP, на котором написан и продолжает совершенствоваться форум SQLClub (см., напр., SQL Server 2005 Driver for PHP) и обладает обширными возможностями по наращиванию характеристик и адаптации к возрастающей нагрузке. SQL Server Express совместим снизу вверх со своими более старшими редакциями: Workgroup, Standard и Enterprise. Это означает, что при необходимости миграция на них может быть осуществлена 1:1 без переписывания существующего кода. ...

Примеры работы с Silverlight

The Silverlight QuickStart documentation consists of three categories of topics:

5/20/2008

RoboChamps - чемпионат конструкторов роботов

RoboChamps – это «виртуальный» чемпионат конструкторов роботов, в котором могут участвовать ученые, профессиональные разработчики, а также любители со всего мира.

Цель мероприятия – продемонстрировать платформу Microsoft Robotics Developer Studio, которая открывает широкому кругу разработчиков возможность познакомиться с новыми подходами программирования роботов с использованием .NET.

Основные технологии соревнования – различные приемы робототехники и Microsoft Robotics Developer Studio 2008 (а также базовые технологии CCR/DSS).

Значительная часть средств на проведение соревнований поступит от компаний – рекламодателей, таких как Massive.

Существенно, что в инфраструктуре сайта RoboChamps задействовано немало других технологий от Microsoft — Silverlight 2.0, ASP.NET 3.5, WCF (службы REST и MTOM), Linq, LiveID, Silverlight Streaming (для видеотрансляций материалов), .NET Framework 3.5, VS 2008, Expression Blend, IIS and Expression Encoder. Кроме того, сайт генерирует собственные API-ключи для соревнования и позволяющие разработчикам увязывать их код с сервисами сайта. В результате для каждого из роботов создается робо-карта – привлекательно оформленный «паспорт», который можно внедрять на страницы блогов и других веб-сайтов, например Facebook.

5/18/2008

Не усложняйте себе жизнь.

Такие языки программирования, как C++ и Java, предназначены для проведения профессиональной разработки с участием крупных коллективов опытных программистов, которые стремятся достичь максимального быстродействия создаваемого ими кода. В связи с этим в ходе разработки программ на подобных языках применяются сложные технологии, созданные с учетом специфики их применения. Но вы желаете лишь научиться программировать. Вам не нужны лишние усложнения. Вам нужен язык, который мог бы легко изучить и запомнить начинающий программист, который вынужден во всем разбираться сам. ... - C#.

Научитесь программировать за десять лет

Исследователи (Хейес, Блум) показали, что для приобретения экспертных знаний в любой широкой области человеческой деятельности, включая шахматную игру, сочинение музыки, рисование, игру на фортепьяно, плавание, теннис, а также проведение исследований по нейропсихологии и топологии, требуется приблизительно десять лет.
Причем создается впечатление, что в действительности этот срок невозможно сократить: даже Моцарту, который проявил выдающиеся музыкальные способности в возрасте 4 года, потребовалось еще 13 лет для того, чтобы он начал сочинять музыку мирового класса. Рассмотрим другой музыкальный жанр; неосведомленные люди считают, что Битлз совсем внезапно появились на музыкальной арене, выпустив ряд хитов, занявших первые места, и появившись в шоу Эда Сэлливена в 1964 году. Но они играли в маленьких клубах Ливерпуля и Гамбурга с 1957 года, и смогли издать диск Sgt. Peppers, который стал их первым важным успехом, лишь в 1967 году, а до этого просто пользовались определенной популярностью.
Сэмюэль Джонсон считает, что фактически требуется больше десяти лет: “Превосходства в любой области можно достичь только упорным трудом в течение всей жизни; его нельзя купить по меньшей цене”. И даже Чосер жаловался: “Жизнь так коротка, что не хватает времени на овладение мастерством”. ...

5/08/2008

ReMIX 2008

4/07/2008

Для учащихся ПО бесплатно!

Студенты/школьники могут бесплатно получить: 1) Windows Server 2003 2) Visual Studio 2008 3) Expression Studio 4) SQL Server 2005 5) XNA Game Studio и т.д. Подробнее на сайте Microsoft DreamSpark.

4/06/2008

Баги и пожелания

Все баги и пожелания можно найти/оставить на сайте http://connect.microsoft.com

3/06/2008

Silverlight 2

Silverlight 2 - это улучшенная поддержка сетевых протоколов; четыре десятка дополнительных элементов управления; система масштабирования Deep Zoom.
Silverlight работает в браузерах: Internet Explorer, Firefox и Safari (под управлением Windows и Mac OS Х), а также на платформах: Windows Mobile, Symbian OS - S60 и S40. Смартфоны на базе Symbian выпускают компании Nokia, LG и Samsung.
Silverlight позволяет значительно снизить стоимость разработки и внедрения интерактивных веб-сервисов.

Операционная система на C# - Singularity

Корпорация Microsoft на конференции TechFest в Редмонде (штат Вашингтон) представила операционную систему Singularity.
Бесплатный инструментарий для разработки приложений для программной платформы Singularity и ее исходный код доступны на сайте CodePlex.
Singularity разрабатывалась с чистого листа. При написании кода Singularity используется комбинация языка C# и языка Sing#, производной C#.
Рик Рашид, генеральный директор подразделения Microsoft Research, называет Singularity "концепт-каром", на котором будут обкатываться новые технологии.
Процессы в Singularity выполняются в специальных изолированных "контейнерах" - так называемая технология Software Isolated Processes (SIP).
В перспективе операционная система Singularity будет выпущена в виде независимой платформы, например, для встраиваемых устройств.

3/05/2008

Скоро. Компьютерная революция.

Генеральный директор Microsoft Стив Баллмер на открытии выставки CeBIT 2008 в Ганновере (Германия) сообщил о надвигающейся компьютерной революции.
В ближайшие годы компьютеры и гаджеты уменьшатся, а их вычислительные способности возрастут. Разработчики будут уделять все больше внимания новым интерфейсам ввода данных. Наряду с привычными клавиатурой и мышью будут все чаще использоваться сенсорные экраны и системы голосового ввода.

2/06/2008

Использование Extension Methods для определения event'ов

Например, есть класс TextView, в котором надо реализовать следующий интерфейс:

public interface IEditorService

{

    event EventHandler<KeyEventArgs> KeyDown;

}

 

Для этого в определение класса TextView добавляем IEditorService, ставим курсор на IEditorService, жмем Alt+Shift+F10 и выбираем Explicitly implement interface ‘IEditorService’. В результате получим следующий полуфабрикат:

internal class TextView : IEditorService
{
    event EventHandler<KeyEventArgs> IEditorService.KeyDown

    {

        add { throw new NotImplementedException(); }

        remove { throw new NotImplementedException(); }

    }

}

 

Немного подпиливаем, т.е. доводим до рабочего вида реализацию IEditorService.KeyDown:

 

event EventHandler<KeyEventArgs> IEditorService.KeyDown

{

    add { _KeyDown = (EventHandler<KeyEventArgs>)Delegate.Combine(_KeyDown, value); }

    remove { _KeyDown = (EventHandler<KeyEventArgs>)Delegate.Remove(_KeyDown, value); }

}

private EventHandler<KeyEventArgs> _KeyDown;

 

Так надо было делать раньше, в мрачные времена, еще до появления C# 3.0 и Visual Studio 2008, когда мир не знал про могучие методы расширения (Extension Methods). Теперь все изменилось и IEditorService.KeyDown можно реализовать, например, следующим образом:

 

event EventHandler<KeyEventArgs> IEditorService.KeyDown

{

   add { value.CombineWith(ref  _KeyDown); }

   remove { value.RemoveFrom(ref _KeyDown); }

}

private EventHandler<KeyEventArgs> _KeyDown;

 

Кода меньше, что радует пальцы и мозг J. Хотя больше радуется мозг, потому что пальцам можно помочь с помощью Snippet'ов, поддержка которых есть в Visual Studio.

 

Про снипеты...

В папке «My Documents\Visual Studio 2008\Code Snippets\Visual C#\My Code Snippets» создаем текстовый файл:

 

<?xml version="1.0" encoding="utf-8" ?>

<CodeSnippet Format="1.0.0">

                <Header>

                                <Title>Event Add Remove</Title>

                                <Shortcut>evem</Shortcut>

                                <Description></Description>

                                <SnippetTypes>

                                                <SnippetType>Expansion</SnippetType>

                                </SnippetTypes>

                </Header>

                <Snippet>

                                <Declarations>

                                                <Literal default="true">

                                                                <ID>eh</ID>

                                                                <ToolTip>handler name</ToolTip>

                                                                <Default>_handler</Default>

                                                </Literal>

                                </Declarations>

                                <Code Language="csharp" Format="CData">

                                                <![CDATA[

                                                   add { value.CombineWith(ref $eh$); }

                                                   remove { value.RemoveFrom(ref $eh$); }

                                                ]]>

                                </Code>

                </Snippet>

</CodeSnippet>

 

Сохраняем файл под именем, например, Event.Add.Remove.snippet (где .snippet – это расширение этого файла).

Теперь возвращаемся в редактор кода. Выделяем блоки:

 

        add { throw new NotImplementedException(); }

        remove { throw new NotImplementedException(); }

 

набираем evem (потому что такое значение указано в теге Shortcut, см. выше), жмем Tab два раза (после первого нажатия закроется окно IntelliSense), набираем _KeyDown, жмем Enter. Код создан, руки свободны J.

 

P.S.

Определение методов CombineWith и RemoveFrom:

 

public static class ExtensionMethods

{

   public static void CombineWith<T>(this EventHandler<T> value, ref EventHandler<T> target) where T : EventArgs

   {

       target = (EventHandler<T>) Delegate.Combine(target, value);

   }

   public static void RemoveFrom<T>(this EventHandler<T> value, ref EventHandler<T> target) where T : EventArgs

   {

       target = (EventHandler<T>) Delegate.Remove(target, value);

   }

}