Все потоки
Поиск
Написать публикацию
Обновить
60.73

.NET *

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

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

Катаморфизм в F#

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

Введение


Упомяну сразу, данная статья написана по мотивам целой серии постов в отличном блоге Inside F#. Тем не менее она не является переводом в чистом виде, а скорее вольным изложением, чтобы доступным языком объяснить — что же за зверь такой, катаморфизм, и с чем его едят. Слово это думаю не очень на слуху, чего стоит хотя бы тот факт, что статьи по нему нет в русской википедии (и вообще ни в одной национальной, кроме почему-то голландской. Наверно ФП как-то соответсвует духу травокурения)
Итак, строго говоря, катаморфизм в функциональном программировании — это обобщение свертки списков, которые (как я уже рассказывал) являются специфическим типом размеченного объединения, на произвольные размеченные объединения.
Читать дальше →

О бедном Dispose замолвите слово (часть 2)

Время на прочтение4 мин
Количество просмотров3.7K
После опубликования предыдущей моей записи о Dispose, в обсуждении всплыло несколько острых вопросов, которые потребовали отдельного рассмотрения.

Если коротко, то они сводятся к «зачем так сложно?» и «как правильно должны освобождать свою память потомки?»

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

О бедном Dispose замолвите слово

Время на прочтение3 мин
Количество просмотров3.5K
Немного про освобождение ресурсов в .Net.

предупреждение: текст ниже — просто пересказ своими словами давно известной информации, которая есть в сети на русском и английском языках.

Что делать, когда хочется освободить unmanaged ресурсы в .Net? Можно поместить код освобождения ресурсов в секцию finally и это будет самый простой способ. Не очень изящный, но зато гарантированно сработает и без всяких подводных камней:
DBConnection conn = new DBConnection();
try
{
 conn.Open();
 //...
}
finally
{
 conn.Close();
}


* This source code was highlighted with Source Code Highlighter.

Усложним задачу. Мы написали библиотечный класс, который работает с unmanaged ресурсами. По закону подлости (или больших чисел — как вам удобнее), пользоваться им, кроме гуру, будут еще и говнокодеры. Которые спокойно забудут вызвать метод для освобождения unmanaged ресурсов. А потом будут плеваться на криво написанную ВАМИ библиотеку.

А значит хочется написать свой класс таким образом, чтобы метод, освобождающий ресурсы (уже не важно — managed они или unmanaged) был вызван сборщиком мусора автоматически в том случае, если пользователь забыл вызвать его сам.

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

Используем «лямбды» для анимации WPF

Время на прочтение5 мин
Количество просмотров2.5K
Создать графический примитив и анимировать его, например передвинув его с точки А в точку В с постоянной скоростью – дело нехитрое. Но что если нужно расположить несколько объектов в определенной последовательности и потом их нелинейно анимировать? Для этого ни в WPF ни в Silverlight нет встроенных функций. В этом очерке я покажу, как можно создавать объекты и анимацию динамически, используя лямбда-делегаты и функции высшего порядка.

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

Работаем с TypeMock Isolator

Время на прочтение5 мин
Количество просмотров4.2K
Для дотнет-разработчика, планирующего юнит-тестирование, редко встает вопрос о том, что подразумевать под этим пресловутым «юнит»-ом: в подавляющем числе случаев, юнит – это класс, и тем самым любой тест который использует два или более класса юнит тестом не является – это уже интеграционный тест. Здесь мы конечно говорим про наши классы, так как привязка к классам фреймворка или сторонних библиотек – вещь вполне нормальная, и в тестировании не нуждается (хотя как сказать…).
читать дальше

Использование SQLite в .NET приложениях

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


В некоторых проектах достаточно часто возникает необходимость в хранении данных, объем которых уже нельзя назвать маленьким, но в тоже время использовать какую-либо СУБД слишком накладно из-за сложности развертывания приложения. И тут на помощь приходит такая прекрасная вещь как SQLite – компактная встраиваемая база данных.

Для тех, кто пишет с использованием платформы .NET приятным моментом станет наличие
Читать далее...

Вышел ReSharper 4.5

Время на прочтение1 мин
Количество просмотров512
Обновился замечательный инструмент для .NET-разработчиков:

* разработчики поработали над производительностью: например, по их оценками скорость загрузки больших решений выросла от 20% до 40%;
* внедрена поддержка языка Visual Basic .NET 9;
* добавлены новые инспекторы кода (code inspectors);
* добавлена возможность задавать правила для именования типов, пространств имен, интерфейсов и другого, с помощью которых решарпер поможет оформить код согласно вашим требованиям;
* добавлена функция Go to Implementation (по ощущениям от beta-версии, очень удобная);
* улучшен механизм рефакторинга, rename теперь предлагает name completion.

Разработчики записали flash-ролик, в котором рассказывается о нововведениях. Посмотреть его можно здесь.

Скачать ReSharper 4.5: www.jetbrains.com/resharper/download

«Скрытые» полезности С#

Время на прочтение8 мин
Количество просмотров8.4K
Предлагаю мой вольный перевод вопроса с stackoverflow, который мне показался полезным и сидит в фаворитах. Что-то я взял с MSDN (в основном вырезки из русской редакции), что-то -с блогов.
Все мы, С# разработчики, знаем базовые комманды C#. Я имею ввиду объявления, условия, циклы, операторы и т.д.
Некоторые из нас знают даже про Generics, anonymous types, lambdas, linq,…

Но, каковы реально скрытные возможности и трюки C#, про которые даже фанаты и эксперты не всегда знают?
Составим список некоторых из них:

Миграции БД для .NET

Время на прочтение3 мин
Количество просмотров7.3K
В и без того непростом процессе разработки программных продуктов время от времени появляются совсем уж неприятные вопросы. Один из них — что же делать со структурой БД, как хранить информацию о версиях, как обновлять копии БД на серверах да и как организовывать совместную работу.

Что же делать?

Третья встреча Петербургской группы ALT.NET

Время на прочтение1 мин
Количество просмотров807
Третья встреча Петербургской группы ALT.NET, посвященная разработке под ASP.NET MVC, пройдет в четверг, 2го Апреля в 19:00.
Читать дальше →

VSTO и CAB: Интеграция .NET приложения в Microsoft Word

Время на прочтение14 мин
Количество просмотров14K
VSTO расшифровывается как Visual Studio Tools for Office. Эти средства позволяют довольно легко скрещивать ужа с ежом — писать .NET приложения, исполняемые CLR в среде Microsoft Office. В частности, программисты обладают возможностью создавать подключаемые модули (плагины) и «кастомизированные» шаблоны для документов почти ко всему основному семейству продуктов Microsoft Office.

В статье приведена инфраструктура Windows Forms проекта, в котором Microsoft Word воспринимается приложением в качестве шелла. В статье раскрыты несколько интересных моментов использования Composite UI Application Block, в частности подключение инфраструктуры доменной модели Word в сервисам расширения каркаса, а так же приведены некоторые факты и особенности разработки с использованием средств VSTO.
В общем, кому интересно - милости прошу

ALT.NET, Питер, Четверг, 19 марта, 19-00, Компьютерная академия SoftJoys

Время на прочтение1 мин
Количество просмотров955
Не трудно догадаться, что многие разработчики стремятся к совершенствованию в своём любимом деле (разве нет?). Многие из вас постоянно слышат о новых для себя технологиях и методологиях разработки программного обеспечения, однако, не все находят время и стимул для того, чтобы ознакомиться с ними (примером тому являются методологии TDD, BDD, DDD, ORM, DSL, AOP, Design Patterns и т.д., а так же сопутствующие им инструменты).
Читать дальше →

Практикум Silverlight: Начинаем работать с Composite Application Library

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

Для кого эта статья



Данный пост будет интересен для вас если:

  1. Вы нацелены на развитие
  2. Вы работаете с RIA средой, такой как Silverlight (так же WPF)
  3. Если вы уже где-то слышали такие слова как Composite Application Guidance, Composite Application Library
  4. Вы заинтересовались статьей Павла ИвченковаСоздание приложения на WPF с использованием принципов TDD 
  5. Вам было интересно прочитать статью AcervUse Case Driven Development и Composite UI Application Block

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

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

