Впечатления от Сишарпа
Недавно появилась необходимость ознакомиться с языком программирования C#. Неважно почему и зачем. Важно, что надо было узнать побольше и побыстрее. А потом ещё закрепить полученные знания на практике.
Дима обеспечил теоретической пищей — Programming C#. А бывший сокурсник Андрей практической задачей — сделать программу для тестирования студентов. Главным и единственным требованием было «что бы там можно было добавлять иллюстрации к вопросам». Работу делал в среде Visual Studio 2005.
Студия и Сишарп — очень удобные RAD-инструменты для создания программ с графическим интерфейсом. Последний раз так просто можно было работать только на Visual Basic-е 6. Visual C++ и MFC я не считаю удобными в этом плане. Понравилось, что созданные формы превращаются в обычный код, а не хранятся отдельно в ресурсных или XML-файлах:
// Фрагмент метода void QuestionsForm.InitializeComponent() this.text_title = new System.Windows.Forms.TextBox(); this.text_title.Location = new System.Drawing.Point(12, 12); this.text_title.Name = "text_title"; this.text_title.Size = new System.Drawing.Size(772, 35); this.text_title.Text = "Назва тесту"; this.Controls.Add(this.text_title);
Сишарп очень сильно напоминает Джаву, что не особо удивляет. Тоже многословный, строгий, скурпулёзный. Вероятно, это отличный выбор для дяденек в строгих костюмах (: Понравилось, что итоговый файл — с виду обычный exe-шник. Очень хорошо, что существует тесная интеграция между продуктами Microsoft-а. Плохо, что программное окружения для запуска очень большое — более 200 МБ (как контрпример: окружение для запуска Джава-приложений занимает порядка 15 МБ). А упоминающаяся кросс-платформенность .NET-а реально достигается только при помощи Mono.
Столкнулся я и с достаточно неприятными моментами.
Например, так и не понял почему System.Drawing.Bitmap полностью работает
с PNG, а не работает с BMP, JPEG, GIF и WMF: я загружал файлы этих форматов,
а потом сохранял их в Bitmap.RawFormat. В результате получал исключительную
ситуацию с сообщением «A generic error occurred in GDI+».
В целом, Сишарп мне понравился. Наверное, даже больше чем Джава. Но писать на нём мне всё же не хочется.