на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Компьютерное моделирование технологических процессов
p align="left">С+ + , Visual Basic.NET и некоторые другие языки программирования). Преимуществом данной среды является та простота, с которой возможности .NET могут быть интегрированы в наши программы. Код, который мы будем создавать, будет целиком написан на С#, однако в нем повсеместно будут использоваться возможности .NET Framework, а там, где возникнет необходимость, мы будем применять в VS дополнительные инструменты.

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

MSIL и ЛТ

При компиляции кода, в котором используется библиотека .NET Framework, мы не получаем сразу родной код для конкретной операционной системы. Напротив, наша программа будет откомпилирована в программу на языке Microsoft Intermediate Language (MSIL -- промежуточный язык компании Microsoft). Этот код не является специфическим ни для какой операционной системы и так же точно не является специфическим для С#. Компиляция с других языков программирования .NET -- например с Visual Basic.NET -- на первом этапе тоже происходит на этот язык. Данный этап компиляции выполняется VS в тех случаях, когда мы используем его для разработки приложений на С#,

Очевидно, что для запуска приложения потребуется сделать некоторую дополнительную работу. Эта работа возлагается на ЛТ-компилятор (Just-In-Time, своевременный), который осуществляет компиляцию MSIL-кода на код, специфический для ОС и архитектуры используемого компьютера. Только после этого операционная система может выполнить приложение.

В прошлом часто возникала необходимость транслировать написанную программу в несколько различных приложении, каждое нз которых предназначалось для конкретной операционной системы и архитектуры центрального процессора, Нередко это был один нз способов оптимизации (направленной на то, чтобы программа, к примеру, быстрее выполнялась на AMD-чнпах), но иногда это оказывалось критичным (например, когда приходилось использовать некоторые приложения одновременно и в среде Win9x, и в среде WinNt/2000). Теперь такая необходимость исчезла, поскольку ЛТ-компнляторы (как и предполагает их название) используют код на языке MSIL, который совершенно независим от компьютера, операционной системы н центрального процессора. Существует несколько различных JIT-компиляторов, каждый нз которых предназначается для некоторой конкретной архитектуры, поэтому для создания родного кода, необходимого в том или ином случае, будет использоваться соответствующий ЛТ-компилятор.

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

Модули

Когда выполняется компилирование приложения, создаваемый MSIL-код сохраняется в некотором модуле (assembly). В состав таких модулей входят как выполняемые файлы приложений, которые могут быть запущены из Windows напрямую и которым для работы не требуется никаких других программ (такие файлы имеют расширение .ехе), так и библиотеки, предназначенные для использования другими приложениями (они имеют расширение .dil).

Кроме данных на языке MSIL, в модулях хранятся метаннформацня (т. е. информация об информации, хранящейся в данном модуле, иначе известная под названием метаданных) и дополнительные ресурсы (дополнительные данные, используемые MSIL, например звуковые и графические файлы). Метаинформация делает модули полностью самоописательными. Для использования модуля не требуется никакой дополнительной информации; другими словами, исключается ситуация, когда не удается добавить необходимые данные в системный регистр, и все подобные ей, что составляло серьезную проблему прн разработке приложений на других платформах.

Отсюда следует, что установка приложений зачастую сводится к простому копированию файлов в директорию удаленного компьютера. Поскольку системам, под управлением которых будет выполняться приложение, не требуется никакой дополнительной информации, мы получаем возможность просто запускать выполняемый файл из этой директории (при условии, что на данном компьютере инсталлирована CLR.NET) без каких-либо дополнительных действий,

Естественно, размещать все необходимое для выполнения приложения в одном месте не обязательно. Существует возможность создавать код, выполняющий задачи, которые могут потребоваться нескольким приложениям. В подобных ситуациях полезно располагать такой многократно используемый код в месте, доступном всем приложениям. В .NET Framework таким местом является Global Assembly Cache (GAC -- кэш глобальных модулей). Разместить код в таком кэше очень просто: для этого необходимо просто поместить модуль, содержащий соответствующую программу, в директорию, содержащую этот кэш.

Управляемый код

Использование CLR не ограничивается тем моментом, когда мы откомпилировали программу на MSIL, а некоторый ЛТ-компнлятор откомпилировал MSIL в родной код. Код, написанный с помощью .NET Framework, является управляемым на этапе выполнения (данный этап зачастую называется временем выполнения (runtime)). Это означает, что CLR отслеживает выполнение приложений, управляя памятью, межъязыковой отладкой, обеспечением безопасности и т. п.

Напротив, приложения, которые выполняются не под контролем CLR, называются неуправляемыми, и в них можно использовать определенные языки программирования, такие как С + + , для получения, например доступа к функциям нижнего уровня операционной системы. Однако на С# можно писать только код, который выполняется в управляемой среде. Мы будем использовать возможности CLR по управлению кодом и возложим осуществление любых взаимодействий с операционной системой на .NET.

Сборка мусора

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

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

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

Связывание

Существует еще одни момент, который необходимо учитывать в вышеприведенном процессе. Код на С#, который компилируется иа MSIL на шаге 2, совсем не обязательно должен находиться в одном файле. Имеется возможность разнести код приложения по нескольким исходным файлам, которые затем будут скомпилированы в единый модуль. Этот процесс известен под названием "связывание" н является чрезвычайно полезным. Причина такого положения дел заключается в том, что работать с несколькими не очень большими файлами намного легче, чем с одним огромным. Можно выделить логически связанный код в отдельный файл, работа иад которым будет вестись совершенно независимо и о котором можно забыть после того, как произойдет компиляция. Такой подход существенно упрощает выявление конкретных сегментов кода, когда они оказываются нужными, а заодно позволяет командам разработчиков разделить бремя программирования на отдельные куски, которые затем можно выверять без риска повредить правильно работающие сегменты и те части кода, иад которыми трудятся другие программисты.

Что такое С#

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

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

Иногда код на С# оказывается более объемным, чем на C#. Это следствие того, что в С# (в отличие от С+ + ) осуществляется контроль безопасности использования типов. С точки зрения непрофессионала это означает, что если некоторые данные отнесены к определенному типу, то впоследствии они не могут самостоятельно преобразовываться в другие типы, Поэтому, существуют строгие правила, которым необходимо следовать при выполнении преобразования из одного типа в другой. Это часто приводит к необходимости писать на С# больший объем кода, чем на C#. Однако взамен мы получаем то преимущество, что программа становится более надежной и ее отладка упрощается, поскольку .NET постоянно следит за тем, к какому типу относится данная переменная в каждый конкретный момент времени, К примеру, в С# мы не можем дать задание: "Возьми 4 банта памяти из этих данных и 10 байтов нз других данных и рассматривай эту область памяти как X", но это не обязательно является недостатком.

С# является всего лишь одним из языков, позволяющих работать в .NET, но на взгляд автора он безусловно лучший. Его главное преимущество заключается в том, что С# -- единственный язык, разработанный для .NET Framework "с нуля", н он может использоваться в качестве основного языка для различных версий .NET, которые предназначаются для переноса на другие операционные системы. Для того чтобы некоторые языки -- вроде VB.NET -- в максимальной степени соответствовали своим предшественникам и прн этом могли работать с CLR, приходится отказываться от поддержки отдельных возможностей библиотеки программ .NET. Напротив, С# позволяет использовать любые возможности, предоставляемые библиотекой программ .NET Framework,

Какие типы приложений могут создаваться на С#

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

Приложения Windows. Это приложения вроде Microsoft Office, имеющие знакомый "Windows-подобный" вид и представление. Создавать такие приложения достаточно просто с помощью модуля .NET Framework, который называется Windows Forms и представляет собой библиотеку управляющих элементов (кнопок, панелей инструментов, меню и т. п.); эта библиотека может использоваться для создания пользовательского интерфейса (user interface, UI) Windows.

Web-приложения. Эти приложения представляют собой web-страницы, которые могут просматриваться любым web-браузером. В состав .NET Framework входит мощная система динамического создания содержимого web-страниц, позволяющая идентифицировать пользователя, обеспечивать безопасность и пр. Эта система называется Active Server Pages.NET (ASP.NET -- активные серверные страницы .NET); для создания приложений ASP.NET можно применять Web Forms языка С#,

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

Приложениям всех перечисленных типов может потребоваться доступ к базам данных, что осуществляется с помощью раздела ,NET Framework, называемого Active Data Objects.NET (ADO.NET -- активные объекты с данными .NET). Также можно использовать и многие другие ресурсы, например, инструменты для создания сетевых компонентов, графического вывода, выполнения сложных математических вычислений и т. д.

С# в этой книге

Второй и третий разделы данной книги посвящены синтаксису и использованию С#, при этом онн практически обходят вниманием -NET Framework. Это совершенно необходимо, поскольку без твердых навыков программирования на С# невозможно использовать .NET Framework. Фактически мы начнем с самых азов, а рассмотрение наиболее сложной темы -- объектно-ориентированного программирования (ООП, Object Oriented Programming) -- отложим до того момента, когда будут изучены основы. Материал будет излагаться начиная с самых простых принципов, исходя нз предположения, что у читателя отсутствуют какие-либо знания по программированию.

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.