![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Идея данной заметки родилась при чтении многочисленных обсуждений «Какой язык из .NET лучше использовать или начать изучать».
Сам автор по роду своей деятельности сталкивался с достаточно большим количеством языков. Некоторые вызывали приятные ощущение, некоторые вызывали сильное неприятие. Программисты – все люди, разные, со своими пристрастиями и предпочтениями. Кроме того разные задачи требуют разных языков – в одном случае может быть использован алгоритмический язык типа С++, для других – функциональные языки (автор не сталкивался с такими, но идеология таких языков по моему мнению очень подходит к некоторым задачам). Поэтому хотелось бы заострить внимание программистов, которые еще в процессе выбора языка, на следующей идее: «Каждая задача, кроме того, что имеет всегда не одно решение, такое решение может быть реализовано на нескольких языках программирования» В принципе взаимодействие разных языков уже существует не один год. Все мы вызываем библиотечные функции, подгружаем динамические библиотеки, в которые мы передаем какие-то параметры и получаем оттуда ответы. Для вызова такого рода функций нам необходимо только правильно передать данные в функцию и правильно интерпретировать ответ. Более поздний вид взаимодействия – Common Object Model (COM/DCOM). Здесь та же ситуация. Вы могли писать на разных языках и даже определять свои типы. Надо было только объяснить, как работать с этим типом клиенту и серверу. Как видите самое важное – ЭТО ДОГОВОРИТСЯ О ТИПАХ. Так вот, .NET предлагает ту же идею, только работать можно не просто с числами и строками. В рамках CLR (Смотри заметку «Что такое .NET») Вы можете работать с более сложными типами, которые являются уже классами и объектами. Все возможные варианты записи типов определяются Common Type System (CTS) – «Общей системой типов». Данная система является системой типов, в рамках которой работает MSIL (Смотри заметку «Что такое .NET»). Т.е. MSIL поддерживает CTS в полном объеме. Если Вы научитесь работать напрямую с MSIL, то Вам будет доступен полный объем всех вариантов определения типов данных. Автор позволит себе небольшой экскурс в CTS. Итак, CTS определяет все возможные варианты описания типов данных. У каждого класса может быть описано 0 и более членов, которые могут быть следующие: Поле – описывает какую-то часть состояния объекта Метод – функция, которая определяет какое-то поведение объекта Свойство – для вызывающей стороны это кажется полем, но для вызываемой стороны есть возможность проверить какие-либо условия, т.к. это для нее вызов метода. Событие – обеспечивает механизм уведомлений объектов. Кроме этого CTS определяет правила для видимости объектов и доступа к их членам. Т.е. не всем и не всегда можно получить доступ к объекту и к его членам. CTS определяет следующие варианты доступа: Закрытый – метод может быть вызван только внутри самого типа. (Для C# это private) Родовой – метод может быть вызван внутри класса и всеми производными классами (Для C# это protected) Сборочный – метод может быть вызван каким угодно объектом внутри одной сборки. О сборках мы погорим в другой раз. Пока думайте о сборке как об одном проекте на Visual Studio. (Для C# это internal) Открытый – метод доступен любому коду из любой сборки. (Для C# это public) Родовой или сборочный – метод может быть вызван любым кодом из той же сборки и любым производным типом (наследником) из любой сборки. (Для C# это protected internal) Родовой и сборочный – метод может быть вызван ТОЛЬКО производным типом и ТОЛЬКО в той же сборке. И вот почему я поставил этот вариант в конце. В C# нет такого модификатора. Как видите, даже такой приличный язык, как C#, не может обеспечить полное соответствие CTS. Visual Basic еще беднее: у него, например, нет системы перегрузки операторов, которая есть в C#. Что же говорить о (IMHO) еще более простых языках, для которых, тем не менее, уже сделаны компиляторы для .NET (Fortran, Perl, Python). Оказывается, что Microsoft определила как максимально возможный набор типов (CTS), так и минимальный набор типов, который обеспечит взаимодействие разных языков – Common Language Specification (CLS) «Общая языковая спецификация». Таким образом, для того, чтобы обеспечить взаимодействие модулей на разных языках внутри Вашего проекта необходимо, чтобы все Ваши модули создавали описания типов в соответствии с CLS. В этом случае Вам гарантируется, что все Ваши модули будут прекрасно взаимодействовать между собой. Полный набор тех правил, которым Вы должны следовать в этом случае, приведен в MSDN – «Cross-Language Interoperability». Например, для того же C# существует специальная опция, которая будучи установлена, дает команду компилятору проверять совместимость описания типов со спецификацией CLS. Если Ваше описание совместимо с CLS, то с Вашей библиотекой сможет взаимодействовать любое другое приложение под .NET написанное на ЛЮБОМ другом языке. Если нет – Вы получите предупреждение. Такое предупреждение говорит только о том, что Вашей библиотекой не смогут воспользоваться модули, написанные на других языках. Если Вас вполне устраивает какой-либо один язык, то Вы можете использовать его, не обращая внимания на такое предупреждение. Т.к. CLS это минимальный набор, то практически все языки для .NET не только поддерживают данную спецификацию, но и несколько расширяют ее. Само собой расширение не может выходить за рамки CST. Если графически показать отношение между CTS, CLS и языками под .NET, то получится приблизительно вот такая картинка (можно посмотреть в самом низу) Читатель наверно подумал «Ну так и что? Где же ответ на мой вопрос о выборе языка?» На этот вопрос мне представляется самым разумным ответить следующим образом: - Исходите из требования Вашей задачи. Кроме Вас самих никто не сможет лучше решить, на каком языке выполнять приложение. Наверняка у Вас есть какие-то предпочтения. Скорее всего в Вашей команде работают разные люди и все они предпочитают разные языки. Автор знает немало очень приличных программистов, которые работают на Visual Basic и создают очень высокопрофессиональные приложения. Тем более, что если рассматривать приложения клиент-сервер, например, для складского учета, то в такого рода задачах клиент является достаточно простым приложением, для которого в 95% случаев вполне достаточно использовать набор библиотечных компонентов, которые предоставляет .NET. Если же Вы только начинаете изучение .NET, то мой совет – посмотрите все языки. Их там ведь не так уж много – Basic, C# и J#. Для просмотра спецификации языка достаточно максимум недели. Потратьте месяц на ознакомление, а потом начинайте изучать тот язык, который больше всего Вам нравится. Как Вы сами скорее всего догадались, библиотека классов для .NET отвечает требования CLS и может быть использована в программах на любом языке. Присоединённый файл ( Кол-во скачиваний: 287 )
CLR.JPG |
|||
|
||||
| Paradox |
|
||||||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1135 Регистрация: 18.11.2002 Где: Россия Репутация: нет Всего: 1 |
тут вопрос такой: если у класса нет модификатора internal, то можно ли его методы вызывать вне сборки? по-видимому такой модификатор просто не нужен
Статья интересная, но могу предложить свой ответ .NET идеология, абстагирующаяся от конкретного языка, на котором написано приложение, и в конечном счете не важно на чем вы будете создавать свой проект, в результате все рабно получиться код на CIL для CLR, это по-моему лишь дело вкуса, но писать на С# все же предпочтительнее, так как это язык разработанный специально для .NET и в наибольшей мере поддерживающий все фишки этой платформы -------------------- --- |
||||||||
|
|||||||||
| young |
|
|||
|
Unregistered |
А какая наилучшая книга по .NET? Хочу начать изучать именно этот язык.
|
|||
|
||||
| Finkel |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 31.3.2004 Репутация: нет Всего: нет |
.Net - Это всего лишь технология от Майкрософт .Основными языками .Net считаются VB.Net,C#,C++.Net
|
|||
|
||||
| Гость_Nick |
|
||||
|
Unregistered |
+
Ничего не понимаю! Дак в итоге сколько всего языков в Visual Studio .NET? |
||||
|
|||||
| Kurt |
|
|||
|
Увлеченный ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: нет Всего: 36 |
Ну, вот смотри..
M$ создала технологию .NET. ТЕХНОГОГИЯ не зависит от ЯП, главное - получить IL-код. Поэтому, теоретически, ЯП неважен. Итак, M$ предоставила несколько языков (в стандартную поставку входят C#.NET, VB.NET, Managed C++, JScript.NET). Остальное - в свободном полете. Народ пытается сделать реализации более чем 30 языков (Pascal, Prolog и т.д.). Поэтому, точно ответить, скока существует .NET-языков нельзя. Ну, а в студии тоже - что поставишь, что и будет. Конкретно, в VS2003 по-молчанию входят: C#, VB.NET, J#.NET, VC++.NET. ..Я слышал, разрабатывают даже этакий VB на РУССКОМ языке - т.е. типа 1C.NET. -------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
|||
|
||||
| Гость_Nick |
|
|||
|
Unregistered |
Kurt, спасибо, теперь ясно! Еще один идиотский вопрос: ведь JScript.NET и J#.NET явно не одно и то же, тогда, что такое этот самый JScript.NET - очередная реализация Java Script? Но его будет поддерживать тока винда с .NET Framework'ом, то есть писать на JScript.NET будет бессмысленно для сайта, хостящегося например на FreeBSD, я правильно понимаю?
Не очень понятно также зачем народ пытается реализовать еще больше языков, им что этого не достаточно? Особенно, на мой взгяд, не в тему будет реализация почти мертвого(по крайней мере на родине самого Microsoft'а) Pascal'я и уж тем более руссифицированного VB:) Хочешь общаться? - Научись разговаривать на более менее стандартизированном языке... |
|||
|
||||
| Kurt |
|
||||
|
Увлеченный ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: нет Всего: 36 |
Нет-нет. Ты немного не понял. Еще раз как все происходит: 1) Ты пишешь прогу на любом .NET-языке. 2) С помощью компилятора переводишь текст проги в IL-код (промежуточный, кроссплатформенный код). 3) Среда выполнения (.NET-Framework или mono под Linux/Unix) берет этот IL-код, докомпиливает его с учетом данной ОС и с учетом конкретных ресурсов компьютера-исполнителя. 4) Докомпиленный код запускается на выполнение. Итак, отсюда выводы: 1) Понятие бессмысленности написания на конкретном языке пропадает. Главное, чтоб у ТЕБЯ был компилятор. Ведь все это все равно переводится в один и тот же IL-код (ну, с небольшими несущественными различиями) - конечный итог работы .NET-программера. 2) Зачем куча языков? Это сделано для того, чтобы в одной команде могли работать разработчики, пришедшие из самых разных языков. Т.е. если я работал на С++, то я перейду на Managed C++.NET - они родственнки, а ты работал, например, на VB - тогда ты переходишь на VB.NET. А в итоге мы можем работать над одним и тем же проектом... Ну, а те, кто еще ничего не учил раньше, выбирает, что кому подуше. 3)
Как тебе сказать.. Поидее вся эта штука кросплатформенна. Единственное условие - наличие на компе-исполнителе виртуальной машины. На данный момент, такая поддержка есть в Windows и, частично, в Linux (mono). Конкретно, уже есть .NET-модуль для Apache 2.0, планируется выпуск модуля для Apache 1.3. По поводу остальных ОСей - как только проект на Linux достаточно "окрепнет" - он будет перенесен под другие клоны Unix'a, а также MacOS etc. - так заявляют разрабочики. -------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
||||
|
|||||
| Гость_Nick |
|
|||
|
Unregistered |
Очень интересно... Просто слушал бы тебя весь вечер!
|
|||
|
||||
| Kurt |
|
||||
|
Увлеченный ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: нет Всего: 36 |
Мы все больше и больше уходим от темы.
Я думаю, такие вопросы лучше задавать в разделе "Что же такое .NET ?"...
Да, гораздо быстрее. Однако, пока производительность .NET-приложений все равно уступает "обычным" программам. Я думаю, это связано с плохой оптимизацией JIT, однако, вроде, разработки в этом направлении ведутся, и, по заверениям M$, можно ожидать, что .NET-проги будут быстрее, чем обычные - ведь .NET-приложения оптимизируются непосредственно перед ВЫПОЛНЕНИЕМ на компе непосредственного ПОЛЬЗОВАТЕЛЯ, а обычные проги - на компе программиста.
Нет, ну ты сам подумай, а если я потом захочу эту прогу с одного компа перенести на другой? Мне опять обращаться к непосредственному "источнику" (где я брал эту прогу) и опять копировать? А если я уже отдал этот диск? Этож какая зависимость от создателя проги! Не-е-е-ет, тут чуток не так: прога находится в оперативной памяти, кэшируется. И при след. запуске минуется этап компиляции и берется уже готовый native-код, понятный CPU. Ессно, если ты перегрузишься, то придется заново юзать JIT. З.Ы. 1) как я уже говорил, мне кажется, такие вопросы лучше постить в разделе "Что же такое .NET?" 2) предлагаю зарегестрироваться - мы всегда рады новым юзерам. -------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
||||
|
|||||
| Nick_ |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 16.7.2004 Репутация: нет Всего: нет |
Ну, все, Kurt, спасибо, тепрь точно пока все
|
|||
|
||||
| foRaver |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 561 Регистрация: 6.7.2003 Где: Düsseldorf Репутация: нет Всего: 3 |
||||
|
||||
| Tamerlann |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 10.11.2002 Где: Минск, Беларусь Репутация: нет Всего: 2 |
Скажите, пожалуйста(те кто здесь "по роду своей деятельности" сталкивался c .NET), от заказчиков ПО поступают какие-либо требования, на каком именно языке требуется реализовать программу? Если да, то на каком чаще?
--------------------
http://timursdev.blogspot.com/ |
|||
|
||||
| Kurt |
|
|||
|
Увлеченный ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: нет Всего: 36 |
Мое ЛИЧНОЕ мнение:
заказчику пофиг на чем будет реализована задача. Хоть на ASM, хоть на VB, хоть на .NET - лишь бы это было сделано вовремя, а также программа удовлетворяла параметрам системы (скорость работы etc.). Поэтому тут нельзя говорить, какой язык нужнее. В фирмах же, к-е занимаются разработкой софта, обычно четко указан ЯП - для "совместимости" с уже существующей командой разработчиков, а также при всяких лицензионных ограничениях (ну не хочет фирма платить деньги за VS - вот и требует от всех зание, скажем, Perl'a). Однако, как я понимаю, сама Microsoft позиционирует C# как основной язык .NET-платформы. Поэтому, у многих работодателей слово "C#" ассоциируется с .NET, поэтому из .NET-языков чаще требуют С#. С другой стороны, исходя из идеалогии .NET, язык не слишком важен - ведь все так или иначе компилится в IL-код. Резюме: без разницы, однако все-таки стоит чуть больше внимания уделить именно C#, т.к. он позиционируется как основной язык самим производителем. -------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
|||
|
||||
| Tamerlann |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 10.11.2002 Где: Минск, Беларусь Репутация: нет Всего: 2 |
А чем принципиально отличается С++ от С#?
--------------------
http://timursdev.blogspot.com/ |
|||
|
||||
| chipset |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: нет Всего: 165 |
Tamerlann, C++ не компилирует IL код (только managed C++) а C# язык исключительно для IL'a..
--------------------
|
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 1 Всего: 186 |
Хоть мелкософтовцы пишут типа C# - наследник C++, но на имхо самом деле он гораздо слабее
И ваще IL, JIT, и другии фичи .net - както немного запарно. Сделали бы возможность компилить и C# и VB в неуправляемый код. Не всегда ж эта кроссплатформенность и кроссязыковая разработка нужна. Это моё личное мнение |
|||
|
||||
| Domestic Cat |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: нет Всего: 172 |
Ну уж нет
Оn и так компилится в нативный код. Можно и самому скомпилить, толькo толку особогo неt. А "запарно" - это в каком смысle? Пo-моему отличная идея (правда mелкософt как обычно ее спер, но развил хорошо). -------------------- |
||||
|
|||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 1 Всего: 186 |
Ну идея хороша, да, но...
Мне неохота весь framework за собой таскать |
|||
|
||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: нет Всего: 172 |
Ну не таскай, пиши нa си, кто мешает ?
-------------------- |
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 1 Всего: 186 |
Ты прав. Мечтать не вредно...
|
|||
|
||||
| Hidrag |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 877 Регистрация: 9.4.2005 Где: JDK Репутация: нет Всего: 25 |
Странно а почему никто Делфи в учет не берет, вышла ведь версия под .НЕТ, и программистов на Делфе огромная армия, в любом случае им придется переходить на программирование под .НЕТ, так как макрософт делает на нее огромную ставку. Разве можно что то сделать скажем на C# чего нельзя на Делфе? Может начинающим программистам не мучить Делфи/Паскаль так как он возможно умрет и перейти сразу на C#, как "родной" язык для .НЕТ
-------------------- |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Это в России их огромная армия, а в остальном мире их как раз не так чтобы очень много. На Си и Ява их просто в разу больше, если не в десятки раз. |
|||
|
||||
| Quadr0 |
|
|||
|
Unregistered |
...
Это сообщение отредактировал(а) Quadr0 - 14.7.2011, 20:22 |
|||
|
||||
| Calve |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 12.7.2005 Репутация: нет Всего: нет |
Это сколько же такое чудо весить будет? Если одна только MSCorLib.dll в скомпилированном виде весит около 10 Мб... ЗЫ Кто не верит - смотрим в папку %WINDIR%/assembly |
|||
|
||||
| Ch0bits |
|
|||
![]() Python Dev. ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2124 Регистрация: 21.2.2005 Где: Казань Репутация: 1 Всего: 62 |
.Net-based программу нельзя скомпилировать в native код!
Сборки из assembly нельзя запустить! Не кидайте в меня камни, а покажите такую программу! |
|||
|
||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: нет Всего: 172 |
Как нельзя, если при запуске НЕТ приложения и происходит компиляция в нативный код. Можно и заранее откомпилить. -------------------- |
|||
|
||||
| Calve |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 12.7.2005 Репутация: нет Всего: нет |
MSDN -> index -> "ngen"
Пользуйтесь FarManager |
||||
|
|||||
| Competitor |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 23.3.2005 Где: Tula Репутация: нет Всего: -1 |
C# считается упрощенной версий Java, который, как известно, является упрощенной версией С++ |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 8 Всего: 232 |
Смотря кем считается. -------------------- ![]() |
|||
|
||||
| Denn |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 6.8.2005 Репутация: нет Всего: 2 |
Спорно. Чем же он проще Java. Правильнее - это симбиоз C++ и Java, заточенный под новую технологию. |
|||
|
||||
| arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: нет Всего: 61 |
Это что, шутка? |
|||
|
||||
| MarS |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 7.6.2005 Репутация: нет Всего: нет |
Всем салют! Посоветуйте, на чем лучше реализовать следующую вещь. Есть данные: географические карты,
аудиозаписи (.wav) разных произношений различных слов на редких языках и координаты пунктов на картах, где эти слова были записаны. Надо написать программу, которая позволяла бы просматривать накопившийся материал (смотреть карты, щелкать по пунктам и слушать слова), редактировать его, т.е. вносить новые карты, новые координаты, новые слова и т.п. Прога должна работать и по сети. Какой язык выбрать? Насколько подойдёт Visual C++ 2005, .NET? СУБД? Благодарю за внимание. |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 8 Всего: 232 |
C# -------------------- ![]() |
|||
|
||||
| MarS |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 7.6.2005 Репутация: нет Всего: нет |
Почитал, склоняюсь к тому же.
|
|||
|
||||
| kaa |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 817 Регистрация: 5.11.2005 Репутация: нет Всего: 2 |
А скажите мне умные люди чем отличается Visual C# от C# ? С# и C#.NET чем-нибуть отличаются? Или С# изначально заточен под .NET
|
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 1 Всего: 186 |
Все три термина обозначают один и тот же язык
|
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 8 Всего: 232 |
nusha, вместо бана вам пока что выношу предупреждение.
-------------------- ![]() |
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 1 Всего: 186 |
Модератор: Сообщение скрыто. |
|||
|
||||
| filbert |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 13.5.2006 Репутация: нет Всего: нет |
Передо мной стоит дилема. Я 8 лет программирую на VB 6.0 (у нас все VB-шники)
На фирме решено переходить .net технологии. Стоит ли изучать VB.net как синтаксически близкий к знакомому нам VB или все таки С#, как основной язык .net платформы? |
|||
|
||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 3 Всего: 149 |
Ничего не могу сказать насчет близости VB языков, на мой взгляд они оооочень похожи.
Но в .Net два основнях языка VB и С#. P.S. Ждем Exception-а, или другого работающего на VB .Net |
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 1 Всего: 186 |
Вот и я.
Ну уж нет. Это совершенно разные языки. Чтобы это впечаталось, повторюсь: полностью, совершенно, абсолютно, ужасно разные. Ничего общего кроме похожего синтаксиса. Так что переучивайся на VB .NET, ничем он шарпа не хуже, зато привычнее. Кстати, вот. |
|||
|
||||
| utilizat0r |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 29.5.2006 Репутация: нет Всего: нет |
1.Почему С# язык Бизнес приложений?...
2.можно ли считать его Универсальным языком для создания любых приложени ?...Скажем Антивирус, 3-Д игрушку или сетевое приложение, програму для обмена данными по USB... можно на нем написать 3.Имею огромное желание выучить один язык програмирования и чтоб он стал универсальным в доску(для меня)...кандидатура СИ ШАРП годиться для етого Это сообщение отредактировал(а) utilizat0r - 30.5.2006, 00:33 |
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 1 Всего: 186 |
1. Скорее всего, имеется в виду понятие "прикладное приложение". Дело в том, что C# более подходит для написания так называемых Smart Client приложений, с богатым интерфейсом и т.д., чем системных утилит.
2. Написать можно что угодно на чём угодно. Вопрос в целесообразности. 3. Универсального ничего не бывает. Есть только более подходящее и менее подходящее для решения оставленной задачи. |
|||
|
||||
| mayn |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 14.5.2006 Репутация: нет Всего: нет |
Вот пример задачи.
К компу подключена камера, с которой средствами DirectShow снимается изображение. Изображение всякими возможными способами в реальном времени обрабатывается (всевозможные научные расчеты), должно обрабатываться максимально быстро. Программа использует также Direct3D. Интересно, C# для этих целей подойдет? На C# никогда раньше не писал, все делал на C++ + MFC + WinAPI. Правда ли, что c помощью C# можно быстрее и легче создать красивый и функциональный Graphical User Interface? |
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 1 Всего: 186 |
||||
|
||||
| DeltaX |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 19.8.2006 Где: Tashkent Репутация: нет Всего: нет |
||||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 8 Всего: 232 |
Нет, это редактор наподобие macromedia flash, только для разработки на XAML. -------------------- ![]() |
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 1 Всего: 186 |
||||
|
||||
| Goganchic |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 678 Регистрация: 18.6.2004 Репутация: нет Всего: 5 |
Сначала насчет Микрософта: никаких супер симпатий не питаю к данной компании, но все же хочу заметить, что он идеи покупают и в этом нет ничего плохого, т.к. по-моему многие фирмы, которые владели этими технологиями до Микрософта не смогли бы так глобально в них вложиться, поэтому я ничего против Микрософтофской политики по данном вопросу не имею (вообще-то и DirectX когда-то был куплен... и ничего - прижился и сейчас ассоциируется только с Виндой и трехмерной графикой).
Теперь про C# С++ и Java. Я думаю, что C++ - это прородитель, который был связан напрямую с Си, и при создании Си++ была необходимость в обратной совместимости приложений, поэтому Си++ содержит очень многое из Си. Java и C# это как бы эквиваленты (от Sun и Microsoft соответственно) между собой. Они являются выделением чистого объектного подхода из C++. Т.е. в них нельзя создать приложение без классов. Java и C# очень похожи, ну просто практически идентичные. Теперь про выбор языка для .Net Все говорят, что этот выбор не принципиален. В каком-то смысле я с этим согласен, действительно, если все компилится в CLR то выбирать можно любой язык. С другой стороны стоит посмотреть что предоставляется и рекомендуется официальным представителем технологии (а именно Микрософтом), т.е. C#. Я программирую на этом языке и могу сказать, что делаются многие задачи достаточно легко, но как уже было упомянуто, язык предназначен для прикладных приложений, а не системных. И в последних, хочу заметить, что .Net очень перспективная технология, поэтому ее изучение практически необходимо. Если некоторые будут говорить о кроссплатформенности, то хочу задать очень простой вопрос: а у вас когда-нибудь возникала реальная необходимость писать приложения, которые бы работали и в Windows, и в Unix-подобных системах и т.п.? Рано или позно и в Linux будет хорошая реализация .Net, а вот в ближайшее время обещают выход Windows Vista, а в ней все будет реализовано через .Net. Если я что-то не так говорю, то поправьте. Критику воспринимаю нормально |
|||
|
||||
| $tatic |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 28.1.2005 Репутация: нет Всего: 22 |
Антивирус полностью написать нельзя, поскольку антивирусный монитор взаимодействует с системой на низком уровне, включая уровень драйверов и ядра (тут кто глубже сядет - антивирус или вирус - тот и выиграл). Сканер конечно написать можно, но особых преимуществ не будет. 3D игрушки писать уже можно (интерфейс Managed DirectX 1.0, уже делают 2.0). А скоро будет зарелизена технология Microsoft XNA, которая позволит быстро создавать игры на .NET для платформ PC и XBox ОДНОВРЕМЕННО! В ней будет реализована компонентная модель, которая позволит выпускать только отдельные компоненты игрового движка, например (это чисто предположительно) реализацию теней, эффектов погоды и т.п. сторонними компаниями, как это сейчас делается для WinForms и WebForms контролов Сетевые приложения писать тоже можно. К тому же поддержка WebServices позволяет сделать это без всякого сетевого кода (открытия и прослушивания портов, сокетов, клиент-серверов и т.п.) ВООБЩЕ! Обмен данными по USB - не знаю. Может какие-нибудь сторонние компоненты для этого и есть. Но если для устройства есть драйвер виртуального COM-порта, то можно использовать стандартный COM-портовый компонент. |
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 1 Всего: 186 |
PInvoke никто не отменял? Ага. Студия + фреймворк для создания игр. Ждём. Уже можно скачать бету, работающую поверх C# 2005 Express. |
|||
|
||||
| $tatic |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 28.1.2005 Репутация: нет Всего: 22 |
||||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 8 Всего: 232 |
Антивирус на дотнете написать нельзя, т.к. хороший антивирус обязан работать на уровне ядра ОС, а дотнетовские и пр. высокоуровневые приложения (как, например Java, или Python) работают под управлением своего рантайма. Но не ниже. CLR не пустит код .NET-приложения ниже уровня фреймворковских классов. Другое дело обстоит с PInvoke, т.к. вызвать можно практически любой unmanaged-код. В том числе и тот, который будет взаимодействовать с гипотетической низкоуровневой частью. Вот только само .NET приложение при этом будет играть сугубо утилитарную роль. И вырубить его можно в два счёта.
-------------------- ![]() |
|||
|
||||
| $tatic |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 28.1.2005 Репутация: нет Всего: 22 |
И я же об этом говорю.
|
|||
|
||||
| MAKCim |
|
||||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 1 Всего: 207 |
Не практически и не необходимо
Да
Без поддержки разработчика нет. А этой поддержки нет и, думаю, не будет В мире *IX место .NET нет и вряд ли появится. Там С/С++, Java, Perl, Python, .... Попросту .NET *IX-ам не нужен -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||||
|
|||||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 3 Всего: 149 |
MAKCim, не наезжай на фанатиков .Net
А представь, что через несколько лет (может даже 5-10), когда появится поддержка .Net под *nix от самого MS. Неужто никто не захочет поставить фрэймворк себе на никсы и пользоваться разработанными прогами? Хотя... это из разряда фантастики |
|||
|
||||
| MAKCim |
|
||||||||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 1 Всего: 207 |
M$ на такое не пойдет. Это организация коммерческая и ее идеология отличается от OpenSource. По сути если M$ выпустит реализацию .NET под *IX - то это даст дополнительный толчок развитию *IX, т. е получится, что сама M$ способствует развитию своего оппонента, кроме того M$ потеряет многих своих разработчиков, которые предпочтут *IX (если нет разницы, то зачем платить больше)
Это точно Добавлено @ 15:48
M$ на такое не пойдет. Это организация коммерческая и ее идеология отличается от OpenSource. По сути если M$ выпустит реализацию .NET под *IX - то это даст дополнительный толчок развитию *IX, т. е получится, что сама M$ способствует развитию своего оппонента, кроме того M$ потеряет многих своих разработчиков, которые предпочтут *IX (если нет разницы, то зачем платить больше)
Это точно
Я кстати и не наезжаю. И не против .NET как идеи, даже наоборот - это большой шаг вперед в программировании -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||||||||
|
|||||||||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 3 Всего: 149 |
А я так, просто так, сказал
Молодчина. Люблю таких, кто не впал в холивары: никсы сила -- винда отстой и наоборот, а трезво смотрят на вещи. Я хоть и .Net программер, но считаю, что Java то же крутая штука, а MS довольно-таки искустно слизала ее идею (и во многом улучшила). Достоинством .Net считаю единственного "издателя" (MS). А то на Java пока раздерешься в их J2EE, Swing и еще куче фрэймворков. Держи бумс |
|||
|
||||
| denver1983 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 29.1.2007 Репутация: нет Всего: нет |
Новичок в этом деле.
Программирую в Visual Studio 2005.net пользуюсь VB. Из всего прочитанного я так понимаю что безразницы на каком языке ты пишешь программу. Буд то она написана на VB,C# или Java работать она будет одинакова так как у них одна платформа net.framework. Я прав или нет? |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 8 Всего: 232 |
С одной поправкой: Java не относится к .NET Framework, если только речь не идёт о мелкософтовском "огрызке" жабы J#... -------------------- ![]() |
|||
|
||||
| tolik_p |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 30.6.2007 Где: Брянск Репутация: нет Всего: 1 |
Да, именно огрызке. Не прижился этот язык в дотНете. В Визуал Студио "Orcas" уже отсутствует поддержка J#. Что, собственно не удивительно. Остались самые, самые: C++, C#, VB. Насчёт последнего тоже берут сомнения. Может VB тоже оставили для совместимости? Кстати, где ниша VB? Чем он удобнее C#? |
|||
|
||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 3 Всего: 149 |
ХЗ. Но буржуи предпочитают писать на VB (сижу на проекте и мучаюсь с ним). Почему-то они решили что он проще. ХЗ. |
|||
|
||||
| thomas |
|
|||
![]() Доцент... почти ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1385 Регистрация: 3.10.2006 Где: " Сказочное королевство" Репутация: 6 Всего: 65 |
ivashkanet,
Привет.
По моему, у него синтаксис по-понятнее. Хотя при этом многие утверждают что, у C# возможности чуть -чуть побогаче. Мы в вышке параллельно учимся писать и на VB и на C#. -------------------- Крепко жму горло, искренне ваш Thomas. (С)vingrad Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну! Проблемы негров шерифа не волнуют. |
|||
|
||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 3 Всего: 149 |
Нет, у него синтаксис ближе к естественному языку, что, ИМХО, только мешают. |
|||
|
||||
| Aurd |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 15.1.2008 Репутация: нет Всего: нет |
Новичок в программировании. и хочу спросить совета: На каком языке лучше писать Web-приложение на VB.NET или на C#.NET. Я почему считаю что VB.NET ближе к Web, а на C#.NET лучше писать для windows приложений.
|
|||
|
||||
| QryStaL |
|
|||
![]() Intellectual feast ![]() ![]() Профиль Группа: Участник Сообщений: 914 Регистрация: 30.11.2005 Репутация: 10 Всего: 32 |
Aurd, писать лучше на C#, так как это основной язык дотНЕТ платформы, быстрее развивается и поддерживает больше возможностей. Для веба никакой разницы нет. А вот информации в сети больше по C#.
-------------------- I don't need a reason being who I am... |
|||
|
||||
| Aurd |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 15.1.2008 Репутация: нет Всего: нет |
Спасибо за совет
|
|||
|
||||
| farad |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 1.11.2007 Репутация: 1 Всего: 6 |
очень сомнительно.Есть т.н. клиентские скрипы и яву для клиентов пока ни чем не заменили на 100% А т.к. полная виндузация населения и басикация клиентов еще не завершена, думаю что поголовный переход на васик для веб откладывается. А вот C# и java имеют общего предка, так что я шарп использую...
|
|||
|
||||
| Karadul |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 18.5.2006 Репутация: 1 Всего: 1 |
||||
|
||||
| techPro |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 16.3.2012 Репутация: нет Всего: 1 |
Я думаю, что писать, в конце концов, придётся на языке, на котором пишет ваша команда. Другое дело, захотите ли вы в этой команде работать. Часто это просто вопрос денег и условий работы, а не красоты языка. А изучать приходится много языков по тем или иным причинам. Чего только не сделаешь ради денег
|
|||
|
||||
| Competitor |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 23.3.2005 Где: Tula Репутация: нет Всего: -1 |
писать конечно лучше на C#, так как технология .Net уже успела за 10 лет убедительно продемонстрировать свою жизнеспособность, и думаю, следующие 10 лет также будет оставаться наиболее востребованной на рынке разработки ПО.
|
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | .NET для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |