Через пару лет я возвращаюсь к разработке .NET, и, похоже, теперь, особенно с LINQ, способ доступа к вашим данным изменился и стал намного проще. Например, на веб-сайте ASP.NET MVC я могу:
- Добавить товар
- добавить классы LINQ-to-SQL
- перетащите таблицы базы данных в конструктор реляционных объектов LINQ-to-SQL, нажмите кнопку Сохранить
- доступ и манипулирование моими данными через LINQ однострочников
(что я узнал здесь: http://www.asp.net/learn/mvc/tutorial-11-cs.aspx)
Это выглядит великолепно, но насколько это реально?
- - это приведенный выше сценарий LINQ-to-SQL, который вы используете в реальных проектах, или это просто быстрая технология скаффолдинга, т.е. что происходит, когда вы начинаете добавлять, удалять поля и таблицы в вашей базе данных, как это делает LINQ-to -SQL классы остаются в синхронизации?
А как мне понять все новые технологии в этом пространстве, например,
- Где подходит Subsonic?
- Где подходит Astoria (ADO.NET Data Services)?
- Где вписывается NHibernate?
- Как я могу использовать другие базы данных с LINQ-to-SQL (я попытался перетащить таблицу SQLite в Object Relational Designer и получил сообщение «ошибка не поддерживается) или LINQ-to-SQL только для SQL Server?
- работает ли LINQ-to-XML так же, как LINQ-to-SQL, например я могу перетащить XML-файлы в конструктор и затем получить к ним доступ через LINQ, или мне нужно написать собственный код для этого?
работает ли LINQ-to-Entities как LINQ-to-SQL, то есть автоматически генерируемые классы, но только с большим количеством опций?
Является ли ADO.NET с его DataTables и DataSets старой технологией теперь, когда у нас есть LINQ? Имеет ли смысл LINQ-to-ADO.NET?
где подходит Azure, где у вас даже нет RDBMS
- где ESB подходит, когда ваш пользовательский интерфейс просто RESTful общается с WCF или общается с веб-службами?
Теперь, когда у нас так много вариантов, если бы вы могли выбрать любую из этих технологий для проекта, что бы вы выбрали и почему?