Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Java2 vs .Net

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5

Открыть новую тему     Написать ответ в эту тему

Java2 vs .Net
 ОтветГолосаПроценты
Java235
46.05%
.Net41
53.95%
Гости не могут голосовать, зарегистрируйтесть!Всего Голосов: 76
rew



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
угу, основное преимущество c# что
Цитата:
у мелкомягких больше денег  
но сегодня жава не сдала свои позиции так что не стоит преждевременно ставить на ней крест. время покажет
 

Цитата:
Как? Думаю нет. Разве что могут купить РедХет какой-нибудь

это я и имел ввиду
 
 
Добавлено
кста см опрос 50 на 50

----------
плох тот error который не мечтает стать general`ом

Всего записей: 442 | Зарегистр. 09-09-2001 | Отправлено: 00:32 23-04-2003
dmka



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Приходилось делать интернет-проекты и на Java2 и на .net
Впечатление от .net осталось неизгладимое
 
IMHO сама объектная модель .net на скорую руку слизана с java. При этом просто бесят туча неочевидных несогласованностей, отсутствие строгой типизации.
 
WebForms это вообще отдельная песня. Такое впечатление, что оно бы и сгодилость для построения интерфейсов с помошью к-нибудь визуального редактора - так нормального редактора то и нет. Когда нужно сделать пару стандартных форм еще жить можно, а как только шаг с сторону - приехали. В реальности часто приходится от них отказываться и использовать все это хозяйство как навороченный asp.
 
Затея с многоязычностью (VB, C#, etc) IMHO вообще зло, а не преимущество. Сколько нужно времени, чтобы выучить синтаксис одного языка один раз и навсегда? 1 день. А сколько уйдет времени на перевод своего или чужого кода, если они написаны на разных языках? Ведь очень часто нужно сделать просто cut & past из какого-то другого сорца.
 
Закрытость сорсов... No comments...
 
Единственное, что сделанно достаточно ровно это web-сервисы.
 


Резюме: добровольно использовать .net я бы не рекомендовал. Если заказчик желает - умножайте стоимость разработки на java в 1.5-2 раза и вперед - why бы и not

Всего записей: 947 | Зарегистр. 23-04-2003 | Отправлено: 18:52 25-04-2003
lvovin

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как по мне, так Java и .NET оба далеки от совершенства, но Java все-таки хуже.
 
Обязательное описание исключений - за такое бейсбольной битой по пальцам; просто никакая поддержка классов коллекций; статическая типизация, требующая постоянного приведения типов (жуткое зло) и т.д.
 
.NET часть проблем пытается вылечить страшноватыми заплатками, получается монстр какой-то. Чувствую, сложность языка будет расти и расти, еще увидим C++ дубль 2 с "очеловеченым лицом".

Всего записей: 18 | Зарегистр. 21-01-2003 | Отправлено: 22:13 25-04-2003
rew



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
Обязательное описание исключений - за такое бейсбольной битой по пальцам

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

Цитата:
просто никакая поддержка классов коллекций

чего именно не хватило то? по моему там реализованы все классические виды коллекций.

Цитата:
статическая типизация, требующая постоянного приведения типов (жуткое зло) и т.д.  

всмысле нет автоматического кастинга? опять же сделано с благими намерениями, что бы програмист не забывал с чем имеет дело когда приводит один тип к другому, и тот который пишет, и тот который потом захочет посмотреть или использовать код.  
вообще если в си принято писать как можно короче (не дай бог написать лишнего символа), то в java как раз наоборот приветсвуется развернутый, но более понятный код. кроме того не нужно путать си++ с жавой, кроме синтаксиса там действительно очень мало общего

----------
плох тот error который не мечтает стать general`ом

Всего записей: 442 | Зарегистр. 09-09-2001 | Отправлено: 23:02 25-04-2003
onsh76



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ponravilisx commentarii ot dmka podtverzhdaya opytom raboty na dvuh platformah. Ya ne ponimayu che M$ oret na kazhdom uglu pro ECMA standards - kakoi ot nih tolk, kto-nitx mozhet raz'yasnitx?  
Na 100% podderzhivayu review kazhdoi tsitaty rew . Deistvitelxno Java tolxko pohozha syntaksisom na C++, a dushoi tak skazatx eto bolxshe SmallTalk.  
IMHO C# eto prosto big releaf chtoby uiti ot dedushki C++.  Ya dumayu chto esche odin factor , pro kotoryi nikto ne vspomnil, eto implementatsiya .NETa pod drugie platformy, zavisit napryamuyu ot comandy implementatorov.  Project MONO horoshayu veschx, no kak  V DALXNEISHEM na eto posmotrit M$, esli narod nachet heritx windy i deploitx na Linuxe.  Kupyat RedHat s potrohami? U kogo-nitx estx opyt  raboty c MONO, kak interesno oni implementirovali ADO.NET pod Linux?

Всего записей: 112 | Зарегистр. 02-09-2002 | Отправлено: 01:36 26-04-2003
SSergeaA



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dmka
 

Цитата:
IMHO сама объектная модель .net на скорую руку слизана с java. При этом просто бесят туча неочевидных несогласованностей, отсутствие строгой типизации

 
А можно пример ?
 

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

 
Обоснуйте пожалуйста ?
 

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

 
Да нисколько, если чужой код CLS Complianten то он моментально может быть использован другим CLS языком.
 

Цитата:
Закрытость сорсов... No comments...  

 
Есть Rotor, хотя там не все.
 
 
lvovin
 

Цитата:
.NET часть проблем пытается вылечить страшноватыми заплатками, получается монстр какой-то. Чувствую, сложность языка будет расти и расти, еще увидим C++ дубль 2 с "очеловеченым лицом".

 
Ето какими еще заплатками ?
 
 

Всего записей: 49 | Зарегистр. 17-04-2003 | Отправлено: 17:44 26-04-2003
dmka



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
IMHO сама объектная модель .net на скорую руку слизана с java. При этом просто бесят туча неочевидных несогласованностей, отсутствие строгой типизации.
А можно пример ?  

 
То что слизана, видно невооруженным глазом. Как будто драли один к одному (что я рассматриваю как положительный момент ) путем замены ключевых слов, но местами не успели закончить (что есть плохо). Особенно огорчает не глючность реализации (это можно исправить в след. версии), а кривость заложенная в саму объектную модель.  
 
Примеры?
 
Сплошь и рядом используются параметры и проперти типа Object вместо явного указания необходимого интерфейса. Т.е. во время компиляции туда можно что угодно присвоить и компилер не ругнется. Проблема может возникнуть уже во время выполнения приложения и не факт, что вы ее заметите во время тестирования.
 
Как пример, смотрим класс DataGrid. Кто у него DataSource? Object. Смотрим в доку (кликаем раз 5 и скролим пару страниц тормозного хелпа), какой Object? Написано должен имплементить IEnumerable. Кто такой IEnumerable - это штука которая возвращает набор чего? Object-ов.
 
Смотрим SqlDataReader (ResultSet по-жабовски). Обратиться к функции типа GetInt32, GetString, IsDbNull можно только по номеру параметра, а не по имени. А если у меня их 50 - считать позицию каждого? А если мне вздумается для красоты параметры местами поменять? Опять перенумеровывать?
 
По имени можно получить только нетипизированный Object.
 
Два ридера сразу открыть нельзя - матерится, что первый еще не закрыт. Почему?
 
Как получить из ридера тип колонки? GetDataType вернет SqlDBType? - фигли, нет такого метода. Есть GetDataTypeName который возвращает его в виде String.  
 
SqlParameter - Value у него тоже некий Object. Неправильное приведение типа обнаружится уже после запуска.
 
 
И так ВЕЗДЕ!
 

Цитата:
 WebForms это вообще отдельная песня. Такое впечатление, что оно бы и сгодилость для построения интерфейсов с помошью к-нибудь визуального редактора - так нормального редактора то и нет. Когда нужно сделать пару стандартных форм еще жить можно, а как только шаг с сторону - приехали.
Обоснуйте пожалуйста ?  

 
Контролы описываются в виде xml с известным набором параметров. Естественно бы использовать редактор вроде помеси Delphi и dreamweaver-а, в котором можно визуально дизайнить интерфейс - располагать контролы, выбирать их проперти из списков и подключать к ним датасорсы. То, что сейчас есть в студии - убожество.
 
Сама студия отдельный разговор - чтобы репорты заметили изменения в датасорсах иногда приходилось ее рестартить. Сейчас она у меня стала думать где-то минуту перед тем как запуститься. Наверное устанавливает контакт с космическим разумом
 
Пример проблем с нестандартностью:
 
Простая задача - нужно отображать таблицу со страничным выводом, типа как у нас на форуме - 20 записей на одной странице, внизу 1,2,3,…N для навигации.
.net тут рулит - за пару минут делается.
Заказчик говорит - все хорошо, только нужно в добавок к постраничной навигации 1,2,3,…N сделать кнопки вперед\назад. .net позволяет сделать или первое или второе, но не оба сразу. Что делать? Писать свой грид? Кто это время нам оплатит? Сорсов нет. Выход - лепим под таблицей пару уродливых кнопок и добавляем пару обработчиков.  
Заказчик доволен и хочет повторить это на всех остальных страницах с гридами.
Занавес.
 

Цитата:
А сколько уйдет времени на перевод своего или чужого кода, если они написаны на разных языках?  
 
Да нисколько, если чужой код CLS Complianten то он моментально может быть использован другим CLS языком.

 
К счастью не весь код в мире уже скомпилен .  Когда нужно решить какую-то хитрую задачу лезешь в инет или в старый проект, смотришь самплы, дописываешь свое. Какая вероятность того, что ты пишешь на c#, а нужный код будет на vb? Потратишь лишние полчаса. Не смертельно, но в масштабах страны ...
 

Цитата:
Закрытость сорсов... No comments...  
Есть Rotor, хотя там не все.  

 
А можно с этого места подробнее?
 

Цитата:
Ето какими еще заплатками ?

 
Не знаю что имел в виду lvovin, но вот micro$oft уже версию 1.1 слепил.
 


Disclaimer: Все написанное выше является следствием удара тупым дотне... тупым предметом по голове. Нет смысла меня убеждать, что тот предме...  что тот дотнет есть рулез. Мое IMHO не есть повод для религиозных войн. За деньги я пишу даже на …- вы все равно не поверите...


Всего записей: 947 | Зарегистр. 23-04-2003 | Отправлено: 23:50 26-04-2003
rew



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
самым хорошим доказательством, что c# многое (понятно что не все) слизали с java это конвертор кода java->c# почему то про конвертор java->с++ или java->vb например я не слышал наверно по тому что это очень сложно реализовать, если вообще возможно
 
Добавлено

Цитата:
Мое IMHO не есть повод для религиозных войн. За деньги я пишу даже на …- вы все равно не поверите..

вот тут прав 100% не стоит делать кумира

----------
плох тот error который не мечтает стать general`ом

Всего записей: 442 | Зарегистр. 09-09-2001 | Отправлено: 23:58 26-04-2003
SSergeaA



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я на Jave практически ничего не писал, но могу сказать(ето сугубо мое имхо), что нормальный GUI наваять там тяжелее, чем на том же C#(стати для него есть фрее либа .NET Magic - интерфейс смахивает на офисовский), но ето потому, что они предназначены для разных целей, значит и сравнивать их не имеет смысла - они просто разные. Насчет того, что с Явы было много слизано, то знайте, что и Ява дааалеко не с нуля делалась - там тоже ипользовались достаточно древние наработки.
dmka

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

Наверное я с утра туплю, но можно кусок кода плз.?
 
На счет остального то с вашим опытом спорить не буду, но скажу, что вышел framework 1.1, он-то вродебы и есть официальный и внем есть какие-то изменения. И вышла новая студия Everett - тоже есть изменеия.
 

Цитата:
А можно с этого места подробнее?  

 

Цитата:
Shared Source Common Language Infrastructure (CLI) Implementation Beta (кодовое название Rotor). Это несколько урезанный код CLR, компилятора С# и библиотеки .Net Framework. Самое интересное в том, что с CLI (что абсолютно нехарактерно для Microsoft) поставляются исходные тексты, причем не только исходники компилятора и CLR, но и библиотек .Net. Microsoft не признается, что это куски кода .Net, но заглянув в исходники, нетрудно разобраться, откуда ноги растут. О том, что исходный код Rotor является урезанным .Net Framework, говорит также наличие в комментариях к исходным текстам не вычищенных упоминаний ASP.NET.
 


Всего записей: 49 | Зарегистр. 17-04-2003 | Отправлено: 09:54 27-04-2003
dmka



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Я на Jave практически ничего не писал, но могу сказать(ето сугубо мое имхо), что нормальный GUI наваять там тяжелее, чем на том же C#(стати для него есть фрее либа .NET Magic - интерфейс смахивает на офисовский),  

 
Если вы думаете, что java используется в основном для написания традиционных гуищных програм, то это не так. Основной рынок это серверные приложения и здесь эта технология зарекомендовала себя хорошо.
А Javовские GUI нужно вообще запретить. Такое впечатление, что визуальные компоненты писали обкуренные студенты.
К счастью, все больше народа склоняется к мысли использовать броузер в качестве клиента. Безусловно есть задачи, где это не проходит, но тогда все равно не понятно каким боком туда Java и .Net. Будет кто-нибудь писать приложение для обработки видео (типа QT или RealPlayer) на том или другом? Вряд ли...
 

Цитата:
но ето потому, что они предназначены для разных целей, значит и сравнивать их не имеет смысла - они просто разные.

 
Вот тут я не согласен. Идеология абсолютно одинаковая, по крайней мере в том, что касается серверной части.  
 

Цитата:
Насчет того, что с Явы было много слизано, то знайте, что и Ява дааалеко не с нуля делалась - там тоже ипользовались достаточно древние наработки.

 
Ну а мне-то какая разница? Важно что в одном случае копия получилась лучше оригинала, а в другом хуже. IMHO
 

Цитата:
Сплошь и рядом используются параметры и проперти типа Object вместо явного указания необходимого интерфейса. Т.е. во время компиляции туда можно что угодно присвоить и компилер не ругнется. Проблема может возникнуть уже во время выполнения приложения и не факт, что вы ее заметите во время тестирования  
 
Наверное я с утра туплю, но можно кусок кода плз.?  

 

Код:
 
String s = "bla bla bla";
MyDataGrid.DataSource = s;
MyDataGrid.Bind();
 

 
Скомпилячится, но работать не будет ибо то, что передается в DataSource должно имплементить IEnumerable, хотя это и не указано явно.
 


Disclaimer повторять?  


Всего записей: 947 | Зарегистр. 23-04-2003 | Отправлено: 19:59 27-04-2003
SSergeaA



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dmka
Интерфейс позволяет определить функциональность класса т.е. в данном случае

Цитата:
String s = "bla bla bla";  
MyDataGrid.DataSource = s;  
MyDataGrid.Bind();  

 
public method GetEnumerator().
 
Можно проверить(см. is or as) наследует ли класс етот интефейс и если он наследует то точно известно, что переопределенный в классе метод делает то, что должен делать IEnumeratorskiй GetEnumerator, а не какую-то хрень, если user создал метод в классе с такой же сигнатурой и очевидно, что такой подход позволяет избежать траблов

Цитата:
Идеология абсолютно одинаковая, по крайней мере в том, что касается серверной части.  

.NET и Java созданы для разных вещей.
.НЕТ -> создание GUI,Web and win services, distributed app, and web cites.
Java -> server apps, distributed apps.

Всего записей: 49 | Зарегистр. 17-04-2003 | Отправлено: 20:51 27-04-2003
rew



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
нормальный GUI наваять там тяжелее


Цитата:
А Javовские GUI нужно вообще запретить

ну вы дали на swingе можно очень быстро и просто сваять практически любой сложности гуй или вы про awt? так что мертвого пинать...

----------
плох тот error который не мечтает стать general`ом

Всего записей: 442 | Зарегистр. 09-09-2001 | Отправлено: 22:47 27-04-2003
dmka



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
2 SSergeaA
 

Цитата:
Можно проверить(см. is or as) наследует ли класс етот интефейс

 
Я должен проверять? При нормальном объявлении методов это делает компилятор.
 

Цитата:
очевидно, что такой подход позволяет избежать траблов  

 
Вы могли бы выражать свои мысли яснее? Помогает избежать каких траблов? Траблов с ДНК у программистов умеющих сваять метод GetEnumerator, но не умеющих проимплементить IEnumerable? Зачем тогда интерфейсы придумали - чтобы на них в доках втыкать?
 

Цитата:
.NET и Java созданы для разных вещей.  
.НЕТ -> создание GUI,Web and win services, distributed app, and web cites.  
Java -> server apps, distributed apps.
 


Потрудитесь ознакомиться с предметом прежде чем писать сюда откровенную чушь.
Читать про j2ee, jsp, servlets, soap и web services development pack до просветления.

Всего записей: 947 | Зарегистр. 23-04-2003 | Отправлено: 22:47 27-04-2003
SSergeaA



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dmka

Цитата:
При нормальном объявлении методов это делает компилятор

Но как компилятор узнает, что етот GetEnumerator делает то, что должен делать IEnumeratorskii GetEnumerator, а не определенный пользователем, тем более, что для различной реализации класса, GetEnumerator будет различным.

Всего записей: 49 | Зарегистр. 17-04-2003 | Отправлено: 15:26 28-04-2003
Guderian



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dmka

Цитата:
IMHO сама объектная модель .net на скорую руку слизана с java.

А я, например, скажу что с Delphi. Виват Хейлсбергу. И попробуй докажи обратное. Я уж не говорю про следующую реинкарнацию стандарта, когда они обещались реализовать темпейты и partial classes (к слову о множественном наследовании). Тогда я скажу, что содрали с c++. И дерут и драть будут безбожно. Sun в этом случае не сильно отличается
 

Цитата:
При этом просто бесят туча неочевидных несогласованностей, отсутствие строгой типизации.

