Инструментарий

JavaScript C#, блог Эрика Липперта и многое другое.

Скотт Митчелл (Scott Mitchell)

Цены действительны на 19 ноября 2008 года и могут меняться. Точка зрения, изложенная в этой статье, является исключительно позицией автора и не обязательно совпадает с позицией корпорации Майкрософт.

Cодержание

Создание JavaScript для приложений AJAX с использованием C# и Visual Studio
Интересные блоги
Проверяйте орфографию своих комментариев, строк, разметки и файлов ресурсов
Книжная полка

Создание JavaScript для приложений AJAX Apps с использованием C# и Visual Studio

В прошлом, JavaScript считался игрушечным языком, полезным для простой проверки ввода и управления объектной моделью документов (Document Object Model – DOM). Но на деле JavaScript является мощным и насыщенным функциями языком, на котором работают современные веб-сайты с поддержкой AJAX.

И хотя роль и влияние JavaScript в современных веб-приложениях радикально выросли за последние несколько лет, во время разработки сохраняется существенное различие в том, с чем сталкивается программист при написании кода JavaScript, по сравнению с кодом C#.

Visual Studio предоставляет IntelliSense и поддержку отладки для JavaScript, но многие ошибки и предупреждения JavaScript не могут быть удалены до времени выполнения. С другой стороны, C# предлагает проверку во время компиляции; более надежную объектно-ориентированную семантику; а также средства для оптимизации, создания технической документации и просмотра классов. Вдобавок, большинство разработчиков ASP.NET более знакомы с C#, чем с JavaScript.

Было бы неплохо, если б можно было писать код C# вместо JavaScript, так? Это возможно с помощью Script# (версии 0.5.1), бесплатного компилятора, среды выполнения и платформы, написанной архитектором программного обеспечения Майкрософт Нихилом Котари (Nikhil Kothari). Компилятор Script# берет код C# и переводит его в эквивалентный код JavaScript.

Используйте Script# для создания коротких, однострочных функций JavaScript или обработчиков событий, а также более крупных библиотек JavaScript. Его можно использовать для создания компонентов ASP.NET AJAX и поведений мини-приложений боковой панели Windows Vista. Компилятор Script# может использовать файлы .resx для создания локализованных файлов сценариев и может быть настроен для создания сценариев для выпускаемых или отладочных версий. (Отладочные версии сценариев включают пробелы и описательные имена переменных, для читаемости, тогда как из выпускаемых версий устранены ненужные пробелы, а переменные переименованы, для компактности кода.) По сути, Script# дает все преимущества работы с кодом C# (ошибки во время компиляции, знакомый синтаксис и семантику C# OOP, а также лучшую поддержку средств), в то же время создавая код JavaScript, необходимый для веб-приложения или мини-приложений боковой панели.

В дополнение к компилятору, Script# включает среду выполнения и инфраструктуру. Как среда выполнения, так и инфраструктура включают в себя серверную реализацию, на которой ведется программирование при написании кода C# и клиентскую реализацию, используемую кодом JavaScript, создаваемым компилятором Script#.

Среда выполнения определяет систему типов и она обязательна. Платформа необязательна, но предлагает API-интерфейсы для выполнения обычных задач, таких, как запросы HTTP, сериализация JSON, обнаружение обозревателей и так далее. Платформа также включает элементы управления интерфейса пользователя и API-интерфейсы для работы с элементом управления Silverlight в обозревателе, для доступа к хранилищу RSS в Internet Explorer 7 и для доступа к Microsoft Virtual Earth изнутри обозревателя.

Держите в уме, что Script# не разработан для преобразования существующих приложений C# в поддерживающие AJAX веб-приложения. Вместо этого, Script# дает разработчикам возможность создавать веб-приложения или мини-приложения боковой панели, путем написания кода C#, который затем преобразуется в код JavaScript.

Однако, в силу отсутствия однозначного соответствия между C# и JavaScript, не все функции языка C# доступны при использовании Script#. Например, свойства «только для записи» не разрешены, точно так же, как определенные конструкции и ключевые слова, включая goto, using, lock и sizeof.

