Вопрос по С++

dragonion

Добрый дракон
Re: C#

С# и .NET
Для того, чтобы понимать значение .NET, полезно напоминать себе о природе многих из технологий Windows, которые появились в прошлом десять лет или так. Хотя они, возможно, наблюдаются абсолютно различными за поверхностью, все операционные системы Windows из Windows 3.1 (введено в 1992) через Windows Сервер 2003 имеют тот же близкий Windows программный ИНТЕРФЕЙС приложения в их ядре. Так как мы прогрессировали через новые версии Windows, огромные номера новых функций были добавлены в программный ИНТЕРФЕЙС приложения, но это было процессом развития и продления API вместо замены этого.

То же может быть сказано для многих из технологий и структур, которые мы использовали, чтобы развивать программное обеспечение для Windows. Например, COM (Составная Объектная Модель) происходил как OLE (Объектное Соединение и Внедрение). В то время, это было, к большой протяженности, просто средства, которыми различные виды Офисных документов могли быть связаны, таким образом, что, например, вы могли разместить, маленькие Excel электронную таблицу в вашем документе Word. (Распространяемый COM), и в конечном счете COM+ — искушенная технология, которая сформировала основу пути. Почти все компоненты связались, также как и осуществлялась транзакция, посылка сообщений услуг, и объектного объединения.

Microsoft выбрала этот эволюционный подход к программному обеспечению по очевидной причине, что это заботится об обратной совместимости. За эти годы огромное ядро стороннего программного обеспечения было записано для Windows, и Windows не сможет пользоватся успехом, который имеет, если каждый раз, когда Microsoft вводит новую технологию, то это нарушает базовый код работоспособности!

Пока обратная совместимость была важной особенностью технологий Windows она имеет еще и большой недостаток. Каждый раз, когда некоторая технология развивает и добавляет новые особенности, это заканчивается немного большим усложнением, чем это было.

Было ясно, что чему-нибудь придется измениться. Microsoft не мог идти всегда расширяя те же инструменты развития и языки, всегда делая их еще и еще сложнее для того, чтобы удовлетворить противоречивые требования хранения с новейшими техническими средствами и поддержания обратной совместимости с тем, что было вокруг того, когда Windows впервые стал популярным в начале 1990-х. Появляется новое решение, где вам придется начать с безупречной репутации, если вы хотите простой еще искушенной множеством языков, сред, и инструментов разработчика, которая делает это простым, чтобы разработчики записали современное программное обеспечение.

Этот свежий запуск - то, чем являются C# и .NET везде. Грубо, говоря, .NET - framework—an API— для программирования на платформе Windows. Наряду с .NET Структурой, C# - язык, который проектировался на пустом месте, чтобы работать с .NET, также как и, чтобы воспользоваться всем прогрессом в средах разработчика и в нашем понимании объектно-ориентированных принципов программирования, которые имеют место над прошедшим временем 20 лет.

Перед тем, как мы будем продолжать, мы должны сделать ясным, что обратная совместимость не была потеряна в процессе. Существующие программы будут продолжать работать, и .NET проектировался со способностью работать с существующим программным обеспечением. Теперь, коммуникация между программными компонентами на Windows почти полностью имеет место, используя COM. Принимая во внимание это, .NET имеет способность обеспечить обертки вокруг
существования компонентов COM таким образом, что .NET компоненты могут говорить с ними.

Верно, что вам не нужно изучать C# для того, чтобы записать код для .NET. Microsoft расширил C++, обеспечил другой новый язык под названием J#, и сделанные существенные изменения в Visual Basic, чтобы превратить его в более мощный язык Visual Basic .NET, для того, чтобы позволить код, записанный в любом из этих языков, чтобы иметь целью .NET среду. Эти другие языки, однако, затрудняют наследственную эволюцию за эти годы вместо того, чтобы быть записанным от запуска с сегодняшней технологией в уме.

C# - новый объектно-ориентированный язык предназначался для использования с .NET и несмотря на обилие языков программирования под .нет именно этот язык несет в себе все новые технологии без старых решений и технологий, которые тормозили и затрудняли эффективное программирование для виндовса.

При написании использовался некоторый материал из книги C.Nagel, et al - Professional C Sharp 2005. 2005
 
Останнє редагування:

Vano

New Member
Re: C#

Кому интересно тут есть учебник по C# на русском языке и там же его компилятор SharpDevelop версии 2.0 .
 

quant

yeah
Відповідь: C#

вот уж не думал что на microsoft.com можно найти что-то бесплатное :)
 

quant

yeah
Відповідь: Вопрос по С++

в С++ есть аналог паскалевской константі nil - такой что указывает в никуда, значения NULL ?
 

GrAndSE

Тёмный
Модератор
Re: C#

Хочется сказать свою субъективную оценку касательно этого языка. Впервые о таковом услышал где-то года четыре назад, или все пять. Если не ошибаюсь в каком-то журнале прочитал, что мол появился новый такой язык, которому Microsoft сулит большое будущее.
Один мой знакомый довольно лестно отзывался о языке в плане написания. Есть некоторые приятные возможности для работы, особенно в пресловутом ООП, которые эту самую работу делают более приятной. Но не в плане быстродействия. Насколько я помню, то всё семейство .нет переходит к тому-чтобы изготавливать не *.exe, а то что уже было когда-то давным давно предложено, т.е. некий "промежуточный код для интерпретирования". Хотя вроде бы как есть возможность и готовый *.exe получить. Но я не работал не знаю. (Как уже было упомянуто выше, никакого .NET в Linux не намечается :) ) Таким вот способом и добивается эта исполняемость на любой версии и ряд других возможностей. Ну а поскольку написать хороший интерпретатор это искусство. А "мелкомягкие" что-то не шибко хорошо с ним управляются. По крайней мере возникает такое ощущение по взгляду на линейку их продуктов - каждая новая версия всё более ресурсоёмка, перегружена множеством зачастую бесполезных функций, которые днем с огнём не выловишь и не выведешь. Ну это конечно моё субъективное мнение, но не у одного меня оно такое.
В принципе, написать хороший интерпретатор можно. Ну писали же интерпретаторы под Java (немножко неправильное слово, тут целая схема перелопачивания *.java в *.class с оптимизацией и последующим выполнением имеется в виду... имя всему этому если не ошибаюсь JIT), которые умудрялись обходить в некоторых задачах откомпилированный считающимся "хорошим" компилятором код С/С++, несмотря на неоднократно раскритикованную медлительно java. А с учётом таких разработок, как сердце оконной системы ОС Plan 9 bitblt, созданное Робом Пайком и многих других (кои нужно вспоминать, а память штука дырявая, либо же искать статьи, а если честно мне не особо хочется это делать), то можно "поверить" и в динамически гинерирующийся код, концепция которого и положен как раз в такого компилятора java кода, о котором я писал выше. Да что там поверить, восхититься и тихо плакать в подушку видя в снах такие вершины искусства программирования.
Но я повторюсь, что не верю в Майкрософт. Да в принципе они ничего такого и не показывают. Насколько мне известно, с .NET готовая программа получается что-то наподобие того же Visual Basic по скорости. Кому довелось поработать, особенно с графикой, тот наверняка поймёт о чем я. Ну а поскольку вся эта платформа позиционируется, как единственный возможной и правильный путь написания "правильных" программ под Windows, то становится тогда понятными некоторые возможные причины столь большой требовательности Vista. :) Ну это только догадки,а что там в голове и недрах Майкрософта мне не ведомо.
Для меня это лишь очередные заморочки Майкрософта, которому хочется сделать всё по своему. Теперь и программистов под Виндовс пытаются заставить плясать в нужном ритме. Что из этого выйдет. я сказать не могу. Наверное, всё таки все у них выйдет. Так что подозреваю, что в скором времени знание .NET для программиста под windows будет обязательным.
Ну а лично для себя я буду тихонечко ночами мечтать, о хорошем и красивом коде, написанном на привычных мне Java, C/C++, Object Pascal (ой пардон, а можно ли Free Pascal так назвать? думаю пока-что да), и тешиться свободой выбора :)
 
Останнє редагування:

dragonion

Добрый дракон
Re: C#

Ммда! Короче чувствую, что после Delphi я все-таки перейду скорее на С++, который и в Линуксе предусмотрен. :) Будет видно!
 

daoway

кот Шрёдингера
Re: C#

Ммда! Короче чувствую, что после Delphi я все-таки перейду скорее на С++, который и в Линуксе предусмотрен. :) Будет видно!
dragonion, забудь Delphi и спокойно долби C#. У меня есть чем огорчить твоего препода - больше всего С# похож на Java (как идеология так и сам язык), но тооолько не на паскаль !! Если нет желания заниматься системным программазмом, С++ не актуален. "Зачем платить больше" (с)

А насчёт переносимости - наилучшая переносимость у Java. Бинари полученный в винде (с потоками, графикой и прочей ерундой) спокойно работает в JVM под линукс или соларис (это проверено, другие платформы по причине эксклюзивности оных не пробовал). Та же идея и в дот нет. Да только мое ИМХО - сомневаюсь что Mono достигнет 100% точной реализации фреймворка и тучи библиотек, хотя как знать...
 
Зверху