Автор Ёлава Алексейчик задал вопрос в разделе Другие языки и технологии
посоветуйте пожалуйста книги по разработке виндовс приложений на C# и и получил лучший ответ
Ответ от Александр Свиридов[гуру]
Трэй Нэш "C# 2008 Ускоренный курс для профессионалов".
Джефри Рихтер "CLR via C#".
И что-нибудь по LINQ.
Честно говоря я ожидал от книг по C# большего, они объясняют как работает C# но не ответят на вопрос как вам написать своё приложение.
Базы данных - отдельная дремучая тема. Удобнее всего работать с ними применяя ORM вроде Linq to SQL или entity Framework, или NHibernate.
Разновидностей ORM можно сказать две. Первая unit of work, вторая active record.
1) UoW. Вся работа с базой происходит в пределах единицы работы. Происходящие изменения в базе данных сохраняются в самом конце. Представьте что вы загрузили в базу 500 000 документов. Вся эта работа происходит в оперативной памяти, и в самом конце вы пишете SubmitChanges или SaveChanges. Здесь UoW фреймворк от MS начинает вливать в базу все строки, и вариантов развития сюжета два. Происходит сбой, либо сбоя нет.
2) Active Record. Работает предельно приближенно к мышлению человека. Вы пишете команду, она тут же выполняется над базой данных. Но увы, Microsoft такое не проталкивает. И хороших качественных редакторов по созданию подобных привязок кода к базе данных не существует. Active Record реализован в NHibernate, а тот в свою очередь сложен и вряд ли новичок извлечёт из него пользу.
Так как в UoW все операции выполняются отложенно, вы не можете использовать хранимые процедуры для изменения данных. И хотя хранимые процедуры здорово повышают производительность, это противоречит идеологии Microsoft. Кто знает, вероятно LINQ в целом плохая технология. И служит только для привлечения клиентов (?).
Для Active record такой проблемы нет.
Однако, все ORM лишь адаптируются под базы данных. Если вы используете ADO . NET то у вас полно вариантов реализовать задачу. ORM стесняет разработчика до объектной модели. Есть существенные сложности использования триггеров.
Ещё момент. Вы решили удалить 500 строк. Сперва извлекаете 500 объектов потом удаляете их. Итого будет выполнено 1+500 запросов (извлечение, затем каждый по отдельности удаляем) . На голом АДО получаем 1 запрос. И ещё учтите особенности LINQ и его "деревьев выражений". Они постоянно компилируются, и на 2-х ядерном Core2Duo E6750 98% времени занимает именно компиляция запросов. На скорости сказывается фатально. Не более 80 запросов / сек при 100% загрузке процессора. Тогда как голый ADO . NET даёт 2800 запросов/сек где 2% занимает работа самого ADO. В NHibernate применение LINQ не обязательно так как там есть свой язык запросов. В стороннем фреймворке BL-Toolkit оптимизацией была решена проблема перегузки при компиляции деревьев. Однако без ORM всё будет выглядеть довольно не красиво. Вот такие дела. LINQ конечно сахар, но им легко отравить свою программу.
ещё есть вариант связи программы с SQL - привязки на уровне ADO . NET, там будет без объектной идеологии. Но про это рассказать не могу так как не использовал. Фактически это те же способы которые применяют в Delphi при работе с Firebird. Они ORM не любят.
Начать с основ C#, читать, например, Шилдта (я предпочитаю его справочники и руководства - не фонтан, но для начала ничего) . Троелсона ещё рекомендуют (сам не читал) . Там будет в основном про консольные приложения, возможно немного про окошки. Окошки в C# бывают разные: Windows Forms и WPF. По Windows Forms мне понравилась книга Erik Brown "Windows Froms programming with C#", книга старая, видел её только на английском, но лучшая из того чем я пользовался. По WPF (Windows Presentation Foundation) особо и выбора нет: либо Петцольд, либо Мак-Дональд. Читать, пожалуй, стоит обе, они немного по разному освещают технологию.
По базам данных ничего и не посоветую - сам не знаю. Думаю надо искать что-то по ADO.NET, Entity Framework, хотя могу ошибаться.
Что такое Windows 7?
Windows 7 — версия компьютерной операционной системы семейства Windows NT, следующая за Windows
подробнее...
Чем отличается Windows XP sp1, sp2,sp3. Мне что-то кажется sp3 хуже, чем sp2? какую винду из этих лучше установить?
Это разные версии одной и той же системы ...
Можно поставить Windows XP sp1 и затем ее
подробнее...
Что лучше, Android или Windows Mobile? Обаснуйте ваш ответ
Насколько я читал, в Windows Mobile 7 вообще невозможно закачать любые файлы на телефон - только
подробнее...
Windows RT Кто пробовал установить обычные приложения windows на windows RT (Планшетная версия). Можно установить?
Нет нельзя, кто то пытался делать эмуляторы, но они были настолько кривые, что разработку
подробнее...
wxDev-Cpp компилятор C\\C++
wxDev-Cpp - дальнейшее развитие проекта Dev-Cpp, который больше не развивается. Об этом сказано на
подробнее...
Что такое Adobe AIR, что он делает и вообще зачем нужен?
Adobe AIR - это средство для разработки интерактивных приложений от Adobe. К особенностям можно
подробнее...
Раскажите пожалуйсто историю языка програмирования делфи.
(язык программирования)
[править]
Материал из Википедии — свободной энциклопедии
Перейти
подробнее...
microsoft.net framework, Зачем это надо, и что будет, если я удалю это с компа???
.NET Framework — программная технология от компании Microsoft, предназначенная для создания обычных
подробнее...
Помогите найти сайт!! ! Сайт программирование для начинающих, самых начинающих!!
На данное время разработано более 8500 различных компьютерных языков, разной сложности и
подробнее...
Для чего используются языки программирования JAVA и PHP?
Java – это слово довольно прочно вошло в наш обиход. В первую очередь оно хорошо известно
подробнее...
Примеры систем ( не языков, а систем) программирования?
Система программирования — это система для разработки новых программ на конкретном языке
подробнее...
microsoft .net framework 2.0 что это и для чего, устанавливаю игру запрашивает восстановить, удалить microsoft .net fram
NET Framework — программная технология от компании Microsoft, предназначенная для создания обычных
подробнее...
Хочу научиться программировать. С какого языка программирования лучше начать?
На данное время разработано более 8500 различных компьютерных языков, разной сложности и
подробнее...
Что такое веб-платформа?
Существенное преимущество построения Web приложений для поддержки стандартных функций браузера
подробнее...
Что лучше ASP.NET или PHP?
ASP .NET — технология создания веб-приложений и веб-сервисов от компании Майкрософт. Она является
подробнее...