Цена: бесплатно.

projects.nikhilk.net/ScriptSharp

Интересные блоги

Наиболее важные ингредиенты для действительно отличного технического блога включают следующее: частые, информированные записи по теме; глубокое изучение важных технологий или концепций и уникальный голос или стиль. Смесь этих ингредиентов в верных долях можно найти в блоге Эрика Липперта (Eric Lippert).

Эрик – это старший разработчик программного обеспечения в корпорации Майкрософт, который работал как с языками сценариев, так и группами C#. Его блог предлагает много отличных записей, посвященных безопасности, производительности и качеству кода, вместе с записями по семантике языка и таким функциям, как лямбда-выражение, неизменность и ковариация/контрвариация. Он рассматривает многие их этих тем очень подробно, часто в нескольких записях.

У него серия из 5 частей по сравнению лямбда-выражений с анонимными методами и серия из 11 частей по неизменности в C#, а также серия из пяти частей по семантике защищенных членов. Там также можно найти записи с идеями и мнениями Эрика по поводу способов использования (или неиспользования) различных языковых функций. Прочтите его взгляд на массивы в статье из блога "Потрясающие приключения в кодировании."

Хотя многие записи в блоге рассматривают сложные вопросы, у Эрика есть талант к объяснению своих концепций и теории в прямолинейных, приземленных терминах.

blogs.msdn.com/ericlippert

ericlippert.gif

Блоги Эрика Липперта (Eric Lippert) по безопасности, производительности и качеству кода (щелкните изображение, чтобы увеличить его)

Проверяйте орфографию своих комментариев, строк, разметки и файлов ресурсов

Компиляторы служат своего рода средствами проверки орфографии. Если поменять местами пару букв в имени метода или опечататься в имени переменной, компилятор сообщает об ошибке сборки. К счастью, эти ошибки легко определить, поскольку Visual Studio подчеркивает неверное написание волнистой линией.

Однако, заметьте, что компилятор не проверяет орфографию к комментариях к исходному коду; строках в коде или в файлах ресурсов, а также в разметке HTML, XML или XAML. Неверно написанному комментарию очень легко проскользнуть в техническую документацию равно как и, что еще хуже, строке с ошибкой мимо контроля качества в производственную среду.

Хорошая новость состоит в том, что существуют средства для проверки написания строк, комментариев, разметки и прочего содержимого, непрозрачного для компилятора. Одним из таких средств является IntelliSpell 2.0 от компании ComponentOne. IntelliSpell работает во многом подобно проверке орфографии в Microsoft Office Word. IntelliSpell подчеркивает любое слово с ошибкой волнистой линией. Щелчок правой кнопкой мыши на этом слове позволяет увидеть список возможных исправлений. Эти ошибки также перечисляются в окне списка задач.

Ошибку можно исправить из списка задач, также можно перескочить на неверно написанное слово, дважды щелкнув его в списке задач. Средство проверки орфографии можно запустить в любое время, выбрав вариант меню из средств меню или из панели средств IntelliSpell. IntelliSpell также можно настроить на автоматическую проверку правописания по ходу ввода и на выполнение средства проверки орфографии после каждой сборки.

По умолчанию, IntelliSpell проверяет орфографию во всех файлах кода, файлах XML (включая файлы конфигурации), файлах ресурсов, текстовых файлах и веб-страницах. Он игнорирует слова в смешанном регистре, слова с числами, а также адреса Интернета и файлов, хотя эти правила и типы проверяемых файлов можно менять. IntelliSpell также предлагает орфографические словари на 16 различных языках; эти словари можно использовать по отдельности или в тандеме, при проверке правописания локализованных проектов.

IntelliSpell поставляется в двух версиях: бесплатная Community Edition и Professional Edition, стоящая 79,99 долларов США. Community Edition включает основные функции – интеграцию Visual Studio, подчеркивание слов с ошибками, произнесение предложений через контекстное меню и так далее, но не обладает некоторыми функциями, содержащимися в Professional Edition.

