Tw-city.info

IT Новости
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Программирование asp net

ASP.NET

Изучение ASP.NET Core MVC / #1 — Создание сайта на C#

Видеоурок

Полезные ссылки:

Подавляющее большинство хоть что-то, но слышали о платформе ASP.NET. Правда, знания очень разбросанные и неструктурированные, от чего нет чёткого представления о возможностях данной платформы. В рамках данного материала рассмотрим ключевые особенности ASP.NET.

ASP.NET – это платформа для разработки в вебе (сайты, приложения). Она поддерживает работу с несколькими языками программирования, входящими в сборку фреймворка: Basic NET, C# , J# и ряд прочих. С данной платформой есть возможность создавать как простейшие веб-ресурсы, так и очень сложные сайты, способные к обработке многотысячного потока пользователей.

ASP.NET по скорости работы значительно превосходит прочие скриптовые языки. Причина быстрой обработки заключается в том, что основа компилируется при первом подключении пользователя и сразу добавляется в кэш компьютера. Все последующие переходы по сайту используют уже кэшированный код, который просто извлекается из памяти, а не скачивается с сервера повторно. Такой подход сильно экономит время на парсинге, загрузке и обработке файлов.

Популярнейшие технологии и языки программирования для разработки веб-ресурсов:

В нынешних реалиях ASP .NET невероятно популярна, она лежит в основе огромных интернет-порталов. Нам удалось найти хороший материал , в котором освещено 10 лучших веб-ресурсов, созданных на данной платформе.

В этом списке присутствуют:

  • StackOverflow – это один из самых больших форумов. С его помощью тысячи людей ежедневно получают ответы на насущные вопросы;
  • Основной портал корпорации Microsoft ;
  • Крупнейший сайт для регистрации доменов GoDaddy . Сегодня занимает лидирующие места в сфере веб-хостинга.
  • Официальный веб-сайт Dell .

Этим список не ограничивается, есть масса других сайтов.

В ASP .NET применяется традиционная схема MVC – Модель-Вид-Контроллер. Все элементы отвечают за конкретные действия. Для примера, пользователь запускает процесс регистрации и отправляет на сервер регистрационные данные. Контроллер интерпретирует действия человека и передаёт модели информацию о внесённых изменениях в статус пользователя. Модель реагирует на действия контроллера и работает с поставляемыми данными. Вид отвечает за отображение информации с модели.

После отправки запроса на сервер, его начинает обрабатывать контроллер, затем передаёт изменения в модель, которая реагирует на обновление и выдаёт всё нужное для отображения сайта. Вид выполняет только роль отображения внешнего вида страницы – обычный HTML-шаблон.

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

ASP .NET или ASP .NET Core?

.NET Core – кроссплатформенная среда выполнения для приложений из веба или консольных программ. Программные продукты, разработанные на ней, могут успешно исполняться на Linux, Windows, MacOS.

Основные плюсы: мультиплатформенность, открытый исходный код.

.NET Framework – среда исполнения, которая предназначена исключительно для Виндовс. Помогает в разработке десктопных программ под Windows и веб-приложений ASP .NET под IIS.

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

Сегодня Microsoft усиленно продвигает и модернизирует Core, постоянно добавляя полезный функционал. Может быть скоро эта среда сравняется с .NET Framework.

Пара сценариев для разработчиков веб-ресурсов на профессиональном уровне.

ASP .NET Core – лучше применять, если вы:

  • Желаете установить таргетинг в приложении на все популярные ОС;
  • Не страшитесь изучения нового;
  • Не боитесь уделять достаточно времени исправлениям и доработкам, ведь Core не дошёл до статической точки, периодически меняется.

ASP .NET – идеальное решение, если вы:

  • Не испытываете необходимости организовывать кросплатформенную поддержку веб-приложения;
  • Нуждаетесь в стабильной среде разработки;
  • Не имеете большого количества времени для разработки, то есть дедлайны поджимают;
  • Уже занимаетесь разработкой или модернизацией существующей программы;
  • Входите в состав команды, обладающей опытом работы с ASP.NET.

Тем, кто сегодня только планирует начать обучение и в ближайший год начать работать на крупные компании, ASP .NET Core идеально подходит. С этой средой вы получаете много перспектив на будущее.

Дополнительные курсы

Фреймворк .NET поддерживает множество языков, но самым популярным является C#. Прежде чем приступать к видео курсу вам следует изучить C#. На нашем ресурсе представлено множество курсов на эту тематику. Просмотреть их все можете по этой ссылке .

Большое задание по курсу

Вам необходимо оформить подписку на сайте, чтобы иметь доступ ко всем большим заданиям. В задание входит методика решения, а также готовый проект с ответом к заданию.
PS: подобные задания доступны при подписке от 1 месяца

Программирование на ASP .NET

Коротко об ASP .NET

Я рассказывать не буду. Если вы попали в этот раздел, значит вы примерно понимаете, что вам нужно. Если не понимаете — скажу вам, что программированием на ASP .NET я не занимаюсь и никогда не буду это делать. Подсказывать вам специалиста по программированию на ASP .NET я тоже не стану. Я специализируюсь на веб-разработке, на системном администрировании. ASP .NET совсем не для этих целей создавалась. Да, на этом языке можно «написать» сайт. Но это равносильно тому, что вы купите себе пассажирский автобус, а ездить на нем будете только сами на работу.

Почему ASP .NET используют в веб?

Во многом из-за того, что продукты, созданные на этом языке программирования, идеально интегрируются в Windows (что не удивительно, ведь у них один разработчик, но это в теории). На практике очень часто происходит совсем не так. К чему всех нас приучают Windows -системы? Нам ничего не надо делать кроме как щелкать клавишами мыши. Мы не говорим операционной системе, что мы хотим сделать и как мы это хотим сделать. Мы указываем ей на это мышкой. А программисты же тоже «люди». Им тоже хочется минимизировать свои усилия для получения результата.

Для написания программного кода для ASP .NET существует множество приложений, облегчающих жизнь программиста. Те, кто в начале текущего столетия пробовали создавать сайты, наверняка пользовались программой Dreamviewer (когда он еще был продуктом корпорации Macromedia). Очень удобно, с одной стороны, открыть программу, выбрать тип создаваемого файла HTML и нажать Ok. Программа, создавая новый документ, сама формирует в нем такие важные элементы, как тип документа и его блок заголовков. А разработчику даже не нужно понимать, что там написано. Пользуясь такими программами, разработчик теряет способность мыслить, думать. Можете быть уверены, 95% разработчиков ASP .NET не смогут написать код своей программы в обычном Windows -приложении «Блокнот» (Notepad). А большинство PHP -программистов пишут свои программы именно в Блокноте и подобным ему приложениям. Многие программисты ASP .NET , создающие веб-сайты, даже не знают, какая структура должна быть у HTML-документа. Какие обязательные требования предъявляются к документам типа HTML5 и XHTML. Многие из этих разработчиков даже не поняли бы что я хотел этим сказать.

Читать еще:  Объективно ориентированное программирование c

На ASP .NET хорошо писать приложения, которые должны работать в среде Windows с пользовательскими данными (например, логином, под которым пользователь авторизуется в домене или в своем компьютере). Также на ASP .NET хорошо писать приложения, которые работают с данными, хранимыми в СУБД MS SQL . Но и здесь большинство программистов ASP .NET умудряются «упрощать» себе задачу. Для построения запросов к базам данных MS SQL они используют специальные программки — query-менеджеры. И можно с уверенностью заявлять, что такие программисты понятия не имеют, как должны выглядеть запросы к базе данных.

Еще одна причина, по которой ASP .NET применяется в веб-разработке — использование в качестве веб-сервера приложения IIS , входящим в состав Windows Server . А знаете почему? Правильно! Потому что так проще.

Программирование asp net

  • Главная страница
  • Базы данных
  • C и C++
  • Данные
  • Объекты
  • Операторы
  • Приложения
  • Проектирование
  • Программирование
  • Реализация
  • Sql
  • Системы
  • Популярные Статьи
  • UEFI
  • Как появились языки программирования?
  • Почему лучше программировать в IDE, чем в блокноте?
  • Что такое объектно-ориентированное программирование?
  • ООП, UML и Java
  • Обойти защиту в Oracle
  • Улучшить стиль программирования
  • Почему стоит стать программистом?
  • Проектирование программного проекта
  • Почему 12 языков программирования потрясли весь мир?
  • Что такое диаграмма вариантов использования (UML)?
  • Каковы алгоритмы сжатия данных?
  • Как научиться программированию?
  • Что такое массивы в программировании?
  • Гипертекстовые технологии
  • Как выбрать язык программирования для разработки сайта?

Обратите внимание, что атрибут type не обязателен, но его нужно применять, если вы хотите обеспечить совместимость с XHTML.

Может показаться странным то обстоятельство, что в ASP.NET имеется возможность добавлять код JavaScript в ваши страницы. Однако JavaScript позволяет добавлять в ваши Web-страницы динамическое поведение на стороне клиента, что может быть очень полезным. Это особенно справедливо для программирования с применением Ajax, о чем будет сказано в главе 39.

Можно также создавать файлы ASP.NET в среде Visual Studio, которая отлично подойдет, если вы уже знакомы со средой программирования C#. Однако настройка проекта по умолчанию для Web-приложений в этой среде представляет собой несколько более сложную структуру, чем единственный файл .aspx. Это не будет большой проблемой, просто сместит акцент в сторону логики (больше программирования и меньше разработки для Web). По этой причине в данной главе мы будем использовать Visual Studio для программирования ASP.NET (вместо редактора Notepad).

Файлы .aspx также могут включать блоки кода, заключенные в дескрипторы . Однако определения функций и объявления переменных в них появляться не могут. Вместо этого сюда вставляется код, который выполняется немедленно при достижении такого блока, что удобно для вывода простого HTML-содержимого. Такое поведение подобно ASP-страницам старого стиля, но с одним важным отличием: код компилируется, а не интерпретируется. Это обеспечивает гораздо более высокую производительность.

Теперь приступим к реализации примера. В Visual Studio создадим новое Web-приложение, используя пункт меню FileNewWeb Site (ФайлНовыйWeb-сайт). В появившемся диалоговом окне выберем язык Visual C# и шаблон ASP.NET Web Site. В этот момент у нас появляется выбор. Visual Studio может создавать Web-сайты во многих разных местах:

□ на локальном Web-сервере IIS;

□ на локальном диске, настроенном для использования встроенного сервера Visual Studio Developer Web Server;

□ в любом месте, доступном по FTP;

□ на удаленном Web-сервере, поддерживающем серверные расширения Front Page Server Extensions.

Последние два варианта используют удаленные серверы, поэтому нам остается первых два. Вообще говоря, IIS — это лучшее место для инсталляции Web-сайтов ASP.NET, потому что, вероятно, это будет ближе всего к той конфигурации, которая потребуется при поставке Web-сайта заказчику. Альтернативный вариант с использованием встроенного Web-сервера отлично подходит для тестирования, но имеет ряд ограничений.

□ Web-сайт можно видеть только на локальном компьютере.

□ Доступ к таким службам, как SMTP, ограничен.

□ Модель безопасности отличается от принятой в IIS — приложение выполняется в контексте текущего пользователя, а не специфической учетной записи ASP.NET.

Последний пункт требует пояснения, потому что безопасность очень важна, когда дело касается доступа к базам данных или чего-то другого, что требует аутентификации. По умолчанию Web-приложения, исполняющиеся на сервере IIS, делают это от имени учетной записи с именем ASPNET на Web-серверах Windows XP или Windows 2000, или же от имени учетной записи NETWORK SERVICES — в Windows Server 2003. Это все настраивается, если используется IIS, но не в случае применения встроенного Web-сервера.

Для иллюстрации, и поскольку у вас может не быть инсталлированного сервера IIS на вашем компьютере, можно использовать встроенный Web-сервер. На этой стадии нам не нужно беспокоиться о безопасности, поэтому для простоты так и поступим.

Создадим новый Web-сайт ASP.NET с именем PCSWebApp1, используя расположение File System (Файловая система) и каталог C:ProCSharpChapter37, как показано на рис. 37.2.

Рис. 37.2. Создание нового Web-сайта ASP.NET с именем PCSWebAppl

Через несколько мгновений среда Visual Studio .NET должна настроить следующее:

□ PCSWebApp1 — новое решение, содержащее приложение C# Web Application PCSWebAppl;

□ резервную папку App Data для данных, таких как файлы XML и файлы базы данных;

