Начиная с .NET - ASP.NET, WPF, Silverlight или командной строки C #? - PullRequest
8 голосов
/ 20 июня 2010

Если кто-то начинал с .NET Framework, какой шаблон наиболее подходит для запуска?И под выполнимым я имею в виду тот, который имеет самую низкую кривую обучения и самый высокий коэффициент усиления.

Начните с:

  • Приложения командной строки в C #?
  • Webприложения, использующие ASP.NET?
  • приложения Silverlight в XAML / C #?
  • WPF / Winforms Настольные приложения?

Я не хочу уделять слишком много вниманияодин конкретный домен на данный момент, вместо этого изучите немного всего в .NET Framework 4.0.В каком порядке лучше изучать .NET?

Ответы [ 10 ]

12 голосов
/ 20 июня 2010

Консольные приложения, очевидно, являются отправной точкой: пользовательский интерфейс - это огромный лес, и нет смысла пытаться пройти через него, пока вы не разовьете способность находить тропы в пустыне. Кроме того, вы не научитесь делать консольные приложения, которые не применимы ко всему, что вы делаете в C #.

Следующий шаг после этого - научиться создавать пользовательские интерфейсы. Я бы поспорил с теми, кто предлагает вам взять WinForms: да, есть много информации о том, как его использовать, и есть много инструментов, и в самом простом его довольно легко понять. Но есть две проблемы с WinForms.

Во-первых, многое из того, что делает WinForms настолько простым, на самом деле является крайне плохой практикой программирования. Смешивание бизнес-логики и логики представления в одном классе является нормой в программировании WinForms, и для преодоления этой привычки требуется немало усилий, особенно потому, что привязка данных - ключевой инструмент для отделения модели данных от представления - довольно незначительна в WinForms, хотя это центральное место в архитектуре WPF. С WPF можно многому научиться - еще много , но в итоге вы пишете гораздо лучшие программы.

Во-вторых, WinForms приближается к концу своей жизни. Вы не увидите, чтобы Microsoft потратила больше ресурсов на его улучшение. Они сделали. Вряд ли это означает, что он не будет полезен в будущем - так оно и есть - но его общее проникновение в экосистему разработки программного обеспечения сейчас настолько велико, насколько это когда-либо будет.

Другая причина использования WPF заключается в том, что большая часть того, что вы узнали о работе с WPF, применима и к Silverlight, который открывает дверь, которая навсегда закрыта для WinForms.

Что касается ASP.NET, то это то, что вы не хотите изучать, пока вам не понадобится.

3 голосов
/ 20 июня 2010

Командная строка, вероятно, очень проста, поскольку вы можете игнорировать сообщения и подобные вещи, но вы, конечно, очень ограничены. Следующим будет WinForms, что довольно просто, так как вы можете легко отслеживать состояние.

Но это, вероятно, зависит от вашего текущего опыта, если у вас уже есть опыт работы с Интернетом, WebForms может иметь для вас больше смысла, чем WinForms, например

2 голосов
/ 20 июня 2010

Начните с command line / console приложений.

почему?

Самое первое, это реализация ваших объектно-ориентированных концепций, которые являются основой, но не вдаваясь в сложности веб-приложений / приложений / сервисов Windows или чего-либо еще.

Программирование с использованием шаблона Console application избавит вас от ненужных сложностей, и вы сможете сосредоточиться на внутренней работе фреймворка и функции.

Когда вы закончите с этим и изучите функции / библиотеки, такие как, скажем, System.Collections и т. Д., Вам следует выбирать из огромных областей разработки на основе ваших интересов и предыдущего опыта разработки ,

i-e Разработка веб-приложений / Разработка рабочего стола или другое.

Это поможет вам решить, какую технологию дальше изучать, в соответствии с вашими интересами. Например, если вы заинтересованы в разработке веб-приложений, вы можете выбрать Asp.Net WebForms / Asp.Net MVC и т. Д., И вам не нужно тратить время на Windows Forms or WPF