В случае Community Edition, проверять можно лишь один файл за раз. Но Professional Edition может проверять орфографию во всем проекте или решении. Кроме того, в Community Edition не входят такие средства, как проверка правописания при вводе, проверка локализованных проектов и возможность создавать собственные словари, не входящие в Community Edition.

Цена: Community Edition бесплатно. Professional Edition стоит 79,99 долларов США.

componentone.com/

intellispell.gif

IntelliSpell проверяет орфографию строк, комментариев и разметки (щелкните изображение, чтобы увеличить его)

Книжная полка

Во всех профессиях и хобби существуют определенные области, которые следует изучить любому, вне зависимости от их опытности. Например, любой гольфист, вне зависимости от своего мастерства, может определенно улучшить его, работая над досылкой мяча в лунку с ближней дистанции.

Что же до разработчиков программного обеспечения, они никогда не смогут узнать слишком много о синтаксисе и функциях SQL. И хотя существует масса сетевых статей, включающих советы и рекомендации по SQL, я обнаружил, что лучшим способом усовершенствования умений в области SQL для меня является методичное прочтение книги по предмету.

Недавно я дочитал книгу Pro T-SQL 2008 Programmer's Guide («Руководство программиста Pro T-SQL 2008, изд-во Apress) от Майкла Колза (Michael Coles), предоставляющую исчерпывающий разбор синтаксиса и функций языка T-SQL. Книга начинается со взгляда на новые функции T-SQL 2008, такие, как оператор MERGE и новые типы данных. Затем автор переходит к основным конструкциям T-SQL – определенным пользователем функциям; сохраненным процедурам; триггерам; XML, XQuery и поддержке XPath. Затем он продолжает, охватывая, среди прочего шифрование, обобщенные табличные выражения и функции окон, программирование CLR SQL и обработку ошибок. Каждой и этих тем дана собственная глава с углубленным рассказом и примерами. И каждая глава завершается серией упражнений, ответы на которые предоставляются в приложении.

Мне особо понравилась глава по настройке производительности. Она начинается с обзора того, как SQL Server располагает данные на диске и как это расположение влияет на производительность, вместе с рекомендациями по сохранению пространства на диске и хранению разреженных данных. Далее Колз рассказывает о выгодах для производительности, даваемых индексами и сравнивает кластеризованные, не-кластеризованные и отфильтрованные индексы. Эта глава завершается рассказом об анализе планов запросов и советами по оптимизации запросов.

Pro T-SQL 2008 Programmer's Guide предполагает что читатель уже знаком с основами T-SQL – в ней нет рассказов для начинающих по операторам SELECT, INSERT, UPDATE или DELETE. Вдобавок, эта книга концентрируется на T-SQL и не рассматривает администрирование баз данных, хотя в ней есть короткая глава, обрисовывающая такие средства, как SQL Server Management Studio, SQL Profiler, SQLCMD и BCP. В ней также имеется глава, показывающая два различных способа взаимодействия с SQL Server из клиентского приложения Microsoft .NET Framework: использование провайдера ADO.NET SqlClient и LINQ–SQL.

Время, потраченное на приобретение новых умений SQL и практику в старых – это всегда время, потраченное не зря. Pro T-SQL 2008 Programmer's Guide, с его простой прозой, бесчисленными примерами и упражнениями в конце глав, является отличным способом изучения существующих функций SQL Server 2008 и укрепления существующих умений SQL.

Цена: $52.99.

apress.com/

bookcov.gif

Направляйте свои вопросы и комментарии Скотту по адресуtoolsmm@microsoft.com.

Скотт Митчелл (Scott Mitchell), автор множества книг и основатель веб-узла 4GuysFromRolla.com, имеет звание MVP и работает с веб-технологиями корпорации Майкрософт с 1998 года. Скотт — независимый консультант, преподаватель и автор книг. Связаться со Скоттом можно по адресу Mitchell@4guysfromrolla.com или через блог ScottOnWriting.NET.