Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Java2 vs .Net

Автор: Mickey_from_nsk
Дата сообщения: 17.03.2003 06:27
Atreidies

Цитата:
Я рыдалЪ. Фраза напоминает видение будущего с рекламных плакатов Microsoft/Sun/... - Тем кто пишет ядра операционных систем, пишет дрова, работает с железом по большому счету глубоко ... что есть ява или что есть .NET. Если майкрософт захочет GUI WinXX под .NET переписать - пожалуйста, только не надо говорить при этом о экстрановом взгляде на жизнь или подменять понятия и т.д.

Еще раз попросил бы без наездов. А конкретно, чем тебя не устравает эта фраза? Насчет экстра нового взгляда - никто и не говорил, я говорю о коммерческой объектно-ориентированной операционной системе, которая имеет все шансы закрепиться на рынке, в отличие от многих других ОС, предлагавшихся ранее.
Далее... Насчет дров и ядер - я лично еще не писал ни того, ни другого. А более высокий уровень программирования предполагает знание того, что есть Java, а что есть .NET.
Кстати в тему, недавно прочитал книгу Рихтера, там я действительно "плакалЪ". Кроме ... никаких других слов нет. Microsoft остался верен себе. Отличную идею опошляют неважнецкой (IMHO) реализацией. Остается надеяться, что дальше будет лучше.

Насчет вакансий - не показательно. Во-первых, .NET это не только C#, а гораздо больше. Во-вторых, весьма молодая и сырая технология. Я лично жду выхода Windows 2004 для того чтобы окончательно определиться с кем я буду иметь дело - с UNIX или Windows.

Собственно, чего я тут копья ломаю? ... нет ответа ...
Автор: lvovin
Дата сообщения: 18.03.2003 10:51
http://www.zdnet.com.au/newstech/enterprise/story/0,2000025001,20269968,00.htm

To date, around 70 percent of initial Java implementations have been unsuccessful, according to new research from Gartner Group.

"An inordinately large number of large-scale Java projects have been failures," said Mark Driver, Gartner research director for Internet and ebusiness technologies.

However, Microsoft shouldn't draw any comfort from those figures as it seeks to promote its .NET technology strategy either. In all likelihood, the failure rate for early implementations of .NET systems will be similar, Driver said.

--

Причина неудач Java во многом была обусловлена большими надеждами, которые на нее возлагались. Часто это было портирование с языка Smalltalk, который
значительно эффективнее Java и C# - читайте здесь почему.

.NET это грозит в меньшей степени, но ей также сопутствуют некоторые сомнительные решения, которые могут испортить картину.
http://www-106.ibm.com/developerworks/webservices/library/ws-pyth9/
Посмотрите на табличку внизу и подумайте, чем обернется Web services-hype.
Автор: rew
Дата сообщения: 25.03.2003 02:28
niki2k1
http://www.unidata.ucar.edu/staff/caron/java/JavaOne2002.html
если сделают нормально хоть половину, то будет уже сасем не плохо
Автор: miem
Дата сообщения: 26.03.2003 22:28
То же выскажусь по этому поводу.
Сам сейчас принимаю непосредственное участие в написании проекта на С#. Меня в нем устраивает многое, есть практически все чего бы я желал видеть в современных платформах разработки. Такие мелкие вещи как индексеры и т.д. существенно улучшают жизнь. Очень богатый по возможностям FrameWork. Есть все куда не плюнь. И конечно же отдельной похвалы заслуживает Remoting. Это, имхо, лучшая и удобная на сегодняшний день технология взаимодействия распределенных компонент.
Автор: niki2k1
Дата сообщения: 22.04.2003 11:55
rew

Цитата:
http://www.unidata.ucar.edu/staff/caron/java/JavaOne2002.html
если сделают нормально хоть половину, то будет уже сасем не плохо

Спасибо большое. Интересно когда 1.5 на самом деле выйдет, мне кажется, что second half 03 - достаточно условный срок.
Автор: mymuss
Дата сообщения: 22.04.2003 14:44
Не люблю мелкомягких... Но голосую за дотНЕТ...

Ибо как правильно замметил Guderian хваленая кроссплатформенность пашет лишь там где удалось прикрутить JRE, а эти платформы можно пересчитать на пальцах одной руки. Если еще добавить сюда невероятную глючность Жабы...

ПМСМ единсвенная сфера где Жаба пока вроде живет - программирование embedded devices, т.е. всяких там мобильных телефонов, кипятильников итд...
Автор: rew
Дата сообщения: 22.04.2003 16:34

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

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


Цитата:
Если еще добавить сюда невероятную глючность Жабы...

глюки есть, но не думаю что в дотнете их меньше. смертельных глюков в жаве я пока не встречал
Автор: mymuss
Дата сообщения: 22.04.2003 17:02
rew

Цитата:
надо полагать что дотнет пашет везде и без проблем

В .НЕТ в отличии от Жабы это не возводится в ранг ключевой фичи. Теоретически это возможно. Возможно, когда-нибудь и сделают. Хотя я сомневаюсь что МС на это решится (из маркетинговых соображений), разве что купят Линукс ...

Да вообще, если так рассуждать - чем С не кроссплатформенный язык


Цитата:
смертельных глюков в жаве я пока не встречал

Я тоже. Но куча неприятных мелочей так жизнь порят...
Автор: rew
Дата сообщения: 22.04.2003 21:21

Цитата:
В .НЕТ в отличии от Жабы это не возводится в ранг ключевой фичи

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

