Как стать автором
Обновить

Комментарии 41

Статья неплохая, но устарела на 10 лет:-)
Оба компонента Obsolete

Спасибо. Лет 10 — это, надеюсь, гипербола :) Вроде как только .NET 3.5 вышел, а я во всю писал под WebForms. Какие два компонента устарели? ADO.NET и MySQL? Или что? Сортировку и постраничное отображение специально писал, чтобы доработать те примеры, которые были приведены в литературе и, которые нашел в интернете.

Хотел написать статью для новичков в ASP.NET MVC и с какими вопросами приходится сталкиваться, когда читаешь книги и «этот самый интернет» в поисках работающих решений. На том же Хабре я что-то не нашел статьи с цельным решением.
Изначально, думал написать только про работу с MySQL через ADO.NET, но пока писал, решил и небольшой вводный курс для новичков сделать в рамках маленького проекта. Чем это отличается от тех же книг про ASP.NET MVC я не понял.

Налетели профи и наставили минусов, даже в карму капнули — за что, я пока не понял. Я что-то сделал плохо? Написать статью про конкретную технологию, привел пример работающего проекта, объяснил почему писал конкретно так (в данном примере, естественно).

Подход устарел? Но писать-то так можно в конкретных случаях? Или не в каноне MVC? И профи настолько не одобряют, что и статью на Хабр писать не стоит? Пока не понял, если объясните, могу с Хабра статью убрать, мне она тут не принципиальна, может и в моём блоге полежать. Хотел просто новичкам или тем же студентам помочь.
net core уже третий вышел, на старый asp.net уже забили (так заплатки только делают), net 5 на подходе уже, увы про 10 лет не гипербола.
Надо же, пока я собирался на ASP.NET MVC переползать — он уже устарел :) Никогда не надо торопиться :)))
На мой взгляд, это странный подход. Такое впечатление, что хорошую технологию списывают в утиль, как только она обрастёт нормальными подходами и возможностью писать нормальные приложения без разгребания косяков новой технологии.
Да тот же ASP.NET WebForms уже с .NET 3.5 не дорабатывается, но кто сказал, что на нём нельзя писать отличные веб-приложения? Так можно договориться, что C++ нафиг не нужен, уже куча новых языков после него вышла.
На мой взгляд, подход должен быть один — если ты с помощью этой технологии способен заработать денег — значит она применимая.
Лет 10 назад — это 2009 год, тогда только .NET 4 анонсировали, основной технологией была WebForms. ASP.NET MVC 3 (который уже реально было использовать) выпущен, если мне не изменяет память, в 2011 году. В 2012 вроде 4-й вышел, я как раз пытался на нём что-то писать, но WebForms затянул меня обратно, потому что книг и документов по MVC у меня в доступе было маловато…
Ну видать у вас инет 2012 года, раз вы не слышали про net core и то, что сейчас это просто asp.net приложение называется. И под капотом это всё тот же mvc. И удивительно, что вы про net core не слышали, уже 3 версия вышла.
Слышал, конечно, но еще не копал в этом направлении. Я пока не видел, что он может дать такого, что не могут другие технологии. Буду читать и смотреть.
Если честно, то у меня и под WebForms неплохо получалось. Кто-то её уже закопал, но по сути — что нового придумано за эти годы? В итоге всё равно генерируется HTML + javascript. Круто было, когда появился AJAX — вот это был прорыв — и сколько лет назад он был? В MVC добавили по сути ровно одно — он стал позволять более удобно проводить компонентное тестирование и (с более предсказуемым результатом) тестирование интерфейса. Это тоже круто. Но в итоге всё равно всё сводится к генерации старого как говно мамонта HTML и Javascript. Просто на всё это навешали ORM, библиотек JQuery и прочего — чисто для ускорения и «упрощения» разработки.
Вы ещё один прорыв упустили. Single Page Application. WebForms сами майки и закопали же.
Да, они молодцы закапывать. По-моему, они бросили WebForms, когда они решили догонять Ruby on Rails. А сейчас они бегут в сторону Linux'а и Android'а. Пока что, с точки зрения финансов, у них всё хорошо.
НЛО прилетело и опубликовало эту надпись здесь
Да и с точки не финансов тоже. Выход в open source, выпуск net core, покупка xamarin, привели к резкой популярности шарпа. Да, сейчас на помойку ещё и долбаный IIS пойдет.
Такое впечатление, что хорошую технологию списывают в утиль, как только она обрастёт нормальными подходами и возможностью писать нормальные приложения без разгребания косяков новой технологии.
Почему сразу в утиль? Все хорошее перешло в ASP.NET Core.
Ага, есть такое понятие в философии как «снятие». Но надо ж и понимать всё-таки откуда и что сняли.
Кстати, WebForms вообще откинули и ничего толком не взяли, технология настолько офигенная получилась, что дорабатывать оказалось нечего и Microsoft побежала догонять Ruby on Rails. Главное в процессе — это процесс :)
Я понимаю, почему все переходят на фреймворки, в том числе и по взаимодействию с СУБД — нужна бесконечно увеличивающаяся скорость разработки и внедрения и снижение стоимости программистов (в идеале — нужен архитектор, который опишет модель, а она будет работать). Так же забыли ассемблер и почти уже вышел из использования C++ (только низкоуровневое программирование железяк разве что еще осталось). Также уходит и знание SQL — программист теперь вообще не знает архитектуру СУБД и не понимает как надо оптимизировать запросы и как одним запросом можно обойтись вместо десяти. Но есть еще места, где он еще нужен, как бы его не убирали «под капот».
WebForms офигенная? Да убогая технология. Уж как пользователь системы сделанной на WF говорю. Откройте для себя новые технологии.
Уговорили, черти языкастые :)
Сарказм?
Ни в коем разе. Был бы сарказм — поставил бы тег Новые технологии надо изучать — это однозначно.
Реально, за 3 года разработчики net core совершили чудо, фактически они переписали платформу с нуля, так они столько изменений в нее внесли, столько не было с .net 1.0, я про само ядро. Просто знаю всего 2 языка которые очень стремительно развиваются, C# и Kotlin. В общем, майки не зря похоронили все прежнее, это была их проблема, совместимость со старым. Новое это хорошо.
Фронт это вообще новая тема и меняется 3 раза за 2 года.

