21.02.08
Tags: WPF (.Net 3.0), Программирование / 8:39 pm , Victor Laskin
Scott Guthrie в своем блоге написал о доработках WPF, которые будут реализованы в ближайшем будущем:
Наконец то в WPF будут добавлены контролы для выбора даты и календарь, а также Риббон и DataGrid.
Later this year we are also planning to release a number of new controls for WPF. Included in the list we are working on are DataGrid, Ribbon, and Calendar/DatePicker controls.
Также будут сделана оптимизация BitmapEffects на уровне железа.
Но больше всего меня интересует новый класс WriteableBitmap:
We’ll be including a new WriteableBitmap API that enables real-time bitmap updates from a software surface. We’ll also be adding support for a powerful new effects API that enables you to build richer graphics scenarios.
Пока рано говорить о том, что он может дать.
Direct link
Tags: Программирование / 3:45 pm , Victor Laskin
Микрософт решил раздать свои продукты студентам бесплатно. Инициатива DreamSpark уже доступна в 11 странах, но наша, естественно, в список стран пока не входит. Официальный пост и видео с Биллом можно найти тут
Доступные продукты: Windows Server, Expression Suite, XNA Game Studio, SQL Server и новая Visual Studio.
Остается надеяться, что русским студентам все это тоже вскоре будет доступно.
Direct link
10.02.08
Tags: .Net 2.0, Программирование / 9:33 pm , Victor Laskin
Всякий раз, когда я пользовался Math.Min() или Math.Abs(), я думал о том, а не лучше было бы написать эти операции простым неравенством. Наконец, я решил просто написать небольшой тестик, который должен раз и навсегда расставить все на свои места.
В качестве основы я взял почти пустой цикл:
int N = 100000000;
Start = DateTime.Now;
//Almost nothing!
for (int i = -N; i < N; i++)
result = i;
End = DateTime.Now;
Почти пустой для того чтоб компилятор не сделал каких нить слишком умных действий по его оптимизации. В первую очередь испытанию подверглась функция вычисления модуля числа. Реализовать эту простую операцию можно так:
for (int i = -N; i < N; i++)
{
result = i;
result = Math.Abs(i);
}
или, например, так:
for (int i = -N; i < N; i++)
{
result = i;
result = (i >= 0) ? i : -i;
}
Из времени выполнения этих циклов я вычел время выполнения пустого цикла. Получились интересные результаты:
Read more »
Direct link
08.02.08
Tags: WPF (.Net 3.0), Программирование / 5:16 pm , Victor Laskin
Все таки Xaml - это полезная вещь. Я написал коротенькую функцию, с помощью которой можно задавать содержимое TextBlock’ов с помощью xaml кода. Это нужно, когда содержимое нужно менять походу выполнения программы. Например, написав:
SetInlines(MyCuteTextBlock, "Крутой текст с <Bold>выделениями</Bold>, переносами строк,<LineBreak/><Underline>подчеркиваниями</Underline> и тому подобными стильными вещицами.");
получаем следующий результат:
А добиться такой простой записи позволяет простая функция:
using System.IO;
using System.Windows.Markup;
using System.Xml;
//Create inlines from xaml string
private void SetInlines
(TextBlock tb,
string XamlCode
)
{
string Op =
"<TextBlock xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\" xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\">";
string Ed =
"</TextBlock>";
StringReader stringReader =
new StringReader
(Op + XamlCode + Ed
);
XmlReader xmlReader = XmlReader.
Create(stringReader
);
TextBlock TempTB =
(TextBlock
)XamlReader.
Load(xmlReader
);
//Lets copy inlines
tb.
Inlines.
Clear();
List<Inline> inls =
new List<Inline>
(TempTB.
Inlines);
foreach (Inline nl
in inls
)
tb.
Inlines.
Add(nl
);
}
Здесь используется класс XamlReader, который позволяет парсить XAML динамически, то есть уже на этапе исполнения программы.
Direct link