Рассылка закрыта
При закрытии подписчики были переданы в рассылку "BloggLand и Я | Блоггландия" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Этот выпуск посвящен "отношениям" между несколькими языками - C#, Java и С++.
Информационный Канал Subscribe.Ru |
.Net Собеседник 2
Содержание:- От автора
- Обзор новостей
- C# vs Java vs C++
- Время кода - Передача значений между веб-формами в ASP.NET
- Форумы .Net на www.sql.ru
От автора
Здравствуйте, коллеги!
Вот и наступил новый, 2004 год, а следовательно пришло время следующего выпуска
.Net Собеседника. Этот выпуск будет посвящен "отношениям" между несколькими
языками - C#, Java и С++. Дело в том, что с появлением языка C#,
позиционирующегося в качестве основного языка платформы .Net, в разных
источниках появляются намёки на то, что C# - язык, полностью или в какой-то
степени скопирован с языка компании Sun – Java. Не думаю
что это так. Скорее всего, C# можно назвать языком, один из
создателей которого, Андерс Хейльсберг, стремился вложить в него всё то
положительное, что было создано в этой области за последние десятилетия.
Несомненно, можно увидеть в C# «гены» языков C, C++, Object Pascal(Delphi),
кто-то заметит заимствования из Visual Basic’a (например, знаменитый цикл
foreach). Но сегодня хотелось бы перечислить некоторые отличия языка C# от
Java. Итак, попробуем разобраться, являются ли эти два языка близнецами?
-
В языке Java не существует беззнаковых типов данных, но в C# такие типы есть –
sbyte, ushort, uint, ulong.
-
В языке Java не существует аналога типу enum. Пример: enum
WeekDays {Mon, Tue, Wed, Thu, Fri, Sat, Sun};
-
Язык Java позволяет помещать квадратные скобки как после обозначения типа, так
и после идентификатора. В языке C# скобки помещаются только после обозначения
типа.
Пример: string[] sCounter = {“раз”, “два”,”три”};
-
C# не имеет операции правого сдвига с распространением нуля (>>>).
-
В Java оператор switch принимает целочисленные значения, C# принимает строки,
так же как и целочисленные. Кроме того, Java дает возможность «проваливаться»
сквозь case’ ы, а C# не позволяет этого. В С# опреаторы break являются
обязательными, если только два case не следуют один за другим без опреаторов
между ними.
-
В Java нет оператора goto. В С# опреаторы goto имеют ограничения, которые
делают их похожими на помеченные операторы break в Java.
-
Java, как и С++, имеют значения параметров по умолчанию, что обеспечивает
необходимую гибкость, позволяющую пользователям порождать объект различными
способами. C# не имеет значений по умолчанию, но тот же эффект достигается
использованием нескольких конструкторов и вызовом их по умолчанию.
-
В Java эквивалентом деструктора является метод Finalize().
Пример деструктора для C#:
public class Connector
{
~Connector() {}
} -
В Java средства доступа формализованы при помощи предопределенных образцов
сигнатуры. Тем не менее, это все-таки методы, тогда как свойства C# не являются
методами. Они обеспечивают средства для получения доступа к полю с
использованием свойства, как будто бы оно и есть непосредственно поле.
-
В языке Java не имеется индексаторов. Напомню, что индексаторы дают возможность
получить доступ к членам класса подобно тому, как это делается в массивах.
-
В языке Java перегрузка операторов не поддерживается, в то время как язык C#
предоставляет полную поддержку этой возможности.
-
В отличие от событий в Java, которые вызываются с помощью переходов, в C#
события для той же цели используют делегаты.
-
Пространства имен аналогичны пакетам Java с единственным, но существенным
различием. В C# отсутствуют встроенные правила, в соответствии с которыми
пространство имен должно размещаться в файлах заданного каталога. Пространство
имен в C# скорее логическое понятие, чем физическое.
-
Java не имеет атрибутов, и хотя этот язык имеет широкие возможности отражения,
он не обладает возможностью создания пользовательских метаданных, доступных с
помощью атрибутов.
О чём же говорит этот список?
По-моему, он ясно свидетельствует о том, что разница между языками существует, и, скорее всего, она увеличится с выходом спецификации языка C# 2.0. В то же время существует и много общего, что не удивительно для языков, являющимися наследниками языка С.
Вобщем, можно сделать такой вывод – если на братьев эти языки похожи, то на близнецов уж никак нет. В тоже время нельзя не заметить, что в настоящее время выбор того или иного языка не ограничивается только синтаксисом, большую роль также играют другие факторы – платформы, на которых могут исполняться приложения, написанные с его использованием, стандартизированность языка, поддержка и развитие его крупными корпорациями, доступные средства разработки, наличие развитой библиотеки классов и большой рынок компонент сторонних производителей.
Все эти различия (дополненные мною примерами) приведены в книге Джозефа Димайо «С#: искусство программирования.» (СПб.: «ООО ДиаСофтЮП», 2002.-656 с.).
Обзор новостей
-
Вышел
OOReport.NET
- OOReport.NET - это объектно-ориентированный компонент отчётов для приложений .NET Windows Forms и приложений, использующих базы данных. OOReport.NET поможет вам создать высококачественные и гибкие отчёты в виде веб-страниц за короткий период времени. Отчёты, выполненные с помощью OOReport.NET можно модифицировать без изменения исходного кода приложения, перекомпиляций и переустановок. Позволяет динамически подключаться к любому OLEDB источнику данных или MS SQL Server/MSDE. OOReport.NET предлагает широкий спектр форматов отчётов, а также богатый набор свойств, методов и событий для контроля поведения отчёта во время выполнения приложения. OOReport.NET может переходить к определённому объекту и затем создать отчёт о нём. Он хорошо оптимизирован и дружественен к пользователю – всё, что должен сделать пользователь – это нажать на кнопку мыши.
Дата выхода – 28.12.2003.- Кстати, если кто-нибудь из вас, уважаемые читатели, будет использовать этот компонент в работе, буду рад получить ваши отзывы о нём – впрочем, так же как и обо всех компонентах/наборах компонент, описываемых в новостях. По возможности кратко – плюсы, минусы, проблемы с которымии вы столкнулись в работе с ними.
- Вышел ComponentOne Studio Enterprise 2004 v1
- ComponentOne LLC объявила о выходе ComponentOne Studio Enterprise 2004 v1. Последняя версия этого набора компонент включает PDF for .NET, 15 новых особенностей у ComponentOne VSFlexGrid® Pro 8, более 60 улучшений для .NET и ASP.NET продуктов.
Дата выхода – 29.12.2003.- Открыт новый .Net-сайт - DotNetAlbum.com
- Статьи, исходный код, рецензии на книги и продукты для разработчиков на C#, ASP.NET и Visual Basic .NET.
Дата открытия – 01.01.2004.- MMM-Experts Add-In for Visual Studio .NET
- MMM-Experts – набор инструментов для увеличения продуктивности разработчиков, использующих C++/C#/VB, путём добавки нескольких особенностей к IDE: быстрый доступ к любой функции в исходном коде или файлу в вашем решении, переключение между объявлением/реализацией функции для программистов на C++ и многое другое.
Дата выпуска - 5.01.2004- DevPartner Studio 7.1 Professional Edition
- Продукт компании Compuware DevPartner Studio 7.1 (профессиональная редакция) это набор приложений, разработанных для того, чтобы помочь разработчикам (извините за тавтологию) строить высокоэффективные приложения и компонентыдля платформ Microsoft .NET Framework и Win32. Теперь DevPartner Studio 7.1 предлагает интеграцию с Microsoft Visual Studio .NET 2003 и Windows Server 2003, позволяя разработчикам, использующим последние продукты Microsoft, строить приложения, соответствующие требованиям современного бизнеса.
- Одним из новых возможностей в DevPartner Studio 7.1 является анализ использования приложением .NET памяти, что даёт возможность разработчикам просматривать использование памяти конкретным объектом или классом, отслеживать ссылки на объект, находящийся в памяти и определять строки кода в методах, ответственные за выделение и использование памяти. Используя точный профиль использования памяти приложением, разработчики могут улучшить эффективность выполнения и использования ресурсов приложением путём оптимизирования кода, использующего (или попусту занимающего) наибольшее количество памяти.
- Анализатор исходного кода DevPartner Studio был существенно улучшен для предоставления разработчикам возможности применения правил безопасности к коду. Анализатор автоматизирует процесс проверки кода путём предоставления доступа к базе данных правил, выведенных из множества общепризнанных практик кода, которые могут быть применены к вашему приложению. Анализатор автоматически детектирует общие проблемы кода и предоставляет информацию о причинах этих проблем и пути их решения. Пользователь может быстро выбрать, какие из правил он хотел бы применить и внести соответствующие поправки.
Ну и цена соответствует возможностям - 1,495USD.
- NetAdvantage 2003 Volume 3 / Infragistics DevCenter
- Компания Infragistics начала поставки продукта Infragistics NetAdvantage 2003 Vol. 3, который позволяет разработчикам распространять «ink-enabled» приложения Windows Forms посредством эксклюзивного Presentation Layer Framework’a. NetAdvantage 2003 Vol. 3 также содержит новые .NET UI (интерфейс пользователя), новый ASP.NET компонент, позволяющий выбирать дату, ASP.NET интерфейс к элементам календаря, а также содержит многочисленные улучшения в других важных компонентах этого набора, включая сетку данных, меню, и графопостроению.
- Infragistics также установила партнёрские отношения с ведущими издателями для запуска Infragistics DevCenter, ещё одного направления по усилению сообщества .NET разработчиков. Построенный целиком с использованием компонент Infragistics ASP.NET, этот центр является интегрированным сообществом разработчиков, предоставляя в использование всеобъемлющие онлайн ресурсы. Посетите центр разработчика Infragistics DevCenter по адресу http://devcenter.infragistics.com, где вы можете найти статьи, поддержку, учебники, примеры приложений и многое другое.
Цена пакета - от 495USD.
- Visual Welder 2.0
- Компания sembleWare выпустила следующую версию Visual Welder 2.0 для VS .NET, инструмент быстрой разработки, расширяющий стратегию Microsoft's .NET.
- Visual Welder 2.0 замещает традиционную парадигму построения приложений путём кодирования на новую «сборочную» модель. Visual Welder позволяет разработчикам собирать приложения .NET из .NET "запчастей", которые могут быть загружены непосредственно в приложение из онлайн-каталога «запчастей» или корпоративного хранилища «запчастей».
- «Склеивая запчасти» (Parts) вместе в уникальном 3-D пространственном редакторе, разработчики могут собирать и изменять готовые .NET приложения, просматривать сущности и отношения, модифицировать индивидуальные «запчасти» - всё в полностью контролируемом пользователем 3-D окружении.
Цена – от 495USD.
- 5-ти минутный ролик, демонстрирующий работу в Delphi 8 for .Net
- OOReport.NET - это объектно-ориентированный компонент отчётов для приложений .NET Windows Forms и приложений, использующих базы данных. OOReport.NET поможет вам создать высококачественные и гибкие отчёты в виде веб-страниц за короткий период времени. Отчёты, выполненные с помощью OOReport.NET можно модифицировать без изменения исходного кода приложения, перекомпиляций и переустановок. Позволяет динамически подключаться к любому OLEDB источнику данных или MS SQL Server/MSDE. OOReport.NET предлагает широкий спектр форматов отчётов, а также богатый набор свойств, методов и событий для контроля поведения отчёта во время выполнения приложения. OOReport.NET может переходить к определённому объекту и затем создать отчёт о нём. Он хорошо оптимизирован и дружественен к пользователю – всё, что должен сделать пользователь – это нажать на кнопку мыши.
C# vs Java vs C++
Поскольку статья довольно увесистая, то её публикация растянется на два или три номера, но, как по мне, она стоит того.
Итак, -
Сравнительный обзор C#
ЯЗЫК: C#
Автор: Ben Albahari
Компания: Genamics, http://genamics.com/
Дата: 31.07.2000, обновлено 10 Августа 2000.
Оригинал статьи: A Comparative Overview of C#
Благодарности, в алфавитном порядке: Don Box, C.R. Manning, Joe Nalewabau,
John Osborn, Thomas Rhode и Daryl Richter за их отзывы и поддержку
ПЕРЕВОД: Чужа В.Ф. ака hDrummer
Предыстория
Содержание
- C# и Java
- Свойства
- Индексаторы
- Делегаты
- События
- Перечисления
- Коллекции и Foreach
- Структуры
- Унификация типов
- Перегрузка операторов
- Полиморфизм
- Интерфейсы
- Версионность
- Модификаторы параметров
- Атрибуты
- Конструкции выбора
- Предопределённые типы
- Модфикаторы полей
- Конструкции перехода
- Сборки, пространства имён, уровни доступа
- Действия с указателями
- Прямоугольные массивы
- Конструкторы и деструкторы
- Управляемая среда выполнения
- Библиотеки
- Интероперабельность
- Выводы
1. C# и Java
- Компилируются в машинно-независимый язык, который выполняется в управляемой среде.
- Сборка мусора на пару с отказом от указателей (в C# возможно ограниченное использование в коде, помеченного как unsafe)
- Мощные возможности отражения (reflection)
- Отсутствие файлов заголовков, весь код находится в упаковках или сборках, возможность декларирования одного класса перед другим без возникновения циклической зависимости
- Поддержка нитей путём блокировки объектов при входе в код, помеченный как блокированный/синхронизируемый (locked/synchronized)
- Интерфейсы, с множественным наследованием
- Вложенные классы
- Отсутствие концепции наследования класса с указанием уровня доступа
- Отсутствие глобальных функций/констант, всё находится в классе
- Массивы и строки со встроенной проверкой границ и размерами
- Везде используется оператор "." , и больше никаких «->, ::»
- null и boolean/bool являются ключевыми словами
- Все переменные инициализируются перед использованием
- Нельзя использовать целые для управления конструкцией «if»
- Блоки «Try» могут иметь «finally»
2. Свойства
Типичный код, который вы можете написать на Java или C++:
foo.setSize (getSize () + 1);
|
Тот же код на C#:
foo.size++;
|
Код на C# выглядит читабельнее. Подобную же простоту и удобство вы заметите, реализуя свойства:
Java/C++:
public int getSize() {
|
C#:
public int Size
|
3. Индексаторы
public class Skyscraper
|
4. Делегаты
5. События
// Объявление делегата, который определяет
сигнатуру вызываемого метода
|
Время кода
Передача значений между веб-формами в ASP.NET
ЯЗЫК: C#
ВЕРСИИ ASP.NET: 1.0 | 1.1
АВТОР: Jeff Prosise, http://www.aspnetpro.com/
ПЕРЕВОД: Чужа В.Ф ака hDrummer
Использование строк запроса
Основным преимуществом этого метода является его простота.
Недостатками же являются видимость значений передаваемых переменных в адресной строке и отсутствие возможности передачи таким образом объектов. Наилучшее применение этот метод может получить в случае необходимости передачи небольшого числа значений, которые нет необходимости скрывать. Чтобы воплотить этот метод в жизнь, нужно выполнить следующие шаги:
- создать веб-форму с элементами управления;
- создать кнопку для отсылки формы на сервер (т.н. postback’a);
- в обработчике события onClick создать строку, содержащую URL для перехода;
- добавить значения из элементов управления к нашему URL’у как параметры в строке запроса;
- выполнить Response.Redirect к другой веб-форме по нашему URL.
Следующий кусочек кода покажет, как это работает:
Исходная Web Form’a (передача параметров)
|
Использование переменных сессии
Типичная последовательность действий выглядит так:
- создать веб-форму с элементами управления;
- создать кнопку для отсылки формы на сервер (т.н. postback’a);
- в обработчике события onClick добавить сессионные переменные и установить в некоторые значения;
- выполнить Response.Redirect к другой веб-форме;
- в этой «другой» веб-форме взять значения из переменных сессии и очистить их при необходимости.
Следующий код продемонстрирует сказанное в действии:
Исходная Web Form’a (передача параметров)
|
Использование Server.Transfer
- создать веб-форму с элементами управления;
- создать для свойства процедуру Get, которая будет возвращать значения элементов управления;
- создать кнопку для отсылки формы на сервер (т.н. postback’a);
- в обработчике события onClick вызвать метод Server.Transfer, который передаст выполнение указанной форме;
- во второй форме можно получить ссылку на исходную форму с использованием свойства Context.Handler.
Затем можно использовать созданные свойства для получения значений, находящихся в элементах управления формы.
Теперь код:
Исходная Web Form’a (передача параметров)
|
Итого
В этой статье мы рассмотрели три способа передачи данных между двумя ASP.NET веб-страницами – с помощью строки запроса, сессионных переменных и метода Server.Transfer. Также рассмотрели плюсы и минусы всех подходов.
Форумы .Net - вопросы оставшиеся без ответа
ADO: Fetch u Cancel
Как сделать TreeView прозрачным?
Конект с базой
Data Grid set column Format
Формат ввода в текстбокс
Доступ с КПК к MSSQL server
реализация DAL - Как правильно
Вопрос: Event Log и XP ....
На этом второй выпуск .Net Собеседника закончен.
Поздравляю всех с наступившим Новым 2004 Годом и Рождеством, желаю здоровья и удачи!
Чужа Виталий Ф. aka hDrummer,
hdrummer@mail.ru - жду ваши
предложения, вопросы и замечания.
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||