Microsoft Oxite - blog-engine на основе ASP.NET MVC.
Язык разработки - C#. База данных - SQL Server Express.
На Oxite построен MIX Online.
12/09/2008
Blog-engine на основе ASP.NET MVC
Автор: Mindberg на 12/09/2008 12:08:00 PM 0 коммент.
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);
Автор: Mindberg на 11/17/2008 03:47:00 AM 0 коммент.
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 <security </binding> </basicHttpBinding> </bindings> <client> <endpoint bindingConfiguration="WSHttpBinding_IService1" name="WSHttpBinding_IService1" /> </client> </system.serviceModel> </configuration>
name="WSHttpBinding_IService1">
mode="None" />
address="http://localhost:3646/Service1.svc"
binding="basicHttpBinding"
contract="ServiceReference1.IService1"
Автор: Mindberg на 11/09/2008 01:37:00 PM 0 коммент.
10/29/2008
На PDC08 представлен новый набор контролов для Silverlight 2.0
Silverlight Toolkit - 12 новых контролов, исходники, юнит-тесты, темы, примеры, документация.
Автор: 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 коммент.