Читать еще:  Сделать игру без программирования

□ первую страницу ASP.NET в Web-приложении — Default.aspx;

□ Default.aspx.cs — отделенный код класса для Default.aspx.

□ Web.config — конфигурационный файл для Web-приложения.

Все это можно увидеть в проводнике решений Solution Explorer, как показано на

Файлы .aspx можно видеть в представлении дизайнера или исходного текста (HTML). Все выглядит так же, как и в Windows Forms (см. главу 3l). Начальное представление в Visual Studio — это либо представление дизайнера (design view), либо представление исходного текста для Default.aspx. (Переключаться между ними или просматривать их вместе в раздельном отображении можно с помощью кнопок внизу слева.) Представление дизайнера показано на рис. 37.4.

Ниже формы (пока пустой) вы можете видеть, где в HTML-коде формы позиционирован курсор. Здесь курсор находится

Лекция 2. Анатомия ASP.NET. ASP.NET в действии. (документация, исходники)

Ум сугубо математический будет правильно работать, только если ему заранее известны все определения и начала
Блез Паскаль

Введение

ASP.NET — один из компонентов .NET Framework. Перечислим кратко основные черты этой технологии:

  • Общеязыковая исполнительная среда CLR
  • Библиотека классов .NET Framework
  • Языки.NET(C#, VB.NET, J# и другие)
  • ADO.NET
  • ASP.NET
  • Web-службы
  • Промежуточный язык MSIL (Microsoft Intermediate Language). Это ассемблер для среды выполнения CLR.

ADO.NET — набор классов, предназначенных для доступа к базам данных Microsoft SQL Server, к источникам данных OLEDB и к файлам XML.

Разные части вашего проекта могут быть написаны на разных языках, это называется interoperability . Мы попробуем написать проект, где одна из страниц будет на Visual Basic, а другая на С#.

Компютерные языки бывают компилируемыми и интерпретируемыми. В процессе компиляции программы, написанной на компилируемом языке, создается выполняемый файл(В Windows — exe). Он выполняется быстро, но не может исполняться на другой платформе. Машина, на которой она выполняется, должна иметь похожую конфигурацию. Например, если программа использует dll, то эта библиотека должна быть установлена и на целевой машине. Интерпретируемые программы компилируются в момент выполнения, поэтому они работают медленнее, но не зависят от конкретной машины. В .NET Framework применяется двухэтапная компиляция, то есть первый этап — это компиляция в MSIL, а вторая — компиляция «Just-in-time» компилятором во время исполнения. JIT-компилятор оптимизирует код для той машины, на которой он исполняется. В ASP.NET страница компилируется в MSIL при первом обращении клиента к странице. Вместе с ней компилируются классы, которые она использует. Если вы используете Visual Studio 2005, можно не ожидать первого запроса, а принудительно скомпилировать все страницы вашего проекта. Это позволит выявить синтаксические и другие ошибки.

MSIL — это ассемблер, не зависящий от машины. Он может выполняться на любой машине, где установлена CLR. Проект Mono пытается перенести CLR на другие платформы, позволяя взаимодействовать серверам, работающим на разных платформах.

Вы можете ознакомиться с проектом на сайте http://mono-project.com

На странице http://go-mono.com/archive/xsp-0.10.html находится XSP — сервер ASP.NET, который может служить расширением сервера Apache — основного сервера *nix — систем.

Как работает ASP.NET

Когда мы исталлируем .NET, в соответсвующих директориях C:WINDOWSMicrosoft.NETFramework помещается также файл aspnet_isapi.dll. Это — ISAPI-расширение, и предназначено оно для получения запросов, адресованных ASP.NET-приложениям (*.aspx *.asmx и т.д.), а также создания рабочих процессов aspnet_wp.exe, обратывающих запросы. Интернет-сервер — IIS или встроенный в WebMatrix или встроенный в Visual Studio Cassini — используют это расширение, когда им надо обработать обращение к страницам с расширением aspx.

Этот модуль разбирает(parse) содержимое страниц aspx вместе с файлом отделенного кода и генерирует класс на языке страницы с объектом Page. Страница aspx отличается от обычной HTML-страницы наличием серверных элементов управления, которые описываются специальными тегами. Для понимания работы ASP.NET важно отметить, что каждому тегу элемента управления соответствует свой член класса страницы. Например,

Основная задача объекта Page — посылка HTML-код в выходной поток. Этот класс компилируется в библиотеку .dll, которая загружается в процесс веб-сервера. Последующие запросы к странице также обрабатывает dll, если исходный код страницы не меняется. Все эти файлы можно найти в директории «Temporary ASP.NET Files» текущей версии .NET. Если мы работаем в среде разработки Visual Studio 2005 или VWD, для каждого проекта создается своя поддиректория.

Типы страниц и папок проекта

В проект можно добавлять новые файлы через диалог New File. Если снять отметку с флажка «Place code in separate file», Visual Studio создаст один файл, в котором будет и страница, и код для ее обработки(в стиле WebMatrix).

Все файлы помещаются в директорию проекта. И наоборот, все файлы, которые будут помещены в директорию проекта, станут его частью. Для веб-сайтов не существует специального файла .csproj, в котором перечислялись бы его составные части, как это было в предыдущих версиях Visual Studio. Структура решения(solution) описывается в текстовом файле .sln. В решение могут входить несколько веб-сайтов и библиотек.

В ASP.NET 2.0 имеются специальные поддиректории проекта для разных типов файлов. Например, в папке App_Code хранятся общедоступные классы, текстовые файлы и некоторые другие(DataSet, диаграмма классов). Файлы с расширениями .cs или .vb, попавшие туда, автоматически компилируются, когда запрашивается любая страница проекта. В App_Data содержатся источники данных, используемых в проекте — базы данных Access и Microsoft SQL, XML-файлы. К этой директории нельзя получить доступ извне, а только из самого приложения. В папке Themes хранятся темы проекта(лекция 13). Применение тем позволяет настроить единообразный внешний вид сайта и централизованно им управлять. В App_GlobalResources находятся ресурсы, например таблицы строк, которые можно создавать на разных языках. Язык ресурсов выбирается автоматически в зависимости от настроек браузера пользователя. В папке App_WebReferences находятся ссылки на используемые веб-сервисы.

Можно создавать собственные поддиректории проекта, например, для хранения картинок.

Проект на 2 языках

Проект Web-сайта состоит из страниц aspx и классов, которые используются на страницах(и, конечно, разнообразных ресурсов). Файлы с классами, к которым можно обратиться из разных страниц, помещают в специальную папку App_Code. При компиляции они помещаются в одну сборку — библиотеку .dll в формате portable executable. Совершенно неважно, на каком языке написан класс, если это язык .NET.

Готовые скомпилированные сборки сторонних производителей тоже можно использовать в проекте. Их помещают в папку Bin. При этом их необходимо импортировать в проект.

Создайте новый проект. Добавьте в него файл, выбрав тип файла Class и язык Visual Basic. Среда сама предложит поместить его в папку Code. Назовем его CustomClass. У него будет очень простой код. Всего одна функция, которая добавляет слово Hello к имени, переданному в качестве параметра.

Добавьте в проект страницу CodeFolder_cs.aspx. Это страница написана на C#, но она создает класс, написанный на VB.NET.

На странице определена форма, напоминающая форму Windows-приложения. На ней имеется кнопка, нажатие на которую обрабатывается в функции Button1_Click. В ней создается класс и вызывается его функция GetMessage с параметром, который берется из элемента редактирования. Возвращаемое значение записывается в элемент Label1. В более простом варианте это выглядит так:

Класс может быть написан на C#, а использоваться из страницы на Visual Basic.

Однако поместить в директории App_Code можно только на одном языке. Если там будет находиться файлы на разных языках, проект не будет компилироваться. Для того, чтобы использовать два языка, необходимо создать поддиректорию, добавить ее в файле web.config и поместить в нее файлы на другом языке.

Регистрация в файле web.config:

Директивы

На каждой странице aspx обычно задаются директивы, с помощью которых Вы можете контролировать поведение страницы. Можно считать их языком, с которым вы общаетесь с компилятором, указывая ему, как обрабатывать данную страницу. Директивы обычно помещают в начале файла. Мы уже встречались с директивой Page в первой лекции.

Синтаскис объявления директив такой:

Можно объявить несколько директив одновременно:

Что выбрать: ASP.NET или PHP

ASP.NET и PHP — две самые популярные технологии среди backend-разработчиков. Разбираем, чем они отличаются и какую лучше выбрать новичку.

Несмотря на то что на PHP написано 79% всех сайтов в интернете, есть и другие технологии, которые хорошо подходят для написания серверной части веб-приложений: Python, Java, Ruby, Node.JS.

В этой статье мы разобрали отличия PHP и его основного конкурента — ASP.NET, доля которого среди сайтов составляет 11,2%.

Евгений Кучерявый

Пишет о разработке сайтов, в свободное время создает игры. Мечтает открыть свою студию и выпускать ламповые RPG.

Чем отличаются
PHP и ASP.NET

PHP — это скриптовый интерпретируемый язык, созданный специально для разработки серверной части сайтов. На нём написаны такие сайты, как:

  • Facebook;
  • VK.com;
  • WordPress (и все сайты, созданные на нём);
  • YouTube;
  • Wikipedia и очень многое другое.

ASP.NET — это фреймворк для языков из семейства .NET (чаще всего C# или Visual Basic), который позволяет писать серверную часть сайтов. С его помощью созданы такие площадки, как:

  • Exchanger.com;
  • MSN.com;
  • Microsoft.com;
  • Dell.com;
  • Stackoverflow.com и другие.

Вот основные отличия этих технологий:

Компилируется. Сайт представляет собой приложение, которое создаёт новый поток при каждом обращении. Есть встроенная сборка мусора.

Отдельно стоит сказать, что оба языка активно развиваются, поэтому некоторые различия перестанут быть актуальными уже в скором времени. Например, в PHP собираются ввести типизацию, а всё семейство .NET переходит в open source с поддержкой кроссплатформенности. Поэтому PHP может стать сложнее, а ASP.NET — популярнее и доступнее.

Также стоит отметить значительные различия в синтаксисе. Например, вот как в PHP выводится текст:

В ASP.NET это выглядит вот так:

Этот код находится в методе Configure() класса Startup, который отвечает за работу приложения. Стоит отметить, что таким образом нельзя вывести HTML-код. В PHP же с помощью оператора echo легко выводится не только текст, но и HTML-теги.

Что учить новичку

Новичкам в программировании стоит выбрать в качестве первой технологии PHP — она проще в освоении, на ней можно практически сразу что-то создать. Поэтому можно сразу увидеть результат своих действий, а это один из главных признаков прогресса.

Кроме того, что PHP прост, он всё-таки достаточно мощный, потому что поддерживает работу с базами данных, файлами, изображениями, ООП и многое другое. Это поможет стать хорошим разработчиком на этом языке или подготовит базу для перехода на что-то другое.

Но есть и недостаток такого выбора: по PHP не очень много полезных книг, однако вы всегда можете записаться на наш курс.

ASP.NET лучше изучать тем, кто уже знаком с программированием и знает о типизации, ООП, отладке, обработке исключений и прочем. Несмотря на то что у него меньше сообщество, на официальном сайте Microsoft есть подробная документация, а на форумах всегда могут помочь с решением проблем.

Также по ASP.NET больше хороших книг. Но всё-таки он больше подходит тем, кто не гонится за сиюминутным результатом — написать первый сайт на нём можно далеко не за один день, в отличие от PHP.

А теперь серьёзно

То, что я скажу дальше, — это моё личное мнение, с которым вы (или редакция Skillbox) можете не согласиться.

В работе над разными проектами мне часто приходится сталкиваться как с C# (ASP.NET), так и с PHP. Это бывают как новые проекты, так и поддержка существующих. И, как мне кажется, ASP.NET в разы эффективнее, если сайт рассчитан на долгосрочную перспективу.

Даже если код писал не самый лучший разработчик, в нём можно гораздо быстрее разобраться, потому что в C# есть типизация, лаконичный синтаксис и хорошая реализация ООП. PHP в этом плане значительно проигрывает.

Поэтому я бы посоветовал PHP для тех проектов, которые нужно быстро написать, сдать и забыть. Максимум — раз в месяц вносить какие-то правки.

Разбираться в C# гораздо проще, даже если код написал менее аккуратный программист.

Ссылка на основную публикацию
ВсеИнструменты 220 Вольт
Adblock
detector
×
×