Примеры в студию... Пока это все голословно...
 

Цитата:
WebForms это вообще отдельная песня. Такое впечатление, что оно бы и сгодилость для построения интерфейсов с помошью к-нибудь визуального редактора - так нормального редактора то и нет.

Что именно тебе не нравится? А то пока больше походит на банальное охаивание совершенно незнакомой инфраструктуры.
 

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

А зачем его переводить. Миксуй, если хочешь. CodeDom используй (есть там правда некоторые недоделки в части парсеров, но даже похожей альтернативы никто пока не предлагает).
 

Цитата:
Закрытость сорсов... No comments...

cli отчасти открыт, есть mono, можно использовать anakrino и кучу других тулзов. уж что-что, а это не вызывает ни малейшей проблемы. Тем более, что фактически все что надо ты можешь узнать через System.Reflection.
 

Цитата:
Если заказчик желает - умножайте стоимость разработки на java в 1.5-2 раза и вперед

Забыл добавить имхо
 

Цитата:
Как пример, смотрим класс DataGrid. Кто у него DataSource? Object. Смотрим в доку (кликаем раз 5 и скролим пару страниц тормозного хелпа), какой Object? Написано должен имплементить IEnumerable. Кто такой IEnumerable - это штука которая возвращает набор чего? Object-ов.  

Это сделано для особо продвинутых, которым хватит смекалки переписать метод CreateChildControls с целью воплощения в жизнь списка не реализующего IEnumerable. IEnumerable там вообще введен для удобства и совершенно не обязывает к использованию. Если, конечно, знаешь что делаешь.
 

Цитата:
Смотрим SqlDataReader (ResultSet по-жабовски). Обратиться к функции типа GetInt32, GetString, IsDbNull можно только по номеру параметра, а не по имени.

reader[имя_параметра]. К слову об индексерах, которых в жабе помнится нет
 

Цитата:
Два ридера сразу открыть нельзя - матерится, что первый еще не закрыт. Почему?

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

Цитата:
Как получить из ридера тип колонки?

reader[field].GetType()
 

Цитата:
Сама студия отдельный разговор - чтобы репорты заметили изменения в датасорсах иногда приходилось ее рестартить. Сейчас она у меня стала думать где-то минуту перед тем как запуститься. Наверное устанавливает контакт с космическим разумом  

Идеи у нее хорошие архитектурные есть, но реализация, конечно, пока подкачивает, спору нет. Бум мучать 2003.  Хотя есть некоторые шикарные вещи. Но похожих по возможностям инструментов разработчика пока ни у кого нет, факт. А не нравится vs.net, возьми webmatrix, sharpdeveloper и т.д.
 

Цитата:
Заказчик говорит - все хорошо, только нужно в добавок к постраничной навигации 1,2,3,…N сделать кнопки вперед\назад. .net позволяет сделать или первое или второе, но не оба сразу. Что делать? Писать свой грид?

Да, господа. Не знаем дотнет. Если из-за двух строчек вы собирались свой грид писать. Уж такая тема как custom paging пережевана мелкомягкими сто раз.
 

Цитата:
Сорсов нет.

А зачем сорсы? Наследование перестало работать?
 

Цитата:
Выход - лепим под таблицей пару уродливых кнопок и добавляем пару обработчиков.

Уродливость ваших кнопок - не проблема дотнета, ок
 

Цитата:
Заказчик доволен и хочет повторить это на всех остальных страницах с гридами.

Ну, если, конечно, не воспользоваться упомянутым наследованием, то да, это лишние хлопоты. В противном случае - просто заменить слово datagrid на какой-нибудь mysuperpaginggrid. К тому же, уж чего, а гридов всяких кругом навалом.
 
Не буду уж вылавливать всех блох, но критика, как видишь, несостоятельна. Что меня всегда удивляло, так это стремление охаять то, что "пингвинам не доступно наслажденье этой фичей" (ц) горький.
 

Цитата:
Disclaimer повторять?

Доверчивые люди могут тебе поверить, надо развеять этот миф Я не против жабы, но за дотнет. Жалко, что заказчикам на этот факт начхать

----------
Продается нужник. Самому очень нужен, кабы не нужда - не продавал бы.

Всего записей: 382 | Зарегистр. 07-05-2002 | Отправлено: 17:36 28-04-2003
dmka



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
При нормальном объявлении методов это делает компилятор  
 
Но как компилятор узнает, что етот GetEnumerator делает то, что должен делать IEnumeratorskii GetEnumerator, а не определенный пользователем, тем более, что для различной реализации класса, GetEnumerator будет различным.  

 
Если вы создаете класс MyEnumerator имплементящий IEnumerator