Я бы сказал, что это ни хорошо ни плохо, просто сочувствую всем, кто вляпался.

Потому что уже через год про тебя не вспомнят хорошим словом, aka «устаревший говнокод».
НЛО прилетело и опубликовало эту надпись здесь
Если начинаете новый проект — не вижу ни одной причины изучать то что в статье. Потому что с .core это пишется проще, приятнее, «правильнее», современнее, держит большую нагрузку на меньшем железе, кроссплатформенно и много других плюсов. Очень настоятельно рекомендую копать именно туда. (Не ставил ни минусов ни плюсов)
Да, будем посмотреть. Однако, хотелось бы присмотреться к фреймворкам с прямой работой с СУБД.
asp.mvc, .core итп не имеют никакой связи со способом доступа к СУБД. Они дают каркас на котором вы можете строить логику работы. Можно работать напрямую с базой, но чаще всего достаточно использовать что-то легковесное, но скрывающее ненужные телодвижения там где нет необходимости в супертюнинге. Выше уже упомянули dapper — могу подтвердить что он отлично работает на достаточно серьезных нагрузках и достаточно удобен и стабилен.

Из доступа к базе в последнее время чаще всего использовал dapper, ef, efcore, nhibernate, родное для баз,… и кучу всего разного за 30+ лет активного программирования. Обычно подбираю инструмент под задачу.

(Кроме того — рекомендую посмотреть в сторону CQRS где способы доступа к СУБД могут быть различными и часто это оправданно)
Кстати про ORM. Вы пробовали Linq2db? Мне кажется, он тоже вполне неплох. И SQL писать не заставляет, и кучу тяжести не тащит, как EF и Nhibernate
Не пробовал, к сожалению. Отзывы хорошие слышал, но самому не приходилось и не вникал. Мне проще написать оттюненый селект если нужна производительность или ресурсы либо использовать dapper либо то что я написал из монстров. Этого было достаточно, а linq2db в моих задачах ничего принципиально более полезного не давал. Скорее всего он будет более полезен в местах где нет сильных базистов.
НЛО прилетело и опубликовало эту надпись здесь
1) То, что ошибку можно сделать, это понятно, и что компилятор её не выловит. Но это как правило, маленькая часть проекта и очень просто проверяется.

2) Добавил примечание в начале статьи.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Спасибо за путешествие в прошлое. Как будто на 5 лет назад откатился. Не надо так.
Спасибо за отзыв. Вообще-то писал для новичков в ASP.NET MVC.
Если не сложно — поделитесь ссылкой как именно надо. Под EF я тоже писал, но была интересна реализация под ADO.NET для MySQL. Неужели EF в любом случае лучше и оптимальнее прямой реализации через драйвер ADO.NET?
Ну EF не всегда оптимальные запросы строит, но EF не единственный ORM. Есть например Dapper от stackoverflow. Тут выбирайте или большее удобство или быстрые запросы.
Да, уже прислали ссылку на Dapper, поизучаю.
Спасибо. Покопаем еще и туда. Изначально хотелось понять, можно всё-таки работать через ADO.NET со стандартной библиотекой MySQL от Oracle. До этого писал проект, с базой данных размером в 10 гигов и таблицами в 1-2 гига и весьма сложными запросами. Даже не знаю пока, как это в ORM уложилось бы.
Для начала закопайте asp.net mvc.
НЛО прилетело и опубликовало эту надпись здесь
Вряд ли. Вполне обычная 4-я нормальная форма реляционной БД. Но тут надо отдельно копаться, чтобы предметно получилось…
Да сейчас все по другому выглядит, кнопку удаления/редактирования записи можно было в таблицу добавить в интерфейсе(как пример datatables jquery), можно было сделать один view для добавления и редактирования записи по сути они ничем не отличаются. Тема хорошая, чтобы отвлечься, но вряд ли, кто-то будет использовать ADO.NET в наше время, когда уже есть десятки различных ORM фреймворков.
НЛО прилетело и опубликовало эту надпись здесь
А как же последовательность? :) И мёртвым он сделается только тогда, когда на нём перестанут работать реальные проекты.
Последовательность чего? Изучения фреймворков? В чем смысл? Да и думаю с выпуском net 5 его вообще с поддержки снимут, так, что мертв. Можно на файлопомойках турбо Паскаль откопать и писать на нем, только есть ли в этом здравый смысл. Вон товарищ выше, WebForms оды поет, когда есть такие вещи как Angular, React, Vue, RestAPI. Не спорю, есть куча старого кода, который надо поддерживать, но писать на этом новый код, как минимум странно.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации