Пишем код

Заметки о .net разработке

Archive for the ‘.net’ Category

Видеозапись внутреннего семинара Rubius о тестировании

without comments

Где-то в августе мы провели небольшой внутрикорпоративный семинар посвященный автоматизированному тестированию.

В итоге получилась очень большая дискуссия и очень мало конкретики, фактического материала, выводов и конкретных решений :) Но если кому-то интересно послушать галдеж на айти тематику — welcome :)

Written by Shaddix

Ноябрь 7th, 2013 at 12:22 пп

Строготипизированный доступ к UI-элементам в Xamarin.Android

without comments

Всем Андроид-разработчикам должен быть очень знаком код вроде:

private Button _myButton;
public Button MyButton { get { return _myButton ?? (_myButton =  this.FindViewById<button>(Resource.Id.MyButton)); } }

Все еще пишете это руками? Используете FindViewById? Если при этом вы еще и используете Xamarin — то у меня есть решение! :)
Read the rest of this entry »

Written by Shaddix

Ноябрь 5th, 2013 at 11:00 дп

Эволюция Team Foundation Server

without comments

Вообще говоря, мое отношение к Team Foundation Server всегда было довольно негативным. Это подтверждал и мой собственный опыт, и бытующие легенды, что в ТФС взяли самые худшие составляющие (худший баг трекер, систему контроля версий, билд сервер) и с трудом слепили их в нечто единое :) Эти суждения были весьма небезоснавательны, и когда очередной проект мы начали вести в TFS, мой настрой к этой системе был весьма и весьма скептическим.
Read the rest of this entry »

Written by Shaddix

Ноябрь 2nd, 2013 at 11:30 дп

WCF, Silverlight, асинхронные вызовы и Task Parallel Library

without comments

Уж сколько раз хоронили Silverlight, а в некоторых, особенно, внутрикорпоративных проектах он всё еще живет и здравствует, и даже активно развивается.

В один из подобных проектов и ступила недавно нога человека (моя, то есть :)).
Типичной задачей в Silverlight апплетах является, конечно, взаимодействие с сервером.

Использование технологии RIA Services (aka Domain Services), некоторое время активно пиарившейся Майкрософтом, лично у меня оставило весьма двойственные впечатления — в первую очередь из-за неочевидности происходящего «под капотом» и ощущения некоей магии происходящего. Поэтому старые добрые WCF-сервисы для взаимодействия с Сильверлайтом остаются для меня приоритетом.

С моего последнего появления в Сильверлайте прошло достаточно много времени, и я надеялся, что взаимодействие с WCF там значительно улучшилось. Оказалось же, что все в общем-то по-прежнему Read the rest of this entry »

Written by Shaddix

Июль 9th, 2013 at 10:40 пп

Posted in .net,silverlight,WCF

Запись доклада с DevPRO: «Единый код C#: разрабатываем для Web, Desktop, Android, Windows RT и iOS»

2 комментария

Наконец-то стали появляться первые видеозаписи с прошедшего 16 марта семинара DevPRO.

На семинаре я выступал с докладом о разработке мобильных приложений с использованием c#.

Written by Shaddix

Апрель 1st, 2013 at 5:25 пп

Posted in .net,agile,Android,iOS,семинары

Tagged with

Баг в help-page для WebAPI

3 комментария

Как известно, в ASP.Net MVC4 одной из главных появившихся фишек стал WebAPI.

Вместе с обновлением Web Tools 2012.2, вышедшем, как ни странно, в 2013, Майкрософт добавил к WebAPI интересную функцию — генерацию страницы помощи (help-page) с описанием вашего API в человеко-читаемом виде, и даже с примерами в виде xml и json. Большой плюс этой страницы в том, что информацию и описание API можно брать прямо из xml-комментариев к методам API-контроллера

Сегодня, однако, я натолкнулся на досадную ошибку в работе этой самой страницы помощи:
для метода вида

    /// <summary>
    /// description
    /// </summary>
    [HttpGet]
    public string Tst([FromUri] TstModel filter)
    {
        return null;
    }

Проблема, как оказалось, была в том, что TstModel я, как водится, объявил вложенным классом (nested class) в самом контроллере. Из-за этого help page слегка потерял голову и необходимой документации не увидел :)

