Silverlight Toolkit - 12 новых контролов, исходники, юнит-тесты, темы, примеры, документация.
10/29/2008
На PDC08 представлен новый набор контролов для Silverlight 2.0
Автор: Mindberg на 10/29/2008 03:16:00 PM 0 коммент.
Использование 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);
}
}
Автор: Mindberg на 10/29/2008 05:47:00 AM 0 коммент.
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.
Автор: Mindberg на 10/28/2008 04:19:00 PM 0 коммент.
Использование UserControl'ов в Silverlight 2.0
Например, в Silverlight Application определен юзер-контрол SilverlightControl1 в следующих файлах: [SilverlightControl1.xaml] <UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <Grid <TextBlock </Grid> </UserControl> using System.Windows.Controls; namespace SilverlightApplication8 { public { public SilverlightControl1() { InitializeComponent(); } } } <UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="400" <Grid <MyControl:SilverlightControl1 </Grid> </UserControl> 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....
x:Class="SilverlightApplication8.SilverlightControl1"
x:Name="LayoutRoot"
Background="Red">
Text="Hello" />
[SilverlightControl1.xaml.cs]
partial
class
SilverlightControl1 : UserControl
Для использования SilverlightControl1 в Page.xaml надо добавить атрибут ...
Пример Page.xaml c добавленным SilverlightControl1:
x:Class="SilverlightApplication8.Page"
Height="300"
xmlns:MyControl="clr-namespace:SilverlightApplication8">
x:Name="LayoutRoot"
Background="White">
x:Name="sc1"
Width="100"
Height="100" />
Примечание: Visual Studio 2008 все юзер-контролы подчеркивает волнистой линией и в Error List выводится предупреждение. Например, для MyControl:SilverlightControl1 в Error List выводится следующий текст:
Как избавиться от предупреждения?
Автор: Mindberg на 10/28/2008 01:23:00 PM 0 коммент.