Обновить
100.38

.NET *

Хаб со знаниями про .NET

Сначала показывать
Порог рейтинга
Уровень сложности

Отладка исходного кода .Net Framework в MS VS 2008 и не только

Время на прочтение7 мин
Количество просмотров7.8K
Перевод нескольких статей, в т.ч. Shawn Burke (thanks!), ScottGu(thanks!), Paul Krill (thanks!) и John Robbins (First great thanks! Second great thanks!)

Конечный результат, к которому мы здесь стремимся — возможность отладчиком любой IDE войти «внутрь» вызова .Net Framework методов. Я надеюсь, этот пост содержит все, что вам понадобится. Последние несколько недель мы провели много экспериментов и собрали очень много данных по этому вопросу. И мы хотим поделиться полученным опытом с сообществом.

Читать дальше →

Цена вызовов

Время на прочтение16 мин
Количество просмотров3.6K
Бытует мнение, что накладные расходы на вызов методов и организацию процесса выполнения не должны превышать 15% времени выполнения приложения, иначе стоит серьезно задуматься над вопросом рефакторинга приложения и оптимизации его логики. Вооружившись такими мыслями я наткнулся на метод QuickSort из стандартного класса ArraySortHelper<T> использующийся для сортировки массивов в .Net.

Интересным моментом здесь является сравнение элементов — для обеспечения гибкости его вынеслив отдельный класс реализующий интерфейс IComparer<T>. Вооружившись разнообразными мыслями и студией было решено оценить сколько же такая гибкость стоит и что с этим можно было бы сделать — под катом анализ затрат на сравнение элементов во временя работы QuickSort.

Читать дальше →

GPS компонент

Время на прочтение1 мин
Количество просмотров1K
image Еще одно пополнение на CodePlex — новый компонент для работы с GPS.
GPS.NET прежде всего является коммерческим .NET компонентом, разрабатываемый GeoFrameworks LLC c 2004 года. В 2009 Джон Пирсон решил выложить полный исходный код GPS.NET для публичного использования. Текущая версия продукта 3.0, которая вышла незадолго до публикации на CodePlex. Данный фреймворк предлагает интуитивный GPS функционал в реальном времени, который максимально эффективно работает на любом компьютере, мобильном устройстве и NMEA-совместимыми GPS устройствами.
Узнать возможности компонента

ADO.NET Data Services — что нас ждет в будущем

Время на прочтение4 мин
Количество просмотров1.6K
Примерно чуть больше года назад мы с вами увидели новую тогда платформу для построения сервисов – ADO.NET Data Services. Ее появление ознаменовало начало широкого использования REST-подхода большим количеством разработчиков. Тогда эта платформа представлялась как удобный инструмент для получения доступа к данным через протокол HTTP.

За прошедшее время можно уже понять, что этот инструмент является действительно удачным – огромное число разработчиков начали немедленно использовать его в своих проектах. Причина этому вполне логична – использование ADO.NET Data Services позволяет сократить расходы на реализацию наиболее типичных сценариев при работе с сервисами. Это не означает что SOAP-сервисы и WCF ушли в прошлое, однако, в сценариях обращения к данным предпочтение стали отдавать ADO.NET Data Services.
Читать дальше →

Девелопим для себя

Время на прочтение2 мин
Количество просмотров2.5K
Привет всем! Хочу поделится с аудиторией Хабра утилитой, которую написал мой друг Евгений Доманов и я.
Программка помогает не гадит на рабочий стол и в то же время иметь все ярлыки под рукой.

Читать дальше

Программируем для Windows 7. Индикатор прогресса на панели задач

Время на прочтение4 мин
Количество просмотров6.3K
Официальный выход Windows 7 не за горами, поэтому изучение новых возможностей операционной системы для программистов на C# становится актуальной. Новые веяния и правила для программистов появились уже при выходе Windows Vista с появлением UAC. Но Vista не получила широкого распространения у пользователей, поэтому программисты не очень активно изучали новое. С выходом Windows 7 ситуация может измениться в лучшую сторону. Я решил создать на своем сайте отдельный раздел, посвященный именно программированию под Window 7.
Читать дальше →

P/Invoke и 64-битная разработка

Время на прочтение4 мин
Количество просмотров2.6K
Недавно в моем WPF-приложении снова возникла потребность в ClearType постпроцессинге, т.е. добавлении ClearType-образных свойств графике которая изначально рендерится «обычным» способом. Снова был выбран unmanaged код (Intel C++ stack, OpenMP), но в этот раз взаимодействовать захотелось в 64-битной среде. Вот рассказ о том, насколько это было «весело».

Читать дальше →

Использование P/Invoke: прячем кнопку Пуск и панель задач в Windows

Время на прочтение5 мин
Количество просмотров8.2K
На Хабре уже было несколько статей, рассказывающих об использовании механизма P/Invoke в проектах на C#. В основном, в статьях был сильный уклон в сторону теории и приводились небольшие показательные примеры.
Я же хочу показать более наглядный пример, показывающий возможности неуправляемого кода — мы будем прятать кнопку Пуск и панель задач.
Читать дальше →