Цитата:
разве что купят Линукс

купить то могут, только полноправным владельцем всех прав на эту ось они все равно не станут, но это уже др история
Автор: mymuss
Дата сообщения: 22.04.2003 21:54

Цитата:
пока что эти два направления ничем значительно перед друг другом не выделяются

.НЕТ выделяется тем что у мелкомягких больше денег и круче организован маркетинг. И даже если в конце концов мы увидим что .НЕТ оказался очередным провалом (а-ля какой нибудь ActiveХ), никуда мы от него уже не денемся...


Цитата:
купить то могут

Как? Думаю нет. Разве что могут купить РедХет какой-нибудь. Но это уже будет совсем странно, т.к. Билли постоянно орет что OpenSource - зло, не меньшее чем международный терроризм
Автор: rew
Дата сообщения: 22.04.2003 23:32
угу, основное преимущество c# что
Цитата:
у мелкомягких больше денег
но сегодня жава не сдала свои позиции так что не стоит преждевременно ставить на ней крест. время покажет


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

это я и имел ввиду


Добавлено
кста см опрос 50 на 50
Автор: dmka
Дата сообщения: 25.04.2003 17:52
Приходилось делать интернет-проекты и на 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
Автор: lvovin
Дата сообщения: 25.04.2003 21:13
Как по мне, так Java и .NET оба далеки от совершенства, но Java все-таки хуже.

Обязательное описание исключений - за такое бейсбольной битой по пальцам; просто никакая поддержка классов коллекций; статическая типизация, требующая постоянного приведения типов (жуткое зло) и т.д.

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

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

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

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

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

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

всмысле нет автоматического кастинга? опять же сделано с благими намерениями, что бы програмист не забывал с чем имеет дело когда приводит один тип к другому, и тот который пишет, и тот который потом захочет посмотреть или использовать код.
вообще если в си принято писать как можно короче (не дай бог написать лишнего символа), то в java как раз наоборот приветсвуется развернутый, но более понятный код. кроме того не нужно путать си++ с жавой, кроме синтаксиса там действительно очень мало общего
Автор: onsh76
Дата сообщения: 26.04.2003 00:36
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?
Автор: SSergeaA
Дата сообщения: 26.04.2003 16:44
dmka


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


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


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


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


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


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


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


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


lvovin


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


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


Автор: dmka
Дата сообщения: 26.04.2003 22:50

Цитата:
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 не есть повод для религиозных войн. За деньги я пишу даже на …- вы все равно не поверите...

Автор: rew
Дата сообщения: 26.04.2003 22:58
самым хорошим доказательством, что c# многое (понятно что не все) слизали с java это конвертор кода java->c# почему то про конвертор java->с++ или java->vb например я не слышал наверно по тому что это очень сложно реализовать, если вообще возможно

Добавлено

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

вот тут прав 100% не стоит делать кумира
Автор: SSergeaA
Дата сообщения: 27.04.2003 08:54
Я на 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.

Автор: dmka
Дата сообщения: 27.04.2003 18:59

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


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


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


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


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


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


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

Наверное я с утра туплю, но можно кусок кода плз.?



Код:
String s = "bla bla bla";
MyDataGrid.DataSource = s;
MyDataGrid.Bind();
Автор: SSergeaA
Дата сообщения: 27.04.2003 19:51
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.
Автор: rew
Дата сообщения: 27.04.2003 21:47

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


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

ну вы дали на swingе можно очень быстро и просто сваять практически любой сложности гуй или вы про awt? так что мертвого пинать...
Автор: dmka
Дата сообщения: 27.04.2003 21:47
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 до просветления.
Автор: SSergeaA
Дата сообщения: 28.04.2003 14:26
dmka

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

Но как компилятор узнает, что етот GetEnumerator делает то, что должен делать IEnumeratorskii GetEnumerator, а не определенный пользователем, тем более, что для различной реализации класса, GetEnumerator будет различным.
Автор: Guderian
Дата сообщения: 28.04.2003 16:36
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 повторять?

Доверчивые люди могут тебе поверить, надо развеять этот миф Я не против жабы, но за дотнет. Жалко, что заказчикам на этот факт начхать
Автор: dmka
Дата сообщения: 28.04.2003 16:55

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

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


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

Код: public class MyEnumerator : IEnumerator
Автор: onsh76
Дата сообщения: 29.04.2003 05:31
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.
Автор: dmka
Дата сообщения: 29.04.2003 09:32

Цитата:
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), который будет получать данные из внутренней сети через веб-сервисы. Конечно такое решение дороже, поэтому нужно смотреть по обстоятельствам.
Автор: Guderian
Дата сообщения: 29.04.2003 10:49
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)
Автор: rew
Дата сообщения: 29.04.2003 21:12
не соглашусь с тем что сырцы не нужны, да в большинстве случаев, на хорошо организованый класс, хватает документации. но не редко наличие сырцов упрощало понимание того, что происходит на самом деле. кроме того иногда бывает, что нужно сохранить базовую функцию метода, но немного ее подкорректировать. с сырцами это сделать проще.
но закрытость кода в моем понимании это не недостаток с шарпа, это нездоровое жлобство со стороны м$ хотябы то что написано на c# могли бы и открыть. может конечно я гоню, но есть надежда что может со временем появится декомпилер и на c#.. сетаки байткод легче разобрать чем натив

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

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

Страницы: 1234

Предыдущая тема: Как уменьшить размер конечного файла в Delphi


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.