Впечатления от Сишарпа

19 мая, 16:08 / C#, .NET, программирование, мнение

Недавно появилась необходимость ознакомиться с языком программирования 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.

Программа для тестирования из-под Mono

Столкнулся я и с достаточно неприятными моментами. Например, так и не понял почему System.Drawing.Bitmap полностью работает с PNG, а не работает с BMP, JPEG, GIF и WMF: я загружал файлы этих форматов, а потом сохранял их в Bitmap.RawFormat. В результате получал исключительную ситуацию с сообщением «A generic error occurred in GDI+».

В целом, Сишарп мне понравился. Наверное, даже больше чем Джава. Но писать на нём мне всё же не хочется.

Комментарии