Silverlight 2 - это улучшенная поддержка сетевых протоколов; четыре десятка дополнительных элементов управления; система масштабирования Deep Zoom.
Silverlight работает в браузерах: Internet Explorer, Firefox и Safari (под управлением Windows и Mac OS Х), а также на платформах: Windows Mobile, Symbian OS - S60 и S40. Смартфоны на базе Symbian выпускают компании Nokia, LG и Samsung.
Silverlight позволяет значительно снизить стоимость разработки и внедрения интерактивных веб-сервисов.
3/06/2008
Silverlight 2
Автор: Mindberg на 3/06/2008 05:15:00 AM 0 коммент.
Операционная система на C# - Singularity
Корпорация Microsoft на конференции TechFest в Редмонде (штат Вашингтон) представила операционную систему Singularity.
Бесплатный инструментарий для разработки приложений для программной платформы Singularity и ее исходный код доступны на сайте CodePlex.
Singularity разрабатывалась с чистого листа. При написании кода Singularity используется комбинация языка C# и языка Sing#, производной C#.
Рик Рашид, генеральный директор подразделения Microsoft Research, называет Singularity "концепт-каром", на котором будут обкатываться новые технологии.
Процессы в Singularity выполняются в специальных изолированных "контейнерах" - так называемая технология Software Isolated Processes (SIP).
В перспективе операционная система Singularity будет выпущена в виде независимой платформы, например, для встраиваемых устройств.
Автор: Mindberg на 3/06/2008 05:12:00 AM 0 коммент.
3/05/2008
Скоро. Компьютерная революция.
Генеральный директор Microsoft Стив Баллмер на открытии выставки CeBIT 2008 в Ганновере (Германия) сообщил о надвигающейся компьютерной революции.
В ближайшие годы компьютеры и гаджеты уменьшатся, а их вычислительные способности возрастут. Разработчики будут уделять все больше внимания новым интерфейсам ввода данных. Наряду с привычными клавиатурой и мышью будут все чаще использоваться сенсорные экраны и системы голосового ввода.
Автор: Mindberg на 3/05/2008 03:16:00 AM 0 коммент.
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);
}
}
Автор: Mindberg на 2/06/2008 12:11:00 AM 0 коммент.
2/04/2008
Так с чего же начать изучение программирования?
Нет да нет на глаза попадаются советы начинающим под заголовком вроде: «С чего же начать изучать программирование?». Под словом программирование подразумевается написание кода на языке C#. Авторы советуют изучить С++, прежде чем начать осваивать C#, так как синтаксис C# основан на C++; затем советуют «обязательно освоить WinAPI, MFC» и под конец «желательно изучить COM». По мнению авторов этот нелегкий путь поможет с легкостью изучить C#.
Не слушайте эти вредные советы. Пока вы будете копаться в папирусах, много воды утечет J. Оглянитесь вокруг. В жизни многое подобно. Мало кому приходит в голову, прежде чем сесть за руль своего нового автомобиля с автоматической коробкой передач, тратить время на изучение автомобилей, которые были при царе Горохе, только потому что современные автомобили похожи на своих предков.
Да, и еще ... язык программирования – это язык. А программист – это переводчик, который умеет свои мысли излагать на другом языке, например, на C#. Известно, что лучшие переводчики с английского – это не те, кто изучал в ВУЗе латынь, а те кто вырос в англоязычной среде.
Под конец, поймите одну простую истину: раз уж весь мир из точки A пришел в точку B и собирается идти в точку C, то чтобы со всем миром двигаться в точку C, не обязательно начинать движение из точки A.
Смотрите туда, куда идете.
Быстрее изучайте C# и обязательно LINQ, хотя найдется тот, кто будет советовать изучить SQL, чтобы лучше понять LINQ J
P.S.
Мой путь: GW Basic (кажется так наывался), Pascal, Assembler, Prolog, Lisp, C, C++ (вместе с WinAPI и MFC), Java, JavaScript, SQL, C#. Теперь в работе использую: C#, JavaScript (редко), SQL (все реже, потому что в C# 3.0 есть LINQ); Среда разработки: Visual Studio 2008 (при царе Горохе использовал Borland .... признаюсь, было время, был подвержен истерии под названием «must die», но к счастью это прошло J).
Автор: Mindberg на 2/04/2008 02:42:00 AM 2 коммент.