Код:
public class MyEnumerator : IEnumerator

компилятор вас обяжет сделать метод GetEnumerator такой и только такой, какой был описан в интерфейсе.
 
Далее, если DataSource декларируется не как Object, а как IEnumerator, тогда компилятор вас обяжет использовать только классы имплементящие IEnumerator. Любой объект, как в примере, вы туда уже не присвоите.
 
 
Добавлено
2 Guderian
 

Цитата:
Что именно тебе не нравится? А то пока больше походит на банальное охаивание совершенно незнакомой инфраструктуры.

 
Я не хочу переписывать одно и то же несколько раз. См выше.
 

Цитата:
А сколько уйдет времени на перевод своего или чужого кода, если они написаны на разных языках?  
 
А зачем его переводить. Миксуй, если хочешь.  

 
Не хочу. Проект это не каша, у него есть определенные стандарты и спецификации, утвержденные заказчиком и исполнителем. На код в том числе.
 

Цитата:
CodeDom используй (есть там правда некоторые недоделки в части парсеров, но даже похожей альтернативы никто пока не предлагает).  

 
Не предлагает, потому что в этом нет необходимости.
 

Цитата:
Закрытость сорсов... No comments...  
 
cli отчасти открыт, есть mono, можно использовать anakrino и кучу других тулзов. уж что-что, а это не вызывает ни малейшей проблемы. Тем более, что фактически все что надо ты можешь узнать через System.Reflection.

 
Я говорю не про код cli, а про реализацию, например, тех же WebControls. Через Reflection ты можешь узнать только проперти, методы и их интерфейсы. Ну например, что у DataGrid DataSource типа Object . Легче от этого станет?
 

Цитата:
Если заказчик желает - умножайте стоимость разработки на java в 1.5-2 раза и вперед  
 
Забыл добавить имхо

 
Во-первых, не забыл, а во-вторых, тебе никто не мешает ее делить на столько же
 

Цитата:
IEnumerable там вообще введен для удобства и совершенно не обязывает к использованию.
 
 
Тогда скажи нафик он вообще нужен?
 

Цитата:
reader[имя_параметра]. К слову об индексерах, которых в жабе помнится нет
reader[field].GetType()

 
А что вернет GetType() если зачение было null?
 

Цитата:
Два ридера сразу открыть нельзя - матерится, что первый еще не закрыт. Почему?  
 
Потому что ридер у тебя привязан к команде, команда у тебя находится в состоянии фетчинга, пока ты не закроешь первый ридер. Не нравится так - засасывай в датасет, создавай другую SqlCommmand, а хочешь перфоманса - наслаждайся. Я только одного не понимаю, на какого ляда нужен второй ридер у одной и той же комманды? Это все равно, что два курсора друг за дружкой гонять. Если что-то не успел дочитать за первый проход

 
Нет, я говорю именно про два разных SqlCommmand-а.

Код:
 
SqlCommand command1 = new SqlCommand("SELECT p1 FROM t1", sqlConnection);
SqlCommand command2 = new SqlCommand("SELECT p2 FROM t2", sqlConnection);
SqlDataReader reader1 = command1.ExecuteReader();
SqlDataReader reader2 = command2.ExecuteReader();
 

Говорит: There is already an open DataReader associated with this Connection which must be closed first
 
Каждому теперь свой Connection открывать?
 

Цитата:
Заказчик говорит - все хорошо, только нужно в добавок к постраничной навигации 1,2,3,…N сделать кнопки вперед\назад. .net позволяет сделать или первое или второе, но не оба сразу. Что делать? Писать свой грид?  
 
Да, господа. Не знаем дотнет. Если из-за двух строчек вы собирались свой грид писать. Уж такая тема как custom paging пережевана мелкомягкими сто раз.

 
Не будет ли благородный дон столь любезен, чтобы написать эти две строчки.
 

Цитата:
А зачем сорсы? Наследование перестало работать?

 
Из сорсов бывает проще понять что и как необходимо наследовать
 

Цитата:
Ну, если, конечно, не воспользоваться упомянутым наследованием, то да, это лишние хлопоты. В противном случае - просто заменить слово datagrid на какой-нибудь mysuperpaginggrid. К тому же, уж чего, а гридов всяких кругом навалом.

 
Всяких много, хороших мало. Зачем использовать чьи-то кривульки в коммерческом проекте? Я бы предпочел решение в две строчки  
 

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

 
Так повторять Disclaimer?
 

Цитата:
Доверчивые люди могут тебе поверить, надо развеять этот миф

 
Вот такой я коварный
 

Цитата:
Я не против жабы, но за дотнет. Жалко, что заказчикам на этот факт начхать

 
Ты предлагаешь им доплачивать за каждый постинг?

Всего записей: 947 | Зарегистр. 23-04-2003 | Отправлено: 17:55 28-04-2003
onsh76



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Narod, prislushaitesx k rewu, ne stoit delatx iz chego-to kumira.  
Bylo by zdorovo poslushatx togo kto hlebnul praktiki i znaet vse pros/cons kak pro Java, tak i pro C# s .NETom. Poka chto zdesx rulit tolxko odin dmka, parenx ne tknul ni razom palxtsem v nego.  
Narod, sdelaite ob'ektivnyi rasklad po oboim platformam. Ya k sozhaleniyu etogo poka delatx ne berusx, u menya vesx opyt po Java, C++, poetomu mnenie vse ravno budet kofeino-orientirovannym. IMHO vizhu perspektivy C# kak bystruyu razrabotku dlya fat client driven applications na smenu C++ i kak konkurent Delphi. Dumayu kazhdyi soglasitsya,chto poka v kachestve M$ AppServera budet exclusivno ispolxzovatxsya prodyryavlennyi naskvozx IIS, vryadli kto iz razumnyh managerov soglasitsya nachatx new enterprise web app pod .NET.  

Всего записей: 112 | Зарегистр. 02-09-2002 | Отправлено: 06:31 29-04-2003
dmka



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Narod, sdelaite ob'ektivnyi rasklad po oboim platformam.  

 
Зачем? Ничего, кроме нового флейма не выйдет. Нужно использовать и то и другое в зависимости от обстоятельств.
 

Цитата:
IMHO vizhu perspektivy C# kak bystruyu razrabotku dlya fat client driven applications

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

Цитата:
i kak konkurent Delphi.

 
Гусары молчать!
 

Цитата:
Dumayu kazhdyi soglasitsya,chto poka v kachestve M$ AppServera budet exclusivno ispolxzovatxsya prodyryavlennyi naskvozx IIS, vryadli kto iz razumnyh managerov soglasitsya nachatx new enterprise web app pod .NET.

 
Enterprise app не должен торчать весь в инете, а в интранет требования к безопасности могут быть несколько ниже. Морду висящую в internet можно выполнить отдельно в виде application-а (java или даже php), который будет получать данные из внутренней сети через веб-сервисы. Конечно такое решение дороже, поэтому нужно смотреть по обстоятельствам.

Всего записей: 947 | Зарегистр. 23-04-2003 | Отправлено: 10:32 29-04-2003
Guderian



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dmka

Цитата:
Не хочу. Проект это не каша, у него есть определенные стандарты и спецификации, утвержденные заказчиком и исполнителем. На код в том числе.

Тогда как в проекте со всеми его стандартами и спецификациями получается код на разных языках. Но если уж так исторически сложилось, то возьми gbvb, например. Да подобных тулзов море. В любом случае это лучше чем необходимость перевести, скажем, с Java на Delphi или наоборот. Так что не надо делать из этого недостатка.
 

Цитата:
Не предлагает, потому что в этом нет необходимости.

Да что ты говоришь. А jsp, например, в class не компиляется разве? Точно также как и aspx,ascx и прочий икс в msil. У меня, например, знакомые очень любят пользоваться стейт-машинами, специфика задач у них такая. Они даже свою реализацию xml для этого сделали. Теперь у них из стейт-чартов автоматически формируется код. Ребята в восторге. Можно еще кучу примеров привести, так что "в этом нет необходимости" конкретно у тебя.
 

Цитата:
Я говорю не про код cli, а про реализацию, например, тех же WebControls. Через Reflection ты можешь узнать только проперти, методы и их интерфейсы. Ну например, что у DataGrid DataSource типа Object . Легче от этого станет?

Через рефлекшн я могу узнать все, кроме msil. С ним чуть посложней. Хотя тоже можно. Но как я уже и говорил, возьми Anakrino, Salamander, да хоть ildasm и вперед. Да и само по себе желание знать код в данном случае достаточно сомнительно. Что такого неизвестного засекречено в WebControls Наследуй/агрегируй и наслаждайся,
 

Цитата:
Тогда скажи нафик он вообще нужен?

