Форум: "Прочее";
Текущий архив: 2006.04.16;
Скачать: [xml.tar.bz2];
ВнизПрослушал тут курсы C#... Найти похожие ветки
← →
Layner © (2006-03-20 11:02) [0]Обязали с предприятия, записался на C#. Узнал не сказать чтобы много, но есть много интересного. Например любую прогу, написанную на C# легко можно вскрыть на исх. коды например с помощью программы Рефлектор... т.е. пишем программу, компилируем, запускаем Рефлектор (ищется в инете легко), открываем через нее exe, оп ля, и все как на ладони.. :) Причем читается на любой язык, т.е. написали на C#, а коды можно читать как на BASIC.#, так и для Delphi.Net, и ещё для 2х языков...
Т.е. защиты программ практически никакой, препод подтвердил.
Есть конечно программы 3х контор, которые меняют названия переменных в нечитаемые, но это уже слабая заглушка.
Что ещё... Не удобно же все таки с этим фреймворком, у меня программа, скомпилированная на курсах вообще отказывается запускаться на ноутбуке... Слышал краем уха, что фрейморк на клиентах должен быть той же версии, где и компилировалась программа, причем препод сказал, не ниже и не выше :) Сам не проверял... Этож как с клиентами работать, если распространять программу через инет...
И еще много аналогичных не понятных пока моментов.
Говорят, минусы компенсируют плюсы, типа 18тыс классов созданные ребятами Microsoft пойдут на пользу всем любителям быстрой разработки программ, т.к. в них реализованно почти ВСЕ, что требуется 99% программистам...
Delphi вообще предписали медленную смерть, ибо все толковые из борланда перетекают в майкросовт, Delphi вообще в серьез никто не воспринимает.
Мое мнение, лучше Delphi ещё не видел, как писал на ней, так и буду писать.
← →
Layner © (2006-03-20 11:04) [1]В заключении значит, в чем т.е. ещё раз и убедился.
← →
Dok_3D © (2006-03-20 11:08) [2]2 Layner © (20.03.06 11:02)
Мое мнение, лучше Delphi ещё не видел, как писал на ней, так и буду писать.
От тюрьмЫ и от сумЫ, как говорится ...
← →
Layner © (2006-03-20 11:15) [3]Ну на пару лет ещё работаю как и работал. Хвалят студию 2005, в ней редактор кода удобнее, ее может поставлю, если сумею достать, а работать на .Net если и планирую сейчас, то только с XML файлами. А дальше посмотрим. Не отвергаю конечно... Но родная delphi среда ближе и приятнее. ^)
← →
Игорь Шевченко © (2006-03-20 11:27) [4]
> типа 18тыс классов созданные ребятами Microsoft пойдут на
> пользу всем любителям быстрой разработки программ, т.к.
> в них реализованно почти ВСЕ, что требуется 99% программистам.
> ..
Каждому программисту придается резиновая голова, чтобы запомнить, какой из 18 тысяч классов что делает.
← →
k2 © (2006-03-20 11:30) [5]а можно две в одни руки? :) надо позарез
← →
ZeroDivide © (2006-03-20 11:53) [6]Эт хорошо что на курсы посылали... я последний раз 3 года назад на курсах был :(
← →
Alkid © (2006-03-20 11:58) [7]
> аждому программисту придается резиновая голова, чтобы запомнить,
> какой из 18 тысяч классов что делает.
А разе голова для простого программирования для Windows или просто
на Delphi голова не должна много помнить? :)
← →
ilya39 © (2006-03-20 12:02) [8]
> Прослушал тут курсы C#...
> Layner © (20.03.06 11:02)
Очередная параноя на тему: "да зачем этот Net придумали, да зачем это надо..." Сколько можно?
← →
Карелин Артем © (2006-03-20 12:20) [9]
> Игорь Шевченко © (20.03.06 11:27) [4]
Так пространства имен очень удобно структурируют всю эту кучу.
Мне очень нравится 2005 студия. Но распространять через инет программы на фреймворке жестко, особенно писанные под 2,0 фреймворк....
← →
Alkid © (2006-03-20 12:26) [10]
> Очередная параноя на тему: "да зачем этот Net придумали,
> да зачем это надо..." Сколько можно?
ИМХО появление ЛЮБОЙ достаточно радикально новой технологии будет сопровождаться такими комментариями. Это неизбежно. :)
Другое дело, самому .NET эти восклицания уже несколько до фени, он уже
успешно занимает свой кусок рынка.
← →
ilya39 © (2006-03-20 12:30) [11]
> достаточно радикально новой технологии
Осторожней, сейчас начнется: "да это все было в Java и т.д." :)
> Другое дело, самому .NET эти восклицания уже несколько до
> фени, он уже
> успешно занимает свой кусок рынка.
Вот тут полностью согласен!
← →
Alkid © (2006-03-20 12:31) [12]
> торожней, сейчас начнется: "да это все было в Java и т.д.
> " :)
И в Дельфи было :)
Короче, сейчас скажут, что .NET - глубоко вторичен и в нём мало креатива ;)
← →
iZEN © (2006-03-20 13:59) [13]>Layner © (20.03.06 11:02)
>Например любую прогу, написанную на C# легко можно вскрыть на исх. коды например с помощью программы Рефлектор... т.е. пишем программу, компилируем, запускаем Рефлектор (ищется в инете легко), открываем через нее exe, оп ля, и все как на ладони..
Это было в 1998 году в JBuilder 2.0, если не раньше. Любой java-класс можно было на лету (в дереве папок файловой системы) декомпилировать в среде и смотреть его код (в редакторе кода). Обфускаторы, конечно, порядком запутывали двоичный код, но на то они и обфускаторы. Ведь так?
А тут мы открыли для себя через семь лет это снова... :))
Забавненько.
>ilya39 © (20.03.06 12:30) [11]
>> достаточно радикально новой технологии
>Осторожней, сейчас начнется: "да это все было в Java и т.д." :)
В Smalltalk это уже 20 лет есть.
Alkid © (20.03.06 12:31) [12]
>И в Дельфи было :)
Кохда?
← →
Eraser © (2006-03-20 14:03) [14]
> Карелин Артем © (20.03.06 12:20) [9]
> Мне очень нравится 2005 студия.
а почему не 2006? гораздо лучше по-моему....
← →
Карелин Артем © (2006-03-20 14:35) [15]
> Eraser © (20.03.06 14:03) [14]
Ты знаешь, вчера был на рынке... Там почему-то нет уже вышедшей 2006 дельфи, но вовсю продается 2006 студия, хотя официальная инфа у меня что последние 2006 дельфи и 2005 студия :)))
← →
Alkid © (2006-03-20 14:37) [16]
> Кохда?
Да не, про рефлекшн и супер-декомпиляцию - такого в дельфи не было.
Я просто про то, что в .NET можество идей и подходов из дельфи.
← →
iZEN © (2006-03-20 15:23) [17]>Alkid © (20.03.06 14:37) [16]
>Да не, про рефлекшн и супер-декомпиляцию - такого в дельфи не было.
>Я просто про то, что в .NET можество идей и подходов из дельфи.
Конечно-конечно.
Много подходов.
Один из таких подходов, например, - отказ от checked exception"s.
Чувство такое, что разработчики точки-нэт просто наплевали на задачу эффективной работы с исключениями на уровне компилятора. ;)
← →
_inic (2006-03-20 15:30) [18][0]
> фрейморк на клиентах должен быть той же версии, где и компилировалась > программа
вообще-то вроде в манифесте прописывается мин. версия или конкретная
ИМХО, препод неправильно выразился ?
← →
Карелин Артем © (2006-03-20 15:36) [19]Во фреймворке 1.1 была небольшая бага с System.Windows.Forms.DateTimePicker.
В фреймворке 2.0 ее устранили, введя другую багу...
← →
Карелин Артем © (2006-03-20 16:17) [20]
> iZEN © (20.03.06 13:59) [13]
Не считай меня ламером, но я не могу найти Рефлектор в нете. Может укажешь приблизительное направление???
← →
Рамиль © (2006-03-20 16:24) [21]
> Карелин Артем © (20.03.06 16:17) [20]
Наверное вот это
http://www.yandex.ru/yandsearch?text=%E4%E5%EA%EE%EC%EF%E8%EB%E8%F0%EE%E2%E0%ED%E8%E5+.NET+Reflector&stype=www
← →
Alkid © (2006-03-20 16:25) [22]
> Конечно-конечно.
> Много подходов.
> Один из таких подходов, например, - отказ от checked exception"s.
Поясни фишку. От каких они там экспешнов отказались?
← →
iZEN © (2006-03-20 16:56) [23]>Alkid © (20.03.06 16:25) [22]
>> Один из таких подходов, например, - отказ от checked exception"s.
>Поясни фишку. От каких они там экспешнов отказались?
От проверяемых — checked.
В сигнатуре метода вызываемого кода можно задать (throws <список>) те проверяемые исключения, которые он бросает вызывающему коду в случае исключительной ситуации. Компилятор на этапе компиляции должен проверить, обрабатывается ли такие исключения в вызывающем коде (try/catch) или повторно бросаются (throws <то же список> в сигнатуре вызывающего метода), если не обрабатывается и не бросаются (throw) — компилятор говорит, что компиляция невозможна, ошибка времени компиляции.
Ну так в C# забили на эту фишку толстый болт от арбалета и приняли идею Delphi: все исключения считать непроверяемыми — Unchecked Exception"s.
← →
iZEN © (2006-03-20 16:59) [24]Карелин Артем © (20.03.06 16:17) [20], понятия не имею про Рефлектор. Спросите кого-нибудь более сведующего.
← →
DiamondShark © (2006-03-20 17:39) [25]
> iZEN © (20.03.06 16:56) [23]
А зачем лишние сущности плодить?
← →
Sandman25 © (2006-03-20 17:41) [26]DiamondShark © (20.03.06 17:39) [25]
А зачем лишние сущности плодить?
Это ты про объекты?
← →
DiamondShark © (2006-03-20 17:54) [27]
> Sandman25 © (20.03.06 17:41) [26]
Это я про checked exception"s
← →
Sandman25 © (2006-03-20 17:58) [28]DiamondShark © (20.03.06 17:54) [27]
Это я про checked exception"s
Неужели иронию не понял? Стареем.
Checked Exception - удобная штука, особенно при использовании собственных классов исключений.
← →
DiamondShark © (2006-03-20 18:04) [29]
> Sandman25 © (20.03.06 17:58) [28]
Вполне возможно, что я чего-то не улавливаю.
Можно простенький (или сложненький, если просто не получится) примерчик, так, чтоб было очевидно, что без них тут было бы сильно неудобно.
Я действительно хочу понять, в чём там соль...
← →
Layner © (2006-03-20 18:42) [30].NET Reflector 4.0
http://www.aisto.com/roeder/dotnet
http://workspaces.gotdotnet.com/reflector
Я смотрел в целом "глазами шароварщика", т.е. можно ли его прикрутить под опред. мои цели. Как оказалось, можно, но код открыт. Отсюда какая либа защита не катит.
← →
iZEN © (2006-03-20 19:48) [31]DiamondShark © (20.03.06 18:04) [29]
> Sandman25 © (20.03.06 17:58) [28]
>Вполне возможно, что я чего-то не улавливаю.
>Можно простенький (или сложненький, если просто не получится) примерчик, так, чтоб было очевидно, что без них тут было бы сильно неудобно.
>Я действительно хочу понять, в чём там соль...
Ну это же фундамент контрактного программирования. Проверяемые исключения являются одним из механизмов сигнализации (научный термин) на этапе компиляции, а не выполнения.
Delphi и C# могут просигнализировать о необработанной ошибке в программе только тогда, когда эта ошибка возникает в работающем коде (Unchecked Exception) — скорее всего будет Access Violation, и программа завершится крахом.
Java и Eiffel имеют две сигнальные системы:
* Unchecked Exception"s, работающие в рантайме,
и
* Сhecked Exception"s, выполняющие свои функции не только в рантайме, но и на этапе компиляции — за их семантикой следит компилятор.
В надёжной системе обычно присутствует подсистема восстановления после сбоев, но ей достаточно знать о Unchecked Exception"s (непроверяемые исключения, например, распространены в EJB). На этапе компиляции небольших программ со сторонними бинарными библиотеками можно гарантировать построение надёжного кода только при наличии Сhecked Exception"s, так как доступ к документации и тем более к исходникам библиотек часто ограничен.
← →
Ломброзо © (2006-03-20 20:43) [32]дадад
public void OpenFile(String fileName)
throws InvalidPathException,
FileNotExistsException,
FileIsLockedException,
AccessDeniedException,
IOException,
HDDNotFoundException,
OSException...
{
}
и на всё это хозяйство надо повесить по кэтчу, что под силу только представителям педантичной нации типа ипонцев. Прочих мало интесует, почему не окрывается файл. Не открылся - ну и хрен с ним.
← →
Ломброзо © (2006-03-20 20:46) [33]Я к тому, что рано или поздно код, использующий мегаконтрактные библиотеки, начинает изобиловать конструкциями типа
public void DoOpenFile throws Throwable
{
OpenFile(..);
}
или
try
{
OpenFile(...);
}
catch (Throwable e)
{
throw new RuntimeException(e);
}
← →
DiamondShark © (2006-03-20 21:17) [34]
> iZEN © (20.03.06 19:48) [31]
Послушайте, впасть в транс от мантры, вроде: "это фундамент чего-то-там-написанного-жирным-шрифтом" я могу самостоятельно. Определение я где-то слышал. Именно исходя из определения я посчитал эту фичу приносящей много возни и около нуля эффекта. Именно поэтому я просил пример. Практический. Тем более, что уверяли, что бывают случаи, где это очень удобно.
Пока единственный более-менее практически значимый момент -- это в отсутствии документации узнать из метаданных, какие исключения может кидать метод.
Извините, но это слишком слабый плюс по сравнению с привносимыми неудобствами.
← →
Геро (2006-03-20 21:18) [35]Как и все новое, .NET переживет время недоверия, время взлета, а затем просто станет скучной обыденностью.
← →
iZEN © (2006-03-20 21:30) [36]>Ломброзо © (20.03.06 20:46) [33]
>Я к тому, что рано или поздно код, использующий мегаконтрактные библиотеки, начинает изобиловать конструкциями типа
>public void DoOpenFile throws Throwable...
Не будет изобиловать, уверяю Вас. Одиннадцать лет показали, что такого не случилось.
← →
iZEN © (2006-03-20 21:37) [37]DiamondShark © (20.03.06 21:17) [34], ещё раз повторяю, что этот механизм важен программистам, его использующим. Кто его не использует, он нафик не нужен.
Необработанное исключение (всегда Unchecked Exception) в Delphi приводит к системному сообщению и/или к остановке выполнения программы. И это встречается очень часто. В половине случаев такое положение связано с неучтённой семантикой вызова библиотечного метода (забывчивость программиста, недостаточная документированность вызываемого кода и другие мантры, всё - действие ЧЕЛОВЕЧЕСКОГО_ФАКТОРА). Это можно исправить на этапе компиляции, если есть возможность использовать механизм Checked Exception"s. В Delphi и C# такого механизма нет. И живут же люди...
← →
Kerk © (2006-03-20 21:43) [38]Alkid © (20.03.06 12:31) [12]
Короче, сейчас скажут, что .NET - глубоко вторичен и в нём мало креатива ;)
Года полтора назад пришлось поработать в .NET с сишником.. многие вещи, от которых он был там в восторге, я после Delphi воспринимал как данность.
← →
Piter © (2006-03-20 22:01) [39]Карелин Артем © (20.03.06 12:20) [9]
Мне очень нравится 2005 студия. Но распространять через инет программы на фреймворке жестко
пиши на C++, никто же не запрещает.
← →
iZEN © (2006-03-20 22:21) [40]>Ломброзо © (20.03.06 20:43) [32]
>дадад
>public void OpenFile(String fileName)
> throws InvalidPathException,
> FileNotExistsException,
> FileIsLockedException,
> AccessDeniedException,
> IOException,
> HDDNotFoundException,
> OSException...
>{
>
>}
>
>и на всё это хозяйство надо повесить по кэтчу, что под силу только представителям педантичной нации типа ипонцев.
Несовсем.
Достаточно только те, которые не обрабатываются внутри этого метода.
Если не хотим обрабатывать конкретно в этом методе (что, действительно, бывает не всегда нужно), то можно объявить о бросании их общего предка (иерархия наследования Exception"s предполагает, как правило, разумное определение связей родитель-потомки), так как в большинстве случаев гораздо эффективнее вести обработку типичных исключительных ситуаций в "верхних" слоях вызывающего кода, а не на самом нижнем слое в вызываемом коде, где доступна слишком детальная информация, чтобы её обрабатывать (и тратить вычислительные ресурсы на это).
>Прочих мало интесует, почему не окрывается файл. Не открылся - ну и хрен с ним.
Бросайте их общего предка.
Грамотный дизайн кода, как всегда, решает.
Страницы: 1 2 3 4 вся ветка
Форум: "Прочее";
Текущий архив: 2006.04.16;
Скачать: [xml.tar.bz2];
Память: 0.57 MB
Время: 0.042 c