| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > .NET для новичков > Какой язык программирования выбрать |
| Автор: AntonSaburov 9.2.2004, 11:49 |
| Идея данной заметки родилась при чтении многочисленных обсуждений «Какой язык из .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 и может быть использована в программах на любом языке. |
| Автор: Paradox 27.2.2004, 12:14 | ||||||||
тут вопрос такой: если у класса нет модификатора internal, то можно ли его методы вызывать вне сборки? по-видимому такой модификатор просто не нужен
Статья интересная, но могу предложить свой ответ .NET идеология, абстагирующаяся от конкретного языка, на котором написано приложение, и в конечном счете не важно на чем вы будете создавать свой проект, в результате все рабно получиться код на CIL для CLR, это по-моему лишь дело вкуса, но писать на С# все же предпочтительнее, так как это язык разработанный специально для .NET и в наибольшей мере поддерживающий все фишки этой платформы |
| Автор: young 23.6.2004, 17:06 |
| А какая наилучшая книга по .NET? Хочу начать изучать именно этот язык. |
| Автор: Finkel 23.6.2004, 23:40 |
| .Net - Это всего лишь технология от Майкрософт .Основными языками .Net считаются VB.Net,C#,C++.Net |
| Автор: Гость_Nick 11.7.2004, 00:18 | ||||
+
Ничего не понимаю! Дак в итоге сколько всего языков в Visual Studio .NET? |
| Автор: Kurt 12.7.2004, 09:21 |
| Ну, вот смотри.. 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 13.7.2004, 05:28 |
| Kurt, спасибо, теперь ясно! Еще один идиотский вопрос: ведь JScript.NET и J#.NET явно не одно и то же, тогда, что такое этот самый JScript.NET - очередная реализация Java Script? Но его будет поддерживать тока винда с .NET Framework'ом, то есть писать на JScript.NET будет бессмысленно для сайта, хостящегося например на FreeBSD, я правильно понимаю? Не очень понятно также зачем народ пытается реализовать еще больше языков, им что этого не достаточно? Особенно, на мой взгяд, не в тему будет реализация почти мертвого(по крайней мере на родине самого Microsoft'а) Pascal'я и уж тем более руссифицированного VB:) Хочешь общаться? - Научись разговаривать на более менее стандартизированном языке... |
| Автор: Kurt 13.7.2004, 08:55 | ||||
Нет-нет. Ты немного не понял. Еще раз как все происходит: 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 13.7.2004, 16:03 |
| Очень интересно... Просто слушал бы тебя весь вечер! |
| Автор: Kurt 15.7.2004, 12:41 | ||||
| Мы все больше и больше уходим от темы. Я думаю, такие вопросы лучше задавать в разделе "Что же такое .NET ?"...
Да, гораздо быстрее. Однако, пока производительность .NET-приложений все равно уступает "обычным" программам. Я думаю, это связано с плохой оптимизацией JIT, однако, вроде, разработки в этом направлении ведутся, и, по заверениям M$, можно ожидать, что .NET-проги будут быстрее, чем обычные - ведь .NET-приложения оптимизируются непосредственно перед ВЫПОЛНЕНИЕМ на компе непосредственного ПОЛЬЗОВАТЕЛЯ, а обычные проги - на компе программиста.
Нет, ну ты сам подумай, а если я потом захочу эту прогу с одного компа перенести на другой? Мне опять обращаться к непосредственному "источнику" (где я брал эту прогу) и опять копировать? А если я уже отдал этот диск? Этож какая зависимость от создателя проги! Не-е-е-ет, тут чуток не так: прога находится в оперативной памяти, кэшируется. И при след. запуске минуется этап компиляции и берется уже готовый native-код, понятный CPU. Ессно, если ты перегрузишься, то придется заново юзать JIT. З.Ы. 1) как я уже говорил, мне кажется, такие вопросы лучше постить в разделе "Что же такое .NET?" 2) предлагаю зарегестрироваться - мы всегда рады новым юзерам. |
| Автор: Nick_ 16.7.2004, 05:06 |
| Ну, все, Kurt, спасибо, тепрь точно пока все |
| Автор: foRaver 30.7.2004, 16:06 |
| Статья от Microsoft о Visual C++ .NET http://msdn.microsoft.com/visualc/default.aspx?pull=/library/en-us/dnvs05/html/VS05Cplus.asp |
| Автор: Tamerlann 14.11.2004, 15:48 |
| Скажите, пожалуйста(те кто здесь "по роду своей деятельности" сталкивался c .NET), от заказчиков ПО поступают какие-либо требования, на каком именно языке требуется реализовать программу? Если да, то на каком чаще? |
| Автор: Kurt 14.11.2004, 18:57 |
| Мое ЛИЧНОЕ мнение: заказчику пофиг на чем будет реализована задача. Хоть на ASM, хоть на VB, хоть на .NET - лишь бы это было сделано вовремя, а также программа удовлетворяла параметрам системы (скорость работы etc.). Поэтому тут нельзя говорить, какой язык нужнее. В фирмах же, к-е занимаются разработкой софта, обычно четко указан ЯП - для "совместимости" с уже существующей командой разработчиков, а также при всяких лицензионных ограничениях (ну не хочет фирма платить деньги за VS - вот и требует от всех зание, скажем, Perl'a). Однако, как я понимаю, сама Microsoft позиционирует C# как основной язык .NET-платформы. Поэтому, у многих работодателей слово "C#" ассоциируется с .NET, поэтому из .NET-языков чаще требуют С#. С другой стороны, исходя из идеалогии .NET, язык не слишком важен - ведь все так или иначе компилится в IL-код. Резюме: без разницы, однако все-таки стоит чуть больше внимания уделить именно C#, т.к. он позиционируется как основной язык самим производителем. |
| Автор: Tamerlann 16.11.2004, 19:07 |
| А чем принципиально отличается С++ от С#? |
| Автор: chipset 28.1.2005, 15:26 |
| Tamerlann, C++ не компилирует IL код (только managed C++) а C# язык исключительно для IL'a.. |
| Автор: Exception 9.2.2005, 11:43 |
| Хоть мелкософтовцы пишут типа C# - наследник C++, но на имхо самом деле он гораздо слабее И ваще IL, JIT, и другии фичи .net - както немного запарно. Сделали бы возможность компилить и C# и VB в неуправляемый код. Не всегда ж эта кроссплатформенность и кроссязыковая разработка нужна. Это моё личное мнение |
| Автор: Domestic Cat 9.2.2005, 19:03 | ||||
Ну уж нет
Оn и так компилится в нативный код. Можно и самому скомпилить, толькo толку особогo неt. А "запарно" - это в каком смысle? Пo-моему отличная идея (правда mелкософt как обычно ее спер, но развил хорошо). |
| Автор: Exception 10.2.2005, 19:17 | ||
Ну идея хороша, да, но...
Мне неохота весь framework за собой таскать |
| Автор: Domestic Cat 10.2.2005, 19:36 |
| Ну не таскай, пиши нa си, кто мешает ? |
| Автор: Exception 11.2.2005, 16:02 |
| Ты прав. Мечтать не вредно... |
| Автор: Hidrag 17.4.2005, 12:23 |
| Странно а почему никто Делфи в учет не берет, вышла ведь версия под .НЕТ, и программистов на Делфе огромная армия, в любом случае им придется переходить на программирование под .НЕТ, так как макрософт делает на нее огромную ставку. Разве можно что то сделать скажем на C# чего нельзя на Делфе? Может начинающим программистам не мучить Делфи/Паскаль так как он возможно умрет и перейти сразу на C#, как "родной" язык для .НЕТ |
| Автор: AntonSaburov 18.4.2005, 10:01 | ||
Это в России их огромная армия, а в остальном мире их как раз не так чтобы очень много. На Си и Ява их просто в разу больше, если не в десятки раз. |
| Автор: Quadr0 14.5.2005, 11:49 |
| ... |
| Автор: Calve 13.7.2005, 21:06 | ||
Это сколько же такое чудо весить будет? Если одна только MSCorLib.dll в скомпилированном виде весит около 10 Мб... ЗЫ Кто не верит - смотрим в папку %WINDIR%/assembly |
| Автор: Ch0bits 13.7.2005, 21:47 |
| .Net-based программу нельзя скомпилировать в native код! Сборки из assembly нельзя запустить! Не кидайте в меня камни, а покажите такую программу! |
| Автор: Domestic Cat 14.7.2005, 04:58 | ||
Как нельзя, если при запуске НЕТ приложения и происходит компиляция в нативный код. Можно и заранее откомпилить. |
| Автор: Calve 14.7.2005, 07:12 | ||||
MSDN -> index -> "ngen"
Пользуйтесь FarManager |
| Автор: Competitor 31.8.2005, 19:39 | ||
C# считается упрощенной версий Java, который, как известно, является упрощенной версией С++ |
| Автор: mr.DUDA 1.9.2005, 10:26 | ||
Смотря кем считается. |
| Автор: Denn 1.9.2005, 10:52 | ||
Спорно. Чем же он проще Java. Правильнее - это симбиоз C++ и Java, заточенный под новую технологию. |
| Автор: arilou 1.9.2005, 11:23 | ||
Это что, шутка? |
| Автор: MarS 2.11.2005, 16:24 |
| Всем салют! Посоветуйте, на чем лучше реализовать следующую вещь. Есть данные: географические карты, аудиозаписи (.wav) разных произношений различных слов на редких языках и координаты пунктов на картах, где эти слова были записаны. Надо написать программу, которая позволяла бы просматривать накопившийся материал (смотреть карты, щелкать по пунктам и слушать слова), редактировать его, т.е. вносить новые карты, новые координаты, новые слова и т.п. Прога должна работать и по сети. Какой язык выбрать? Насколько подойдёт Visual C++ 2005, .NET? СУБД? Благодарю за внимание. |
| Автор: mr.DUDA 2.11.2005, 17:41 | ||
C# |
| Автор: MarS 2.11.2005, 23:04 |
| Почитал, склоняюсь к тому же. |
| Автор: kaa 20.11.2005, 21:12 |
| А скажите мне умные люди чем отличается Visual C# от C# ? С# и C#.NET чем-нибуть отличаются? Или С# изначально заточен под .NET |
| Автор: Exception 20.11.2005, 21:16 |
| Все три термина обозначают один и тот же язык |
| Автор: mr.DUDA 14.4.2006, 21:56 |
| nusha, вместо бана вам пока что выношу предупреждение. |
| Автор: Exception 14.4.2006, 22:33 |
| Автор: filbert 13.5.2006, 13:54 |
| Передо мной стоит дилема. Я 8 лет программирую на VB 6.0 (у нас все VB-шники) На фирме решено переходить .net технологии. Стоит ли изучать VB.net как синтаксически близкий к знакомому нам VB или все таки С#, как основной язык .net платформы? |
| Автор: ivashkanet 13.5.2006, 16:44 |
| Ничего не могу сказать насчет близости VB языков, на мой взгляд они оооочень похожи. Но в .Net два основнях языка VB и С#. P.S. Ждем Exception-а, или другого работающего на VB .Net |
| Автор: utilizat0r 30.5.2006, 00:23 |
| 1.Почему С# язык Бизнес приложений?... 2.можно ли считать его Универсальным языком для создания любых приложени ?...Скажем Антивирус, 3-Д игрушку или сетевое приложение, програму для обмена данными по USB... можно на нем написать 3.Имею огромное желание выучить один язык програмирования и чтоб он стал универсальным в доску(для меня)...кандидатура СИ ШАРП годиться для етого |
| Автор: Exception 30.5.2006, 00:54 |
| 1. Скорее всего, имеется в виду понятие "прикладное приложение". Дело в том, что C# более подходит для написания так называемых Smart Client приложений, с богатым интерфейсом и т.д., чем системных утилит. 2. Написать можно что угодно на чём угодно. Вопрос в целесообразности. 3. Универсального ничего не бывает. Есть только более подходящее и менее подходящее для решения оставленной задачи. |
| Автор: mayn 15.6.2006, 17:33 |
| Вот пример задачи. К компу подключена камера, с которой средствами DirectShow снимается изображение. Изображение всякими возможными способами в реальном времени обрабатывается (всевозможные научные расчеты), должно обрабатываться максимально быстро. Программа использует также Direct3D. Интересно, C# для этих целей подойдет? На C# никогда раньше не писал, все делал на C++ + MFC + WinAPI. Правда ли, что c помощью C# можно быстрее и легче создать красивый и функциональный Graphical User Interface? |
| Автор: Exception 15.6.2006, 17:38 | ||
Правда. А с приходом WPF и Expression Interactive Designer... А вот насчёт скорости обработки не уверен. |
| Автор: DeltaX 25.8.2006, 20:35 |
Expression Interactve Designer - eto developer express (www.devexpress.com)? A chto yest WPF? |
| Автор: mr.DUDA 26.8.2006, 14:48 | ||
Нет, это редактор наподобие macromedia flash, только для разработки на XAML. |
| Автор: Exception 27.8.2006, 22:05 |
| http://www.microsoft.com/products/expression/en/default.mspx |
| Автор: Goganchic 2.10.2006, 19:33 |
| Сначала насчет Микрософта: никаких супер симпатий не питаю к данной компании, но все же хочу заметить, что он идеи покупают и в этом нет ничего плохого, т.к. по-моему многие фирмы, которые владели этими технологиями до Микрософта не смогли бы так глобально в них вложиться, поэтому я ничего против Микрософтофской политики по данном вопросу не имею (вообще-то и DirectX когда-то был куплен... и ничего - прижился и сейчас ассоциируется только с Виндой и трехмерной графикой). Теперь про C# С++ и Java. Я думаю, что C++ - это прородитель, который был связан напрямую с Си, и при создании Си++ была необходимость в обратной совместимости приложений, поэтому Си++ содержит очень многое из Си. Java и C# это как бы эквиваленты (от Sun и Microsoft соответственно) между собой. Они являются выделением чистого объектного подхода из C++. Т.е. в них нельзя создать приложение без классов. Java и C# очень похожи, ну просто практически идентичные. Теперь про выбор языка для .Net Все говорят, что этот выбор не принципиален. В каком-то смысле я с этим согласен, действительно, если все компилится в CLR то выбирать можно любой язык. С другой стороны стоит посмотреть что предоставляется и рекомендуется официальным представителем технологии (а именно Микрософтом), т.е. C#. Я программирую на этом языке и могу сказать, что делаются многие задачи достаточно легко, но как уже было упомянуто, язык предназначен для прикладных приложений, а не системных. И в последних, хочу заметить, что .Net очень перспективная технология, поэтому ее изучение практически необходимо. Если некоторые будут говорить о кроссплатформенности, то хочу задать очень простой вопрос: а у вас когда-нибудь возникала реальная необходимость писать приложения, которые бы работали и в Windows, и в Unix-подобных системах и т.п.? Рано или позно и в Linux будет хорошая реализация .Net, а вот в ближайшее время обещают выход Windows Vista, а в ней все будет реализовано через .Net. Если я что-то не так говорю, то поправьте. Критику воспринимаю нормально |
| Автор: $tatic 3.10.2006, 12:08 | ||
Антивирус полностью написать нельзя, поскольку антивирусный монитор взаимодействует с системой на низком уровне, включая уровень драйверов и ядра (тут кто глубже сядет - антивирус или вирус - тот и выиграл). Сканер конечно написать можно, но особых преимуществ не будет. 3D игрушки писать уже можно (интерфейс Managed DirectX 1.0, уже делают 2.0). А скоро будет зарелизена технология Microsoft XNA, которая позволит быстро создавать игры на .NET для платформ PC и XBox ОДНОВРЕМЕННО! В ней будет реализована компонентная модель, которая позволит выпускать только отдельные компоненты игрового движка, например (это чисто предположительно) реализацию теней, эффектов погоды и т.п. сторонними компаниями, как это сейчас делается для WinForms и WebForms контролов Сетевые приложения писать тоже можно. К тому же поддержка WebServices позволяет сделать это без всякого сетевого кода (открытия и прослушивания портов, сокетов, клиент-серверов и т.п.) ВООБЩЕ! Обмен данными по USB - не знаю. Может какие-нибудь сторонние компоненты для этого и есть. Но если для устройства есть драйвер виртуального COM-порта, то можно использовать стандартный COM-портовый компонент. |
| Автор: Exception 3.10.2006, 16:25 |
PInvoke никто не отменял? Ага. Студия + фреймворк для создания игр. Ждём. Уже можно скачать бету, работающую поверх C# 2005 Express. |
| Автор: $tatic 4.10.2006, 20:53 |
А если вирус сидит как драйвер? Нет, тут нужен ИМХО низкоуровневый код, иначе вирус будет просто блокировать этот инвок |
| Автор: mr.DUDA 4.10.2006, 21:27 |
| Антивирус на дотнете написать нельзя, т.к. хороший антивирус обязан работать на уровне ядра ОС, а дотнетовские и пр. высокоуровневые приложения (как, например Java, или Python) работают под управлением своего рантайма. Но не ниже. CLR не пустит код .NET-приложения ниже уровня фреймворковских классов. Другое дело обстоит с PInvoke, т.к. вызвать можно практически любой unmanaged-код. В том числе и тот, который будет взаимодействовать с гипотетической низкоуровневой частью. Вот только само .NET приложение при этом будет играть сугубо утилитарную роль. И вырубить его можно в два счёта. |
| Автор: $tatic 6.10.2006, 14:47 |
| И я же об этом говорю. |
| Автор: MAKCim 6.10.2006, 15:17 | ||||||
Не практически и не необходимо
Да
Без поддержки разработчика нет. А этой поддержки нет и, думаю, не будет В мире *IX место .NET нет и вряд ли появится. Там С/С++, Java, Perl, Python, .... Попросту .NET *IX-ам не нужен |
| Автор: ivashkanet 6.10.2006, 15:22 | ||
MAKCim, не наезжай на фанатиков .Net
А представь, что через несколько лет (может даже 5-10), когда появится поддержка .Net под *nix от самого MS. Неужто никто не захочет поставить фрэймворк себе на никсы и пользоваться разработанными прогами? Хотя... это из разряда фантастики |
| Автор: MAKCim 6.10.2006, 15:45 | ||||||||||
M$ на такое не пойдет. Это организация коммерческая и ее идеология отличается от OpenSource. По сути если M$ выпустит реализацию .NET под *IX - то это даст дополнительный толчок развитию *IX, т. е получится, что сама M$ способствует развитию своего оппонента, кроме того M$ потеряет многих своих разработчиков, которые предпочтут *IX (если нет разницы, то зачем платить больше)
Это точно Добавлено @ 15:48
M$ на такое не пойдет. Это организация коммерческая и ее идеология отличается от OpenSource. По сути если M$ выпустит реализацию .NET под *IX - то это даст дополнительный толчок развитию *IX, т. е получится, что сама M$ способствует развитию своего оппонента, кроме того M$ потеряет многих своих разработчиков, которые предпочтут *IX (если нет разницы, то зачем платить больше)
Это точно
Я кстати и не наезжаю. И не против .NET как идеи, даже наоборот - это большой шаг вперед в программировании |
| Автор: ivashkanet 6.10.2006, 15:55 | ||
А я так, просто так, сказал
Молодчина. Люблю таких, кто не впал в холивары: никсы сила -- винда отстой и наоборот, а трезво смотрят на вещи. Я хоть и .Net программер, но считаю, что Java то же крутая штука, а MS довольно-таки искустно слизала ее идею (и во многом улучшила). Достоинством .Net считаю единственного "издателя" (MS). А то на Java пока раздерешься в их J2EE, Swing и еще куче фрэймворков. Держи бумс |
| Автор: denver1983 15.2.2007, 08:12 |
| Новичок в этом деле. Программирую в Visual Studio 2005.net пользуюсь VB. Из всего прочитанного я так понимаю что безразницы на каком языке ты пишешь программу. Буд то она написана на VB,C# или Java работать она будет одинакова так как у них одна платформа net.framework. Я прав или нет? |
| Автор: mr.DUDA 15.2.2007, 10:30 | ||
С одной поправкой: Java не относится к .NET Framework, если только речь не идёт о мелкософтовском "огрызке" жабы J#... |
| Автор: tolik_p 1.7.2007, 18:30 |
Да, именно огрызке. Не прижился этот язык в дотНете. В Визуал Студио "Orcas" уже отсутствует поддержка J#. Что, собственно не удивительно. Остались самые, самые: C++, C#, VB. Насчёт последнего тоже берут сомнения. Может VB тоже оставили для совместимости? Кстати, где ниша VB? Чем он удобнее C#? |
| Автор: ivashkanet 4.7.2007, 09:22 |
ХЗ. Но буржуи предпочитают писать на VB (сижу на проекте и мучаюсь с ним). Почему-то они решили что он проще. ХЗ. |
| Автор: thomas 4.7.2007, 09:50 | ||
| ivashkanet, Привет.
По моему, у него синтаксис по-понятнее. Хотя при этом многие утверждают что, у C# возможности чуть -чуть побогаче. Мы в вышке параллельно учимся писать и на VB и на C#. |
| Автор: ivashkanet 4.7.2007, 10:00 |
Нет, у него синтаксис ближе к естественному языку, что, ИМХО, только мешают. |
| Автор: Aurd 15.1.2008, 15:15 |
| Новичок в программировании. и хочу спросить совета: На каком языке лучше писать Web-приложение на VB.NET или на C#.NET. Я почему считаю что VB.NET ближе к Web, а на C#.NET лучше писать для windows приложений. |
| Автор: QryStaL 15.1.2008, 17:52 |
| Aurd, писать лучше на C#, так как это основной язык дотНЕТ платформы, быстрее развивается и поддерживает больше возможностей. Для веба никакой разницы нет. А вот информации в сети больше по C#. |
| Автор: Aurd 17.1.2008, 15:35 |
| Спасибо за совет |
| Автор: farad 17.1.2008, 21:58 |
| очень сомнительно.Есть т.н. клиентские скрипы и яву для клиентов пока ни чем не заменили на 100% А т.к. полная виндузация населения и басикация клиентов еще не завершена, думаю что поголовный переход на васик для веб откладывается. А вот C# и java имеют общего предка, так что я шарп использую... |
| Автор: Karadul 22.2.2012, 14:45 | ||
ТОЛСТО. Может быть, те версии, которые есть в дотнете, и простые. |
| Автор: techPro 23.3.2012, 21:24 |
| Я думаю, что писать, в конце концов, придётся на языке, на котором пишет ваша команда. Другое дело, захотите ли вы в этой команде работать. Часто это просто вопрос денег и условий работы, а не красоты языка. А изучать приходится много языков по тем или иным причинам. Чего только не сделаешь ради денег |
| Автор: Competitor 26.3.2012, 13:03 |
| писать конечно лучше на C#, так как технология .Net уже успела за 10 лет убедительно продемонстрировать свою жизнеспособность, и думаю, следующие 10 лет также будет оставаться наиболее востребованной на рынке разработки ПО. |