“Hello, NancyFX!” или как я альтернативный веб-фреймворк под .NET нашёл

На днях (на самом деле даже не на днях, а на неделях) решил изучить вопрос об альтернативных фреймворках для разработки веб-приложений
на платформе .NET. Как ни удивительно, таковые нашлись. И, что еще более удивительно, их оказалось больше одного:

Сегодня (а скорее всего и в ближайшее время) я хотел бы внимаетельнее посмотреть на первый из перечисленных инструментов – NancyFX. Фреймворк привлекает своей простотой и, по словам создателя, это не единственное его преимущество. Среди прочих:

  • Простое тестирование приложений созданных на основе NancyFX
  • Встроенный IoC-контейнер TinyIoC
  • NancyFX – расширяемый, кастомизируемый на каждом уровне
  • Немногословный синтаксис
  • Приложения на основе этого фреймворка можно запускать на Mono
  • Нет необходимости возиться с конфигурационными файлами
  • Работает везде (IIS, WCF, self-hosted, служба Windows…)
  • Хуки в пайплане: можно подключиться в несколько мест до или после выполнения запроса или отдачей ответа
  • Нет завязки на System.Web (а, следовательно, и нет завязки на IIS – можно хоститься хоть на Raspberri PI (может даже будет статья об этом в будущем))
  • Поддержка сообществом

И что дальше?

А дальше – создадим простейшее (каноническое) приложение – Hello, NancyFX!

Во-первых. Для работы (ну как работы? так, работки) использовать буду бесплатную Visual Studio 2015 Community Edition. Далее, скачаем и установим шаблоны проектов NancyFX (входят в состав SideWaffle Template Pack ). Естественно, последнее делать не обязательно – можно и ручками все необходимые пакеты через NuGet установить, но мне кажется, что раз уж есть шаблон – почему бы им не воспользоваться?

Теперь можно запускать IDE! Запустили и создаём новый проект Nancy (File -> New Project -> Web -> SideWaffel -> Nancy Empty Project with ASP.NET Host). Проект девственно чист. Ну а вы чего ожидали? Написано же – Empty.

Оукай. Осталось совсем немного для завершения первого Nancy-приложения. В Solution Explorer (в русской версии “Обозревателе решений” (почему вообще существует русская локализация для VS?!)) жмём на проекте правой кнопкой мыши и создаём новый класс (Add -> New Class (или комбинация Alt+Shiht+C)) прямо в корне проекта. Назовём его HelloNancyFx.cs. Изменим его код на следующий:

public class HelloNancyFx: NancyModule
{
  public HelloNancyFx()
  {
    Get["/"] = _ => "Hello, NancyFX!";
  }
}

И нажмём на F5 (ну у меня именно так запускается активный (Set As Startup Project) проект в Solution Explorer. Да и у всех, наверно?). Должен открыться браузер на странице с адресом примерно такого вида: http://localhst:<случайное-пятизначное-число >. А на странице будет приветственное сообщение от NancyFX: “Hello, NancyFX!”.

Как несложно догадаться – вся магия в классе NancyModule, от которого наследуется наш класс HelloNancyFx. Если не вдаваться в подробности – это примерно как ApiController или Controller в ASP.NET Web API или ASP.NET MVC соответственно.

В конструкторе нашего класса есть магическая строка Get["/"] = _ => "Hello, NancyFX!"; которая как бы намекает, что при GET-запросе на корень нашего сайта он плюнет в клиента строкой “Hello, NancyFX!”.

Дальше можете сами немного поковырять этот довольно интересный и, что не менее важно, простой фрейморк. И под Mono, да. Ну вы поняли, что он мне понравился? Если будут вопросы – задавайте прямо здесь – чем смогу – помогу. До новых встреч!

One thought on ““Hello, NancyFX!” или как я альтернативный веб-фреймворк под .NET нашёл

  1. Pingback: nancyfx-part-2 | i can do some code for you

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s