Я новичок в .NET - на чем я должен сосредоточиться и что я должен игнорировать? - PullRequest
19 голосов
/ 23 декабря 2008

Итак, у меня был достаточный опыт программирования веб-приложений на основе баз данных с использованием php и coldfusion (не вместе, в разное время), и я начинаю изучать мир asp.net (у меня есть проект на работе это все asp.net/c#.)

У меня такой вопрос: кажется, что много вещей, которые нужно поглотить, и если я просто делаю веб-приложения (в основном, вещи типа CRUD - без изнурительной логики), что темы, на которых я должен сосредоточиться? Я просто не хочу идти по кроличьей тропе, чтобы потом что-то выяснить, что это не слишком часто используется сообществом разработчиков. Читая некоторые книги (шаг за шагом ASP.net 3.5 и раскрытие ASP.net 3.5), я нахожу область, где тема будет объяснена, но в конце главы будет сказано: «Это классно, но не для использовать в многоуровневых приложениях ... "

Темы, на которые я смотрел до сих пор (которые, похоже, сильно отличаются от приложений, к которым я привык):

  • Мастер-страницы
  • DataBinding
  • Linq to SQL
  • ASP.NET MVC
  • Шаблоны и выражения привязки данных
  • asp.net контролирует

Я знаю, что это может быть широкий вопрос, но, похоже, это широкая тема.

Ответы [ 8 ]

22 голосов
/ 23 декабря 2008

Хороший вопрос! Я предполагаю, что вы можете выбрать синтаксис C # по ходу работы, поэтому я сосредоточусь на общей картине.

Чтобы начать работу с приложением WebForms, вы должны понять жизненный цикл страницы и жизненный цикл приложения. Это ваш первый приоритет. Модель, используемая в ASP.NET, основана на программировании на основе форм Windows, и это влияет на то, как вы думаете обо всем процессе производства программного обеспечения. Теперь я предполагаю, что вы будете создавать приложение WebForms, потому что технология WebForms (в ASP.NET) более развита, имеет лучшую стороннюю поддержку и имеет гораздо больше документации. Если вы склонны к MVC, просто имейте в виду, что хорошим дизайном будет один или другой - MVC не является частью WebForms, это альтернатива ему.

Далее у вас есть некоторые решения. Будете ли вы использовать стандартные инструменты доступа к данным (например, SQLClient), использовать свой собственный уровень доступа к данным (или использовать DAL) или использовать linq to SQL? Я говорю «решения», потому что все в команде должны быть вместе в этом. Я искренне рекомендую создать DAL, так как вы можете оптимизировать его для своих нужд. Линк тоже хорош, но на горизонте есть зловещих облаков . Координируйте, решайте и оставайтесь с этим.

Хотя это и не обязательно, вам следует серьезно подумать о создании вашей бизнес-логики в отдельной библиотеке классов (DLL). Visual Studio / ASP.NET позволяет легко создать собственную библиотеку классов и встроить ее в свое решение. Узнайте, как это сделать, и вы станете лучшим разработчиком в течение многих лет. Люди обычно спорят об этом на том основании, что это защитит ваш интерфейс от доступа к данным. Хотя это и правда, на самом деле это не является преимуществом - преимущество приходит в будущее, когда вы готовы учиться и проводить модульное тестирование. Просто начните с предположения, что вы отделите пользовательский интерфейс от логики и поблагодарите меня в будущем.

На этом этапе вы можете (A) создавать веб-страницы и (B) отображать в них динамический контент на основе базы данных. Убедитесь, что вы освоили объекты GridView и ObjectDataSource, используемые для их заполнения. Примечание: ObjectDataSource - это то, что переносит данные из вашей библиотеки бизнес-классов в ваш пользовательский интерфейс. Если вы не используете бизнес-уровень, вы будете использовать объекты SQLDataSource или LinqDataSource для доступа к вашим данным непосредственно из пользовательского интерфейса.

Пока не выбирайте свою архитектуру!

Теперь вам нужно решить, хотите ли вы использовать компоненты Microsoft WebParts, Login и Navigation. Они привязывают вас к определенному подходу к навигации по сайту, пользовательскому интерфейсу и т. Д., Но при необходимости могут сэкономить массу времени.

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

Наконец, каждый профессиональный разработчик ASP.NET должен получить свой собственный класс страницы (например, «MyPageClass»), чтобы он мог инкапсулировать общие действия на уровне страницы. Например, я построил объект управления сеансом, чтобы я мог обращаться ко всем часто используемым переменным сеанса безопасным для типов образом. Производный класс страницы отвечает за предоставление экземпляра sessionObj, чтобы каждая страница могла получить к нему доступ без какой-либо дополнительной работы.

Теперь вы готовы начать создание веб-приложения корпоративного класса!

15 голосов
/ 23 декабря 2008

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

4 голосов
/ 23 декабря 2008

Я бы сказал, что ваш список - довольно хорошее начало. Кроме того, если вы в основном создаете приложения для работы с таблицами, я бы посмотрел примеры приложений «Динамические данные» в VS2008 SP1, которые используют REST. Я хотел бы держаться подальше от модели WebForms и использовать ASP.Net MVC. Это лучше для тестирования и четко отделяет бизнес-логику от пользовательского интерфейса. Кроме того, Linq-to-Sql - очень мощный инструмент, когда вы знаете, что его ограничения.

Я бы начал с создания образца, используя ASP.Net MVC и linq-to-sql, чтобы ваши ноги промокли. Начать довольно легко, и не нужно много времени, чтобы выучить достаточно основ, чтобы сделать его полезным.

Лучший способ учиться - это делать.

Что касается «Что я должен игнорировать?»: .Net Remoting и Web Services. Это было заменено гораздо более мощным фреймворком под названием WCF.

2 голосов
/ 23 декабря 2008

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

Удачи !!

0 голосов
/ 17 января 2009

Если ваши сайты будут сильно загружены CRUD, взгляните на Динамические данные .

Если у вас уже достаточно знаний о других платформах, я бы также посмотрел на такие вещи, как состояние представления / управления и как они работают.

Вы можете повторно использовать большинство своих знаний из других платформ html / javascript. Мастер-страницы - это то, что нужно знать, и что происходит с жизненным циклом страницы при их использовании.

ORM / SQL-инъекция / фильтрация ввода - это то, что вы также должны знать наизусть.

Если вы использовали фреймворки MVC в прошлом, тогда переходите на MS MVC, если нет, то, возможно, вы захотите подождать с ними, прежде чем приступить к работе.

0 голосов
/ 23 декабря 2008

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

0 голосов
/ 23 декабря 2008

Сначала я бы начал с основ. В ASP.NET 2.0 и 3.5 есть много мощных элементов управления и «виджетов», особенно с элементами управления AJAX, но мне показалось странным пытаться разобраться во всех этих элементах, не понимая, как вы сказали ». базовые веб-страницы CRUD »в ASP.NET - это то, к чему большинство реальных проектов все равно придет.

Большинство проблем и трудностей, связанных с обнаружением ошибок, с которыми мне приходилось сталкиваться в веб-программировании на .NET, сводились к тому, что я не полностью понимал основы ASP.NET, такие как PostBack, ViewState, Refresh и ASP.NET привязка данных ( базовый метод с ручным кодированием, а не причудливые элементы сетки без кода в 2.0) - как только вы поймете, что эти элементы, главные страницы, темы и материалы AJAX довольно просты.

Я бы порекомендовал Wrox Press ASP.NET 2.0 или Professional C # 2008

0 голосов
/ 23 декабря 2008
  1. Исследование C # сначала
  2. Выберите объектно-ориентированный подход CRUD: на выбор предлагается Entity Framework (выбор Microsoft предложил), Linq2SQL, Nhibernate (мое личное предложение).
  3. ASP.Net MVC + объекты Nunit + JQuery + JSon.
    Я также посмотрел бы на WCF, поскольку это становится все более и более важным.

Две хорошие отправные точки для общей архитектуры для веб-приложений и начального проекта:

...