Рубрика «ASP» - 10

Как должна выглядеть .NET-конференция в 2016-м, когда в .NET-мире происходит тектонический сдвиг? Очевидно, что (ASP).NET Core очень сильно скажется на жизни разработчиков, но для большинства из них это произойдёт лишь спустя ощутимое время. О чём в таком случае рассказывать — масштабных новшествах, которые станут актуальны позже, или более привычных темах, которые важны здесь и сейчас?

Петербургский «Летний фестиваль разработчиков», состоящий из трёх конференций подряд, начался с DotNext 2016. Как там была разрешена возникшая дилемма, и как вообще прошёл DotNext? По снимку команды организаторов видно, что при всей хардкорности мероприятие не обошлось без летнего настроения, а все остальные подробности — под катом.

DotNext 2016: Между настоящим и будущим - 1

Читать полностью »

До DotNext 2016 Piter (3 июня, гостиница Park Inn Пулковская) осталось всего ничего – каких-то пара дней. А вчера, изучая программу на сайте конференции, я поймал себя на мысли, что подробное изучение всех докладов, спикеров и хабропостов отняло у меня больше 2 часов чистого времени!

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

  • 4 доклада по ASP.NET Core;
  • 3 – про технику про инструменты разработки;
  • Доклад про кроссплатформенность .NET.

Но ведь DotNext это не обсуждение тулзов и анонсов платформ, но и адский хардкор, разве нет? Конечно, и этого у нас полно: перфоманс, кодогенерация, модели памяти, математика и многое другое. Ну как оно?

DotNext 2016 Piter: Full Stack .NET conference - 1
Читать полностью »

Пост о том как не надо вести разработку фреймворков, и о том, почему жизненный цикл программного обеспечения это не пустые слова, особенно, если на вас полагаются миллионы разработчиков по всему миру. Далее следует критика подхода к разработке платформы .NET Core, и, тесно связанного с ним фреймворка, ASP.NET Core.

.NET Core: релиза не будет, но вы держитесь, здоровья вам, хорошего настроения - 1

История версий .NET Core (шутка с просторов Интернета):

* Alpha
* Beta
* RC1
* 2RC 2Furious
* RC: Tokyo Drift
* RC4: The Big RC
* 7
* RC8

Читать полностью »

В начале января JetBrains объявили о разработке Rider, кроссплатформенной IDE на основе ReSharper и платформы IntelliJ, доступной под Windows, Linux и Mac OS X, и включающей в себя все фишки ReSharper, и поддерживающей .NET Framework, Mono и CoreCLR. Предполагается, что разработка будет завершена к осени этого года, а все желающие смогут попробовать среду «на зубок» в рамках Early Access Program.

«Мы стараемся, чтобы User Experience не отличался в разных операционках» — Интервью с разработчиками Rider из JetBrains - 1

На хабре Rider уже неоднократно упоминался, но дабы дать нашим читателям взглянуть на процесс разработки «изнутри», при этом поняв специфику процесса на разных этапах производства, мы обратились в JetBrains, и на наши вопросы ответили:

  • Кирилл Скрыган, тимлид проекта Rider и старший разработчик;
  • Дмитрий Иванов, главный разработчик протокола реактивного многопроцессного взаимодействия в Rider;
  • Андрей Акиньшин, серебряный призёр ACM ICPC, в Rider отвечает за NuGet-менеджер.

Читать полностью »

На прошлой неделе мы анонсировали расписание выхода RC2/ RTM версий .NET Core и ASP.NET. Сейчас, когда мы уже выпустили RC2, я бы хотел раскрыть чуть больше подробностей о переходе .NET Core с проектов типа .xproj/project.json на .csproj/MSBuild.

MSBuild

Когда команда ASP.NET начала работу над ASP.NET 5 (ASP.NET Core уже), то одной из главных целей была возможность легкого создания и разработки приложений на Windows, Mac и Linux. Это повлекло за собой создание систем проектов .xproj/project.json. Ключевыми фичами были:

  • Отсутствие перечисления файлов в проекте
  • Легкость редактирования файла проекта без IDE
  • Создание Nuget –пакета, используя только проект
  • Кросс-компиляция для разных версий фреймворка
  • Легкость переключения ссылок/зависимостей

Продолжая разработку, мы расширяли роль самого .NET Core:

  • .NET Core стал платформой для Universal Windows Applications (UWP)
  • .NET Core стал кросс-платформенным набором инструментов для создания как консольных приложений, так и библиотек
  • Microsoft приобрела Xamarin, чтобы .NET разработчики могли создавать iOS и Android приложения (прим. переводчика: речь идет о бесплатности Xamarin tools)

Как это влияет на project.json? Одним из ключевых принципов .NET как платформы — возможность совместного использования кода нашими разработчиками во всех моделях приложений .NET (WinForms, WPF, UWP, ASP.NET, IOS, Android и т.д.). Это создает ряд проблем: хоть project.json отлично подходит для создания веб-приложений и библиотек классов, но в то же время не позволяет унификацию с другими моделями приложений.
Читать полностью »

Будучи исторически погруженным в вопросы разработки модульных приложения на ASP.NET, первое что я сделал, когда вышел ASP.NET Core RC2 – постарался перевести на него свой модульный фреймворк ExtCore. И вот тут оказалось, что в новой версии все изменилось и старые подходы из RC1 больше не работают, зато появились новые интересные возможности, о которых я и хочу рассказать.

Если коротко, то разработка модульных приложений в RC2 очень упрощена. Благодаря новой возможности «части приложения» (application parts), вы легко можете разделить свой большой проект на несколько более мелких и затем свободно компоновать их. Особенно это удобно при работе с областями (areas), которые и так изолируют набор контроллеров, представлений и прочих ресурсов — каждую область теперь можно выделить в отдельный проект. Насколько я понял (в частности, из aspnet/Mvc#4089), реализация ориентирована именно на разделение большого проекта на маленькие и только в части MVC. Остальное все-таки придется писать самому.

Читать полностью »

В июне к нам на конференцию DotNext приедут две звезды .NET-программирования мирового уровня — Dino Esposito и Sasha Goldshtein.

Оба наших супергостя знамениты двумя вещами:

  • они авторы прекрасных книг;
  • они замечательные спикеры.

Про Дино я уже пару раз писал, и наверное напишу и в этот раз. А сегодня я расскажу вам про Сашу.

Саша Голдштейн / Sasha Goldshtein

Саша Голдштейн — ведущий мировой эксперт по производительности .NET-платформы, восьмикратный Microsoft MVP, автор прекрасной (и, наверное, единственной) серьезной книги по производительности .NET «Pro .NET Performance» (eng, rus).

Sasha Goldshtein, гуру .NET Performance, выступит на .NET-конференции в Питере - 1
Читать полностью »

Всем привет.
Прошло уже больше года с тех пор, как мы начали использовать ReactJS в нашей разработке, и мы наконец созрели для того, чтобы поделиться тем, насколько счастливее стала наша компания после этого. В этой статье я собираюсь рассказать о причинах, которые привели нас к использованию этой библиотеки и о том, как мы её используем.
Небольшой комментарий по поводу форматирования статьи. Небольшие листинги я привожу как есть. Все скриншоты и большие листинги я заворачиваю в спойлеры, так как мне кажется, что так читать статью удобнее

А вообще зачем всё это

Мы — маленькая компания, наш штат — порядка 50 человек, 20 из которых — разработчики. Сейчас у нас 4 команды разработки, в каждой из которых сидит примерно по 5 fullstack разработчика. Но одно дело — называть себя fullstack-разработчиком, а другое дело — действительно разбираться одинаково хорошо в тонкостях работы SQL Server'а, ASP.NET, разработке на C#, разбираться в OOP, DDD, знать HTML, CSS, JS и уметь этим всем разумно пользоваться. Конечно же каждый разработчик тяготеет к чему-то своему, но все мы так или иначе специалисты именно в разработке на .NET и 90% кода мы пишем на C#.
Наш продукт — система автоматизации маркетинга — подразумевает довольно большой объем настроек для каждого конкретного клиента, и для того, чтобы наши менеджеры могли заниматься этой самой настройкой продукта под клиентов, у нас есть административный сайт, в котором можно заводить рассылки, создавать триггеры и другие механики, кастомизировать сервисы и многое другое. Этот административный сайт содержит довольно много различного нетривиального UI'а, и чем сильнее мы углубляемся, чем более тонкие моменты мы даём настраивать, чем большее количество фич мы выпускаем в продакшн, тем более интересным он становится. Чтобы не быть голословным, пара скриншотов (уже под катом, и скриншотов там отнюдь не пара!):
Читать полностью »

Всем привет.
Все мы немного нервничаем при установке нового релиза на прод. Существует много различных технологий позволяющих нам облегчить этот процесс и сделать его чуть менее нервозным. Одна из таких технологий, которую уже довольно давно облюбовали UNIX-инженеры, это использование символических ссылок, позволяющая свести к минимуму время накатки релиза и откатки на предыдущий релиз если «что-то пошло не так»(с). Этот механизм так же присутствует и в Windows, однако почему-то активно не используется. А зря. Данная статья призвана поправить это недоразумение и сделать процесс накатки релиза более приятным.

Деплой ASP.NET приложений при помощи символических ссылок - 1
Кадр из х/ф «Джентльмены удачи»
Читать полностью »

Представьте, что у вас есть legacy проект Asp.NET MVC версии 5, которому немало лет. В нем используется самописный ResourceProvider, который умеет доставать из базы ресурс и показывать его на UI. В зависимости от различных условий (например, от того, откуда пользователь пришел на сайт), ресурсы будут показаны разные. Теперь пришло время сделать так, чтобы все намертво захардкоженные строки в Data Annotation атрибутах, такие как:

[Display(Name = "Username")]
[Required(ErrorMessage = "Please enter the username")]
[StringLength(64, ErrorMessage = "Username cannot exceed 64 characters")]
public string Username{ get; set; }

тоже могли получать свои значения, используя ResourceProvider. Как это сделать, используя немного наследования и доступной в Asp.NET MVC кастомизации, я покажу под катом.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js