Ответ 1
Узнайте, как работают язык С# и среда выполнения .NET, читая CLR через С#.
У меня есть опыт более 5 лет в разработке С++/Unix. Я уже давно пытаюсь использовать С#/. Разработка программного обеспечения на базе Net/WPF. Я нахожусь на том этапе, где я могу свободно писать функциональные приложения, но не уверен, как перенести свои навыки на следующий уровень.
Итак, мой вопрос вам всем, особенно тем, кто знаком с С#/. Net/WPF:
Каковы навыки и знания компонентов, которые должен иметь эксперт-разработчик на этой платформе?
Какие конкретные технологии вы могли бы ожидать, чтобы потенциальный эксперт прочитал?
Какие еще намеренные шаги я могу предпринять, чтобы стать действительно хорошими в разработке приложений, используя С#/. Net/WPF?
Большое спасибо заранее! Я был бы особенно благодарен за всеобъемлющие ответы - я уверен, что у многих других разработчиков есть схожие вопросы.
Узнайте, как работают язык С# и среда выполнения .NET, читая CLR через С#.
Статья Скотта Гензельмана, Что должны знать большие разработчики .NET, является отличным ресурсом по этому вопросу.
Моя команда работала в С# в течение последних 5 лет. Как правило, опытные программисты C++ тратят неделю или две, чтобы стать полностью функциональными в С#. Я даже видел, как некоторые делают это почти мгновенно, посидев с ними однажды утром, показав им наш код и объяснив основы языка, которые отличаются от C++. Но я не рекомендую тебе это делать.
Я рекомендую вам сделать это:
Прочитайте книгу С#: Мой выбор будет Программирование С# Джесси Либерти. Важными главами являются сам язык и основы библиотек .NET Framework. Платформа .NET Framework огромна, поэтому вам не нужно знать все подробно. Вы можете пропустить (или просмотреть) главы Windows Forms. Windows Forms настолько отличается от WPF, что он не будет вам полезен, если вы планируете делать только WPF.
(источник: amazon.com)
Прочитайте книгу WPF. Лучшая книга, которую я читал на данный момент, - это Windows Presentation Foundation, выпущенная Адамом Натаном. У WPF крутая кривая обучения по сравнению с Windows Forms, даже для опытных программистов на С#/WinForms. В нем много сложных элементов для понимания, таких как XAML, свойства зависимостей, привязки, шаблоны, анимация, ресурсы и т.д. Эта книга постепенно обучает вас основам, ее легко читать и понимать. И это в полном цвете!
Прочитайте о модели Model-View-ViewModel: я еще не нашел хорошую книгу по этому вопросу, но для меня было очень важно сделать мои приложения WPF более простыми и управляемыми. Мой любимый материал для изучения MVVM - это часовая презентация Джейсона Долингера. Он создает приложение WPF с нуля, не используя конкретный шаблон, и шаг за шагом переносит его в шаблон MVVM.
Также посмотрите на этот вопрос Stackoverflow: Вопросы, на которые должен отвечать каждый разработчик .NET.
Для WPF в частности (и возможности привязки WPF) мне нравится M-V-VM: http://karlshifflett.wordpress.com/
Удостоверьтесь, что вы узнаете, как использовать и использовать Injection/Inversion of Control в приложениях. Другими важными компонентами программного обеспечения, которые вы можете включить в свою разработку, являются Microsoft Enterprise Library и Windows Communication Foundation. Эти 2 инструмента предлагают потрясающее количество рычагов, чтобы избежать необходимости воссоздавать колесо для решения проблем.
Другими действительно хорошими пакетами для ознакомления являются NHibernate и Fluent NHibernate.
Windows Workflow Foundation - очень мощная часть программного обеспечения, однако уровень сложности высок, это было бы еще одним отличным дополнением к возможностям вашего базового времени.
Я хотел бы добавить модульное тестирование, TDD и макеты в ваш список вещей, которые нужно знать.
У меня есть "Искусство модульного тестирования", и оно мне показалось полезным.
Мне действительно нравится WPF в действии и программировании. Компоненты .NET очень важны для любого разработчика .NET.