Белорусская цифровая библиотека





Сегодня в номере

Новости
  • altWebDeveloper #3
  • ASP.NET Developer Kits
    Microsoft .NET
  • .NET или Кому это надо?
  • .NET или Кому это надо? Часть 2. Основные составные части .NET
  • Header и footer
  • Что использовать, DataReader или DataSet
  • Как создать в IIS виртуальную директорию
  • Отображение DataGrid'a в маленькой области экрана без использования разбиения на страницы
    Web-promoting
  • Больной вопрос - раскрутка сайта
  • Все способы раскрутки
  • Как подобрать ключевые слова для вашего сайта
  • Обмен ссылками: миф или реальность
  • Секреты успешного сайта
    .NET on-line
  • Англоязычные сайты
  • Русскоязычные сайты
  • Обмен ссылками
    Для души
  • Уильям Гибсон
    "Зимний рынок"
    (окончание)


    Рассылка журнала

    Рассылки@Mail.ru
    Новости altWebDeveloper

    © 2004 CAS "altDesign"
    Все права защищены

  • ..: altWebDeveloper - сетевой журнал для вебмастеров
    и разработчиков Microsoft .NET :..

    ..: .NET или Кому это надо? :..



    Автор: Arhangel
    Источник: Клуб программистов "Весельчак У"

    Несмотря на то, что платформе .NET уже несколько лет, очень немногие знают, что же это такое на самом деле. Интересно отметить, что подавляющее большинство относится к этому проекту, как к очередному коммерческому продукты Microsoft, который не содержит в себе никаких интересных идей и вообще никому не нужен. Хотя на самом деле это не так. И, чтобы не быть голословным, сейчас постараюсь показать недостатки существующих платформ и решение, которое предлагает .NET. Итак, начнем:

    C. Это сам по себе очень красивый язык, но и в нем есть некоторые неудобства. Начнем с того, что он достаточно непрост в изучении. Ведь в C программист должен сам управлять памятью и указателями, что для начинающего весьма непросто. Если же Вы опытный программист, то возникает сложность с отладкой кода: попробуй найди ошибку в программе, которая напрямую вызывает тысячи API функций! Плюс ко всему недостаточные возможности по использованию объектно-ориентированного программирования.

    C++/MFC. Очень мощная система, но опять же встает вопрос об обучении. Легче язык не стал, что многих начинающих просто отпугивает. И они переходят на Бейсик. Но о нем чуть ниже. Безусловный шаг вперед - это возможность использования преимуществ объектно-ориентированного программирования (инкапсуляция, наследование, полиморфизм). Однако MFC - это всего лишь надстройка над WinAPI, так что программисту все равно приходится зачастую разбираться в сложном коде, откуда вероятность ошибок существенно возрастает.

    Visual Basic. Исторически сложилось, что этот язык пользуется у программистов дурной славой. И в общем-то это правильно. Basic очень прост. Сначала это привлекает, но при ближайшем рассмотрении... За простоту приходится расплачиваться возможностями языка. Главное, что Basic - это не объектно-ориентированный язык (хотя так думают очень многие программисты, пишущие на Basic), а язык "для работы с объектами". Не поддерживаются классическое наследование, многопоточные приложения и много-много чего другого.

    Java. Это полностью объектно-ориентированный язык с очень элегантными синтаксическими конструкциями. Программировать на нем не только эффективно, но еще и эстетически приятно. Однако и здесь не избежать некоторых проблем. Главная из них - отсутствие межъязыкового взаимодействия в полном смысле этого слова. Да, существует такая вещь, как JNI (Java Native Interface). Этот интерфейс позволяет программам, написанным на другом языке программирования, взаимодействовать с Java. Но и здесь есть некоторые ограничения. Главный недостаток JNI состоит в том, что при его использовании теряется суть идеи WORA (Write Once, Run Anywhere), поскольку любой native-код прочно связывает Java-приложение с какой-либо платформой. К тому же JNI - это набор API только для C/C++, остальные же языки остаются в стороне. Маленькое лирическое отступление: на сайте java.sun.com случайно прочитал такое высказывание: By writing programs using the JNI, you ensure that your code is completely portable across all platforms. Напомню, при использовании native-кода кроссплатформенность теряется, в свете чего не совсем понятно последнее утверждение приведенной выше цитаты.

    COM (Microsoft Component Object Model). Эта технология позволяет частично скрыть недостатки, связанные с переносимостью кода. Безусловное преимущество COM - к COM-объектам можно обращаться из любых других языков программирования. Казалось бы, проблема решена! Ан нет. В COM не реализовано наследование, так что каждый компонент "мертв", от него не может произойти ни один класс. Напрашивается ответ: "Так напишите же новый класс!" И вот теперь начинаются настоящие неудобства. Каждый компонент COM - как ящик Пандоры. Его устройство довольно сложно и на обучение написанию собственных COM-объектов уйдет несколько месяцев.
    Интернет-программирование. Вы скажите: "А в чем проблема? Ведь каждый язык сделан под свои конкретные нужды и отлично исполняет работу в своей области! Зачем что-то менять?" Все правильно, если забыть о такой мелочи, как Интернет. Современный Интернет-программист должен знать ASP, HTML, XML, JavaScript, VBScript, COM, COM+, ADO и т.д. И здесь опять-таки возникает проблема взаимодействия между языками. И проблема довольно серьезная. Ведь тип данных int это не то же самое, int в C, который в свою очередь отличается от integer и Visual Basic. И как же быть?

    Решение .NET
    Что же позволяет .NET?
    1. Полное взаимодействие с существующим кодом. Кстати, файлы .NET отлично уживаются с компонентами COM.
    2. Полное межъязыковое взаимодействие. Поддержка межъязыкового наследования, отладки и обработки исключений.
    3. Общая исполняемая среда. Неважно, на каком языке создана программа - среда выполнения одна и та же. Главное преимущество - общий набор типов данных.
    4. Библиотека базовых классов. Она обеспечивает сокрытие вызовов WinAPI и, соответственно, избавление от многих тонких и неприятных моментов.
    5. Упрощение развертывания приложений. При развертывании больше нет необходимости редактировать реестр.

    Детально возможности .NET будут рассмотрены позднее.


    При перепечатке любого материала с журнала или с сайта, видимая ссылка на источник http://altwebdeveloper.nm.ru и все имена, ссылки авторов обязательны.

    © 2004 CAS "altDesign"
    © Валерий В. Макеев (deepInfinity)



    @ library.by