Комментарии 41
Статья неплохая, но устарела на 10 лет:-)
Оба компонента Obsolete
Спасибо. Лет 10 — это, надеюсь, гипербола :) Вроде как только .NET 3.5 вышел, а я во всю писал под WebForms. Какие два компонента устарели? ADO.NET и MySQL? Или что? Сортировку и постраничное отображение специально писал, чтобы доработать те примеры, которые были приведены в литературе и, которые нашел в интернете.
Хотел написать статью для новичков в ASP.NET MVC и с какими вопросами приходится сталкиваться, когда читаешь книги и «этот самый интернет» в поисках работающих решений. На том же Хабре я что-то не нашел статьи с цельным решением.
Изначально, думал написать только про работу с MySQL через ADO.NET, но пока писал, решил и небольшой вводный курс для новичков сделать в рамках маленького проекта. Чем это отличается от тех же книг про ASP.NET MVC я не понял.
Налетели профи и наставили минусов, даже в карму капнули — за что, я пока не понял. Я что-то сделал плохо? Написать статью про конкретную технологию, привел пример работающего проекта, объяснил почему писал конкретно так (в данном примере, естественно).
Подход устарел? Но писать-то так можно в конкретных случаях? Или не в каноне MVC? И профи настолько не одобряют, что и статью на Хабр писать не стоит? Пока не понял, если объясните, могу с Хабра статью убрать, мне она тут не принципиальна, может и в моём блоге полежать. Хотел просто новичкам или тем же студентам помочь.
Хотел написать статью для новичков в 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 у меня в доступе было маловато…
На мой взгляд, это странный подход. Такое впечатление, что хорошую технологию списывают в утиль, как только она обрастёт нормальными подходами и возможностью писать нормальные приложения без разгребания косяков новой технологии.
Да тот же 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 и прочего — чисто для ускорения и «упрощения» разработки.
Если честно, то у меня и под WebForms неплохо получалось. Кто-то её уже закопал, но по сути — что нового придумано за эти годы? В итоге всё равно генерируется HTML + javascript. Круто было, когда появился AJAX — вот это был прорыв — и сколько лет назад он был? В MVC добавили по сути ровно одно — он стал позволять более удобно проводить компонентное тестирование и (с более предсказуемым результатом) тестирование интерфейса. Это тоже круто. Но в итоге всё равно всё сводится к генерации старого как говно мамонта HTML и Javascript. Просто на всё это навешали ORM, библиотек JQuery и прочего — чисто для ускорения и «упрощения» разработки.
Вы ещё один прорыв упустили. Single Page Application. WebForms сами майки и закопали же.
Да, они молодцы закапывать. По-моему, они бросили WebForms, когда они решили догонять Ruby on Rails. А сейчас они бегут в сторону Linux'а и Android'а. Пока что, с точки зрения финансов, у них всё хорошо.
Такое впечатление, что хорошую технологию списывают в утиль, как только она обрастёт нормальными подходами и возможностью писать нормальные приложения без разгребания косяков новой технологии.Почему сразу в утиль? Все хорошее перешло в ASP.NET Core.
Ага, есть такое понятие в философии как «снятие». Но надо ж и понимать всё-таки откуда и что сняли.
Кстати, WebForms вообще откинули и ничего толком не взяли, технология настолько офигенная получилась, что дорабатывать оказалось нечего и Microsoft побежала догонять Ruby on Rails. Главное в процессе — это процесс :)
Я понимаю, почему все переходят на фреймворки, в том числе и по взаимодействию с СУБД — нужна бесконечно увеличивающаяся скорость разработки и внедрения и снижение стоимости программистов (в идеале — нужен архитектор, который опишет модель, а она будет работать). Так же забыли ассемблер и почти уже вышел из использования C++ (только низкоуровневое программирование железяк разве что еще осталось). Также уходит и знание SQL — программист теперь вообще не знает архитектуру СУБД и не понимает как надо оптимизировать запросы и как одним запросом можно обойтись вместо десяти. Но есть еще места, где он еще нужен, как бы его не убирали «под капот».
Кстати, WebForms вообще откинули и ничего толком не взяли, технология настолько офигенная получилась, что дорабатывать оказалось нечего и Microsoft побежала догонять Ruby on Rails. Главное в процессе — это процесс :)
Я понимаю, почему все переходят на фреймворки, в том числе и по взаимодействию с СУБД — нужна бесконечно увеличивающаяся скорость разработки и внедрения и снижение стоимости программистов (в идеале — нужен архитектор, который опишет модель, а она будет работать). Так же забыли ассемблер и почти уже вышел из использования C++ (только низкоуровневое программирование железяк разве что еще осталось). Также уходит и знание SQL — программист теперь вообще не знает архитектуру СУБД и не понимает как надо оптимизировать запросы и как одним запросом можно обойтись вместо десяти. Но есть еще места, где он еще нужен, как бы его не убирали «под капот».
WebForms офигенная? Да убогая технология. Уж как пользователь системы сделанной на WF говорю. Откройте для себя новые технологии.
Уговорили, черти языкастые :)
Сарказм?
Ни в коем разе. Был бы сарказм — поставил бы тег Новые технологии надо изучать — это однозначно.
Реально, за 3 года разработчики net core совершили чудо, фактически они переписали платформу с нуля, так они столько изменений в нее внесли, столько не было с .net 1.0, я про само ядро. Просто знаю всего 2 языка которые очень стремительно развиваются, C# и Kotlin. В общем, майки не зря похоронили все прежнее, это была их проблема, совместимость со старым. Новое это хорошо.
Если начинаете новый проект — не вижу ни одной причины изучать то что в статье. Потому что с .core это пишется проще, приятнее, «правильнее», современнее, держит большую нагрузку на меньшем железе, кроссплатформенно и много других плюсов. Очень настоятельно рекомендую копать именно туда. (Не ставил ни минусов ни плюсов)
Да, будем посмотреть. Однако, хотелось бы присмотреться к фреймворкам с прямой работой с СУБД.
asp.mvc, .core итп не имеют никакой связи со способом доступа к СУБД. Они дают каркас на котором вы можете строить логику работы. Можно работать напрямую с базой, но чаще всего достаточно использовать что-то легковесное, но скрывающее ненужные телодвижения там где нет необходимости в супертюнинге. Выше уже упомянули dapper — могу подтвердить что он отлично работает на достаточно серьезных нагрузках и достаточно удобен и стабилен.
Из доступа к базе в последнее время чаще всего использовал dapper, ef, efcore, nhibernate, родное для баз,… и кучу всего разного за 30+ лет активного программирования. Обычно подбираю инструмент под задачу.
(Кроме того — рекомендую посмотреть в сторону CQRS где способы доступа к СУБД могут быть различными и часто это оправданно)
Из доступа к базе в последнее время чаще всего использовал dapper, ef, efcore, nhibernate, родное для баз,… и кучу всего разного за 30+ лет активного программирования. Обычно подбираю инструмент под задачу.
(Кроме того — рекомендую посмотреть в сторону CQRS где способы доступа к СУБД могут быть различными и часто это оправданно)
Кстати про ORM. Вы пробовали Linq2db? Мне кажется, он тоже вполне неплох. И SQL писать не заставляет, и кучу тяжести не тащит, как EF и Nhibernate
Не пробовал, к сожалению. Отзывы хорошие слышал, но самому не приходилось и не вникал. Мне проще написать оттюненый селект если нужна производительность или ресурсы либо использовать dapper либо то что я написал из монстров. Этого было достаточно, а linq2db в моих задачах ничего принципиально более полезного не давал. Скорее всего он будет более полезен в местах где нет сильных базистов.
Спасибо за путешествие в прошлое. Как будто на 5 лет назад откатился. Не надо так.
Спасибо за отзыв. Вообще-то писал для новичков в ASP.NET MVC.
Если не сложно — поделитесь ссылкой как именно надо. Под EF я тоже писал, но была интересна реализация под ADO.NET для MySQL. Неужели EF в любом случае лучше и оптимальнее прямой реализации через драйвер ADO.NET?
Если не сложно — поделитесь ссылкой как именно надо. Под EF я тоже писал, но была интересна реализация под ADO.NET для MySQL. Неужели EF в любом случае лучше и оптимальнее прямой реализации через драйвер ADO.NET?
Если начинать изучать, то лучше сразу с ASP.NET Core и Entity Framework Core. Для MySQL лучше использовать MySqlConnector.
Спасибо. Покопаем еще и туда. Изначально хотелось понять, можно всё-таки работать через ADO.NET со стандартной библиотекой MySQL от Oracle. До этого писал проект, с базой данных размером в 10 гигов и таблицами в 1-2 гига и весьма сложными запросами. Даже не знаю пока, как это в ORM уложилось бы.
Да сейчас все по другому выглядит, кнопку удаления/редактирования записи можно было в таблицу добавить в интерфейсе(как пример datatables jquery), можно было сделать один view для добавления и редактирования записи по сути они ничем не отличаются. Тема хорошая, чтобы отвлечься, но вряд ли, кто-то будет использовать ADO.NET в наше время, когда уже есть десятки различных ORM фреймворков.
А как же последовательность? :) И мёртвым он сделается только тогда, когда на нём перестанут работать реальные проекты.
Последовательность чего? Изучения фреймворков? В чем смысл? Да и думаю с выпуском net 5 его вообще с поддержки снимут, так, что мертв. Можно на файлопомойках турбо Паскаль откопать и писать на нем, только есть ли в этом здравый смысл. Вон товарищ выше, WebForms оды поет, когда есть такие вещи как Angular, React, Vue, RestAPI. Не спорю, есть куча старого кода, который надо поддерживать, но писать на этом новый код, как минимум странно.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
ASP.NET MVC – работаем с MySQL через ADO.NET