zx
Member
C#. что вижу я.
здравствуйте товарищи.
перед тем как начать гадить в комментах, отрезумирую по сути.
C# - наверное флагманское средство разработки, сделанное Макроссофтом для платформы .Net.
Остальные (неццкий бейсик, J#, managed C++) - по сути делают то же самое, но являются подмножеством шарпа по возможностям. Кто в курсе - например, в Шарпе есть диектива Using для работы с классами, реализующими IDisposable. То, что она делает, в других языках можно собрать руками, а в шарпе она - уже есть..
Под .Net борланд выпускало несколько версий своих дельфей и билдеров но они убоги.. При всем моём обожании Дельфи.
Сама платформа .Нет - (ну это помоему. я всетаки не гейтс) - неизбежное будущее мира Майкрософт и Виндоуззз. И непоганое будущее.
.Нет дает уникальную возможность:
- лепить очень надежный код просто. он еще и кросс - платформенный получится.. такого же плана средством была ява но ни такой скорости, ни такой глубокой и удобной работы с железяками там не было. Плюс в Нете реализованы куча уникальных артефактов программирования (атрибуты например, также интерфейсы, ну интерфейсы не вполне уникальная вещщщьчь. в КОМе и в том же дельфи они уже были, а вот в ЯВЕ, насколько я знаю - нет).
- модульность получаемого кода очень удобна. ни в одном средстве не было возможности сделать ДЛЛку и при подключении ее к внешнему проекту видеть все ее классы методы и прочие потроха как в исходнике без всяких заголовков и библиотек импорта. Такой модульности не хватало всю жизнь, нихто даже не решался о ней мечтать - а теперь она просто есть.
я прикинул - плюсов столько, что слишком долго придется продолжать этот список..
вобщем наш скромный коллектив в 7-8 лиц, который исторически писал хто на чем (дельфи, эксессс, фокспро) был за полтора года загнан мною в .Нет на C# и результатами все довольны.
плюс повторюсь, в будущем эта технология займет в жизни еще более центральное место.
еще не вышла винда написанная на нете и сделанная для нета. виста такой не получилась.
а когда таковая выйдет - нет станет еще лучше удобней и важнее.
А еще 1 момент по сути пока не началось копание в деталях и размазывание каши по столу.
Позиционируем себя и .Нет.
вопрос 1 - зачем он может пригодиться ?
варианты:
написание сервисов для выполнения под виндой.
- здесь - нет точно рулит. без визуальщины не тормозит вообще, разрабатывать -кайф, средства для тестирования - улет, библиотеки штатные - могучие. к тому же это единственная надежная платформа для разработки надежного кода под винду.
написание клиентских приложений для работы с базами данных.
- если проникнуться идеей и писать надо чтото монументальное - рекомендую.
очень мощная среда разработки. мощная модульность.
но если вам нада прога на 10-15 формочек с базой таблиц на 20.
и она вам нада через 3 дня. и вы знаете Дельфи. Я в таком случае не колебусь - запускаем винамп, нью прожект, секундомер, чай, буттерброд и вскорости - результат.
Для легких проектов (и примитивных) имхо дельфи юзать удобней.
написание просто софта.
- если надо много графики в окнах - и надо чтоб оно шустро вертелось - ну его.
а так - подходящая вещь. вобщем идея - чем больше кода - логика внутри, а не визуальщина - тем лучше писать его на нете. и чем масштабней проект - тем больше смысла его на нете фигачить. хоть как привыкнешь - и мелочь на ём же будеш строгать.
графика.
оконная графика - сильно нагруженная - нуего.
а если с дайректом например возиться - я бы попробовал. по идее должно шустро и красиво получаться. не знаю, просто делюсь соображаниями.
взаимодействие с неуправляемым кодом и с кодом, использующим COM-технологии.
для работы сэтими вещами есть механизмы создания типа прозрачных оберток (transparent proxies) в обе стороны. типа dll в машинном коде можно обернуть классом в нете, на методы которого будут спроецированы точки входа этой длл. и наоборот, можно создать длл на .нете (такой код называется il или msil - Intermediate Language или Microsoft Intermediate Language; промежутоШный йазыГГГ) и сделать неуправляемую длл-заглушку, которая будет перенаправлять вызовы из машинного кода на методы классов .нет - дллки.
с комами та же песня - можно в обе стороны переопылять понятия .net-класса и COM-интерфейса.
но сразу говорю, что на этой зыбкой почве валяются неприятные грабли. а именно, для преобразования данных из типов .нет в типы COM используются т.н. МАРШАЛЛЕРЫ так вот в случае, когда при взаимодействии через COM ваши куски кода обмениваются данными сильно замороченной структуры (ну типа массивами записей самодельной структуры), то штатные маршаллеры этого не вытягивают а самодельные писать стрёмно.. короче если ВДРУГ будет у вас такая задача - перед тем как кинуться в нее всеми местами - повтыкайте более глубоко в почву, если что-то покажется вам мутным - берите простой C++ без всякого нета и не вы$#&вайтесь.
Графика.
прорисовка форм в нете на сегодня реализована средствами GDI+. Оно притормажЫвает.
Плюс производительность графической подсистемы упирается в возможности старого кода управления окнами, старого API windowHandler-ов и точек входа в процедуры.
Когда MS домучит свой обьектный движок для работы с окнами (он вроде в одном из проектов авалоном назывался, хотя в конце-концов под этим именем родилось хрензнаетшо) - думаю скорость отрисовки .нет - визуальщины радикально улуччицца.
Скажем так. Майкрософт не меняется от того, верю ли в него я или ты.
Единственный выбор который у тебя есть - работать или не работать с ним.
На сегодняшний день я альтернативы винде на рынке десктоп-платформ, позволяющих быстро разрабатывать клиентские приложения с богатым интерфейсом (пытаюсь указазть, что жто приложения, которые работают НЕ_В_БРАУЗЕРЕ) - не вижу. Видел бы - сам бы вприпрыжку туды сбежал. До нета. а после нета - теперь 3 раза подумаю. Бо удобно однако в нем программить.
Например у меня 2 бойца рисуют проект на VB.Net а третий им на шарпе нарисовал dll, они ее себе без вопросов вкручивают и едут как тут и было.
но если сравнить с не-.NET бэйсиком - звыняйте. Нет ЖЖОТТ.
Когда ты запускаешь .нет -экзешник -загрузчик фреймворка берет его промежуточный IL-код (ну и код библиотек, на к_рые твой эге опирается) и компилит его в машинный код твоего ЦПУ. Это занимает время и чуйствуется (хоть и не особо). Зато потом все шуршит как обычно.
Кроме того, при установке фреймворка в винде заводится целоя обвеска администрирования его политик и я подозреваю что там есть возможность указать, что я хочу такие-то сборки (эгешники и дллки) скомпилять в маш. код заранее. Тада при запуске все ваще буит шуршать. Не уверен на все 100 что такое есть, но чето мне помнится что оно есть.
То, что у нее на борту приезжает штатный фреймворк ничего не меняет, он попрежнему живет извне системы, а не является ее частью. Но вечно это длиться не может.
А шоб про баб не токо думать - надо шевелиться. И код я люблю надежный, шустрый и такой, который можно быстро изваять и легко сопроводить. Я не особо люблю программить. Я люблю результат. И девок. С такой жизненной позиции - код на шарпе - моё почтение. Кроме того.
Попробуйте. и вы увидите, что он очень красив. я такого красивого ни на чем не видел, честно.
Пользуясь случаем, передаю привет всем женщинам. Всем спасибо, я вас люблю. Код мне по ночам не снится.
При моём _обожании_ дельфи - я всетаки тащусь от шарпа. Все двойные объявления дельфи (объявление-тело) и т.п. - сильно перегружено. в шарпе меньше объявлений. и в нем гораздо проще найти что нужно.
приведу 1 пример.
свойства в дельфи и шарпе.
пусть есть класс TzxClass. как ему сделать свойство в дельфи:
терь шарп..
.. усё. если учесть, что мой профиль - библиотеки компонент.. нушо.. я за шарп..
Кроме того, как моно могет в прынцыпе реализовать например все классы из system.win32 ?
(пишу по памяти, могу ошибиться, но такой или похожый неймспэйс есть
для этого в моно нада засунуть винду.. маленькую такую.. ембеддед
Rotor называется. Тоже подмножество полного фреймворка. Кому оно надо - фтыкайте .
а ТЕСТИТЬ ВООБЩЕ.. я не академик и не идиот. я выше сказал, люблю баб и бабки.
интересно.
усё. желаю удачь. кому чего интересно - что могу отвечу detral@gmail.com
сорри за длинный высер ну так я ж не заставляю его читать. хотел сказать пару строк да увлекся...
здравствуйте товарищи.
перед тем как начать гадить в комментах, отрезумирую по сути.
C# - наверное флагманское средство разработки, сделанное Макроссофтом для платформы .Net.
Остальные (неццкий бейсик, J#, managed C++) - по сути делают то же самое, но являются подмножеством шарпа по возможностям. Кто в курсе - например, в Шарпе есть диектива Using для работы с классами, реализующими IDisposable. То, что она делает, в других языках можно собрать руками, а в шарпе она - уже есть..
Под .Net борланд выпускало несколько версий своих дельфей и билдеров но они убоги.. При всем моём обожании Дельфи.
Сама платформа .Нет - (ну это помоему. я всетаки не гейтс) - неизбежное будущее мира Майкрософт и Виндоуззз. И непоганое будущее.
.Нет дает уникальную возможность:
- лепить очень надежный код просто. он еще и кросс - платформенный получится.. такого же плана средством была ява но ни такой скорости, ни такой глубокой и удобной работы с железяками там не было. Плюс в Нете реализованы куча уникальных артефактов программирования (атрибуты например, также интерфейсы, ну интерфейсы не вполне уникальная вещщщьчь. в КОМе и в том же дельфи они уже были, а вот в ЯВЕ, насколько я знаю - нет).
- модульность получаемого кода очень удобна. ни в одном средстве не было возможности сделать ДЛЛку и при подключении ее к внешнему проекту видеть все ее классы методы и прочие потроха как в исходнике без всяких заголовков и библиотек импорта. Такой модульности не хватало всю жизнь, нихто даже не решался о ней мечтать - а теперь она просто есть.
я прикинул - плюсов столько, что слишком долго придется продолжать этот список..
вобщем наш скромный коллектив в 7-8 лиц, который исторически писал хто на чем (дельфи, эксессс, фокспро) был за полтора года загнан мною в .Нет на C# и результатами все довольны.
плюс повторюсь, в будущем эта технология займет в жизни еще более центральное место.
еще не вышла винда написанная на нете и сделанная для нета. виста такой не получилась.
а когда таковая выйдет - нет станет еще лучше удобней и важнее.
А еще 1 момент по сути пока не началось копание в деталях и размазывание каши по столу.
Позиционируем себя и .Нет.
вопрос 1 - зачем он может пригодиться ?
варианты:
написание сервисов для выполнения под виндой.
- здесь - нет точно рулит. без визуальщины не тормозит вообще, разрабатывать -кайф, средства для тестирования - улет, библиотеки штатные - могучие. к тому же это единственная надежная платформа для разработки надежного кода под винду.
написание клиентских приложений для работы с базами данных.
- если проникнуться идеей и писать надо чтото монументальное - рекомендую.
очень мощная среда разработки. мощная модульность.
но если вам нада прога на 10-15 формочек с базой таблиц на 20.
и она вам нада через 3 дня. и вы знаете Дельфи. Я в таком случае не колебусь - запускаем винамп, нью прожект, секундомер, чай, буттерброд и вскорости - результат.
Для легких проектов (и примитивных) имхо дельфи юзать удобней.
написание просто софта.
- если надо много графики в окнах - и надо чтоб оно шустро вертелось - ну его.
а так - подходящая вещь. вобщем идея - чем больше кода - логика внутри, а не визуальщина - тем лучше писать его на нете. и чем масштабней проект - тем больше смысла его на нете фигачить. хоть как привыкнешь - и мелочь на ём же будеш строгать.
графика.
оконная графика - сильно нагруженная - нуего.
а если с дайректом например возиться - я бы попробовал. по идее должно шустро и красиво получаться. не знаю, просто делюсь соображаниями.
взаимодействие с неуправляемым кодом и с кодом, использующим COM-технологии.
для работы сэтими вещами есть механизмы создания типа прозрачных оберток (transparent proxies) в обе стороны. типа dll в машинном коде можно обернуть классом в нете, на методы которого будут спроецированы точки входа этой длл. и наоборот, можно создать длл на .нете (такой код называется il или msil - Intermediate Language или Microsoft Intermediate Language; промежутоШный йазыГГГ) и сделать неуправляемую длл-заглушку, которая будет перенаправлять вызовы из машинного кода на методы классов .нет - дллки.
с комами та же песня - можно в обе стороны переопылять понятия .net-класса и COM-интерфейса.
но сразу говорю, что на этой зыбкой почве валяются неприятные грабли. а именно, для преобразования данных из типов .нет в типы COM используются т.н. МАРШАЛЛЕРЫ так вот в случае, когда при взаимодействии через COM ваши куски кода обмениваются данными сильно замороченной структуры (ну типа массивами записей самодельной структуры), то штатные маршаллеры этого не вытягивают а самодельные писать стрёмно.. короче если ВДРУГ будет у вас такая задача - перед тем как кинуться в нее всеми местами - повтыкайте более глубоко в почву, если что-то покажется вам мутным - берите простой C++ без всякого нета и не вы$#&вайтесь.
Графика.
прорисовка форм в нете на сегодня реализована средствами GDI+. Оно притормажЫвает.
Плюс производительность графической подсистемы упирается в возможности старого кода управления окнами, старого API windowHandler-ов и точек входа в процедуры.
Когда MS домучит свой обьектный движок для работы с окнами (он вроде в одном из проектов авалоном назывался, хотя в конце-концов под этим именем родилось хрензнаетшо) - думаю скорость отрисовки .нет - визуальщины радикально улуччицца.
Слоган - Microsoft - not to be trusted. Just to be.Но я повторюсь, что не верю в Майкрософт.
Скажем так. Майкрософт не меняется от того, верю ли в него я или ты.
Единственный выбор который у тебя есть - работать или не работать с ним.
На сегодняшний день я альтернативы винде на рынке десктоп-платформ, позволяющих быстро разрабатывать клиентские приложения с богатым интерфейсом (пытаюсь указазть, что жто приложения, которые работают НЕ_В_БРАУЗЕРЕ) - не вижу. Видел бы - сам бы вприпрыжку туды сбежал. До нета. а после нета - теперь 3 раза подумаю. Бо удобно однако в нем программить.
ГЫ. Смотря какой VB иметь в виду. Если VB.Net - то оно не только по скорости будет так же, там и сам код получится практически идентичным. Вся идеология средств .нет разработки от МЗ - что любым средством мы получим одинаковый код, и можем юзать его в любом сочетании.Насколько мне известно, с .NET готовая программа получается что-то наподобие того же Visual Basic по скорости.
Например у меня 2 бойца рисуют проект на VB.Net а третий им на шарпе нарисовал dll, они ее себе без вопросов вкручивают и едут как тут и было.
но если сравнить с не-.NET бэйсиком - звыняйте. Нет ЖЖОТТ.
Графика - отдельная песня. я говорил. А невизуальный код фигачит практически со скоростью обычного маш. кода. И вообще, принцип работы .НЕТ - т.н. JIT(just in time)-compiller.Кому довелось поработать, особенно с графикой, тот наверняка поймёт о чем я.
Когда ты запускаешь .нет -экзешник -загрузчик фреймворка берет его промежуточный IL-код (ну и код библиотек, на к_рые твой эге опирается) и компилит его в машинный код твоего ЦПУ. Это занимает время и чуйствуется (хоть и не особо). Зато потом все шуршит как обычно.
Кроме того, при установке фреймворка в винде заводится целоя обвеска администрирования его политик и я подозреваю что там есть возможность указать, что я хочу такие-то сборки (эгешники и дллки) скомпилять в маш. код заранее. Тада при запуске все ваще буит шуршать. Не уверен на все 100 что такое есть, но чето мне помнится что оно есть.
виста так и не сделала сколько нибудь уверенных шагов в сторону .Нет.Ну а поскольку вся эта платформа позиционируется, как единственный возможной и правильный путь написания "правильных" программ под Windows, то становится тогда понятными некоторые возможные причины столь большой требовательности Vista.
То, что у нее на борту приезжает штатный фреймворк ничего не меняет, он попрежнему живет извне системы, а не является ее частью. Но вечно это длиться не может.
синтаксис фри паскаля и обжэкта настоко похож шо называть его можно как хочеш - все равно то же самое. а ночами мечтать о коде.. я всю жизнь о бабах думаю. а про ночи ваще молчу.Ну а лично для себя я буду тихонечко ночами мечтать, о хорошем и красивом коде, написанном на привычных мне Java, C/C++, Object Pascal (ой пардон, а можно ли Free Pascal так назвать? думаю пока-что да), и тешиться свободой выбора
А шоб про баб не токо думать - надо шевелиться. И код я люблю надежный, шустрый и такой, который можно быстро изваять и легко сопроводить. Я не особо люблю программить. Я люблю результат. И девок. С такой жизненной позиции - код на шарпе - моё почтение. Кроме того.
Попробуйте. и вы увидите, что он очень красив. я такого красивого ни на чем не видел, честно.
Пользуясь случаем, передаю привет всем женщинам. Всем спасибо, я вас люблю. Код мне по ночам не снится.
дельфи и сишарп - очень разные среды. С очень разной архитектурой получаемого исполнимого модуля. Да, шарп - это очень взрослая ява. Ява, доросшая до того, чего от нее никто не ждал.dragonion, забудь Delphi и спокойно долби C#. У меня есть чем огорчить твоего препода - больше всего С# похож на Java (как идеология так и сам язык), но тооолько не на паскаль !! Если нет желания заниматься системным программазмом, С++ не актуален. "Зачем платить больше" (с)
При моём _обожании_ дельфи - я всетаки тащусь от шарпа. Все двойные объявления дельфи (объявление-тело) и т.п. - сильно перегружено. в шарпе меньше объявлений. и в нем гораздо проще найти что нужно.
приведу 1 пример.
свойства в дельфи и шарпе.
пусть есть класс TzxClass. как ему сделать свойство в дельфи:
Код:
TzxClass = class
begin
FMyProp: Integer;
function GetMyProp: Integer;
procedure SetMyProp(AValue: Integer);
published
property MyProp: Integer read GetMyProp write SetMyProp;
end;
И ЭТО ЕЩЕ НЕКОНЕЦ :)
еще ж тела методов :)
implementation
function TzxClass.GetMyProp: Integer;
begin
// ну ясно, что тут логика посложней, ради этого нихто б метод не ваял, ну это так, для примеру..
Result := FMyProp;
end;
procedure TzxClass.SetMyProp(AValue: Integer);
begin
ну типа..
if AValue = FValue then
exit;
FValue := AValue;
end;
Код:
public class TzxClass
{
int FMyProp;
public MyProp
{
get{return FMyProp;}
set{if(Value!=FmyProp)FMyProp=Value;}
}
}
ну по крайней мере лучче шарпа. это да.А насчёт переносимости - наилучшая переносимость у Java.
Ну это ты с железом не работал небось. а то там всетаки появляется вроде нейтив код. но врать не буду с явой я токо начинаю сталкиваться и чураюсь ее пока..Бинари полученный в винде (с потоками, графикой и прочей ерундой) спокойно работает в JVM под линукс или соларис (это проверено, другие платформы по причине эксклюзивности оных не пробовал).
причем тут имхо. во-первых - моно не может покрыть в принципе весь фреймворк. он реализует только его подмножество. во 2х - как может так и реализует т.е. не факт что все буит работать в моне также как в нете. А нюансов там тьма. Например, во 2м фреймворке срэды работают весьма не так, как в первом (например обработка исключит. ситуаций в срэдах). Т.е. в самом фреймворке куча нюансов, помоему стопудов чего-нибудь в моне да не так как в оригинале..Да только мое ИМХО - сомневаюсь что Mono достигнет 100% точной реализации фреймворка и тучи библиотек, хотя как знать...
Кроме того, как моно могет в прынцыпе реализовать например все классы из system.win32 ?
(пишу по памяти, могу ошибиться, но такой или похожый неймспэйс есть
для этого в моно нада засунуть винду.. маленькую такую.. ембеддед
Пополняю. кроме моны - самодельной - есть еще Макрософтовский фреймворк с открытыми сырцами.Кроме того, оказывается есть уже и поддержка платформы .Net Framework и для Linux, Solaris, Mac OS, FreeBSD, Unix. Проэкт называется Mono. Так что все не столь плохо как казалось . Также следует сказать, что скорость работы С# примерно в 2 раза выше скорости работы Java. Вот пока что все что я нашел и узнал. Буду дальше пополнять новость.
Rotor называется. Тоже подмножество полного фреймворка. Кому оно надо - фтыкайте .
а смысл ? перед тем как чегото гонять и тестить - поставь всою задачу. Поставь допуски - с какой мин. скоростью оно должно крутиться. потом лепи тесты.Ну да. Давай сорцы, тесты поганяем, сравним
а ТЕСТИТЬ ВООБЩЕ.. я не академик и не идиот. я выше сказал, люблю баб и бабки.
хто попробует - отпишите впечатления. если пробовали студию - сравните, поделитесь.Если нужна среда для разработки на Си-шарпе то можно скачать альтернативу майкрософту бесплатно.
интересно.
усё. желаю удачь. кому чего интересно - что могу отвечу detral@gmail.com
сорри за длинный высер ну так я ж не заставляю его читать. хотел сказать пару строк да увлекся...
Останнє редагування: