.NET

индекс
121,07

Attached свойства для ограничения текстового ввода

WPF – это уже далеко не новая технология на рынке, но относительно новая для меня. И, как это часто бывает при изучении чего-то нового, появляется желание/необходимость в изобретении велосипедов с квадратными колесами и литыми дисками для решения некоторых типовых задач.

Одной из таких задач является ограничение ввода пользователем определенных данных. Например, мы хотим, чтобы в некоторое текстовое поле можно было вводить только целочисленные значения, а в другое – дату в определенном формате, а в третье – только числа с плавающей запятой. Конечно, окончательная валидация подобных значений все равно будет происходить во вью-моделях, но подобные ограничения на ввод делают пользовательский интерфейс более дружественным.

В Windows Forms эта задача решалась довольно легко, а когда в распоряжении был тот же TextBox от DevExpress со встроенной возможностью ограничения ввода с помощью регулярных выражений, то все было вообще просто. Примеров решения этой же задачи в WPF довольно много, большинство из которых сводится к одному из двух вариантов: использование наследника класса TextBox или добавление attached property с нужными ограничениями.
8 февраля 2012, 12:30
26

Быстрое создание и чтение документов MS Office 2007/2010 из 1С: Предприятие 8

Метод позволяет быстро создавать и читать документы Word, Excel и PowerPoint напрямую
из 1С: Предприятие 8 без установленного Microsoft Office 2007/2010. Скорость создания
документов в несколько раз выше, чем традиционное создание через COM/OLE. Статья
продолжает серию примеров применения на практике 1С.Net: Предприятие. В статье используется разработка Open XML SDK. Для работы
примера необходимы установленные .Net framework 4.0 и Elisy .Net Bridge 4.0.3 и
выше. Пример, сопровождаемый статью, написан для 1С: Предприятие 8.2.13.


Стандарт Office Open Xml



Формат Office Open XML (Open Xml) – это формат XML-файлов, помещенных в zip-архив
для представления текстовых документов и документов электронных таблиц, диаграмм,
презентаций. Компания Microsoft выступила одним из спонсоров сертификации этого
стандарта в 2005 году. Результирующий стандарт ISO/IEC 29500:2008 в четырех частях
был опубликован в ноябре 2008 года.


8 февраля 2012, 11:51
19

Вышла Elysium Theme 1.2 (Community Technology Preview 2)

image

Некоторое время назад я писал о том, что хочу сделать небольшой open-source проект Elysium. О проекте в целом вы можете прочитать в приведённой статье, сейчас же стоит упомянуть только то, что одна из частей проекта — тема в стиле Metro для WPF. Дело в том, что вчера я выпустил версию 1.2 (CTP 2) этой темы и сегодня хочу поведать о том, что в ней такого особенного реализовано.
+27
6 февраля 2012, 18:40
74

Сравнение объектов в C#.NET из песочницы

C#.NET предлагает множество способов сравнить объекты, как экземпляры классов, так и структур. Способов так много, что без упорядочения этих способов и понимания их грамотного использования и имплементации (при наличии возможности переопределения), в голове, неминуемо, образуется каша.
+29
6 февраля 2012, 17:29
117

Cериализация статических объектов в C# из песочницы

Контекст

С данным вопросом встретился при работе над одним из проектов, в котором очень много настроек. В виду того что добавление новых настроек происходило по ходу разработки то выявилась необходимость сделать класс к которому можно обратится из любого модуля программы. Для этого конечно был использован статический класс, а назвали мы его AppSettings. Конечно можно было бы использовать Properties.Settings… Не буду вдаваться в детали, но этот вариант не подходил.

Суть проблемы

Из за того что класс является статическим обычная сериализация не работает. Давайте проверим. Допустим, у нас есть простой статический класс:
public static class TestStatic
{
	// Fields...
	private static int _Counter;
	public static int Counter
	{
		get { return _Counter; }
		set
		{
		        _Counter = value;
		}
	}       
}


В общем если класс не был бы статическим, можно было бы использовать System.Xml.Serialization.XmlSerializer. Это не наш случай — класс у нас статический и в этом случае, по тому, что XmlSerializer.Serialize метод требует экземпляр класса, а не тип класса, то компилятор выдаст 'Test1.TestStatic' is a 'type' but is used like a 'variable'.
+4
2 февраля 2012, 11:14
21

18 фактов о Джоне Ските

При обсуждении той или иной интересной возможности языка C# рано или поздно заходит речь об известных представителей .NET community и одним из первых в этом списке идет Джон Скит (Jon Skeet), гуру stackoverflow.com и автор одной из самых интересных книг по языку C# — “C# in Depth”.

Чтобы рассказать о том, кто есть Джон и что он сделал для индустрии, достаточно привести о нем несколько фактов. Многие слышали факты о Чаке Норрисе, такие как «Чак Норрис досчитал до бесконечности. Дважды» или что «Чак Норрис единственный человек, который обыграл стену в теннис». Но далеко не все знают о том, что подобные факты есть и о Джоне Ските (сам факт существования которых уже о многом говорит).

+17
30 января 2012, 23:51
16

Делаем библиотеку написанную на .Net понятной для Unmanaged кода из песочницы

Пол года проработав в компании, которая занимается программированием на MQL под Meta Trader столкнулся с таким заказом: клиенту нужно что бы программа была написана на C# или VB.Net.

Задача была в том, что бы написать программу на C# и dll на том же языке, которая связывает приложение с торговым советником на MQL. С одной стороны мне это на руку, так как C# изучаю больше года, с другой — стало непонятно, а как же это делается и вообще возможно ли это?
image
+11
30 января 2012, 16:41
93

Доступна запись вебинара “Будущее ASP.NET и Visual Studio 11 для веб-разработчиков”

image

26 января состоялся бесплатный вебинар на тему нововведений веб-платформе Microsoft и среде разработки Visual Studio 11 для веб-разработчиков. Спасибо всем участникам вебинара (вас было более 170 человек), в том числе за интересные вопросы после сессии.

Я рад сообщить, что для загрузки доступно видео вебинара, которое вы можете легко скачать по следующей ссылке “Нововведения в Visual Studio 2011 для веб-разработчиков(ссылка обновлена). Видео доступно как для онлайн-просмотра, так и для загрузки (~40 Mb, wmv).

Кроме того, вы можете загрузить файл презентации (pptx) по следующей ссылке с сайта docs.com.

+11
30 января 2012, 13:49
49

SqlBulkCopy — безбашенная загрузка больших данных или как оседлать дикую лошадь (C#)


SqlBulkCopy — это эффективное решение для массовой загрузки данных в таблицы Microsoft SQL Server. Источник данных может быть любой, будь то xml-файл, csv-файл или другая СУБД, например MySQL. Достаточно получить из источника данные в виде объекта DataTable или реализовать интерфейс IDataReader поверх методов доступа к данным.

Вам не придется создавать файлы на диске для дальнейшей их загрузки с помощью утилиты BCP, вам не придется писать код для генерации множественных INSERT запросов. При загрузке данных SqlBulkCopy работает на более низком уровне, позволяя вставлять миллионы записей за максимально короткий срок.
+24
26 января 2012, 13:21
148

Реализация итераторов в C# (часть 2)

Реализация итераторов в C# (часть 1).

Теперь, когда вы имеете в своём багаже общее представление о том, что стоит за итераторами, вы уже можете ответить на некоторые вопросы их использования. Вот сценарий, основанный на реальных событиях:
+12
24 января 2012, 01:27
46