пятница, 18 марта 2016 г.

Фильтр request модели. Web API


На днях возникла задача на проверку входных данных от пользователей: запретить отступы у  строковых данных в начале и в конце. Модель большая, делать у каждого свойства типа string что-то в стиле 

Name=model.Name.IfNotNull(x=>x.Trim())  

не хотелось. По этому пришлось поискать в интернете. Наткнулась на фильтр, который переписывает  request модель в web-api-добавляет определенный данные, причем сам тип модели не известен. Немного переделав код, получился вот такой фильтр: 

 public class TrimFieldFilterAttribute : ActionFilterAttribute
 {
        public override void OnActionExecuting(HttpActionContext actionContext)
        {
            foreach (var keyValuePair in actionContext.ActionArguments)
            {
                var model = actionContext.ActionArguments[keyValuePair.Key];
                if (model == null)
                    continue;

пятница, 26 февраля 2016 г.

NINJECT+WEB API 2+Fluent Validation

Надеюсь эта статья сэкономит кучу времени темкто сталкивался в названиями в заголовке статьи, а тем более в одном проектеКак же совместить эти решения вместе? 
1. Создавался проект AST.NET WEB API 2Так как проект требовал Dependency Injection, то  использовался в нем контейнер DI Ninject. 
Поэтомупервоначально в проект был добавлен пакет 
Ninject.Web.WebApi а после Ninject.Web.WebApi.WebHost Все через NuGetПосле установки, в проекте должен появиться класс NinjectWebCommonкоторый и будет вызывать автоматически метод Start. В методе  
private static void RegisterServices(IKernel kernel) 
{
   kernel.Bind<>().To<>(); 
} 
вы объявляете нужные привязки. 

воскресенье, 3 января 2016 г.

Dependency Inversion

Dependency Inversion-один из принципов SOLID:
  • Модули верхнего уровня не должны зависеть от модулей нижнего уровня. Оба должны зависеть от абстракции.
  • Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.
Для тех, кто только начинает знакомиться  с  Dependency Inversion, такое определение не понятно. Зато эта тема весьма популярна на собеседование. Попробую объяснить простым языком и легким примером "из жизни".

В проекте есть два класса, которые создают сообщение и отправляют его определенным адресатам.

    public class MessageToMainOffice
    {
        public void Send()
        {
            //создаем сообщение для главного офиса и отправляем на заданные адреса
        }
    }

пятница, 23 января 2015 г.

Мини справочник для составления regular expression

Часто приходится писать валидаторы для вводимых данных: телефон, емаил, имя, номер и т.д.
Вся работа начинает с поиска готового пример в интернете, это все забирает не мало времени, плюс ко всему конкретно для себя найти мало что можешь. Пора уже оставить где-то ссылку на хорошую статью по составлению regular expression. Вот она:

The 30 Minute Regex Tutorial

четверг, 19 июня 2014 г.

Создание клиента WCF сервиса на Xamarin Android.

   Вообще на официальном сайте продукта есть очень хорошая документация почти по всем востребованным фитчам(что является большим плюсом ), которые могут пригодиться в разработке, да и еще с примерами. Вот здесь подробно описано как можно настроить ваше приложение на общение с wcf сервисом.
   Предположим, что у вас уже есть работающий wcf сервис TestService с методом GetData, который хостится локально на iis express и доступен по следующему адресу: http://localhost:9607.По шагам получается следующее:

1.Нужно настроить iis express на принятие удаленных соединений.В файле конфигурации(documents\iisexpress\config\applicationhost.config) находим настройку нашего сервиса и в bindig добавляем привязку по адресу ":9608:192.168.1.143". Получается биндинг TestService теперь выглядит таким образом:

<bindings>  
<binding protocol="http" bindingInformation="*:9607:localhost" />  
<binding protocol="http" bindingInformation="*:9608:192.168.1.143" />  
</bindings>

воскресенье, 1 июня 2014 г.

Xamarin Studio 5.0

Совсем недавно компания Xamarin анонсировала новую Xamarin Studio 5.0. На  этой странице можно прочитать про все исправления и новшества. Для себя лично отметила следующее:
1. Новый дизайн-более приятный, новые иконки, особенно иконка Xamarin порадовала, где-то новый интерфейс. Обычно приходиться привыкать к новому виду приложения, когда оно обновляется, где-то что-то не нравится, но в случае Xamarin Studio 5.0 произошел update в лучшую сторону. 
2.  В приложение добавлена поддержка F#
3.  Автоматическое обновление пакетов NuGet.
С каждым выходом новой версии Xamarin Studio, она становится все лучше и лучше.
Будем надеяться что она со временем достигнет своего идеала. 

вторник, 27 мая 2014 г.

Старт

Цель этого блога-делиться знаниями, которые будут полезны не только новичкам в программирование но и любителям, специалистам и профессионалам своего дела.

Для начала открываю блок статей о весьма интересном продукте, как Xamarin.