Для интересующихся и/или столкнувшихся с той же самой проблемой, фикс прост:
XmlDocumentationProvider.GetTypeName

line 109: return type.FullName.Replace("+", "."); //was: return type.FullName
line 101: string typeName = genericType.FullName.Replace("+", "."); //was: string typeName = genericType.FullName

Может, кто подскажет, куда можно послать по этому поводу bug-report? :)
Кроме как через nuget письмом автору Microsoft.AspNet.WebApi.HelpPage — других вариантов не найдено :)

Written by Shaddix

Март 14th, 2013 at 10:11 пп

Posted in .net,web

Автогенерация комментариев в MonoDevelop

7 комментариев

I love this feature!
И это реально то, чего не хватает в VS/Resharper :)

Попробуем добавить xml-комментарий к свойству:

    public UIViewController CurrentViewController {

Набираем традиционные «///» и получаем…

    /// <summary>
    /// Gets the current view controller.
    /// </summary>
    public UIViewController CurrentViewController {

Ну, я даже не знаю, что добавить :) Правда, иногда всё-таки приходится дописывать еще пару фраз :)

P.S. Может, кто-нибудь знает, как это сделать в VS?

Written by Shaddix

Февраль 3rd, 2013 at 9:23 пп

RavenDB в «одноразовых» приложениях

4 комментария

На выходных попробовал RavenDB на небольшой задаче обработки массива документов. Документов было не очень много — порядка 50К, их обработка — задача разовая, но её длительность получалась однозначно порядка 10 часов, плюс всё это отлично параллелилось.
Поэтому возникла мысль загнать все эти документы в БД, чтобы без проблем сохранять промежуточные результаты и не волноваться за exception’ы, безвозвратно прерывающие обработку 10-часового процесса в самом конце :)
Raven-Embedded видился неплохим кандидатом для такого использования, поскольку позволял не париться с маппингами, быстро «установить» БД, просто добавив nuget пакет, позволял динамически добавлять в документы новые структуры данных (результаты обработок) ну и по идее должен был быстро работать :)
Что же из всего этого получилось?
Read the rest of this entry »

Written by Shaddix

Декабрь 24th, 2012 at 12:30 дп

Posted in .net,agile,ravendb

Tagged with

Mac OS X и горячие клавиши

without comments

Работать в Mac OS X после стольких лет программирования в windows — это настоящий стресс :) Причина проста и банальна — очень многие сочетания клавиш, к которым мы привыкли работают по-другому, или вообще не работают :)
Собственно, основные проблемы идут от того, что Ctrl переехал на клавишу Win, а Home и End переходят в начало и конец файла (а не начало и конец строки, как в windows).

К счастью, Ctrl и Win меняются местами прямо в настройках МакОси (Системные настройки -> Клавиатура -> Клавиши модификации), а Home и End возвращаются к привычному PC-функционалу с помощью DoubleCommand или ему-подобных утилит.
Эти два небольших шага сэкономили мне множество нервов и позволили сосредоточиться на деле, а не перестройке собственных привычек :)

Прочие же привычные по VisualStudio сочетания можно перенастроить уже прямо в MonoDevelop.
И да простят меня апологеты Mac OS за такие издевательства над системой :)

P.S. Спасибо Брайану Ханкинсу за наводки

Written by Shaddix

Август 19th, 2012 at 7:40 пп

Posted in .net,Mac OS X,Mono

Публикация исходников вместе с nuget — плюс исходники Av.Infrastructure.Web

without comments

На выходных (где-то с месяц назад, когда я только взялся за этот пост) наконец-то дошли руки до публикации исходников своей «инфраструктурной» библиотеки. По правде говоря, я это собирался сделать достаточно давно, но насущной необходимости не было, да и сейчас наврядли кому-то понадобиться заточенная по большому счету под личные нужды одна из сотен тысяч других библиотек-собраний-всяких-мелочей, однако публикация исходников вместе со своими собственными nuget-пакетами таки может кому-нибудь пригодиться.
Read the rest of this entry »

Written by Shaddix

Август 11th, 2012 at 11:33 пп

Posted in .net,agile,MVC,nuget