OLD-idmessage-129221

#1944156
-sc-
Участник

кстати сама Майкрософт в курсе 2124С Programming with C# Module 1 page 7 весьма скромно описывает бенефты .NET:- Based on Web standarts and practices- Designed using unified application models- Easy for developers to use- Extensible classesИ все. Видно понимают, что программисту маркетинговую лапшу на уши трудно навешать))кстати о “безопасном” коде:using System;using System.IO;namespace Test1{class Class1{[STAThread]static void Main(string[] args){StreamReader fd = File.OpenText(“somefile”);}}}так вот если файл не существует, то очевидно что прога вылетит, т.к. исключение не ловится.так что не существуюет “опасных” и “безопасных” языков, сред выполнения, а только опасные и безопасные программисты))а вот примитивный пример управления ресурсами в с++ из которого видно, что в c++ все полностью автоматизировано:#include “stdafx.h”#include #include #include #include // определим некую обертку для ресурса дескриптор файлаstruct Holder{int fd_;Holder(const std::string& fn){ fd_ = open(fn.c_str(), _O_RDONLY ); }~Holder(){ close(fd_); }};int main(int argc, char* argv[]){// используем обертку){Holder h(“somefile”);//делаем с ним что-либо}//здесь файл уже закрыт и свободен для других процессов, потоков и т.д.std::cout << "hi there" << std::endl;return 0;}в .net'е пример приводить не буду, но там надо примерно:- отнаследоваться от IDisposable- реализовать метод Dispose- обеспечить только однократный вызов Dispose- вызвать SuppressFinalize- не забыть вызвать Dispose в нужное время в нужном местеТак что простота достаточно относительна и управление ресурсами совсем не автоматическое))Но что в .Net удобно, так это библиотека (.net framework class library). Запихнули туда все что можно, все так сказать в одном флаконе.В с++ то же самое, только в разных библиотеках)) И их нужно для себя собрать, создать некий фреймворк. Это минус, но эти библиотеки как правило кросс-платформенны и очень гибки и это гораздо больший плюс.