Все очень просто. Как ты, наверно, успел заметить, почти все коллекции в .net реализуют IEnumerable. По этому для простоты в CreateChildControls (CreateControlsHierarchy) создается список путем енумерации енумераблы Таким образом, в большинстве случаев его переписывать не надо. Если же твоя коллекция существенно отличается от IEnumerable (т.е., в общем случае есть некий System.Object), то и этот факт не смутит, поскольку ты можешь переписать CreateChildControls, для того он и virtual. Тогда твой вариант с mydatalist.datasource = "some string" будет вполне работоспособным.
 

Цитата:
А что вернет GetType() если зачение было null?

Естественно, она тебя грязно отругает. Только ума не приложу, причем здесь это. Последняя зацепка в ридерах
 

Цитата:
Каждому теперь свой Connection открывать?

Разумеется. И это совершенно нормально, а учитывая весьма неплохой connection pooling, это обойдется без накладных расходов. Видимо, ты не совсем понимаешь для чего предназначен SqlDataReader, если тебе в один момент времени в одном треде нужны два открытых ридера.
 

Цитата:
Не будет ли благородный дон столь любезен, чтобы написать эти две строчки.

В общих чертах, наследуешь DataGrid, засовываешь в OnItemCommand

Код:
 
if (e.CommandName.ToLower() == "prev") this.CurrentPageIndex = Math.Max(0, this.CurrentPageIndex - 1)
 

Аналогично для "next". Все что останется, только поставить батоны с соответствующими CommandName. Для полного реюзинга их можно затолкать в OnItemDataBound или в ascx. Так что вариантов море. Кстати, интересно посмотреть, как бы это выглядело на jsp или сервлетах. В жабе я, конечно, устарел. Поскольку забросил ее года два назад. Но по тем временам никакой красоты и простоты решений не наблюдалось.
 

Цитата:
Из сорсов бывает проще понять что и как необходимо наследовать

Это что ж такое надо наследовать, что сырцы нужны
 

Цитата:
Ты предлагаешь им доплачивать за каждый постинг?  

И мелкомягкие чтобы мне доплачивали за каждый "дотнет рулез"
 
onsh76

Цитата:
IMHO vizhu perspektivy C# kak bystruyu razrabotku dlya fat client driven applications na smenu C++ i kak konkurent Delphi.  

Совершенно неверное предположение номер раз. Просто мсье не знаком с asp.net.
 

Цитата:
Dumayu kazhdyi soglasitsya,chto poka v kachestve M$ AppServera budet exclusivno ispolxzovatxsya prodyryavlennyi naskvozx IIS, vryadli kto iz razumnyh managerov soglasitsya nachatx new enterprise web app pod .NET.

Неверное предположение номер два. Во-первых, iis никода не был application server. Во-вторых, вопли про "продырявленность" iis - чистой воды ханжество, в-третьих, asp-net можно пускать и без iis, а в четвертых, заказы есть и количество их неуклонно растет.
 

Цитата:
Poka chto zdesx rulit tolxko odin dmka, parenx ne tknul ni razom palxtsem v nego.  

Пока что, все наезды на c# от незнания предмета.
 
2All
Уважаемые сэры, как показывает практика большинство наездов основывается на незнании предмета. И в большинстве случаев наибольшую агрессию проявляют сторонники старых идеологий, тогда когда новаторам приходится отбиваться. Подобные прецеденты уже были, когда большинство было против и электричества и кибернетики и др. Ну да ладно, это все лирика. Имхо, единственный вариант, который остался это придумать некий тестовый проект и реализовать его на java и c#. Апосля чего для полноты картины можно провести stress-test. Имхо от этого будет гораздо больше пользы как с точки зрения спора, так и для начинающих, продолжающих, выбирающих.

----------
Продается нужник. Самому очень нужен, кабы не нужда - не продавал бы.

Всего записей: 382 | Зарегистр. 07-05-2002 | Отправлено: 11:49 29-04-2003
rew



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
не соглашусь с тем что сырцы не нужны, да в большинстве случаев, на хорошо организованый класс, хватает документации. но не редко наличие сырцов упрощало понимание того, что происходит на самом деле. кроме того иногда бывает, что нужно сохранить базовую функцию метода, но немного ее подкорректировать. с сырцами это сделать проще.
но закрытость кода в моем понимании это не недостаток с шарпа, это нездоровое жлобство со стороны м$ хотябы то что написано на c# могли бы и открыть. может конечно я гоню, но есть надежда что может со временем появится декомпилер и на c#.. сетаки байткод легче разобрать чем натив

Цитата:
Имхо, единственный вариант, который остался это придумать некий тестовый проект и реализовать его на java и c#

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

----------
плох тот error который не мечтает стать general`ом

Всего записей: 442 | Зарегистр. 09-09-2001 | Отправлено: 22:12 29-04-2003
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Java2 vs .Net


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru