.NET Educational Plan Version 1.5 .NET Educational Plan Candidates' for Net Developers Self-education Plan Version: Date: 5 20 August 2011 Revision History Date Version Description Author 14/12/2004 1.0 Initial version Stanislaw V. Cherkasov 14/12/2004 1.1 Official template applied Sergiy O. Movchan 14/12/2004 1.2 Text correcting Stanislaw V. Cherkasov 07/10/2008 1.3 Document Update Denis A. Girenko 10/02/2010 1.4 Actual features Igor S. Yatsula 20/08/2011 1.5 Text correcting and updating references Igor S. Yatsula Public NIX Solutions, Ltd. 2010 Page 2 .NET Educational Plan Candidates' for Net Developers Self-education Plan Version: Date: 5 20 August 2011 Table of Contents 1. АННОТАЦИЯ .................................................................................................................................... 4 2. ТРЕБОВАНИЯ К УРОВНЮ ЗНАНИЙ .............................................................................................. 4 2.1 ЧЁТКОЕ ПОНИМАНИЕ ООП, ООА И ШАБЛОНОВ ПРОЕКТИРОВАНИЯ ............................................................... 4 2.1.1 Основные требования ....................................................................................................................... 4 2.1.2 Рекомендуемая литература и информационнные источники ........................................................... 4 2.2 ПОНИМАНИЕ ПРИНЦИПОВ РАБОТЫ CLR И .NET FRAMEWORK ...................................................................... 4 2.2.1 Основные требования ....................................................................................................................... 4 2.2.2 Рекомендуемая литература и информационнные источники ........................................................... 5 2.3 УМЕНИЕ ПРОГРАММИРОВАТЬ НА C# ............................................................................................................ 5 2.3.1 Основные требования ....................................................................................................................... 5 2.3.2 Рекомендуемая литература и информационнные источники ........................................................... 5 2.4 РАБОТА С БАЗАМИ ДАННЫХ С ПРИМЕНЕНИЕМ СУЩЕСТВУЮЩЕЙ ORM СИСТЕМЫ ........................................... 5 2.4.1 Основные требования ....................................................................................................................... 5 2.4.2 Рекомендуемая литература и информационнные источники ........................................................... 6 2.5 РАЗРАБОТКА WEB-ПРИЛОЖЕНИЙ НА ASP.NET ............................................................................................ 6 2.5.1 Основные требования ....................................................................................................................... 6 2.5.2 Рекомендуемая литература и информационнные источники ........................................................... 6 2.6 РАЗРАБОТКА WEB-ПРИЛОЖЕНИЙ НА ASP.NET MVC ................................................................................... 7 2.6.1 Основные требования ....................................................................................................................... 7 2.6.2 Рекомендуемая литература и информационнные источники ........................................................... 7 2.7 ТЕСТИРОВАНИЕ ПРИЛОЖЕНИЙ ......................................................................................................... 7 2.7.1 Основные требования ....................................................................................................................... 7 2.7.2 Рекомендуемая литература и информационнные источники ........................................................... 7 Public NIX Solutions, Ltd. 2010 Page 3 .NET Educational Plan Candidates' for Net Developers Self-education Plan Version: Date: 5 20 August 2011 План самостоятельного обучения претендентов на должность .NET разработчика 1. Аннотация Данный документ описывает желательные знания, которыми должен обладать претендент на должность .Net разработчика и предлагает рекомендуемую литературу и информационные источники для самостоятельного изучения необходимых тем. Выдвигаемые требования к знаниям определяют уровень для гарантированного приѐма на работу. В том случае, если претендент получит хороший уровень знаний по всем перечисленным темам, он может попасть на оплачиваемое обучение внутри фирмы, с возможностью последующего устройства на работу. Помимо предлагаемой литературы рекомендуется посетить следующие интернет ресурсы, предоставляющие информацию по всем необходимым темам: 1. 2. 3. 4. http://msdn.microsoft.com/ http://rsdn.ru/ http://www.gotdotnet.ru/ http://asp.net/ 2. Требования к уровню знаний 2.1 Чёткое понимание ООП, ООА и шаблонов проектирования Поскольку все языки программирования, применяемые в разработках на .NET Framework являются объектно-ориентированными, каждый .NET разработчик должен иметь ясное представление о принципах объектно-ориентированного программирования и анализа, а также уметь применять их на практике с учѐтом возможностей языков .NET (C# и VB). 2.1.1 Основные требования 1. Понимание основополагающих принципов ООП: абстракции, наследования, инкапсуляции и полиморфизма. Умение использовать эти принципы в языках программирования .NET: C# (обязательно) и VB (желательно) 2. Умение применять объектно-ориентированный анализ при проектировании частей приложений, и, как следствие, умение писать максимально эффективный ОО код 3. Умение разрабатывать приложения с применением шаблонов проектирования 2.1.2 Рекомендуемая литература и информационнные источники 1. Гради Буч: Объектно-ориентированный анализ и проектирование 2. Э. Гамма, Р. Хелм, Р. Джонсон, Д. Влиссидес: Приемы ООП. Паттерны проектирования 3. Microsoft Corporation: Enterprise Solution Patterns Using Microsoft .NET 4. Judith Bishop: C# 3.0 Design Patterns 5. Martin Fowler: Patterns of Enterprise Application Architecture 2.2 Понимание принципов работы CLR и .NET Framework Все .NET приложения выполняются под управлением общеязыковой среды выполнения (CLR – Common Language Runtime). Понимание основных принципов работы CLR и .NET Framework имеет большое значение при разработке .NET приложений. 2.2.1 Основные требования 1. Архитектура .NET Framework 2. Работа со сборками Public NIX Solutions, Ltd. 2010 Page 4 .NET Educational Plan Candidates' for Net Developers Self-education Plan 3. 4. 5. 6. Version: Date: 5 20 August 2011 Работа с типами и управление ими Понимание процесса сбора мусора и работы сборщика мусора (GC – Garbage Collector) Назначение доменов приложений Умение работать с отражениями (reflection) 2.2.2 Рекомендуемая литература и информационнные источники 1. Jeffrey Richter: CLR via C#, Third Edition 2.3 Умение программировать на C# Основным языком разработки приложений на .NET Framework является C#. По этой причине .NET разработчик должен хорошо владеть приѐмами программирования на C#. 2.3.1 Основные требования 1. 2. 3. 4. 5. 6. 7. 8. Умение проектировать классы и структуры, а также умение работать с объектами Умение работать с коллекциями Основы многопоточного программирования Умение работать с делегатами Работа с отражениями Работа с сериализацией и сериализуемыми объектами Применение модели освобождения ресурсов Базовое представление о возможностях C# 2.0: generic-типы, nullable-типы, итераторы, анонимные методы 9. Базовые знания о Framework 3.5: automatic properties, object initializes, anonymous types, extension methods, lambdas, partial methods and LINQ (Language Integrated Query) 2.3.2 Рекомендуемая литература и информационнные источники 1. 2. 3. 4. 5. Jeffrey Richter: CLR via C#, Third Edition Эндрю Троелсен: C# и платформа.NET Герберт Шилдт: Полный справочник по С# Герберт Шилдт: C# Учебный курс Simon Robinson, Christian Nagel, Karli Watson: Professional C#, 3rd edition 2.4 Работа с базами данных с применением существующей ORM системы В данный момент существует достаточно большое количество подобных систем, которые облегчают процесс разработки приложений при работе с базами данных. Это такие системы как: NHibernate, Entity framework и Linq to SQL. Достаточно разобраться хотя бы с одной из них, понять принципы работы и научиться применять в проектах (рекомендуется использовать NHibernate). 2.4.1 Основные требования 1. Работа с соединением и подключение к проекту 2. Разработка маппингов 3. Работа со связанными сущностями 4. Построение простейших и «кастомных» запросов к БД, используя встроенные возможности системы 5. Выполнение CRUD операций 6. Умение работать с хранимыми процедурами Public NIX Solutions, Ltd. 2010 Page 5 .NET Educational Plan Candidates' for Net Developers Self-education Plan Version: Date: 5 20 August 2011 2.4.2 Рекомендованная литература и информационные источники 1. 2. 3. 4. 5. Официальный сайт NHibernate: http://nhforge.org http://fluentnhibernate.org/ http://weblogs.asp.net/zeeshanhirani/ http://msdn.microsoft.com/en-us/library/aa697427%28VS.80%29.aspx http://slynetblog.blogspot.com/search/label/nhibernate 2.5 Разработка Web-приложений на ASP.NET Благодаря ASP.NET разработка Web-приложений превратилась из рутинного программирования в творческий процесс. Умение работать с ASP.NET позволяет создавать Internet-приложения за рекордные сроки. Для претендента необходимым является умение работать с ASP.NET 2.0. Знание ASP.NET 1.1 и ASP.NET 4.0 приветствуется. 2.5.1 Основные требования 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Работа с Web-формами Понимание жизненного цикла страниц ASP.NET Серверные элементы управления Работа с объектами Session, Cache, Application, ViewState, Cookies Работа с классом ASP.NET-приложения – Global.asax Конфигурирование приложений ASP.NET, файл web.config Объекты отображения данных: GridView, DataList, Repeater Работа с веб-сервисами Обязательное знание трёхуровневой архитектуры проектирования Работа с JavaScript (работа с DOM, асинхронное взаимодействие с сервером) Работа с CSS (оформление страницы, размещение элементов) 2.5.2 Рекомендуемая литература и информационнные источники 1. Мэтью Мак-Дональд, Марио Шпушта, Pro ASP.NET 4 in C# 2010 2. Дино Эспозито, Программирование с использованием Microsoft ASP.NET 3.5 3. Рейсиг Джон, JavaScript. Профессиональные приемы программирования (Pro JavaScript Techniques) 4. Энди Бадд, Камерон Молл, Саймон Коллизон Мастерская CSS: профессиональное применение Web-стандартов (CSS Mastery: Advanced Web Standards Solutions) 5. ASP.NET Page Life Cycle Overview — http://msdn2.microsoft.com/en-us/library/ms178472.aspx 6. Creating a Data Access Layer (на примере ASP.NET 2.0) — http://msdn.microsoft.com/library/default.asp?url=/library/enus/dnaspnettut/html/aspnet_tutorial01_dataaccesslayer_cs.asp 7. Creating a Business Logic Layer (на примере ASP.NET 2.0) — http://msdn.microsoft.com/library/default.asp?url=/library/enus/dnaspnettut/html/aspnet_tutorial02_businesslogiclayer_cs.asp 8. Building and using a 3-tiered data architecture with ASP.NET 2.0 — http://asp.net/learn/dataaccess/default.aspx?tabid=63 Public NIX Solutions, Ltd. 2010 Page 6 .NET Educational Plan Candidates' for Net Developers Self-education Plan Version: Date: 5 20 August 2011 9. Three-tier (computing) — http://en.wikipedia.org/wiki/Three_tier 2.6 Разработка Web-приложений на ASP.NET MVC ASP.NET MVC является свободным, полностью поддерживаемым Microsoft продуктом, который позволяет разработчикам легко создавать большие веб-приложения. Он обеспечивает полный контроль над вашим HTML и URLs, дает богатые возможности интеграции AJAX, а также облегчает Test Driven Development. 2.6.1 Основные требования 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Понимание паттерна model-view-controller Понимание процесса выполнения приложения Работа с ASP.NET MVC Routing Работа с Controllers и Actions Работа с представлениями (умение разрабатывать различные представления на основе готовых решений и создание собственных) Работа с моделью приложения на основе существующей ORM Работа с ASP.NET MVC Validation Работа с Master Page Работа с кэшем Работа с разными способами аутентификации пользователей 2.6.2 Рекомендуемая литература и информационнные источники 1. 2. 3. 4. ASP.NET MVC tutorials: http://www.asp.net/learn/mvc Steven Sanderson, Pro ASP.NET MVC Framework Rob Conery, Scott Hanselman, Phil Haack, Scott Guthrie, Professional ASP.NET MVC 1.0 Adam Freeman and Steven Sanderson: Pro ASP.NET MVC 3 Framrwork 2.7 Тестирование приложений Умение автоматически тестировать собственные приложения является важным аспектом разработки программ и повышает уровень кода, а также качество продукта в целом. Юнит тестирование позволяет программисту не только проводить рефакторинг кода, будучи уверенным, что модуль по прежнему работает корректно, но и изолировать отдельные части программы и показать, что по отдельности они работоспособны. Правильно написанные тесты могут выступать в качестве документации, глядя на которую, легко можно понять требования к тестируемой системе. 2.7.1 Основные требования 1. Понимание разработки в стиле TDD 2. Работа с NUnit framework 3. Понимание “Fake” объектов и умение их применять 2.7.2 Рекомендуемая литература и информационнные источники 1. 2. 3. 4. Public Roy Osherove, The art of Unit testing with examples in .NET Кент Бек – Экстремальное программирование: разработка через тестирование Официальный саит NUnit: http://nunit.org Moq as mocking library: http://code.google.com/p/moq/wiki/QuickStart NIX Solutions, Ltd. 2010 Page 7