Перейти к содержимому

Веб нет что это

  • автор:

Введение в веб-программирование на ASP.NET с помощью синтаксиса Razor (Visual Basic)

В большинстве примеров использования веб-страницы ASP.NET с синтаксисом Razor используется C#. Но синтаксис Razor также поддерживает Visual Basic. Чтобы запрограммировать веб-страницу ASP.NET в Visual Basic, создайте веб-страницу с расширением имени файла .vbhtml , а затем добавьте код Visual Basic. В этой статье представлен обзор работы с языком и синтаксисом Visual Basic для создания ASP.NET веб-страниц.

Шаблоны веб-сайтов по умолчанию для Microsoft WebMatrix (пекарня, фотоальбом, начальный сайт и т. д.) доступны в версиях C# и Visual Basic. Шаблоны Visual Basic можно установить в виде пакетов NuGet. Шаблоны веб-сайтов устанавливаются в корневую папку сайта в папке с именем Шаблоны Майкрософт.

8 лучших советов по программированию

В этом разделе перечислены некоторые советы, которые необходимо знать при написании кода сервера ASP.NET с использованием синтаксиса Razor.

1. Вы добавляете код на страницу с помощью символа @.

Символ @ запускает встроенные выражения, блоки с одним оператором и блоки с несколькими операторами:

 @Code Dim total = 7 End Code @Code Dim myMessage = "Hello World" End Code 

The value of your account is: @total

The value of myMessage is: @myMessage

@Code Dim greeting = "Welcome to our site!" Dim weekDay = DateTime.Now.DayOfWeek Dim greetingMessage = greeting & " Today is: " & weekDay.ToString() End Code

The greeting is: @greetingMessage

Результат, отображаемый в браузере:

Razor-Img1

Кодирование HTML

При отображении содержимого на странице с помощью символа @ , как в предыдущих примерах, ASP.NET кодирует выходные данные в ФОРМАТЕ HTML. При этом зарезервированные символы HTML (такие как < и >) & заменяются кодами, которые позволяют отображать символы на веб-странице в виде символов, а не как html-теги или сущности. Без кодирования HTML выходные данные серверного кода могут отображаться неправильно и подвергать страницу риску безопасности.

Если вы хотите вывести html-разметку, которая отображает теги в виде разметки (например , для абзаца или выделения текста), см. раздел Объединение текста, разметки и кода в блоках кода далее в этой статье.

2. Блоки кода заключаются в код. Код завершения

Блок кода включает один или несколько операторов кода и заключен в ключевые слова Code и End Code . Поместите открывающий Code ключевое слово сразу после символа @ — между ними не может быть пробелов.

 @Code Dim theMonth = DateTime.Now.Month End Code 

The numeric value of the current month: @theMonth

@Code Dim outsideTemp = 79 Dim weatherMessage = "Hello, it is " & outsideTemp & " degrees." End Code

Today's weather: @weatherMessage

Результат, отображаемый в браузере:

Razor-Img2

3. Внутри блока каждая инструкция кода заканчивается разрывом строки

В блоке кода Visual Basic каждый оператор заканчивается разрывом строки. (Далее в этой статье вы узнаете, как при необходимости упаковать длинный оператор кода в несколько строк.)

 @Code Dim theMonth = DateTime.Now.Month End Code @Code Dim outsideTemp = 79 Dim weatherMessage = "Hello, it is " & outsideTemp & " degrees." End Code 

Today's weather: @weatherMessage

4. Для хранения значений используются переменные

В переменной можно хранить значения, включая строки, числа, даты и т. д. Новую переменную можно создать с помощью Dim ключевое слово. Значения переменных можно вставить непосредственно на страницу с помощью @ .

 @Code Dim welcomeMessage = "Welcome, new members!" End Code 

@welcomeMessage

@Code Dim year = DateTime.Now.Year End Code

Welcome to our new members who joined in @year!

Результат, отображаемый в браузере:

Razor-Img3

5. Строковые литеральные значения заключаются в двойные кавычки

Строка — это последовательность символов, которые обрабатываются как текст. Чтобы указать строку, заключите ее в двойные кавычки:

@Code Dim myString = "This is a string literal" End Code 

Чтобы внедрить двойные кавычки в строковое значение, вставьте две двойные кавычки. Если вы хотите, чтобы символ двойной кавычки отображался в выходных данных страницы один раз, введите его как «» в строке в кавычках, а если вы хотите, чтобы он отображался дважды, введите его как «»»» внутри строки с кавычками.

 @Code Dim myQuote = "The person said: ""Hello, today is Monday.""" End Code 

@myQuote

Результат, отображаемый в браузере:

Razor-Img4

6. Код Visual Basic не учитывает регистр

В языке Visual Basic регистр не учитывается. Ключевые слова программирования (например Dim , , If и True ) и имена переменных (например myString , или subTotal ) могут быть написаны в любом случае.

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

@Code Dim lastName = "Smith" ' Keywords like dim are also not case sensitive. DIM someNumber = 7 End Code 

The value of the lastName variable is: @LASTNAME

Результат, отображаемый в браузере:

vb-syntax-5

7. Большая часть кода включает работу с объектами

Объект представляет собой объект, с помощью который можно программировать: страницу, текстовое поле, файл, изображение, веб-запрос, сообщение электронной почты, запись клиента (строку базы данных) и т. д. Объекты имеют свойства, описывающие их характеристики: объект текстового поля имеет Text свойство, объект запроса имеет Url свойство, сообщение электронной почты имеет From свойство, а объект клиента имеет FirstName свойство . Объекты также имеют методы, которые являются «командами», которые они могут выполнять. Примеры включают метод объекта файла Save , метод объекта Rotate image и метод объекта Send электронной почты.

Вы часто работаете с Request объектом , который предоставляет такие сведения, как значения полей формы на странице (текстовые поля и т. д.), тип браузера, который сделал запрос, URL-адрес страницы, удостоверение пользователя и т. д. В этом примере показано, как получить доступ к свойствам Request объекта и как вызвать MapPath метод Request объекта , который дает абсолютный путь к странице на сервере:

 
Requested URL Relative Path Full Path HTTP Request Type
@Request.Url @Request.FilePath @Request.MapPath(Request.FilePath) @Request.RequestType

Результат, отображаемый в браузере:

Razor-Img5

8. Вы можете написать код, который принимает решения

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

@Code Dim result = "" If IsPost Then result = "This page was posted using the Submit button." Else result = "This was the first request for this page." End If End Code    Write Code that Makes Decisions   

@result

If IsPost Оператор является сокращенным способом записи If IsPost = True . Наряду с If операторами существует множество способов проверки условий, повторения блоков кода и т. д., которые описаны далее в этой статье.

Результат, отображаемый в браузере (после нажатия кнопки Отправить):

Razor-Img6

Методы HTTP GET и POST и свойство IsPost

Протокол, используемый для веб-страниц (HTTP), поддерживает очень ограниченное количество методов (глаголов), которые используются для выполнения запросов к серверу. Двумя наиболее распространенными из них являются GET, которая используется для чтения страницы, и POST, которая используется для отправки страницы. Как правило, при первом запросе пользователем страницы она запрашивается с помощью GET. Если пользователь заполняет форму и нажимает кнопку Отправить, браузер отправляет серверу запрос POST.

При веб-программировании часто бывает полезно узнать, запрашивается ли страница как GET или POST, чтобы вы знали, как обрабатывать страницу. В веб-страницы ASP.NET можно использовать IsPost свойство , чтобы узнать, является ли запрос get или POST. Если запрос является post, IsPost свойство возвращает значение true, и вы можете выполнять такие действия, как чтение значений текстовых полей в форме. Во многих примерах показано, как обрабатывать страницу по-разному в зависимости от значения IsPost .

Простой пример кода

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

  1. В редакторе создайте новый файл и назовите его AddNumbers.vbhtml.
  2. Скопируйте приведенный ниже код и разметку на страницу, заменив все, что уже есть на странице.

@Code Dim total = 0 Dim totalMessage = "" if IsPost Then ' Retrieve the numbers that the user entered. Dim num1 = Request("text1") Dim num2 = Request("text2") ' Convert the entered strings into integers numbers and add. total = num1.AsInt() + num2.AsInt() totalMessage = "Total = " & total End If End Code    Adding Numbers body form 

Enter two whole numbers and click Add to display the result.

@totalMessage

Razor-Img7

