<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
	<title>Хабрахабр / .NET / Захабренные</title>
	<link>http://habrahabr.ru/rss/blog/net/</link>
	<description><![CDATA[Захабренные посты из блога «.NET» на Хабрахабре]]></description>
	<language>ru</language>
	<managingEditor>editor@habrahabr.ru</managingEditor>
	<generator>habrahabr.ru</generator>
	<pubDate>Fri, 10 Feb 2012 23:59:56 GMT</pubDate>
	<lastBuildDate></lastBuildDate>
	<image>
		<link>http://habrahabr.ru/</link>
		<url>http://habrahabr.ru/i/logo.gif</url>
		<title>Хабрахабр</title>
	</image>
	
		
	
	
	
		
	<item>		
		<title><![CDATA[.NET / [Перевод] Реализация Code Action с помощью Roslyn]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/net/137937/</guid>
		<link>http://habrahabr.ru/blogs/net/137937/</link>
		<description><![CDATA[Roslyn Services API позволяют легко реализовывать расширения, которые находят и устраняют проблемы в коде прямо в Visual Studio. Roslyn Services API доступно как часть <a href="http://www.microsoft.com/download/en/details.aspx?id=27746">Roslyn CTP</a>.<br/>
<br/>
В этом посте мы реализуем расширение для Visual Studio, которое детектирует вызовы метода Count() у Enumerable, после чего результат проверяется на равенство больше нуля, например, someSequence.Count() &gt; 0. Проблема, заключающаяся в коде, в том, что Count() должен пройтись по всей последовательности, прежде чем вернуть результат. Более правильным подходом в данном случае является вызов метода Enumerable.Any().<br/>
<br/>
Чтобы исправить это, мы реализуем CodeIssueProvider, детектирующий проблему, и CodeAction, который заменяет условие на вызов Enumerable.Any(), как и требуется. Т.е. наш CodeAction изменит что-то типа someSequence.Count() &gt; 0 на someSequence.Any().<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/net/137937/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Fri, 10 Feb 2012 07:06:19 GMT</pubDate>
		<author>szKarlen</author>
		<category>.net</category><category>roslyn project</category><category>roslyn</category><category>c</category><category>code action</category><category>code</category><category>ide</category><category>visual studio</category><category>ctp</category>
	</item>
	
	
	

		
	<item>		
		<title><![CDATA[.NET / Attached свойства для ограничения текстового ввода]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/net/137822/</guid>
		<link>http://habrahabr.ru/blogs/net/137822/</link>			
		<description><![CDATA[WPF – это уже далеко не новая технология на рынке, но относительно новая для меня. И, как это часто бывает при изучении чего-то нового, появляется желание/необходимость в изобретении велосипедов с квадратными колесами и литыми дисками для решения некоторых типовых задач.<br/>
<br/>
Одной из таких задач является ограничение ввода пользователем определенных данных. Например, мы хотим, чтобы в некоторое текстовое поле можно было вводить только целочисленные значения, а в другое – дату в определенном формате, а в третье – только числа с плавающей запятой. Конечно, окончательная валидация подобных значений все равно будет происходить во вью-моделях, но подобные ограничения на ввод делают пользовательский интерфейс более дружественным.<br/>
<br/>
В Windows Forms эта задача решалась довольно легко, а когда в распоряжении был тот же TextBox от DevExpress со встроенной возможностью ограничения ввода с помощью регулярных выражений, то все было вообще просто. Примеров решения этой же задачи в WPF <a href="http://lurkmore.to/%D0%A1%D1%82%D0%BE%D0%BF%D0%B8%D1%86%D0%BE%D1%82">довольно много</a>, большинство из которых сводится к одному из двух вариантов: использование наследника класса <a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.textbox.aspx">TextBox</a> или добавление <a href="http://msdn.microsoft.com/en-us/library/ms749011.aspx">attached property</a> с нужными ограничениями.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/net/137822/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Wed, 08 Feb 2012 08:30:04 GMT</pubDate>
		<author>SergeyT</author>
		<category>wpf</category><category>attached properties</category>
	</item>
	
	
	
	
	
	

		
	<item>		
		<title><![CDATA[.NET / Быстрое создание и чтение документов MS Office 2007/2010 из 1С: Предприятие 8]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/net/137827/</guid>
		<link>http://habrahabr.ru/blogs/net/137827/</link>			
		<description><![CDATA[ Метод позволяет быстро создавать и читать документы Word, Excel и PowerPoint напрямую<br/>
 из 1С: Предприятие 8 без установленного Microsoft Office 2007/2010. Скорость создания<br/>
 документов в несколько раз выше, чем традиционное создание через COM/OLE. Статья<br/>
 продолжает серию примеров применения на практике <a href="http://www.1centerprise.com/dotnet/"> 1С.Net: Предприятие</a>. В статье используется разработка Open XML SDK. Для работы<br/>
 примера необходимы установленные .Net framework 4.0 и Elisy .Net Bridge 4.0.3 и<br/>
 выше. Пример, сопровождаемый статью, написан для 1С: Предприятие 8.2.13.<br/>
<br/>
<br/>
 <h4> Стандарт Office Open Xml</h4><br/>
<br/>
  Формат Office Open XML (Open Xml) – это формат XML-файлов, помещенных в zip-архив<br/>
 для представления текстовых документов и документов электронных таблиц, диаграмм,<br/>
 презентаций. Компания Microsoft выступила одним из спонсоров сертификации этого<br/>
 стандарта в 2005 году. Результирующий стандарт ISO/IEC 29500:2008 в четырех частях<br/>
 был опубликован в ноябре 2008 года.<br/>
<br/>
<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/net/137827/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Wed, 08 Feb 2012 07:51:52 GMT</pubDate>
		<author>Elisy</author>
		<category>net framework</category><category>.net</category><category>.net 4.0</category><category>1c</category><category>1c:предприятие</category><category>1c 8.2</category><category>openxml</category><category>openxml sdk</category><category>open xml</category>
	</item>
	
	
	
	
	
	

		
	<item>		
		<title><![CDATA[.NET / Вышла Elysium Theme 1.2 (Community Technology Preview 2)]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/net/137709/</guid>
		<link>http://habrahabr.ru/blogs/net/137709/</link>			
		<description><![CDATA[<img src="http://download.codeplex.com/Download?ProjectName=elysium&amp;DownloadId=326585&amp;Build=18394" alt="image"/><br/>
<br/>
Некоторое время назад я <a href="http://habrahabr.ru/blogs/net/128623/">писал</a> о том, что хочу сделать небольшой open-source проект Elysium. О проекте в целом вы можете прочитать в приведённой статье, сейчас же стоит упомянуть только то, что одна из частей проекта — тема в стиле Metro для WPF. Дело в том, что вчера я выпустил версию 1.2 (CTP 2) этой темы и сегодня хочу поведать о том, что в ней такого особенного реализовано.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/net/137709/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Mon, 06 Feb 2012 14:40:52 GMT</pubDate>
		<author>afsherman</author>
		<category>wpf</category><category>theme</category><category>metro</category><category>elysium</category>
	</item>
	
	
	
	
	
	

	
		
	<item>		
		<title><![CDATA[.NET / [Из песочницы] Сравнение объектов в C#.NET]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/net/137680/</guid>
		<link>http://habrahabr.ru/blogs/net/137680/</link>			
		<description><![CDATA[C#.NET предлагает множество способов сравнить объекты, как экземпляры классов, так и структур. Способов так много, что без упорядочения этих способов и понимания их грамотного использования и имплементации (при наличии возможности переопределения), в голове, неминуемо, образуется каша.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/net/137680/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Mon, 06 Feb 2012 13:29:27 GMT</pubDate>
		<author>EngineerSpock</author>
		<category>C</category><category>.NET</category><category>equality</category><category>Сравнение объектов в C</category>
	</item>
	
	
	
	
	

	
		
	<item>		
		<title><![CDATA[.NET / [Из песочницы] Cериализация статических объектов в C#]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/net/137405/</guid>
		<link>http://habrahabr.ru/blogs/net/137405/</link>			
		<description><![CDATA[<b>Контекст</b><br/>
<br/>
С данным вопросом встретился при работе над одним из проектов, в котором очень много настроек. В виду того что добавление новых настроек происходило по ходу разработки то выявилась необходимость сделать класс к которому можно обратится из любого модуля программы. Для этого конечно был использован статический класс, а назвали мы его AppSettings. Конечно можно было бы использовать Properties.Settings… Не буду вдаваться в детали, но этот вариант не подходил.<br/>
<br/>
<b>Суть проблемы</b><br/>
<br/>
Из за того что класс является статическим обычная сериализация не работает. Давайте проверим. Допустим, у нас есть простой статический класс:<br/>
<pre><code class="cs">public static class TestStatic
{
	// Fields...
	private static int _Counter;
	public static int Counter
	{
		get { return _Counter; }
		set
		{
		        _Counter = value;
		}
	}       
}
</code></pre><br/>
<br/>
В общем если класс не был бы статическим, можно было бы использовать System.Xml.Serialization.XmlSerializer. Это не наш случай — класс у нас статический и в этом случае, по тому, что XmlSerializer.Serialize метод требует экземпляр класса, а не тип класса, то компилятор выдаст 'Test1.TestStatic' is a 'type' but is used like a 'variable'.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/net/137405/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Thu, 02 Feb 2012 07:14:34 GMT</pubDate>
		<author>Bl00dra1n</author>
		<category>C</category><category>сериализация</category><category>.net</category>
	</item>
	
	
	
	
	

		
	<item>		
		<title><![CDATA[.NET / 18 фактов о Джоне Ските]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/net/137317/</guid>
		<link>http://habrahabr.ru/blogs/net/137317/</link>			
		<description><![CDATA[При обсуждении той или иной интересной возможности языка C# рано или поздно заходит речь об известных представителей .NET community и одним из первых в этом списке идет Джон Скит (Jon Skeet), гуру stackoverflow.com и автор одной из самых интересных книг по языку C# — <a href="http://sergeyteplyakov.blogspot.com/2011/04/c-in-depth-2nd-edition.html">“C# in Depth”</a>. <br/>
<br/>
Чтобы рассказать о том, кто есть Джон и что он сделал для индустрии, достаточно привести о нем несколько фактов. Многие слышали <a href="http://ru.wikipedia.org/wiki/%D0%A4%D0%B0%D0%BA%D1%82%D1%8B_%D0%BE_%D0%A7%D0%B0%D0%BA%D0%B5_%D0%9D%D0%BE%D1%80%D1%80%D0%B8%D1%81%D0%B5">факты о Чаке Норрисе</a>, такие как «Чак Норрис досчитал до бесконечности. Дважды» или что «Чак Норрис единственный человек, который обыграл стену в теннис». Но далеко не все знают о том, что подобные факты есть и о Джоне Ските (сам факт существования которых уже о многом говорит). <br/>
<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/net/137317/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Mon, 30 Jan 2012 19:51:20 GMT</pubDate>
		<author>SergeyT</author>
		<category>юмор</category><category>Jon Skeet</category><category>fun</category>
	</item>
	
	
	
	
	
	

	
		
	<item>		
		<title><![CDATA[.NET / [Из песочницы] Делаем библиотеку написанную на .Net понятной для Unmanaged кода]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/net/137300/</guid>
		<link>http://habrahabr.ru/blogs/net/137300/</link>			
		<description><![CDATA[Пол года проработав в компании, которая занимается программированием на MQL под Meta Trader столкнулся с таким заказом: клиенту нужно что бы программа была написана на C# или VB.Net. <br/>
<br/>
Задача была в том, что бы написать программу на C# и dll на том же языке, которая связывает приложение с торговым советником на MQL. С одной стороны мне это на руку, так как C# изучаю больше года, с другой — стало непонятно, а как же это делается и вообще возможно ли это?<br/>
<img src="http://dl.dropbox.com/u/19291234/habr/scheme.png" alt="image"/><br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/net/137300/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Mon, 30 Jan 2012 12:41:10 GMT</pubDate>
		<author>belkamax05</author>
		<category>C</category><category>.Net</category><category>Программирование</category>
	</item>
	
	
	
	
	

		
	<item>		
		<title><![CDATA[.NET / Доступна запись вебинара “Будущее ASP.NET и Visual Studio 11 для веб-разработчиков”]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/net/137280/</guid>
		<link>http://habrahabr.ru/blogs/net/137280/</link>			
		<description><![CDATA[<img title="image" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-44-06-metablogapi/5126.image_5F00_662C9C7C.png"/><br/>
<br/>
26 января состоялся <a href="http://blogs.msdn.com/b/vyunev/archive/2012/01/19/asp-net-visual-studio-11.aspx">бесплатный вебинар</a> на тему нововведений веб-платформе Microsoft и среде разработки Visual Studio 11 для веб-разработчиков. Спасибо всем участникам вебинара (вас было более 170 человек), в том числе за интересные вопросы после сессии.<br/>
<br/>
Я рад сообщить, что для загрузки доступно видео вебинара, которое вы можете легко скачать по следующей ссылке “<a href="https://www206.livemeeting.com/cc/wwe_uk/view?cn=guest&amp;id=1032503722&amp;pw=7099F547">Нововведения в Visual Studio 2011 для веб-разработчиков</a>”<b>(ссылка обновлена)</b>. Видео доступно как для онлайн-просмотра, так и для загрузки (~40 Mb, wmv). <br/>
<br/>
Кроме того, вы можете загрузить файл презентации (pptx) по <a href="http://docs.com/HLTT">следующей ссылке</a> с сайта docs.com.<br/>
<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/net/137280/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Mon, 30 Jan 2012 09:49:29 GMT</pubDate>
		<author>XaocCPS</author>
		<category>asp.net</category><category>asp.net mvc</category><category>asp.net webforms</category><category>visual studio</category><category>вебинары</category>
	</item>
	
	
	
	
	
	

		
	<item>		
		<title><![CDATA[.NET / SqlBulkCopy — безбашенная загрузка больших данных или как оседлать дикую лошадь (C#)]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/net/137038/</guid>
		<link>http://habrahabr.ru/blogs/net/137038/</link>			
		<description><![CDATA[<img align="center" src="http://habrastorage.org/storage2/339/b5c/8f6/339b5c8f688fd8b22717275db4f1e237.png"/><br/>
SqlBulkCopy — это эффективное решение для массовой загрузки данных в таблицы Microsoft SQL Server. Источник данных может быть любой, будь то xml-файл, csv-файл или другая СУБД, например MySQL. Достаточно получить из источника данные в виде объекта DataTable или реализовать интерфейс IDataReader поверх методов доступа к данным.<br/>
<br/>
Вам не придется создавать файлы на диске для дальнейшей их загрузки с помощью утилиты <a href="http://msdn.microsoft.com/ru-ru/library/ms162802(v=SQL.90).aspx">BCP</a>, вам не придется писать код для генерации множественных <a href="http://msdn.microsoft.com/ru-ru/library/ms188365.aspx">INSERT</a> запросов. При загрузке данных SqlBulkCopy работает на более низком уровне, позволяя вставлять миллионы записей за максимально короткий срок.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/net/137038/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Thu, 26 Jan 2012 09:21:26 GMT</pubDate>
		<author>JeanLouis</author>
		<category>SqlBulkCopy</category><category>SQL Server</category><category>данные</category><category>никита михалков</category>
	</item>
	
	
	
	
	
	

	
	
	
		
	<item>		
		<title><![CDATA[.NET / [Перевод] Реализация итераторов в C# (часть 2)]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/net/136864/</guid>
		<link>http://habrahabr.ru/blogs/net/136864/</link>
		<description><![CDATA[<a href="http://habrahabr.ru/blogs/net/136828/">Реализация итераторов в C# (часть 1)</a>.<br/>
<br/>
Теперь, когда вы имеете в своём багаже общее представление о том, что стоит за итераторами, вы уже можете ответить на некоторые вопросы их использования. Вот сценарий, основанный на реальных событиях:<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/net/136864/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Mon, 23 Jan 2012 21:27:14 GMT</pubDate>
		<author>kk86</author>
		<category>csharp</category><category>enumerators</category><category>syntax sugar</category><category>yield</category>
	</item>
	
	
	

	
	
	
		
	<item>		
		<title><![CDATA[.NET / [Перевод] Реализация итераторов в C# (часть 1)]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/net/136828/</guid>
		<link>http://habrahabr.ru/blogs/net/136828/</link>
		<description><![CDATA[От переводчика:<br/>
<i>Не так давно мой менее опытный коллега спросил меня о том, для чего используется yield return в C#. Я не очень часто пишу свои итераторы, поэтому, отвечая ему, я сомневался в своих словах. Справившись в MSDN, я укрепился в сказанном, но у меня возник вопрос: “А во что же всё таки компилируется эта инструкция?” К тому моменту, я уже был знаком с переводимой статьёй, однако всё, что в ней сказано, давно “выветрилось”. Статья старая, но мне думается, что она может быть полезна для определённой группы разработчиков, привыкшей читать русскоязычные статьи и документы.</i><br/>
<br/>
Ссылка на продолжение: <a href="http://habrahabr.ru/blogs/net/136864/">реализация итераторов в C# (часть 2)</a><br/>
<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/net/136828/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Mon, 23 Jan 2012 12:48:31 GMT</pubDate>
		<author>kk86</author>
		<category>csharp</category><category>enumerators</category><category>syntax sugar</category><category>yield</category>
	</item>
	
	
	

		
	<item>		
		<title><![CDATA[.NET / Размеры CLR-объектов. Точное определение]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/net/136609/</guid>
		<link>http://habrahabr.ru/blogs/net/136609/</link>			
		<description><![CDATA[Думаю, многим разработчикам на управляемом коде всегда интересовало: сколько же байт занимает экземпляр объекта? А каков лимит размера одного объекта в CLR? Существуют ли различия в выделении памяти между 32-битными и 64-битными системами? Если данные вопросы для Вас не пустой звук, тогда прошу под кат.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/net/136609/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Thu, 19 Jan 2012 17:30:46 GMT</pubDate>
		<author>szKarlen</author>
		<category>clr</category><category>.net</category><category>c</category><category>cts</category><category>память</category><category>x86</category><category>x64</category><category>размер</category>
	</item>
	
	
	
	
	
	

	
		
	<item>		
		<title><![CDATA[.NET / [Из песочницы] Автоматическая проверка орфографии в EXCEL]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/net/136520/</guid>
		<link>http://habrahabr.ru/blogs/net/136520/</link>			
		<description><![CDATA[Доброе время суток Хаброжители.<br/>
<br/>
Буквально на днях, ко мне и моим коллегам обратились «опытные пользователи» Excel. По специфике работы «опытные пользователи» часто используют офисный пакет для оформления документации. Как ни странно, таблицы Excel так же часто встречаются. Как и на Хабре, не допустимо выпускать документы с орфографическими ошибками. Стандартной возможности excel, по подсветке орфографических ошибок нет. В связи с этим я разработал Add-ins для Excel который бы реализовывал такой функционал.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/net/136520/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Wed, 18 Jan 2012 13:20:32 GMT</pubDate>
		<author>nekalex</author>
		<category>Excel</category><category>орфография</category><category>visual studio</category><category>addin</category>
	</item>
	
	
	
	
	

	
	
	
		
	<item>		
		<title><![CDATA[.NET / [Перевод] Учебный курс. Работа с параллелизмом с Entity Framework в приложении ASP.NET MVC]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/net/136328/</guid>
		<link>http://habrahabr.ru/blogs/net/136328/</link>
		<description><![CDATA[Это заключительная часть цикла статей, посвященного разработке с помощью Entity Framework и ASP.NET MVC 3. Первые главы вы можете найти по следующим ссылкам:<br/>
<ul>
<li><a href="http://blogs.msdn.com/b/vyunev/archive/2011/10/04/entity-framework-asp-net-mvc.aspx">Создание модели данных Entity Framework для приложения ASP.NET MVC</a> </li>
<li><a href="http://blogs.msdn.com/b/vyunev/archive/2011/10/05/crud-entity-framework-asp-net-mvc.aspx">Реализация базовой CRUD-функциональности с Entity Framework в приложении ASP.NET MVC</a> </li>
<li><a href="http://blogs.msdn.com/b/vyunev/archive/2011/10/06/entity-framework-asp-net-mvc-part4.aspx">Сортировка, фильтрация и разбиение по страницам с Entity Framework в приложении ASP.NET MVC</a> </li>
<li><a href="http://blogs.msdn.com/b/vyunev/archive/2011/10/07/asp-net-mvc-p6.aspx">Создание сложной модели данных для приложения ASP.NET MVC</a> </li>
<li><a href="http://blogs.msdn.com/b/vyunev/archive/2011/10/07/asp-net-mvc-2.aspx">Создание сложной модели данных для приложения ASP.NET MVC, часть 2</a> </li>
<li><a href="http://blogs.msdn.com/b/vyunev/archive/2011/10/12/entity-framework-asp-net-mvc-part5.aspx">Загрузка данных с Entity Framework в приложении ASP.NET MVC</a> </li>
<li><a href="http://blogs.msdn.com/b/vyunev/archive/2011/10/17/entity-framework-asp-net-mvc-part6.aspx">Обновление связанных данных с помощью Entity Framework в приложении ASP.NET MVC</a> </li>
</ul>В предыдущих уроках вы работали со связанными данными. В этом уроке мы рассмотрим вопросы одновременного доступа. Вы создадите страницы, работающие с сущностью Department, и страницы для редактирования и удаления сущностей Department будут также обрабатывать ошибки параллелизма. Результаты работы изображены на иллюстрациях. <br/>
<br/>
<img title="clip_image001" alt="clip_image001" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-44-06-metablogapi/3288.clip_5F00_image001_5F00_607F169C.png"/><br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/net/136328/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Mon, 16 Jan 2012 09:25:53 GMT</pubDate>
		<author>XaocCPS</author>
		<category>asp.net mvc</category><category>entity framework</category><category>.net</category>
	</item>
	
	
	

	
		
	<item>		
		<title><![CDATA[.NET / [Из песочницы] Минималистичный скриншотер на .NET]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/net/136235/</guid>
		<link>http://habrahabr.ru/blogs/net/136235/</link>			
		<description><![CDATA[<b>Лучше один раз увидеть, чем 100 раз услышать.</b><br/>
Уверен, не я один часто делаю скриншоты.<br/>
Проиллюстрировать баг, отправить смешную картинку знакомому,<br/>
вставить в комментарий на каком-нибудь ресурсе, etc.<br/>
А началось всё с разочарования в некогда любимом Gyazo,<br/>
а именно сам скриншот уже трудно найти под кучей рекламных блоков.<br/>
Когда я пересмотрел аналоги, они мне показались чересчур громоздкими.<br/>
Пройти через несколько окон, чтобы просто сделать скриншот? Нет, спасибо.<br/>
<br/>
И вот, желая облегчить себе жизнь, а заодно ответить на <a href="http://habrahabr.ru/qa/15131/">вопрос</a><br/>
было решено сделать всё самому.<br/>
<br/>
<h5>Суть</h5><br/>
А хочется то предельно простого.<br/>
Один клик — запустить приложение, второй клик — выделить область на экране. <br/>
Всё — после этого видим скриншот уже в браузере (в PNG) и имеем ссылку на него в буфере обмена.<br/>
<br/>
Примерный алгоритм работы видится мне таким:<br/>
<ul>
<li>При запуске программа делает скриншот.</li>
<li>Устанавливает его фоном для окна, развёрнутого на весь экран.</li>
<li>Мышкой выделяем нужную область на экране.</li>
<li>Готово, картинка улетает на сервер.</li>
</ul><br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/net/136235/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Sat, 14 Jan 2012 17:47:36 GMT</pubDate>
		<author>trolostasik</author>
		<category>.net 4.0</category><category>csharp</category><category>screenshot</category><category>скриншот</category>
	</item>
	
	
	
	
	

		
	<item>		
		<title><![CDATA[.NET / Валидация Javascript в VisualStudio с помощью google closure]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/net/134344/</guid>
		<link>http://habrahabr.ru/blogs/net/134344/</link>			
		<description><![CDATA[Увиденный недавно топик, про <a href="http://habrahabr.ru/blogs/vs/134326/">валидацию css в Visual Studio</a> подстегнул к написанию похожей вещи про валидацию Яваскрипта.<br/>
Когда яваскрипт в веб-проекте занимает достаточно большую долю кода, и клиентские скрипты вырастают за рамки «инлайн-скриптов» с одной-двумя строчками вызова jquery-плагинов, вопрос проверки их валидности встает достаточно явно (даже для .net-разработчиков, достаточно далеких от js в принципе :)).<br/>
<br/>
В идеале — хотелось иметь компилятор, который при сборке проекта «компилировал» бы и яваскрипт, с привычным указанием ошибок/предупреждений в окне VS.<br/>
Для подобной компиляции уже написан ряд утилит, и я даже сделал <a href="http://www.arturdr.ru/net/validatsiya-javascript-v-asp-net-mvc-proekte-analiz-sushhestvuyushhih-resheniy/">небольшой обзор</a> существующих решений.<br/>
<br/>
Если кратко, то проверять яваскрипт можно с помощью <a href="http://www.jslint.com/">jslint</a>, <a href="http://www.jshint.com/">jshint</a> и <a href="http://code.google.com/closure/">google closure</a>. Нетрудно догадаться, что у последнего возможности наиболее широкие, и для его интеграции в Visual Studio существует как минимум пара <a href="http://plovr.com/">готовых</a> <a href="https://code.google.com/p/cc2vs/">решений</a>.<br/>
В этой статье я расскажу об еще одной утилите интеграции google closure в Visual Studio, а именно — <a href="http://jsvalidator.codeplex.com">jsvalidator</a>, небольшой open-source проект, который и был мной написан после вышеупомянутого анализа.<br/>
Ключевое отличие моей реализации — в простоте интеграции и возможности конфигурирования отображения определенных типов предупреждений.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/net/134344/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Sat, 14 Jan 2012 09:07:16 GMT</pubDate>
		<author>Shaddix</author>
		<category>.net</category><category>javascript</category><category>google closure</category>
	</item>
	
	
	
	
	
	

	
	
	
		
	<item>		
		<title><![CDATA[.NET / [Перевод] PowerShell 3 – Finally on the DLR!]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/net/136133/</guid>
		<link>http://habrahabr.ru/blogs/net/136133/</link>
		<description><![CDATA[Для тех кто в танке сообщаем: PowerShell 3 будет официально выпущен вместе с Windows 8. CTP появился вместе с релизом Windows 8 Developer Preview (на конференции //Build/ от Microsoft в сентябре 2011). Второй CTP релиз появился аккурат под Рождество.<br/>
В течение нескольких месяцев я имел возможность поиграться с PowerShell 3 и теперь хочу рассказать Вам о своих впечатлениях.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/net/136133/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Fri, 13 Jan 2012 14:04:08 GMT</pubDate>
		<author>HomoLuden</author>
		<category>powershell</category><category>DLR</category><category>release</category><category>announce</category>
	</item>
	
	
	

	
	
	
		
	<item>		
		<title><![CDATA[.NET / [Перевод] Учебный курс. Обновление связанных данных с помощью Entity Framework в приложении ASP.NET MVC]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/net/136155/</guid>
		<link>http://habrahabr.ru/blogs/net/136155/</link>
		<description><![CDATA[Это продложение цикла статей, посвященого разработке с помощью Entity Framework и ASP.NET MVC 3. Первые главы вы можете найти по следующим ссылкам:<br/>
<ul>
<li><a href="http://blogs.msdn.com/b/vyunev/archive/2011/10/04/entity-framework-asp-net-mvc.aspx">Создание модели данных Entity Framework для приложения ASP.NET MVC</a> </li>
<li><a href="http://blogs.msdn.com/b/vyunev/archive/2011/10/05/crud-entity-framework-asp-net-mvc.aspx">Реализация базовой CRUD-функциональности с Entity Framework в приложении ASP.NET MVC</a> </li>
<li><a href="http://blogs.msdn.com/b/vyunev/archive/2011/10/06/entity-framework-asp-net-mvc-part4.aspx">Сортировка, фильтрация и разбиение по страницам с Entity Framework в приложении ASP.NET MVC</a> </li>
<li><a href="http://blogs.msdn.com/b/vyunev/archive/2011/10/07/asp-net-mvc-p6.aspx">Создание сложной модели данных для приложения ASP.NET MVC</a> </li>
<li><a href="http://blogs.msdn.com/b/vyunev/archive/2011/10/07/asp-net-mvc-2.aspx">Создание сложной модели данных для приложения ASP.NET MVC, часть 2</a> </li>
<li><a href="http://blogs.msdn.com/b/vyunev/archive/2011/10/12/entity-framework-asp-net-mvc-part5.aspx">Загрузка данных с Entity Framework в приложении ASP.NET MVC</a> </li>
</ul>В предыдущих уроках мы отображали данные. Теперь вы будете их обновлять. Для большинства связей обновить связанные данные можно с помощью внешних ключей. Для связи многие-ко-многим EF не использует напрямую объединённую таблицу, поэтому вы должны вручную добавить и удалить сущности из соответствующих navigation properties.<br/>
<br/>
Результаты представлены на иллюстрациях.<br/>
<br/>
<img title="clip_image001" alt="clip_image001" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-44-06-metablogapi/0878.clip_5F00_image001_5F00_3946AE7F.png"/><img title="clip_image002" alt="clip_image002" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-44-06-metablogapi/7416.clip_5F00_image002_5F00_5DF7C5F6.png"/><div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/net/136155/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Fri, 13 Jan 2012 10:22:20 GMT</pubDate>
		<author>XaocCPS</author>
		<category>asp.net mvc</category><category>entity framework</category><category>.net</category>
	</item>
	
	
	

		
	<item>		
		<title><![CDATA[.NET / The Art of Unit Testing]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/net/136049/</guid>
		<link>http://habrahabr.ru/blogs/net/136049/</link>			
		<description><![CDATA[<img src="http://habrastorage.org/storage2/4d2/499/4b1/4d24994b17edd524f3ee36500e5b525b.jpg"/><br/>
<br/>
Есть некоторые категории знаний, которые профессиональный разработчик познает в процессе своей работы, не прилагая к этому особенных дополнительных усилий. Вот, например, мало кто из нас читал замечательную <a href="http://www.ozon.ru/context/detail/id/4066500/">книгу по регулярным выражениям</a> Джеффри Фирддла, чтобы познакомиться с одноименной темой. Безусловно, есть масса людей, для которых «регвыры» стали смыслом жизни и без подобных фундаментальных знаний никак не обойтись. Но в большинстве случаев пары мелких статей и справки в соответствующем разделе документации будет достаточно для более или менее комфортной работы с регулярными выражениями (если такое понятие, как «комфортная работа» с регулярными выражениями вообще существуетJ). <br/>
<br/>
Аналогичным образом мы обычно относимся и к изучению юнит тестирования. Ведь юнит-тесты – это же не rocket science; для их изучения не требуется многолетняя подготовка и множество бессонных ночей проведенных за изучением толстенных «талмудов» от гуру юнит-тестирования. Концепцию автоматизированного тестирования кода можно объяснить за 10 минут, а познакомившись с одним из тестовых фреймворков семейства xUnit (еще 15 минут), вы сможете работать с любым другим фреймворком практически сразу же. Затем нужно будет потратить еще 20 минут на изучение какого-нибудь изоляционного фреймворка, типа Rhino Mocks, и, вуаля, у нас есть еще один профессионал в области юнит-тестов. <br/>
<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/net/136049/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Wed, 11 Jan 2012 21:19:46 GMT</pubDate>
		<author>SergeyT</author>
		<category>юнит-тесты</category><category>book review</category><category>.net</category>
	</item>
	
	
	
	
	
	

	

	
	
	
	
	
</channel>
</rss>

