e0ne's comments

A Web Developer's Blog!

Unit тесты и наследование

clock December 23, 2008 16:33 by author e0ne

При разработке unit тестов в Visual Studio часто хочется создать какой-то базовый клас для тестирования базовой лоники. Например у нас есть такой класс:

 

        [TestClass]
        public class PersonTestBase
        {
            [TestMethod]
            public
virtual void GetNameTest()
            {

                //...
            }
        }

 и его класс наследник:
        [TestClass]
    public class CustomerTest: PersonTestBase
    {
        [TestMethod]
        public override void GetNameTest()
        {
            base.GetNameTest();
        }
    }

 Плюсы такого подхода:

  • полная поддержка визуальных средств Visual Studio (Test List Editor);
  • простота реализации.
Минусы:
  • избыточность кода;
  • создание наследника является по сути copy&paste.
Сразу необходимо заметить, что PersonTestBase и CustomerTest должны находится в одной сборке, иначе тесты в PersonTestBase работать не будут - это ограничение unit тестов. Подробнее смотрите в msdn. Кроме описанных в msdn способов можно поступить так:
  •  создаётся два проекта: BaseTests и CustomTests;
  • в проект CustomTests добавляются необходимые файлы из BaseTests таким образом: Project -> Add Existing Item -> Выбираем необходимые файлы -> Add As Link.
Таким образом физически файлы находятся в разных проектах, но при компиляции необходимые классы оказываются в одной сборке.
 
 Теперь пришло время изменить наш CustomerTest.
        [TestClass]
    public class CustomerTest: PersonTestBase
    {
        [TestMethod]
        public override void CustomerTestMethod()
        {
            //...
        }
    }
Мы добавили новый, специфический для Customer, метод и удалили переопределения метода из базового класса, т.к. его функциональность нас полность устраивает. Что мы из этого получили:
  • фактически, в классе у реализоано 2 тестовы метода: один перешел из базового класса и один мы реализовали сами.
  • Visual Studio Test List Editor говорит что у нас только один тетовый медов - метода из бащового класс не отображается и, соответственно, не запускается.
Обидно, но не смертельно. На помощь нам приходит штатная утилита MSTest , которая решает все, или почти все, наши проблемы.
Плюсы такого метода:
  • мы избавились от минусов предыдущего метода;
Минусы:
  • нету интеграции с Visual Studio. 

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Oxite - блог-дижок на ASP.NET MVC

clock December 16, 2008 17:28 by author e0ne

В начале этого месяца на CodePlex появился новый проект - Oxite. Некоторые сразу его восприняли как аналог WordPress - но, как мне кажется, судить об этом ещё рано. Главная особенность заключается, конечно же, в том, что он написан на ASP.NET MVC Beta. Первые ощущениея при его испольщзовании - работает быстрее Blog Engine. Сразу захотелось увидеть его в действии в боевых условиях, в данный момент пока это только сайт http://visitmix.com/. К слову на Mix 09 будет официально представлен Oxite.

В данный момент проект проект не обладает широкой функциональностью, но уже сейчас можно создавать блоги, делать комментарии, работает RSS, поиск, есть поддержк MetaWebLog API (будет интересна тем, кто пользуется Windows Live Writer). Из недостающего- хотется поддержку тем, облака тегов икатегорий - тогда можно будет уже задумываться о переходе с Blog Engine, хотя, никто не мешает самому дописать недостающую функциональность.

 С точки зрения разработчика - очень хороший пример как правильно писать на ASP.NET MVC. Как минимум - хороший Starter Kit, максимум - поживём - увидем что из этого получится. Может действительно появится достойная замена WordPress на ASP.NET?

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Настройка совместной работы ASP.NET MVC и IIS 6

clock November 30, 2008 13:10 by author e0ne

Уже немала было написано на эту тему, но в статье http://haacked.com/archive/2008/11/26/asp.net-mvc-on-iis-6-walkthrough.aspx пошли немного дальше: теперь url rewriting настроен таким образом, что нет необходимости в имени контроллера в пути прописывать расширение. Не буду утверждать что это что-то новое, но я до этого использовал пути вроде http://localhost/mvcsite/home.mvc.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


IronPython и ASP.NET

clock October 30, 2008 13:10 by author e0ne

В предыдущем посте я рассказал как подружить Visual Studio и IronPython. Сегодня мы напишем первое приложение на ASP.NET на языке IronPython.

Для начала необходимо скачать ASP.NET Dynamic Language Support, который включает в себя документацию и два примера: ASP.NET MVC IronPython Sample и ASP.NET Webforms IronPython Sample. Webforms sample- это обычный web site проект с такими файлами:

 

 К сожалению, в текущей версии не поддердивается проект Web Application.

