Если кто-то начинал с платформой.NET, с чего должен запуститься самый выполнимый шаблон? И выполнимым я имею в виду то, которое имеет самую низкую кривую обучения и самые высокие усиления.
Запустите с:
Я не хочу фокусироваться слишком много в один конкретный домен в данный момент, вместо этого изучать всего понемногу в Платформе.NET 4.0. В котором порядке было бы лучше изучить.NET?
Консольные приложения, очевидно, являются отправной точкой: пользовательский интерфейс - это огромный лес, и нет смысла пытаться пройти через него, пока вы не выработаете способность находить тропы в дикой местности. Кроме того, нет ничего такого, чему бы вы не научились, делая консольные приложения, и что не было бы применимо во всем остальном, что вы делаете на C#.
Следующий шаг после этого - научиться создавать пользовательские интерфейсы. Я бы не согласился с теми, кто советует изучать WinForms: Да, есть много информации о том, как его использовать, есть много инструментов, и в самом простом виде он довольно прост для понимания. Но есть две проблемы с WinForms.
Во-первых, многие вещи, которые WinForms делает такими простыми, на самом деле являются чрезвычайно плохой практикой программирования. Смешивание бизнес-логики и логики представления в одном классе является нормой в программировании WinForms, и требуется немало усилий, чтобы избавиться от этой привычки, тем более что связывание данных - ключевой инструмент для отделения модели данных от представления - в WinForms довольно незначительно, в то время как в архитектуре WPF оно занимает центральное место. В WPF нужно еще многому научиться - гораздо больше - но в итоге вы пишете гораздо более качественные программы.
Во-вторых, WinForms приближается к концу своей жизни. Вы не увидите, чтобы Microsoft вкладывала больше ресурсов в его улучшение. Они закончили. Это не означает, что он не будет полезен в будущем - он полезен, но его общее проникновение в экосистему разработки программного обеспечения сейчас настолько велико, насколько оно когда-либо будет.
Еще одна причина выбрать WPF заключается в том, что большая часть того, чему вы научитесь, работая с WPF, применима и к Silverlight, что открывает дверь, которая навсегда останется закрытой для WinForms.
Что касается ASP.NET, то это то, что не стоит изучать до тех пор, пока это не понадобится.
«Под лучшим я подразумеваю тот, у которого самая низкая кривая обучения и самый высокий результат.Я не хочу сейчас слишком концентрироваться на одной конкретной области, вместо этого выучите все понемногу в .NET Framework 4.0 »
. Если вы какое-то время программировали на .NET, то знаете, что два вышеупомянутых предложения - это оксюморон, если я когда-либо видел один LOL.
В прошлый раз, когда я проверял, что .NET содержит: Сборки y = 15,1x + 17,3 108
Пространство имен y = 51,6x + 51361
Типы y = 2249,3x + 626,9 14123
Члены y = 21343x + 7951,3 136009
Так что даже если вы программирование на .NET в течение некоторого времени вы вряд ли коснетесь поверхности! Вы даже не упомянули, хорошо ли вы владеете C #, но если нет, вы можете прочитать бесплатную электронную книгу Petzold, чтобы быстро освоиться, поскольку это язык, наиболее используемый для программирования Silverlight, ASP, WinForms. Если вам нравится командная строка, я предлагаю книгу "Head First C #" , которая даст вам легкое введение в C # и то, на что способен .NET.
Для самых первых шагов я бы порекомендовал приложения командной строки.
Для всего остального используйте приложения WinForm. Они имеют широкий охват в Интернете, в руководствах и т. Д., И предлагают широкий спектр проблем и решений, охватывающих базовые и расширенные функции C #.
ASP.NET, Silverlight и WPF являются дальнейшими расширениями этих основ (Console и Winforms), которые фактически добавляют еще один набор библиотек фреймворка. Это глазурь пирога, к которой вы можете обратиться, когда овладеете основами.
Не поймите меня неправильно, вы также можете изучить основы приложений Silverlight или WPF. Но WinForm известен почти всем, кто когда-либо разрабатывал на C #, поэтому у вас гораздо больше шансов найти хорошие ответы на сложные проблемы, с которыми вы можете столкнуться в Интернете (на SO или где-либо еще). Здесь есть много людей, гораздо более знающих, чем я, которые могут помочь вам изучить всю глубину .NET framework
. После того, как вы освоите эти части, не стесняйтесь исследовать новую территорию - и скоро вы будете тем, кто ответьте на мои вопросы по WPF, о которых я ничего не знаю; -)
Вот моя оценка, основанная на указанных вами критериях:
Командная строка очень быстра в освоении, но вы не можете делать ничего, кроме печати текста, поэтому после игры с несколькими простыми программами вы быстро захотите двигаться дальше.
WPF/Silverlight - второй по простоте после командной строки, если вы начнете с нескольких примеров, использующих DataTemplates и ItemsControl. Когда вы освоитесь с ними, можно сосредоточиться на изучении тонкостей C# и библиотек базовых классов NET Framework, или изучить графические элементы WPF.
WinForms следует избегать, потому что его сложнее понять, чем WPF/Silverlight: в WPF/Silverlight вы создаете объекты данных, а затем рисуете представление, которое их отображает, плюс WPF/Silverlight обрабатывает все позиционирование и компоновку. В WinForms вам приходится вручную передавать данные туда и обратно между объектами данных и объектами пользовательского интерфейса, а также явно позиционировать все. Другим недостатком WinForms является то, что он быстро устаревает, и он заставляет вас использовать некоторые очень плохие методы программирования.
Без сомнения, ASP.NET имеет самую высокую кривую обучения из всех перечисленных вами технологий, и я бы сделал все возможное, чтобы держаться от нее как можно дольше!
Когда вы будете готовы перейти от командной строки (а это произойдет, вероятно, в течение недели), не будет иметь большого значения, возьмете ли вы WPF или Silverlight. WPF немного легче развернуть, и навыки хорошо передаются, поэтому я бы, вероятно, начал с него.
Начните с создания простого WPF-приложения, которое имеет одно окно с кнопкой, ListBox и TextBox или двумя. Создайте свойства в вашем UserControl и свяжите их. Затем начните играть. Существует множество руководств, которые помогут вам начать работу. Я считаю книгу Адама Натана "WPF Unleashed" фантастическим ресурсом для начинающих.
Приобретите копию Expression Blend, если сможете. Есть 30-дневная пробная версия, которую можно загрузить. Она очень полезна для игры с аспектами пользовательского интерфейса WPF и изучения того, как они работают, особенно ресурсы, шаблоны и анимация.
И последний совет: если вам попадется книга или блог, содержащий такой код, бегите со всех ног:
for(int i=0; i<10; i++)
{
Button b = new Button();
...
panel.Add(b);
}
(если, конечно, автор не использует такой код только для того, чтобы показать вам, что НЕ нужно делать)
.Командная строка, вероятно, самая простая, поскольку вы можете игнорировать сообщения и подобные вещи, но вы, конечно, очень ограничены. Следующим будет WinForms, который довольно прост, поскольку вы можете легко отслеживать состояние.
Но это, вероятно, зависит от вашего текущего опыта, если у вас уже есть некоторый опыт работы в Интернете, WebForms может иметь для вас больше смысла, чем, например, WinForms
.У вас есть приложение, которое вам нужно или вы хотите разработать?
Если есть, попробуйте определить его в деталях, и тогда у вас будет набор целей, которые вам нужно достичь.
Как только вы достигнете этих целей, вы сможете определить лучшую технологию, которая решит проблему.
Например, если у вас довольно статичный пользовательский интерфейс, WinForms, вероятно, подойдет, но если вы хотите включить анимацию и другие визуальные эффекты, вам следует обратить внимание на WPF / Silverlight.
Запустить с приложениями командной строки / консоли
.
почему?
Самым первым делом является реализация ваших объектно-ориентированных концепций, которые являются основой, но не вдаваясь в сложности веб-приложений / приложений / служб Windows или чего-либо еще.
Программирование с использованием шаблона Консольного приложения
избавит вас от ненужных сложностей и позволит сосредоточиться на внутренней работе фреймворка и функции.
Когда закончите с этим и изучите функции / библиотеки, например, say System.Collections и т. Д., Вам следует выбрать из обширных областей разработки, исходя из ваших интересов и предыдущего опыта разработки.
i-e Разработка веб-приложений / Разработка настольных компьютеров или что-то еще.
Это поможет вам решить, какую технологию изучать дальше, в соответствии с вашими интересами. Например, если вас интересует разработка веб-приложений, вы можете использовать Asp.Net WebForms / Asp.Net MVC
и т. Д., И вам не нужно тратить время на Windows Forms или WPF
, надеюсь, это помогает
Если бы я учил кого-то нового (совсем новичка в программировании), то я бы начал с консольных приложений. Это даст вам возможность обучить основным концепциям ОО-программирования без дополнительных сложностей разработки графических интерфейсов или потенциальных сложностей жизненного цикла страницы ASP.Net.
Затем я бы перешел к разработке WinForms и работе над событийно-управляемым программированием и GUI.
Какие среды программирования вы уже знаете?
Я бы начал со стандартного приложения Windows (winforms), поскольку вы можете легко перетаскивать визуальные компоненты в окно и довольно быстро и легко создавать некоторую интерактивность.
Хотя большинство проектов можно легко создать и запустить сразу, веб-приложения требуют немного больше инфраструктуры и знаний о сети.
Я бы рекомендовал создавать простые программы командной строки, чтобы почувствовать язык + .NET framework. Однако это может быть немного неудовлетворительным в мире, где все зависит от пользовательского интерфейса. Многие технологии, основанные на пользовательском интерфейсе, познакомят вас с концепцией интеграции с внешним фреймворком, что само по себе является ключевым опытом. Часто это очень полезно, поскольку кто-то другой проделал тяжелую работу, а вы можете просто получать удовольствие.
Лично я бы рекомендовал ASP.NET в последнюю очередь - он просто немного странный, и вы выработаете плохие привычки.
Исходя из этой рекомендации, я бы рекомендовал WinForms в последнюю очередь, он научит вас больше о событиях и взаимодействии пользовательского интерфейса, но в нем все еще нет строгой модели кодирования. В первые дни своей работы я написал несколько шокирующих WinForms-кодов. У вас много возможностей, но мало руководства.
Я видел несколько хороших работ с WPF, но для этого нужно много читать. Для начала, по крайней мере, вы можете создавать продвинутые проекты с небольшим количеством кода - меньше возможностей ошибиться, и вы можете в это вникнуть.
Моя первая рекомендация по пользовательскому интерфейсу после игры с консольным приложением - это фреймворк ASP.NET MVC. Он прост в написании, имеет достаточно строгий шаблон проектирования, так что вы не ошибетесь и сможете создать довольно хороший сайт за относительно небольшое время. Лично я освоил его очень быстро по сравнению с другими технологиями, но при этом обнаружил, что расширяемость позволяет поддерживать интерес.