надеюсь, это поможет

2 голосов
/ 20 июня 2010

У вас есть приложение, которое вам нужно или вы хотели бы разработать?

Если у вас есть, попробуйте определить его более подробно, и тогда у вас будет набор целей, которые вам нужно достичь.

Как только вы достигнете этих целей, вы сможете определить, какая из лучших технологий решит проблему.

Например, если у вас достаточно статичный пользовательский интерфейс, WinForms, вероятно, будут в порядке, но если выхотите включить анимацию и другие визуальные эффекты, которые вы должны смотреть на WPF / Silverlight.

1 голос
/ 20 июня 2010

"И под лучшим я подразумеваю тот, у которого самая низкая кривая обучения и самый высокий выигрыш. Я не хочу сейчас уделять слишком много внимания одной конкретной области, вместо этого изучите немного всего в .NET Framework 4.0. "

Если вы программировали в .NET какое-то время, вы знаете, что приведенные выше 2 предложения - это оксюморон, если я когда-либо видел один LOL.

Последний раз, когда я проверял .NET, он содержал: Сборки у = 15,1х + 17,3 108

Пространство имен y = 51,6x + 51 361

Типы y = 2249,3x + 626,9 14123

Члены y = 21343x + 7951,3 136009

Так что, даже если вы некоторое время программировали на .NET, вы едва поцарапаете поверхность! Вы даже не упомянули, были ли вы опытными в C #, но если нет, то вы можете прочитать бесплатную электронную книгу Petzold, чтобы освоиться, так как этот язык наиболее часто используется для программирования Silverlight, ASP, WinForms. Если вам нравится командная строка, то я предлагаю книгу "Head First C #" , которая даст вам краткое введение в C # и на что способен .NET.

1 голос
/ 20 июня 2010

Какие среды программирования вы уже знаете?

Я бы начал со стандартного приложения Windows (winforms), поскольку вы можете легко перетаскивать визуальные компоненты в окно и создавать некоторую интерактивность довольно быстро и легко..

Хотя большинство проектов можно легко создавать и запускать сразу, веб-приложения требуют немного большей инфраструктуры и знаний о сети.

1 голос
/ 20 июня 2010

Если бы я учил кого-то новому (совершенно новому для программирования), я бы начал с консольных приложений.Это дало бы вам возможность преподавать базовые концепции ОО-программирования без дополнительных сложностей разработки графического интерфейса или потенциальных сложностей жизненного цикла страницы ASP.Net.

Затем я перешел бы к разработке WinForms и работал бы на основе событийпрограммирование и графический интерфейс.

0 голосов
/ 24 июня 2010

Я бы порекомендовал создавать простые программы командной строки, чтобы почувствовать язык + .NET Framework. Однако это может быть немного неудовлетворительным в мире пользовательского интерфейса. Многие технологии на основе пользовательского интерфейса познакомят вас с концепцией интеграции с внешней средой, которая сама по себе является ключевым опытом. Часто это очень полезно, потому что кто-то другой сделал тяжелую работу, и вы можете просто повеселиться.

Лично я бы порекомендовал ASP.NET в последнюю очередь - это немного странно, и у вас будут развиваться вредные привычки.

Исходя из этой рекомендации, я бы порекомендовал WinForms в будущем, он расскажет вам больше о событиях и взаимодействии с пользовательским интерфейсом, но строгого шаблона кодирования все еще нет. В первые годы я написал несколько шокирующих кодов WinForms. У тебя много силы, но мало руководства.

Я видел хорошую работу с WPF, но она требует много чтения заранее. По крайней мере, в качестве отправной точки вы, как правило, можете сделать несколько продвинутых проектов с небольшим количеством кода - в этом нет ничего плохого, и вы можете превратиться в него.

Моей первой рекомендацией для пользовательского интерфейса после игры с консольным приложением будет ASP.NET MVC framework. Его легко кодировать, он имеет достаточно строгий шаблон дизайна, поэтому вы не ошибетесь, и вы сможете создать неплохой сайт за относительно небольшое время. Лично я поднял его очень быстро по сравнению с другими технологиями, но нашел точки расширяемости отличными, чтобы заинтересовать меня.

0 голосов
/ 20 июня 2010

Вот моя оценка, основанная на указанных вами критериях:

  • Командную строку очень быстро выучить, но вы ничего не можете сделать, кроме как печатать текст, поэтому после игры снесколько простых программ, которые вы быстро захотите продолжить.

  • WPF / Silverlight является вторым по простоте после командной строки, если вы начнете с работы с несколькими примерами, которые используютDataTemplates и ItemsControl.Как только вы освоитесь с ними, вы можете сосредоточиться на изучении тонкостей C # и библиотек базовых классов NET Framework или же изучить графические элементы WPF.

  • Следует избегать WinFormsпотому что это сложнее понять, чем WPF / Silverlight: в WPF / Silverlight вы создаете свои объекты данных, а затем создаете представление, которое отображает их, плюс WPF / Silverlight обрабатывает все расположение и макет.В WinForms вы должны вручную передавать данные назад и вперед между вашими объектами данных и вашими объектами пользовательского интерфейса, и вы должны явно размещать все.Другие удары по WinForms заключаются в том, что он быстро устареет и вынуждает вас к очень плохим практикам программирования.

  • Без сомнения, ASP.NET обладает самой высокой кривой обучения среди всех технологий.вы перечислите, и я сделаю все возможное, чтобы держаться подальше от него как можно дольше!

Когда вы будете готовы выйти из командной строки (что, вероятно, будет в течение недели),это не имеет большого значения, выбираете ли вы WPF или Silverlight.WPF немного проще в развертывании, и навыки хорошо переносятся, поэтому я, вероятно, начну с него.

Начните с создания простого приложения WPF, которое имеет одно окно с Button, ListBox и TextBox или двумя.,Создайте свойства в вашем UserControl и свяжите их.Тогда начинай играть.Есть много прохождений, которые помогут вам начать.Я считаю, что книга Адама Натана "WPF Unleashed" - фантастический ресурс для начинающих.

Получите копию Expression Blend, если можете.Вы можете скачать 30-дневную пробную версию.Это очень полезно для игры с аспектами пользовательского интерфейса WPF и изучения их работы, особенно с ресурсами, шаблонами и анимацией.

Последний совет: если вы когда-нибудь найдете книгу или блог, содержащий такой код, запуститеза вашу жизнь:

for(int i=0; i<10; i++)
{
  Button b = new Button();
  ...
  panel.Add(b);
}

(Если, конечно, автор использует только такой код, чтобы показать вам, что НЕ делать.)

0 голосов
/ 20 июня 2010

Для самых первых шагов я бы порекомендовал приложения командной строки.

Для всего остального следите за приложениями WinForm. Они широко освещают веб-сайты, посвященные турнирам и т. Д., И предлагают широкий спектр проблем и решений, охватывающих основные и расширенные функции C #.

ASP.NET, Silverlight и WPF являются дополнительными расширениями этих основ (Console и Winforms), которые фактически добавляют еще один набор библиотек инфраструктуры. Это глазурь торта, с которой вы можете справиться, как только освоите основы.

Не поймите меня неправильно, вы также можете изучить основы с приложениями Silverlight или WPF. Но WinForm известен почти каждому, кто когда-либо разрабатывал на C #, поэтому вы с большей вероятностью найдете хорошие ответы на сложные проблемы, с которыми вы можете столкнуться в Интернете (в SO или где-либо еще). Здесь есть много людей, гораздо более знающих, чем я, которые могут помочь вам изучить всю глубину .NET framework

Как только вы освоите эти части, не стесняйтесь исследовать новую территорию - и вскоре вы будете отвечать на мои вопросы о WPF, о которых я ничего не знаю; -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...