C ASP.NET MVC Sample всё на много интереснее. Т.к. Python - это динамичский язык и не поддерживает атрибутов, то код контроллеров приходится писать на C#. С model и view всё значитально проще. Можно использовать IronPython, только во view нужно указать Language="IronPython". В остальном создание приложение ничем не отличается от такового на C#.

Ну и напоследок хочу сказать, что на прошлой неделе вышел IronPython 2.0 Release Candidate 1.

Продолжение следует.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Live ID становится провайдером для Open ID

clock October 28, 2008 18:50 by author e0ne

Об этом говорили, спорили, но это призошло. Тепрь не нужно выбирать между Live ID и Open ID - достаточно использовать Live ID Open ID Provider. В данный момент он находится в стадии Comunity Technology Preview (CTP) и поддерживает протокол Open ID 2.0. Пока нет точных планов выпуска финальной версии, изветсно только что она выйдет в 2009-м году.

Оригиннальне сообщение здесь.

<!-- ckey="5C5B8D60" -->

Currently rated 5.0 by 2 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Пишем "Hello World" на IronPython

clock October 21, 2008 12:30 by author e0ne

IronPython - динамический язык с поддержкой .NET. Полностью совместим с оригинальным Python, но, в тоже время, позволяет пользоваться всеми преимуществами .net framework. Проект развивается комьюнити и поддерживается Microsoft. Оффициальный блог - http://blogs.msdn.com/ironpython. Текущая стабильная версия - 1.1.2, но уже сейчас доступна вполне рабочая 2.0 Beta 5, которая включает в себя множетсво баг-фиксов и другие изменения.

Чтобы начать программировать на этом языке достаточно всего лишь скачать его дистрибутив и запустить его консоль. Только таким образом мы избавим себя от таких удобств, как:удобная IDE, подсветка кода, дебаггер и всё то, что помагает нам каждый день в порцессе разработки прилижений.

В качестве IDE можно выбрать SharpDevelop, который уже после установки поддерживает IronPython, или же установить IronPython Studio - продукт, основанный на Visual Studio Shell и может работеть как отдельное приложение, так и как часть Visual Studio.

 После установки IronPython Studio появляются новые проекты на языке IronPython: Console Application, Windows Application, Class Library и WPF Application.

 

Для написания первого приложения создаём Console Application. После чего нам генерируется приложение, которое уже выводит на экран текст. Но, так как мыхотим использовать для этого .net framework, то немногоменяем код:

 

from System import * hello = "Hello World!!!" Console.WriteLine(hello) Console.ReadLine() 

 

 Продоление следует...

 P.S. А логотим Python чем-то напоминает украинский фаг.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


ASP.NET MVC Beta

clock October 17, 2008 13:05 by author e0ne

Вышла первая бета ASP.NET MVC Beta.

Список нововведений:

  • Добавлено новое меню "Add View" в Visual Studio.
  • Появилась папка \Scripts и поддержка jQuery.
  • Встроенная поддержка Model Binder для комплексных типов.
  • Перестроена инфраструктура Model Binder.
  • Улучшены методы UpdateModel и TryUpdateModel.
  • Улучшено тестирование сценариев UpdateModel и TryUpdateModel.
  • Типизирован атрибут AcceptVerbs и добавлено перечисление HttpVerbs.
  • Улучшены сообщения об ошибках по умолчанию при валидации.
  • Модифицированы некоторые хелпер методы. Изменено создание формы. Методы стали extension-методами класса HtmlHelper.
  • Поддержка проектов с Silverlight 2, который, как изветсно теперь уже RTW (release to web).
  • Можно скачать ASP.NET MVC Futures.
  • Поддержка размещения сборок в GAC
Оригиньный пост и подробности о нововвидениях, как всегда, можно порчитать на блоге Scott Guthrie. Бету качаем отсюда.

Currently rated 4.0 by 1 people

  • Currently 4/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Доступен Open XML SDK 2.0 CTP

clock October 15, 2008 23:40 by author e0ne

Как-то это осбытие осталось в тени выхода финальной версии Silverlight 2.  Вчера, 14 октября, стала доступна новая версия Open XML SDK. Среди нововведений, по сравнению с первой версией стоит отметить:

  • Strongly Typed Classes and Objects - теперь нам не нужно работать с "сырым" xml и появилась подсветка кода.
  • Content Construction, Search, and Manipulation - поддержка LINQ со всемы вытекающими отсюда последствиями.
  • Validation - к сожалению, не доступно в текущем релизе, но валидация Open Xml документов будет прекрасным дополнением к уже существующим функциям.

Скачать всё это можно тут.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Search

Calendar

<<  January 2009  >>
SuMoTuWeThFrSa
28293031123
45678910
11121314151617
18192021222324
25262728293031
1234567

Archive

Tags

 

 

Участник планеты Developers.org.ua

LinkedIn

Valid XHTML 1.0 Transitional

Categories


Blogroll

Disclaimer

The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2009

Sign in