Менеджер пакетов для .NET

Время на прочтение3 мин
Количество просмотров2.5K
Менеджеры пакетов в том или ином их проявлении есть практически везде: Gems и Rip для Ruby, Maven для Java и море разливенное для различных дистрибутивов Linux и Unix. И только .NET-разработчики по старинке ползают по сайтам в поисках той или иной версии необходимой библиотеки.

Будучи одним из таких разработчиков и устав от постоянных поисков требуемых компонентов, я решил, что с этим пора заканчивать. Результатом такого решения стал таки менеджер компонентов для платформы .NET
Продолжение

Возвращаясь к конструкции foreach с Duck Typing для LINQ

Время на прочтение6 мин
Количество просмотров2.9K
Обещаю, что в этот раз будет короткая статья (относительно). Все вы знаете языковую конструкцию foreach в C#, не так ли? Но подумайте дважды прежде чем сказать как именно работает следующий код:
  1. foreach (int x in src)
  2. {
  3.   // Do something with x.
  4. }
* This source code was highlighted with Source Code Highlighter.

Уже знаете ответ? Позвольте мне разочаровать вас: если у вас только один ответ, то вы ошибаетесь. Нет единственного ответа на поставленный вопрос, поскольку вы должны знать больше о типе переменной src чтобы принять окончательное решение насчет того, как вышеприведенный код работает…
Читать дальше →

ADO.NET Data Services v.1.5 CTP2

Время на прочтение2 мин
Количество просмотров1.2K
Закончилось лето 2009, на календаре 1 сентября. Для кого-то это праздник знаний, а для кого-то новые выпуски. Так команда Astoria выпустила очередную CTP продукта ADO.NET Data Services 1.5. По сравнению с предыдущим выпуском CTP2 является плодом действительно большой работы, проделанной над проектом и мы можем уже сейчас наблюдать за тем, что ADO.NET Data Services становится еще более мощной платформой. В целом видно, что развитие Astoria направлено на еще более тесную интеграцию с Silverlight и .NET Framework 3.5 SP1.
Читать дальше →

Ближайшие события

Нужен ли еще один веб-ресурс для .Net комьюнити?

Время на прочтение2 мин
Количество просмотров793
Совершенно очевидно, что в рунете не хватает ресурса в стиле CodeBetter, то есть мощного тематического блога который покрывал бы тематику разработки в стеке Microsoft. Приходят на ум только блоги на Хабре и блоги GotDotNet. На данный момент, GotDotNet практически мертв, в то время как на Хабре появилась бурная активность – по крайней мере кол-во оценок на статью почти доходит до 100, что весьма неплохо. Google Analytics показывает что кол-во посещений блогов GDN (я считаю только свои посты) упало с примерно 400 в день в июле до 100-300 сейчас. При этом отношение PR: интересное на GotDotNet продолжает расти.

Стоит ли делать еще один сайт с подточенным CMS?

За
  • Уже есть опыт создания независимого офлайн-комьюнити, так почему же не сделать и онлайн?
  • На данный момент на Хабре и GDN ужасно работает поиск. И страницы вроде бы плохо индексируются.
  • Нет четкого разграничения по технологиям и методологиям. Хочется иметь список кнопок на которые можно нажать и получить отфильтрованный контент. Например:
    Технологии:<br/>
      <br/>

  • Нужна возможность реально оценивать статьи по содержанию, так, как это делается на CodeProject
  • Хочется чтобы был печатный вариант, чтобы можно было скомпоновать сборник. Примерно как Habradigest. (Кстате, мне нравиться Habradigest, в основном из-за того что люблю PDFы с нормальной версткой.)
  • Нужна поощрительная система. CodeProject например дает призы в виде книг и платных компонентов тем, кто пишет популярные статьи. Популярные – это не всегда хорошие, конечно.
  • Нужно вовлекать в диалог не только разработчиков, но и бизнес.

Против
  • Можно улучшать те ресурсы что уже есть. На данный момент, единственным таким ресурсом я вижу Хабр. Если кто не согласен – подскажите, что есть еще.
  • Непонятно пойдет ли аудитория на какой-то другой сайт. Возможно и пойдет, если сайт будет кардинально лучше чем уже имеющиеся. Но это потребует очень много усилий от создателей.
  • Возможно количество разработчиков, заинтересованных в стеке Microsoft действительно очень мало? Ведь не для кого не секрет что на рынке перевешивает Java, а большинство позиций в .Net на данный момент ложатся на Asp.Net (MVC) разработку. Будут ли востребованы статьи по BizTalk, например, когда даже у крупных аутсорсеров не получается выигрывать контракты на разработку под эту платформу?
  • И может все-таки не стоит делать Microsoft-centric ресурс? Ведь полно и других сред разработки – зачем ограничивать кругозор?

Вот такие мысли вслух. Если у вас есть идеи насчет того, как лучше поступить—пишите.

Sandcastle Help File Builder – генерируем документацию для .Net

Время на прочтение6 мин
Количество просмотров9.6K
Sandcastle Help File Builder Logo
Sandcastle Help File Builder – это графическая оболочка над генератором документации Sandcastle. В свою очередь, Sandcastle – это гибкий и многофункциональный генератор документации для .Net с использованием XML комментариев из исходного кода. Воспользуемся этим и в несколько шагов создадим документацию нашего проекта.

Основные возможности Sandcastle

  • Включение в документацию XML комментариев из исходного кода.
  • Автоматическое получение информации об элементах .Net, таких как классы, методы, свойства, перечисления с помощью reflection.
  • Возможность интегрировать свои дополнительные HTML страницы в документацию.
  • Генерация документации в нескольких форматах: Microsoft Compiled HTML Help (CHM), MS Microsoft Help 2 (MSDN), веб-сайт — статический и динамический с поиском (ASP.NET).
Sandcastle активно использует в своей работе XML и преобразования с помощью XSLT. Все реализовано очень гибко, легко настраиваемо и доступно в виде исходных кодов.
Читать дальше →

Ползучая гадость, или о проблемах с отдельно взятой БД отдельно взятого приложения

Время на прочтение5 мин
Количество просмотров2.2K
Сегодня я хочу озвучить одну проблему, с которой сталкивается разработчик, как только в поле его зрения попадает работа с БД. Самое грустное заключается в том, что я не знаю, как решать ее правильно, и что делать. Вернее, знаю что, но мне это не помогает и не поможет. Думаю, что и вам тоже.
Ниже будет длинная ввводная, по результатам коей, я не сомневаюсь, можно наговорить про меня много интересных вещей, которых хватит на несколько формуляров по 7-Б и направлений на пожизненное принудительное лечение, но вы уж дочитайте.
Поглумиться над дауном

Создание DSL на языке F#

Время на прочтение9 мин
Количество просмотров6.1K

Хочу представить сообществу перевод моей статьи на CodeProject, в которой я описываю процесс создания DSLей с использованием языка F#.


Читать дальше →

Создаем визуальный поиск в IE8 для поиска друзей в Twitter

Время на прочтение10 мин
Количество просмотров925

С выходом IE8 мы получили одну из самых удобнейших функций в браузере — Визуальные Поисковые Предложения.

Данная статья покажет, как реализовать поиск друзей в твиттере, через специальную Визуальный строку поиска в IE8. По мере набора имени, мы будем видеть аватарку, имя, которое заполнил друг и текущий статус.
Руководство основано на статье Search Provider Extensibility in Internet Explorer из MSDN.

Читать дальше →

C# 4.0, и несуществующие методы

Время на прочтение6 мин
Количество просмотров3.3K
Предупреждение: Нижеследующее многие сочтут извращением с C#. Возможно конечно это и не так, но я Вас предупредил:).

В Ruby есть интересная особенность для перехвата вызовов несуществующих методов. В таких случаях Ruby вызывает метод вашего класса с названием «method_missing». Автор этого текста показывал пример этого на IronRuby в другой статье.

Для динамических языков это может быть нормой, но в статически типизированных языках такого не бывает.

Не было до текущего момента!(Барабанная дробь)
Читать дальше →

WPF Browser

Время на прочтение1 мин
Количество просмотров12K
Возможность работать и взаимодействовать с веб-страницами в рамках WPF открывает некоторые интересные возможности. Хотя в WPF уже включен веб-браузер — это всего лишь оболочка вокруг ActiveX Control IE. К сожалению, это мешает играться как следует при помощи инструментов WPF.

Смешивая проект Chromium от Google, оболочку под названием Awesomium и немного WPF мы имеем следующее:

Capture

Можете попробовать установить данный браузер при помощи ClickOnce отсюда. Исходный код можно скачать с CodePlex. После установки данного приложения через ClickOnce бывают проблемы с вводом с клавиатуры (просто не работает) – так было и у меня, потому лучше качать сразу готовый zip-архив для того чтобы попробовать. Правда пока пробовать там нечего, больше интереса предоставляет исходный код, состоящий из:
  • Cjc.ThreeDeemium – Пример приложения, в настоящее время без каких-либо функций 3D.
  • Cjc.ChromiumBrowser – Контрол — WPF Chromium веб-браузер.  Зависит от Cjc.AwesomiumWrapper и двух библиотек Awesomium и Chromium C++ (Awesomium.dll and icudt38.dll).
  • Cjc.AwesomiumWrapper – C++ / CLI оболочка над Awesomium (Managed код). Так проще, чем сохранять старый P/Invoke набор, и более приятно смотреть на код
  • Awesomium – C++ заголовки и библиотеки Awesomium / Chromium.

Думаю стоит последить за данным проектом, скорее всего нас еще чем-нибудь удивят: Chris Cavanagh’s Blog

Progg it

Вклад авторов