Ниже приведены некоторые моменты, которые следует отметить:

  • Символ @ запускает первый блок кода на странице и предшествует переменной totalMessage , внедренной внизу.
  • Блок в верхней части страницы заключен в Code. End Code .
  • Переменные total , num1 , num2 и totalMessage хранят несколько чисел и строку.
  • Строковое литеральное значение, назначенное переменной totalMessage , находится в двойных кавычках.
  • Так как в коде Visual Basic регистр не учитывается, при totalMessage использовании переменной в нижней части страницы ее имя должно соответствовать только написанию объявления переменной в верхней части страницы. Корпус не имеет значения.
  • Выражение num1.AsInt() + num2.AsInt() показывает, как работать с объектами и методами. Метод AsInt для каждой переменной преобразует строку, введенную пользователем, в целое число, которое можно добавить.
  • Тег содержит method=»post» атрибут . Это указывает, что при нажатии пользователем кнопки Добавить страница будет отправлена на сервер с помощью метода HTTP POST. При отправке страницы код If IsPost оценивается как true, и условный код выполняется, отображая результат сложения чисел.
  • Сохраните страницу и запустите ее в браузере. (Перед запуском убедитесь, что страница выбрана в рабочей области Файлы .) Введите два целых числа и нажмите кнопку Добавить .
  • Язык и синтаксис Visual Basic

    Ранее вы видели базовый пример создания веб-страницы ASP.NET и добавления серверного кода в разметку HTML. Здесь вы узнаете об основах использования Visual Basic для написания ASP.NET серверного кода с помощью синтаксиса Razor, т. е. правил языка программирования.

    Если у вас есть опыт программирования (особенно если вы использовали C, C++, C#, Visual Basic или JavaScript), многое из прочитанного здесь будет знакомо. Возможно, вам потребуется ознакомиться только с тем, как код WebMatrix добавляется в разметку в VBHTML-файлах .

    Объединение текста, разметки и кода в блоках кода

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

      Заключите текст в элемент блока HTML, например или :
    @If IsPost Then ' This line has all content between matched 

    tags. @

    Hello, the time is @DateTime.Now and this page is a postback!

    Else ' All content between matched tags, followed by server code. @

    Hello, Stranger! today is:

    @DateTime.Now End If
    @If IsPost Then ' Plain text followed by an unmatched HTML tag and server code. @:The time is: 
    @DateTime.Now ' Server code and then plain text, matched tags, and more text. @DateTime.Now @:is the current time. End If

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

    @If IsPost Then @ The time is: 
    @DateTime.Now @DateTime.Now is the current time.
    End If

    В следующем примере теги и заключают три строки, все из которых содержат незадернутый текст и несовпаденные html-теги (
    ), а также серверный код и совпадающие html-теги. Опять же, вы также можете предварять каждую строку по отдельности @: с помощью оператора; в любом случае это работает.

    @Code dim minTemp = 75 @It is the month of @DateTime.Now.ToString("MMMM"), and it's a great day! 

    You can go swimming if it's at least @minTemp degrees.

    End Code

    Примечание При выводе текста, как показано в этом разделе, с помощью элемента HTML, @: оператора или элемента, ASP.NET не кодирует выходные данные в формате HTML. (Как отмечалось ранее, ASP.NET кодирует выходные данные выражений кода сервера и блоков кода сервера, которым предшествует @ , за исключением особых случаев, указанных в этом разделе.)

    Пробелы

    Дополнительные пробелы в операторе (и за пределами строкового литерала) не влияют на оператор :

    @Code Dim personName = "Smith" End Code 

    Разбиение длинных инструкций на несколько строк

    Длинный оператор кода можно разбить на несколько строк с помощью символа _ подчеркивания (который в Visual Basic называется символом продолжения) после каждой строки кода. Чтобы разбить оператор на следующую строку, в конце строки добавьте пробел, а затем символ продолжения. Продолжите инструкцию в следующей строке. Операторы можно перенести в любое количество строк, чтобы повысить удобочитаемость. Следующие инструкции равнозначны:

    @Code Dim familyName _ = "Smith" End Code @Code Dim _ theName _ = _ "Smith" End Code 

    Однако вы не можете упаковать строку в середине строкового литерала. Следующий пример не работает:

    @Code ' Doesn't work. Dim test = "This is a long _ string" End Code 

    Чтобы объединить длинную строку, которая заключает в несколько строк, как в приведенном выше коде, необходимо использовать оператор объединения ( & ), который вы увидите далее в этой статье.

    Комментарии к коду

    Комментарии позволяют оставить заметки для себя или других пользователей. Комментарии к синтаксису Razor имеют префикс @* и заканчиваются на *@ .

    @* A single-line comment is added like this example. *@ @* This is a multiline code comment. It can continue for any number of lines. *@ 

    В блоках кода можно использовать комментарии синтаксиса Razor или обычный символ комментария Visual Basic, который представляет собой одну кавычку ( ‘ ) с префиксом к каждой строке.

    @Code ' You can make comments in blocks by just using ' before each line. End Code @Code ' There is no multi-line comment character in Visual Basic. ' You use a ' before each line you want to comment. End Code 

    Переменные

    Переменная — это именованный объект, который используется для хранения данных. Переменным можно присвоить любое имя, но имя должно начинаться с буквы и не может содержать пробелы или зарезервированные символы. В Visual Basic, как вы видели ранее, регистр букв в имени переменной не имеет значения.

    Переменные и типы данных

    Переменная может иметь определенный тип данных, который указывает, какой тип данных хранится в переменной. У вас могут быть строковые переменные, в которых хранятся строковые значения (например, «Hello world»), целочисленные переменные, в которых хранятся целые числовые значения (например, 3 или 79), и переменные даты, которые хранят значения дат в различных форматах (например, 04.12.2012 или март 2009 г.). Существует множество других типов данных, которые можно использовать.

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

    Чтобы объявить переменную без указания типа, используйте Dim плюс имя переменной (например, Dim myVar ). Чтобы объявить переменную с типом, используйте Dim плюс имя переменной, а затем As имя типа (например, Dim myVar As String ).

    @Code ' Assigning a string to a variable. Dim greeting = "Welcome" ' Assigning a number to a variable. Dim theCount = 3 ' Assigning an expression to a variable. Dim monthlyTotal = theCount + 5 ' Assigning a date value to a variable. Dim today = DateTime.Today ' Assigning the current page's URL to a variable. Dim myPath = Request.Url ' Declaring variables using explicit data types. Dim name as String = "Joe" Dim count as Integer = 5 Dim tomorrow as DateTime = DateTime.Now.AddDays(1) End Code 

    В следующем примере показаны некоторые встроенные выражения, использующие переменные на веб-странице.

    @Code ' Embedding the value of a variable into HTML markup. ' Precede the markup with @ because we are in a code block. @

    @greeting, friends!

    End Code

    The predicted annual total is: @( monthlyTotal * 12)

    The URL to this page is: @myPath

    Результат, отображаемый в браузере:

    Razor-Img9

    Преобразование и тестирование типов данных

    Хотя ASP.NET обычно может определять тип данных автоматически, иногда это не так. Поэтому может потребоваться помочь ASP.NET, выполнив явное преобразование. Даже если вам не нужно преобразовывать типы, иногда полезно проверить, с каким типом данных вы можете работать.

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

    @Code Dim total = 0 Dim totalMessage = "" if IsPost Then ' Retrieve the numbers that the user entered. Dim num1 = Request("text1") Dim num2 = Request("text2") ' Convert the entered strings into integers numbers and add. total = num1.AsInt() + num2.AsInt() totalMessage = "Total = " & total End If End Code 

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

    Cannot implicitly convert type ‘string’ to ‘int’.

    Чтобы преобразовать значения в целые числа, вызовите AsInt метод . Если преобразование выполнено успешно, можно добавить числа.

    В следующей таблице перечислены некоторые распространенные методы преобразования и тестирования для переменных.

    Метод

    Описание

    .NET Framework и ASP.NET — платформы для веб‑разработки

    .NET Framework — это программная платформа, выпущенная компанией Microsoft, которая подходит для разных языков программирования. ASP.NET — технология создания веб‑приложений и веб‑сервисов от компании Microsoft. Она является составной частью платформы Microsoft .NET и развитием более старой технологии Microsoft ASP.

    Считается, что платформа .NET Framework явилась ответом компании Microsoft на набравшую к тому времени большую популярность платформу Java. ASP.NET основывается на Common Language Runtime: разработчики могут писать код для ASP.NET, используя практически любые языки программирования, некоторые из которых входят в комплект .NET Framework (C#, Visual Basic.NET и JScript .NET), а другие могут быть установлены дополнительно (IronRuby, IronPython, PHP, Perl, Smalltalk, Haskell и др.). Тем не менее, нередко используется не вполне корректный термин «.NET-программист», который, видимо, характеризует разработчика на любом языке программирования, который может быть использован в .NET‑проекте.

    Некоторые особенности ASP.NET:

    • Компилируемый код выполняется быстрее, а большинство ошибок отлавливается ещё на стадии разработки.
    • Расширяемый набор элементов управления и библиотек классов, ускоряющий разработку.
    • Возможность кэширования всей страницы, её частей или данных, используемых на странице.
    • Возможность разделения визуальной части и бизнес‑логики по разным файлам, есть возможность выделять часто используемые шаблоны пользовательских элементов управления, таких как меню сайта, наличие master‑страниц для задания шаблонов оформления, поддержка AJAX (расширение ASP.NET AJAX).
    • Расширяемые модели событий, обработки запросов и серверных элементов управления.
    • Поддержка CRUD‑операций при работе с таблицами через GridView.
    • Возможно создание веб‑приложений, которые реализуют шаблон Model-View-Controller (ASP.NET MVC Framework).

    .NET достаточно широко распространён в сфере разработки внутрикорпоративных программных продуктов, но в веб‑разработке всё же встречается относительно редко, как и другие программные продукты корпорации Microsoft. Поэтому найти разработчиков для веб‑проекта бывает достаточно непросто. Использование .NET «тянет» за собой покупку и иного ПО от корпорации Microsoft (серверной ОС, СУБД и т.п.). Технология достаточно дорогая в разработке и сопровождении: кроме затрат на покупку лицензий на необходимое ПО существенный вклад в бюджет проектов вносят высокие зарплаты разработчиков.

    Статья опубликована в 2014 году

    Тематические статьи

    Почему стоит выбрать Ruby on Rails для разработки веб‑приложения или сайта?

    Разработку сложных веб‑проектов с использованием фреймворков на текущий момент экономически целесообразно вести на одном из следующих языков: PHP, Ruby, Python, Java, C#. Каждый из языков имеет далеко не по одному фреймворку, написанному на нём.

    В этой статье мы не будем рассматривать преимущества языка программирования Ruby и фреймворка Ruby on Rails с технической стороны, а рассмотрим факторы, влияющие на выбор этой платформы с точки зрения бизнеса.

    Что такое .Net и для чего нужна эта платформа

    Что такое язык .Net и для чего он нужен

    Платформа .NET Framework – это специальная технология, предназначенная для выполнения различных веб-служб и создания приложений на ОС Windows. Так нам говорит официальный источник Microsoft.

    Что все это означает для программиста и обычного пользователя – разберемся в сегодняшней статье.

    Что такое .NET?

    Первый выпуск .Net Framework состоялся еще в далеком 2002 году. Тогда платформа была разработана как альтернатива Java. Основное отличие .Net заключалось в том, что платформа официально рассчитывалась на работу с операционными системами семейства Microsoft Windows.

    Прошло уже целых 20 лет, но .Net до сих пор пользуется популярностью несмотря на то, что есть платформы нового поколения, например .Net Core. Сегодня .Net позволяет использовать одни и те же пространства имен, библиотеки и API для разных языков:

    Когда программист создает программу на одном из этих языков, то в первую очередь ему необходимо подключить пространство имен System. Это позволяет организовать код программы в логические блоки, объединить и отделить от остального кода некоторую функциональность. Если бы не было .Net, то приходилось бы создавать отдельный System для каждого языка программирования, а это бы уже нарушало один из главных принципов программирования: «Не повторяйся».

    Комьюнити теперь в Телеграм
    Подпишитесь и будьте в курсе последних IT-новостей

    Зачем нужен .NET?

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

    Предположим, что нам нужно установить программу, которая была написана на языке программирования C#. Для нее также потребуется установить и среду для C#. Если нам нужна программа на другом языке, то для нее нужно установить уже другую среду, и так со всеми языками.

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

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

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

    Помимо основных языков, фреймворк поддерживает несколько десятков других языков – это Delphi, Cobra, Oxygene и другие. С полным списком вы можете ознакомиться на Википедии.

    Как работает .Net?

    Принцип работы .Net довольно прост, достаточно разобраться в понятиях CLI, CIL и CLR.

    Принцип работы .Net

    CLI (от англ. Common Language Infrastructure – общеязыковая инфраструктура) – определяет архитектуру исполнительной системы .NET.

    При такой инфраструктуре у каждого языка есть свой компилятор, однако программы компилируются не в нативный код, а в промежуточный байт-код CIL. Если мы напишем небольшую программу, выводящую надпись «Hello, World» на разных языках, то в результате она сформируется в промежуточный байт-код.

    Промежуточный байт код

    Когда мы запустим такую программу, то ее байт-код передастся в общеязыковую исполняющую среду CLR (Common Language Runtime). Там он уже компилируется в нативный код и начинает выполняться.

    Аналогичным образом работают и виртуальные машины Java, но вот только .Net работает гораздо быстрее и может быть использован на персональных ПК, а не только на серверах.

    Где используют .NET?

    Диапазон продуктов, над созданием которых трудятся разработчики, довольно обширный. Рассмотрим наиболее популярные сферы, где используется технология .Net.

    Веб-разработка

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

    Сюда могут входить простые одностраничные сайты, но чаще всего это крупномасштабные проекты, требующие больших усилий. Например, Stack Overflow – сайт, известный каждому разработчику.

    Для написания веб-приложений под .Net надо знать C#, а также владеть фреймворком ASP.NET MVC. Кроме того, нужно понимать, что такое клиент/сервер, как устроен протокол HTTP, как работает REST.

    Клиентские приложения

    Клиентские приложения – продукты, которые запускаются на персональных компьютерах и мобильных устройствах.

    С применением .NET были разработаны такие приложения Windows, как блокнот и калькулятор. Но это лишь малая часть того, что можно сделать на .Net. Например, технология была использована в NinjaTrader и Tradesignal, а также в приложении для бизнес-аналитиков Microsoft Power BI.

    Существуют клиентские приложения и для смартфонов, но в них, как правило, используется более современная технология .Net Core. С помощью нее и Xamarin.Forms можно написать приложение и опубликовать его в Apple Store или Google Play.

    Компьютерные игры

    Используя .Net, можно создавать различные игры под Unity. Примеры: Inside, Kerbal Space Program, Endless Legend и даже Pokemon Go. Для создания подобных игр необходимо знать язык программирования C# и использовать библиотеки платформ Mono и Unity.

    Интернет вещей

    Интернет вещей – это огромное количество устройств, которые подключены к интернету для обмена данными с другими «вещами» и приложениями. Устройства используют встроенные датчики для сбора данных и воздействуют на них. Примеры применения: от умного дома, который автоматически регулирует отопление и освещение, до умной фабрики, контролирующей промышленные машины для поиска проблем.

    Здесь также можно применять .NET, например, с использованием Raspberry PI с Windows 10 IoT Core. Если вы планируете развиваться в данном направлении, то первым делом почитайте в интернете про Azure IoT и Azure IoT Hub.

    Enterprise

    Enterprise – это область разработки продуктов для решения проблем бизнеса. К таким продуктам можно отнести CRM для отслеживания поведения клиентов, а также системы менеджмента информации и документооборота.

    Подобные системы – это чаще всего комбинация веба, десктопных и мобильных приложений. Чтобы начать работать с Enterprise, потребуются знания в C#, .NET и JavaScript, а также в инструментах, которые являются базой для проектируемого Enterprise-продукта.

    Стоит ли учить .NET?

    Технология .Net привлекательна среди молодых специалистов, так как она открывает обширные возможности. Например, можно пойти в backend и стать профессионалом в WCF или ASP.NET Core. Использование Razor/Blazor позволит создавать под .NET полноценные веб-приложения как с клиентской, так и с серверной частью.

    Если говорить о современных технологиях по типу React, NG или Vue, то обучение для backend-разработчика станет более понятным с использованием языка TypeScript, который был разработан Microsoft специально для C#-программистов.

    Также не стоит забывать и о том, что .Net – это фреймворк, заточенный под Windows. Не нужно ничего устанавливать, все уже под рукой. Если же взять тот же Java, то потребуется установить много дополнительного ПО, а для работы с iOS вовсе нужен Mac.

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

    Заключение

    Технология .Net – это возможность писать сложные и функциональные приложения. Чтобы стать .Net-разработчиком, в первую очередь стоит изучить основы – теорию алгоритмов и теорию информации. После изучения основ можно переходить к выбору платформы и языку, который она поддерживает.

    Сетевая архитектура WebNet

    Web-технология Web-топология Web-коммутация В последние 2-3 года развитие сети Internet определяется Web-технологиями. Благодаря им любой обладатель персонального компьютера может с помощью модема получить в Internet любую общедоступную информацию. Первое поколение

    В последние 2-3 года развитие сети Internet определяется Web-технологиями. Благодаря им любой обладатель персонального компьютера может с помощью модема получить в Internet любую общедоступную информацию.

    Первое поколение инструментария Internet составляли FTP (File Trаnsfer Protoсol), утилиты обмена файлами между компьютерами, и telnet, программы удаленного доступа. Недостаточная интеллектуальность этих методов (они позволяют оперировать только теми данными, расположение которых известно) привела к появлению и развитию навигаторов — программ поиска, образовавших второе поколение средств доступа к информации в Internet. К ним относятся система поиска в большом количестве баз данных WAIS и информационная система Gopher. Последняя использует иерархию баз данных (например, кафедра-факультет-университет). Несмотря на свою эффективность навигаторы все-таки могли работать с ограниченным числом форматов данных.

    Более универсальной с точки зрения получения информации оказалась оболочка Web. Она основана на связывании c помощью ссылок одинаковых слов или фраз, используемых в различных документах. Перекрестные ссылки образуют «паутину» (web). Cвободно распространяемая мультиплатформенная программная среда Web стала основой третьего поколения инструментов Internet — программ просмотра (browsers), обеспечивающих связь инструментальных средств первого и второго поколений.

    Web-технология

    В 1989 г. Тим Бернерс-Ли предложил руководству СЕRN проект создания распределенной гипертекстовой информационной системы (World Wide Web: Proposal for Hy-perText Project). Пользователь должен был получить возможность просмотра документов (страниц текста) в необходимом порядке с помощью гипертекстовых ссылок. Они обеспечивают возможность «перепрыгивания» из одного документа в другой независимо от их местоположения и типа компьютера, на котором они хранятся. Бернес-Ли заложил три краеугольных камня Всемирной паутины (World Wide Web, WWW), актуальных и поныне:

    Позже к этим компонентам был добавлен четвертый — универсальный интерфейс шлюзов CGI (Common Gateway Interface). Он специально разработан для расширения возможностей WWW за счет использования всевозможных внешних ПО с различными методами доступа (в основном, GET и POST), описанными в НТТР.

    В соответствии с Web-технологией обмен информацией происходит по схеме клиент-сервер. В качестве клиента обычно выступает браузер, а сервером является Web-сервер, поддерживающий протокол обмена гипертекстовой информацией НТТР, который отвечает на запросы клиента. В последнее время сервер все чаще играет роль сервера-посредника (pro-xy-server), являясь, с одной стороны, сервером для клиента, посылающего запросы, а с другой, клиентом, который посылает запросы к другому серверу.

    База данных сервера (Web site) является файловой системой, представляющей собой иерархические деревья. В любых компаниях (как больших, так и маленьких) она представляет собой не монолитную, а распределенную систему, в которой информационные ресурсы распределены между различными компьютерами.

    Web-технология реализуется на уровне приложений (седьмой уровень модели OSI) и опирается на стек протоколов TCP/IP, поэтому ее эффективность во многом зависит от применяемой сетевой архитектуры.

    Развитие интрасетей, использующих Web-технологию и протоколы TCP/IP, привело к противоречию: сетевая архитектура Internet основана на применении маршрутизаторов, обрабатывающих сетевые адреса дейтаграмм в рамках протокола IP (Internet Protocol) — третьего уровня модели OSI, а корпоративные сети все шире используют коммутаторы, обрабатывающие MAC-адреса (Media Access Control) — второго уровня модели OSI (более подробно см.: Миграция к новой архитектуре Internet//Сети, 1997, N 8).

    Аппаратная реализация функций коммутации на основе специализированных микросхем ASIC (Application Spesific Integrated Cir-quits) резко повышает пропускную способность коммутаторов и уменьшает их стоимость (почти на порядок по сравнению с маршрутизаторами из расчета стоимости за один порт). При этом маршрутизаторы вытесняются на периферию сети.

    При реализации любой сетевой архитектуры необходимо обеспечить выполнение трех основных требований: хорошей масштабируемости, высокой производительности, полной управляемости (см.: М. Макстеник. Сравнение сетевых архитектур//Сети, 1997, N 2).

    Рассмотрим сетевую архитектуру локальной сети рабочей группы, использующей коммутатор в качестве сетеобразующего элемента. По экспертным оценкам, для обеспечения эффективной работы число пользователей в рабочей группе не должно превышать 10-12 человек. Выделенный сервер, подключенный к коммутатору по каналу Fast Ethernet (100 Мбит/с), позволит организовать независимую работу всех членов рабочей группы с максимально возможной скоростью передачи по протоколу Ethernet (10 Мбит/с) — в том числе при организации сети с полным набором услуг (т. е. обеспечивающей передачу данных, аудио- и видеоинформации).

    Главная особенность коммутаторов Fast Ethernet, которые функционируют как многопортовые мосты, — наличие суперскоростной внутренней шины коммутатора (1-10 Гбит/с и выше), что обеспечивает режим коммутации без блокировок. При этом в сети (т. е. в коммутаторе) протокол IP не обрабатывается, но благодаря его наличию в ПО сервера и клиентских ПК в сети работают все прикладные программы, реализованные для IP-технологий.

    Наличие высокоскоростного канала (10 Мбит/с) у каждого пользователя и высокопроизводительного сервера, позволяющего осуществлять передачу со скоростью 100 Мбит/с, делает оправданным использование в корпоративных интрасетях сетевых компьютеров (NC). Функционально NC являются «тонкими» клиентами и обмениваются с сервером фрагментами программ (аплетами). Аппаратно они представляют собой бездисковую станцию с одной кнопкой включения питания и устройством считывания смарт-карт (для идентификации пользователей).

    В больших корпоративных сетях сервер рабочей группы (и даже подразделения) не может обеспечить обслуживание всех запросов клиентов, поэтому он содержит не только серверные, но и клиентские программы. Последние, в свою очередь, должны взаимодействовать с программами серверов более высоких уровней (подразделения и всей корпорации), т.е. каждый сервер фактически является промежуточным (proxy) сервером. Соответственно, при построении корпоративных сетей важной задачей является построение магистральной сети, объединяющей все серверы корпорации. В упомянутой статье М. Макстеника названы следующие разновидности сетевых архитектур:

    Первые две постепенно вытесняются сетевыми архитектурами, основанными на коммутации. При этом коммутаторы Ethernet 10/100 являются граничными и формируют абонентский фрагмент сети, а технология АТМ используется для построения магистральной сети корпорации. Важнейший аспект — выбор оптимальной топологии, которая в наибольшей степени отвечает работе в режиме клиент-сервер. Сама сеть представляет собой распределенный сервер, обеспечивающий необходимое качество сервиса (QoS) подключенным к ней клиентам.

    Объединение серверов в сети Internet на базе топологии неправильного графа оказалось несостоятельным из-за необходимости обработки в маршрутизаторах громадного объема информации и ее периодического обновления, что резко увеличивает в сети объем служебного трафика. Соответственно снижается пропускная способность сети.

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

    Web-топология

    В названии проекта, ставшего основой WWW, заложен и более глубокий смысл, так как слово «Web» соответствует не только «паутине» перекрестных ссылок, но и реальной физической топологии сети.

    Web-топология — это радиально-кольцевая структура, примеры которой мы находим в природе (паутина, сплетенная пауком) и которая активно используется в человеческой деятельности (например, при создании городской транспортной сети). Построенная на основе Web-топологии, радиально-кольцевая коммутируемая сеть характеризуется следующим:

    При построении корпоративных сетей граничные коммутаторы размещаются уже на уровне рабочих групп и объединяют 10-12 сегментов сети Ethernet, что обеспечивает независимое обслуживание каждого сегмента сети. В случае необходимости каждый сегмент может быть подключен непосредственно к одной рабочей станции, что позволяет эффективно использовать высокоскоростные приложения.

    Коммутаторы, работающие на втором (канальном) уровне модели OSI, представляют собой, по сути, многопортовые мосты, в которых производится обработка МАС-адреса в заголовке кадра Ethernet, а обмен кадрами между портами осуществляется через внутреннюю высокоскоростную шину. Для реализации режима коммутации без блокировок скорость передачи по шине должна быть больше суммарной скорости передачи по всем портам, а уменьшение времени ожидания достигается разбивкой кадров Ethernet на фиксированные 53-байтные ячейки (cells) протокола АТМ. Для организации доступа в магистральную сеть АТМ в каждом коммутаторе необходим хотя бы один порт, обеспечивающий передачу ячеек со скоростью 155 Мбит/с.

    Однако недостатком «чистой» Web-топологии является необходимость в разных типах коммутаторов, находящихся в узлах сети:

    В иерархическую структуру современных корпоративных информационных систем входят:

    Данная структура предполагает построение сетей двух уровней: базовой (магистральной) сети, связывающей между собой серверы, и множества локальных сетей (ЛС), объединяющих станции-клиенты и представляющих пользователям возможность обмена данными и доступа к корпоративным информационным ресурсам.

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

    Web-коммутация

    Поскольку число подразделений одного уровня в эффективно работающих организациях не превышает 10-12 (что хорошо коррелируется с оптимальным количеством (10-12) членов рабочей группы), можно использовать одну логическую схему для построения Web-коммутатора, который способен работать как граничный, транзитный и центральный коммутатор. Web-коммутатор использует технологию «свернутой магистрали» (collapsed backbone) для объединения до 12 четырехканальных коммутаторов граничного и транзитного типа и ограничивает до 12 число нисходящих D-каналов для центрального коммутатора. Каскадное соединение таких коммутаторов с помощью Z-каналов (ATM 155 Мбит/с), не имеющих ограничений по длине, позволяет строить высокоскоростные компьютерные сети различного размера.

    Серверы управляют на сеансовом уровне (пятый уровень модели OSI) трафиком от своих клиентов за счет резервирования пропускной способности соответствующих каналов коммутатора. Благодаря этому обеспечивается необходимый уровень качества обслуживания (QoS). Наличие в каждом коммутаторе каналов L и R для двухточечной связи с соседними коммутаторами одного яруса позволяет при выходе из строя магистральных каналов Z и D автоматически предоставлять обходные пути. Таким образом, Web-коммутатор является маршрутизируемым коммутатором второго уровня (L2S).

    Описанный подход к построению отказоустойчивых сетей является более эффективным и экономичным, чем основанный на использовании протокола основного дерева (STP). В последнем методе применяется дополнительное оборудование — коммутаторы, которые блокируются при нормальной работе сети. Они активизируются с помощью специальных блоков данных BPDU (Bridge Protocol Unit), размещаемых в передаваемых по сети кадрах канального уровня, в результате чего осуществляется переконфигурация сети с исключением всех возможных петель в исходной сети и восстановлением ее связности при выходе из строя какой-либо линии связи.

    Сетевая инфраструктура, являющаяся физической основой корпоративных сетей, характеризуется, прежде всего, топологией сети, которая определяется на стадии ее проектирования. Эта топология обуславливает выбор кабельной проводки и сетевых устройств (мостов, маршрутизаторов и коммутаторов). Современные кабельные системы в зданиях строятся, как правило, по звездообразной топологии:

    Таким образом, распределительный шкаф является идеальным местом размещения граничного коммутатора. Соединение граничных коммутаторов между собой по горизонтали (каналы L и R ) и с коммутатором более высокого уровня по вертикали (канал Z) при наличии режима АТМ 155 Мбит/с образует сеть WebNet — масштабируемую корпоративную сеть с полным набором услуг.

    При организации сети с полным набором услуг (FSN) первой задачей является представление достаточной пропускной способности для передачи всех данных, аудио- и видеоинформации, адресованных абоненту (клиенту) сети, по мере их поступления.

    Качество сервиса (QoS) определяется предсказуемой ограниченной задержкой (промежуток времени между отправкой первого бита по сети и его прибытием к месту назначения), что особенно важно для реализации изохронных служб (аудио и видео). Поскольку протокол Ethernet лишен встроенных возможностей управления потоком (для обеспечения необходимого уровня QoS), то возможно использование протокола резервирования ресурсов RSVP и протоколов сеансового уровня для согласования высокоскоростного трафика сервера (100/1000 Мбит/с) и менее скоростного трафика клиентов (10/100 Мбит/с).

    По оценкам некоторых экспертов (Сети, 1996, N 9-10), протокол резервирования ресурсов RSVP позволит обеспечить в интрасетях передачу голоса и видео. В RSVP определено специальное взаимодействие, называемое сеансом. Протокол способен поддерживать как одноадресную, так и многоадресную передачу данных между двумя узлами. Источник данных посылает команду РАТН потенциальным получателям, которые, если им нужны указанные данные, в ответ посылают команду RESV.

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

    При использовании Web-коммутатора протокол RSVP реализует перераспределение полосы пропускания магистрального канала Z (155 Мбит/с) между всеми клиентами, подключенными к граничному коммутатору.

    Организация сеанса складывается из пяти процессов:

    Установление, проведение и завершение сеанса реализуются на сеансовом уровне (пятый уровень модели OSI). Этот уровень обеспечивает установление и разрыв пользовательских сеансов, управление рестартами и восстановлением после сбоев и отказов. Кроме того, на сеансовом уровне обеспечиваются управление потоком и скоростью передачи сообщений, необходимый уровень секретности, а также проверяется право доступа.

    Сеть с полным набором услуг предъявляет серьезные требования к серверу, установленному на граничном коммутаторе: во-первых, он должен быть многофункциональным (MultiServer), т. е. выполнять функции Web-сервера, почтового сервера, мультимедиа-сервера и т. д., а во-вторых, обеспечивать резервирование полосы пропускания по каждому каналу сопряжения с ним граничного коммутатора для организации двухсторонней связи между двумя (или многими) абонентами — как в рамках одного коммутатора, так и с использованием транзитных коммутаторов.

    Иерархическое каскадирование коммутаторов старшего уровня (коммутаторов Gigabit Ethernet, обеспечивающих соединение с сервером по протоколу Ethernet 1000 Мбит/с) позволит строить высокоэффективные корпоративные сети с полным набором услуг, которые, по сути, представляют собой объединенные локальные сети на базе Web-топологии (Local Area WebNetwork — LAWN). Данный подход может быть использован для построения городских сетей (Metropolitan Area WebNet-MAWN), региональных сетей (Wide Area WebNet-WAWN) и даже сети мирового уровня (World Wide Web Net — WWWN).

    Закурдаев Сергей Васильевич — вице-президент компании «АЛТЕКТ» (создана в 1997 г. для реализации российских проектов в области высоких технологий), руководитель Проекта НТ/04, главный конструктор коммутаторов AZS100 и AZS1000. С ним можно связаться по факсу (095) 206-8751.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *