Mechanics Studio .NET
www.VMKfree.narod.ru
Проект системы "Mechanics Studio .NET" 
   Средства разработки 
Описание сайта
Теория механизмов
Проект системы
   Описание проблемы
   Требования к системе
   Средства разработки
   Модули системы
   Диаграммы классов
   Стр-ра данных мех-ма
   Аналог структ. схем
   Прогр-е 3D графики
   Хранение Данных
Описание GUI
Дополнение

   Обновление: 01.09.05
© EasyStudio: 01.09.05
easystd@gmail.com


      Язык программирования, на котором будет реализована система, заслуживает большого внимания. Исследования показали, что выбор языка программирования несколькими способами влияет на производительность труда программистов и качество создаваемого ими кода [12]. Выбор делался из следующих уже знакомых языков:

  • Visual C++;
  • Visual C#;
  • Object Pascal;

      Object Pascal является объектно-ориентированным языком, который, до недавнего времени, использовался только для разработки Win32 приложений. Для разработки приложений на этом языке используется среда визуального программирования Borland Delphi и библиотека визуальных компонент VCL. С выходом версии Delphi 2005 стала возможным разработка приложений для платформы Microsoft .NET Framework непосредственно на Object Pascal с использованием VCL.

      Концепция Visual C# разработана для одновременного использования объектно-ориентированного языка общего назначения, а так же среды программирования и исполнения приложений “Microsoft .NET”. Этот язык поддерживает все современные методики ООП, но, тем не менее, используется исключительно для разработки приложений под .NET.

      Язык Visual С++ на данный момент является самым широко используемым языком программирования как для разработки Win32 приложений, так и для создания программ для среды .NET Framework. Компания Microsoft разработала расширения этого языка - Managed Extensions for Visual C++, которые позволяют писать полноценные .NET.

      С выходом новой версии платформы .NET 2.0 синтаксис языка Visual C++ был значительно обновлён. Это обновление языка, называемое C++/CLI (Common Language Infrastracture) было сделано для обеспечения возможности объединения управляемого (managed) и неуправляемого (native) исходного кода в единые модули, что позволило создавать так называемые mixed mode приложения. Таким образом возможности языка C++ .NET даже превосходят возможности C#, сохраняя всё старое и добавляя новые возможности среды .NET.

.NET Framework       .NET Framework – это платформа для построения и исполнения приложений. Её основные компоненты – общеязыковая исполняющая среда CLR (Common Language Runtime) и библиотека классов FCL (Framework Classes Library). [6]
      Среда CLR абстрагирует сервисы ОС и служит механизмом для исполнения управляемых приложений (managed applications), любое действие которых должно получить одобрение со стороны CLR. Программы, предназначенные для работы с CLR, написаны на промежуточном языке CIL (Common Intermediate Language), представляющем объектно-ориентированный аналог ассемблера.

      Перед исполнением, среда CLR выполняет, так называемую, компиляцию по требованию JIT (Just-In-Time) отдельных участков кода CIL и переводит их в машинный код. В связи с таким подходом к исполнению приложений можно говорить о виртуальной машине .NET. Несмотря на накладные расходы, связанные с JIT-компиляцией, приложения .NET работают достаточно быстро (примерно 60% от производительности неуправляемого аналога), благодаря высокой оптимизации этого процесса.

      Библиотека FCL представляет набор объектно-ориентированных API, к которым обращаются управляемые приложения. Инструментарий, предлагаемый этой библиотекой, настолько широк, что позволяет полностью отказаться от использования вспомогательных библиотек, таких как Windows API, MFC, ATL, COM. Средства этой библиотеки позволяют разрабатывать следующие типы клиентских и серверных приложений [7]:

  • Консольные приложения Windows;
  • Windows Forms – оконные приложения для Windows;
  • Службы Windows – приложения управляемые диспетчером SCM;
  • Библиотеки компонент – удобные в использовании с другими приложениями автономные модули, содержащие реализацию классов пользователя;
  • Web Forms – веб сайты, описанные на языке HTML с северными сценариями;
  • Web Services XML – серверные программы, предоставляющие некоторые методы, к которым можно легко обратиться через Интернет;

      Microsoft .NET Framework предоставляет разработчикам массу преимуществ, перечислю лишь некоторые из них [7]:

  • Единая программная модель;
  • Отсутствие проблем с версиями;
  • Упрощение процесса разработки и модели программирования;
  • Возможность работы на нескольких платформах;
  • Интеграция языков программирования и возможность их совместного использования;
  • Автоматическое управление памятью (сборка мусора);
  • Проверка безопасности типов;
  • Развитая поддержка отладки;
  • Управление безопасностью приложений;

      Из всего перечисленного, необходимо отметить, наличие встроенного сборщика мусора, выполняющего автоматическое управление памятью. Среда CLR автоматически отслеживает использования ресурсов, гарантируя, что не произойдёт их утечки. По сути она исключает возможность явного освобождения памяти. При разработке нашего приложения, будет создана сложная система классов, для управления объектами которой, очевидно потребуется сборщик мусора. Наличие же встроенного сборщика мусора в .NET Framework является несомненным плюсом для использования этой среды при разработке приложения.

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

      С выходом новой версии Microsoft DirectX 9.0 стало возможным использование этой библиотеки в среде .NET. Microsoft разработал специальное расширение существующей библиотеки DirectX “слоем” управляемых API, называемых Managed DirectX. Эти библиотеки открывают доступ к функциям библиотеки DirectX из управляемого кода.

Managed DirectX реализован как 'тонкий' слой управляемых API над DX COM

      Использование управляемого DirectX даёт разработчикам следующие преимущества:

  • Поддержка всех .NET-совместимых языков программирования:
  • Возможности использования всей мощи библиотеки классов FCL;
  • Удобства программирования, связанные со строгим именованием типов;
  • Сокращение исходного кода на 15 - 20% по сравнению с неуправляемым аналогом [16];
  • Поддержка новейших аппаратных средств;

      Минусом же является только снижение производительности рендеринга, из-за исполнения CIL-кода. Тем не менее, современные аппаратные ускорители 3D-графики компенсируют этот недостаток. Производительность рендеринга 3D-графики в управляемом коде можно повысить до 98% от производительности неуправляемого аналога [16].

      Исходя из всего выше сказанного, я принял решение об использовании языка программирования Visual C++ .NET для создания приложения под платформу .NET Framework. Если некоторые компоненты программы удобнее писать на Visual C#, то их можно создавать в виде отдельных модулей. Для программирования 3D графики будет использоваться библиотека Managed DirectX 9.0.

      Кроме того, для визуализации 3-х мерных аналогов элементов структурной схемы механизма, необходимо спроектировать их полигональные модели, а затем сохранить их в формате X-файла (для загрузки с помощью функций DirectX). Для этого необходимо использовать среду 3-х мерного моделирования, которая имеет возможности сохранения построенных моделей в X-файлах. Для этого я предлагаю использовать систему компании Paradox – Maxon Cinema 4D. Эта система имеет удобный инструментарий для создания 3-х мерных моделей и имеет возможности их сохранения и загрузки в X-файлах.

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

  • Выбранная платформа: Microsoft .NET Framework 2.0;
  • Языки программирования:
    • Microsoft Visual C++/CLI - язык для программирования ядра системы;
    • Microsoft Visual C# - язык для программирования интерфейса системы;
  • Используемые библиотеки классов:
    • FCL - основная библиотека классов;
    • Managed DirectX 9 - библиотека программирования 3D-графики;
  • Среда разработки: Microsoft Visual Studio 2005;
  • Система 3-х мерного иоделирования: Paradox Maxon Cinema 4D.

Перейти к следующему разделу

Хостинг от uCoz