Большой отрывок (180 страниц) книги Professional ASP.NET MVC (на английском)

Время на прочтение1 мин
Количество просмотров1.4K
В отрывке рассказывается о том, как сделан сайт www.nerddinner.com

Начиная с создания нового проекта, автор добавляет различный функционал на сайт.

Что освещено:
* Create a database
* Build a model with validation and business rules
* Implement data listing/details UI on a site using Controllers and Views
* Enable CRUD (Create, Update, Delete) data form entry
* Use the ViewModel pattern to pass information from a Controller to a View
* Re-use UI across a site using partials and master pages
* Implement efficient data paging
* Secure an application using authentication and authorization
* Use AJAX to deliver dynamic updates
* Use AJAX to add interactive map support
* Perform automated unit testing (including dependency injection and mocking)

Скачать книгу (14Mb, PDF): прямой линк
Официальная страница анонса

System.Addin или «Игры с надёжными плагинами». Часть 1

Время на прочтение4 мин
Количество просмотров3.6K
Введение.

Доброго времени суток. Я думаю, что абсолютное большинство из вас сталкивалось с проблемой расширяемости приложений. Точно также я думаю, что многим из вас приходилось копать Reflection для выяснения того, является ли сборка плагином к вашей программе. Многим не нравилось то, что в .NET сборки по умолчанию загружаются в один домен с приложением, а затем их нельзя было выгрузить. Многие, конечно, создавали объекты в отдельных доменах через CreateInstanceAndUnwrap, но всё это приходилось делать руками. В общем «мыши плакали и кололись…». С появлением System.Addin разработчики получили в свои руки инструмент для создания расширяемого приложения, который лишён этих проблем, что называется, «из коробки». Об этой технологии я и расскажу в нескольких статьях.
Читать дальше →

Создание простейшего DI контейнера с использованием TDD

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

Введение



Сегодня просмотрел ряд скринкастов от Daniel Cazzulino, в которых он рассказывает о создании с нуля простейшего DI контейнера, что не могло не привлечь моего внимания. Ниже будут приведены примеры из его скринкастов.
Читать дальше →

Дело о потерянных строках в DataView

Время на прочтение3 мин
Количество просмотров2K
Отлаживая WPF-ный редактор для таблицы БД, столкнулся с Exception-ом при переходе между соседними ячейками с помощью клавиатуры.
Казалось бы, обычное дело — кто из нас эксепшенов не нюхал? Да и компонент DataGrid из WPF Toolkit весьма экспериментальный, так что удивляться нечему. Однако, кое-что меня насторожило.

что же?

.NET Framework Client Profile

Время на прочтение2 мин
Количество просмотров11K
Введение

Как известно размер .NET фреймворка увеличивается от релиза к релизу. Но, к сожалению, не у всех потенциальных пользователей широкий безлимитный канал.
Стояла задача — определить какой .NET Framework, поддерживающий WPF, оптимален с точки зрения простоты распространения. Ведь не хочется терять пользователей из-за лишних мегабайт в установщике.
Т.е. надо было принять решение какой .NET Framework использовать: .NET 3.0 или .NET 3.5.

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

Скачиваем альбомы из Picasa

Время на прочтение12 мин
Количество просмотров1.1K
Собственно все довольно просто:

1. Качаем и ставим Google API [Google.GData.Client.dll, Google.GData.Extensions.dll, Google.GData.Photos.dll]

2. Создаем новый проект на C# (я использую WinForms)
3. Заведем класс основной логики:

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

Дело о пропавшем индексе

Время на прочтение21 мин
Количество просмотров1.6K
Дело, конечно, не такое интересное, как у Руссиновича, но, надеюсь, будет полезно некотроым разработчикам. Основная цель изложения — показать средства, с помощью которых мы можем анализировать поведение программы на самом низком уровне.

Итак, имеется приложение, написанное на C#, которое использует .net framework 1.1 (да-да). Приложение после некоторых внесенных изменений начало выбрасывать такое малоинформативное исключение:
Читать дальше →

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