02 September 2008

Visual Studio Express Edition – для дома

На вихідних повна версія Visual Studio сказала що жити їй залишилось 6 днів, я вирішив що це знак і пішов шукати альтернативи. Ще за часів 2005 версії я вже дивився на Visual Studio Express Edition, але на той час вона мене повністю не влаштовувала. Наразі з виходом Visual Studio 2008 Express Edition SP1, Майкрософт дуже пом’якшила обмеження. Це мене і надихнуло ;).

Проект

  • Веб додаток побудований за допомогою MVC Framework;
  • SQL Server Express у якості бек-енду;
  • Бізнес логіка, в окремому шарі, і побудована з використання DDD;
  • Два тестових проекти, один для юніт тестів, а другий для так званих тестів замовника;
  • Потрібен контроль версій.

MVC Framework та Web Application

Починаючи з SP1, Visual Studio 2008 Express Edition повністю підтримує Web Application проекти, а це в свою чергу означає підтримку MVC Framework. Більше ScottGu проанонсував офіційну підтримку.

SQL Server Express

З підтримкою БД все значно складніше, мені так і не вдалось знайти рішення яке б дозволяло нормальний менеджмент версій. Поки що зупинився на генерації бази даних за допомогою Linq to SQL контексту. Схоже що зроблю пустий проект, і буду зберігати інкрементальні апдейт скріпти.

Бізнес логіка, окремі шари, тощо

В SP1 додали ще одну фішку, це підтримка Class Library, зрозуміло що тепер немає жодних перепон робити повноцінний солюшен, з бізнес логікою в окремій збірці.

Цікаво. Web Developer Express офіційно не підтримує Windows та Console Application-и… Але достатньо створити Class Library, а потім просто змінити тип білда ;). Схоже затримка тільки за тим хто перший зробить(або модифікує існуючий) темплейт який додасть в Web Developer Express підтримку цих проектів.

Автоматичне тестування

MSTest-ів як не було, так і немає. TestDriven.Net таки прибрали підтримку для Express версій… Отже все як в добрі часи. Будь який фреймворк для тестування, і зовнішня консоль. Нічого страшного жити можна. Для цього проекту я обрав xUnit і Gallio у якості консолі.

Контроль версій

Після невеличкого пошуку зупинився на SVN. З сервером я довго не мордувався - VisualSVN Server – єдине що воно потребує так це запустити інсталлер. У якості клієнта TortoiseSVN, я вже колись з ним працював, так чи інакше інтеграції з студією поки що не буде. Майкрософт проти адд-інів. Наразі виявилось що і без інтеграції можна жити довго, добре та щасливо.

Покопирсавшись з VisualSVN Server на домашньому компі, вирішив що я не занадто мобільний. Моє звичайне рішення за допомогою Groove, з кодом працює дуже погано, тим паче з репозитаріями SVN ;). Вирішив пошукати хостінги. Продивившись декілька зупинився на nfuddle, їхня пропозиція безкоштовного хостінга 200МБ мене поки що задовольнила і тепер мій репозитарій в Інтернеті.

Висновок

Я просто на сьомому небі ;), все працює і все влаштовує, подивимось, може ще щось знадобиться. Рекомендую.

Коментарі

# demon_xxi said:

Михаил,

огромное спасибо за ссылку на unfuddle.

Только сегодня утром открыл порты дома, чтобы репозиторий хостить, а тут и сервис бесплатный.

По объему помещаюсь, да и пару полезностей дополнительно на сервисе. Отлично!

02 September 08 at 5:09 AM
# Mike Chaliy said:

Єдина проблема яка мене бентежить з цим хостынгом, це те що там немає можливості в автоматичному режимі забрати дамп репозитарія. Просто може настати час коли я вирішу хостити вдома, або в іншому місці, а втрачати історію дуже не хочеться. Написав їм листа, вже два дні, а відповіді покищо немає...

02 September 08 at 5:41 AM
# mormat said:

Цікавий пост :-)

Я як раз також займався пошуками СВН хостінгу, і сьогодні вранці знайшов Assembla (http://www.assembla.com) - також безкоштовний.

Що стосується клієнту - то є начебто непоганий клієнт для студії - http://ankhsvn.open.collab.net/ - однак я ще не обкатав його на практиці... щонайменш із моїм домашнім VisualSVN він глючить, не хоче заливати на сервер будь-що окрім root-level файлів. TortoiseSVN звісно непоганий клієнт, але інтеграція зі студією має значно прискорити "вторинний процес управління кодом" :-)

02 September 08 at 7:50 AM
# Mike Chaliy said:

>> http://www.assembla.com - також безкоштовний

Угу, і також 200МБ, а ти, до речі, не цікавився чи можна там скачати дамп репозиторію?

>> начебто непоганий клієнт для студії - http://ankhsvn.open.collab.net/

>> але інтеграція зі студією має значно прискорити

Та вони усі не працюють з Express Editions, принаймні не повинні, Майкри заборонили адд-іни для Express Editions, півроку були голосні розбірки з TestDriven.Net, Майкри виграли, TestDriven.Net тепер не інтегрується з Express Editions

02 September 08 at 7:59 AM
# Mike Chaliy said:

До речі про TortoiseSVN, тут варто спробувати.

Флоу з інтеграцією в студію.

1) Робимо чек-оут, чи починаємо редагувати, а студія автоматично робить чек-оут.

2) Повторюємо цю операцію для всіх файлів.

3) Робимо чек-ін (пишемо коментарі)

Тепер флоу з TortoiseSVN

1) Редагуємо файл (TortoiseSVN не робить файлів рідонлі).

2) Повторюємо цю операцію для всіх файлів.

3) Робимо чек-ін (пишемо коментарі)

Чесно кажучи за рахунок того що файли можна одразу редагувати, з TortoiseSVN навіть дещо швидше виходить ;). Едине це те що потрібно Alt+Tab на фолдер щоб викликати TortoiseSVN Commit.

02 September 08 at 8:17 AM
# mormat said:

>Угу, і також 200МБ, а ти, до речі, не цікавився чи можна там скачати дамп репозиторію?

Ну, я погано собі уявляю проект більший за 200мб :-) може якась гра і набере стільки за рахунок ресурсів.

Стосовно дампу - ще не перевіряв нічого. Буду вдома - перевірю - відпишусь :-)

02 September 08 at 9:05 AM
# mormat said:

Дамп репозиторію з Assembla - TortoiseSVN -> Export... - працює без жодних проблем.

02 September 08 at 10:23 PM
# Mike Chaliy said:

>> Assembla - TortoiseSVN -> Export... - працює без жодних проблем

Та ну це ж не дамп, це просто копія поточного коду. Головна фішка це те що дамп дозволяє переносити і історію змін.

svnadmin dump

http://svnbook.red-bean.com/en/1.1/re31.html

Repository Maintenance

http://svnbook.red-bean.com/en/1.1/ch05s03.html#svn-ch-5-sect-3.5

dump

Dump the contents of the repository, bounded by a given set of revisions, using a portable dump format.

02 September 08 at 11:53 PM
# caesar said:

Интересный пост, сам присматривался к Express редакции, так как не пользуюсь большинством фич pro редакции, а также addin-ами вроде вездесущего Resharper :)

Не могли бы вы подробнее расписать пункт "SQL server express" ? Я так понял нельзя просто создать БД на сервере, по крайней мере пункт "Create new database" у меня неактивен. Только через mdf файл. И как мне снять скрипт со схемой и данными с базы, и наоборот залить скрипт на базу ? Заранее благодарен.

03 September 08 at 12:32 AM
# Mike Chaliy said:

2caesar

Чесно кажучи я не знаю чи можна створювати БД на сервері за допомогою Express версії. Мене більше цікавила більш/менш зручна розробка, тобто підтримка версій баз данних, створювання схеми, тощо.

На цей час я зупинився на тому що

- за допомогою SQL to LINQ створю модель,

- потім викликаю CreateDatabase (я для цього зробив утілітку)

- потім за допомогою SQL Management Studio Express Edition або SQL Server Database Publishing Wizard  заберу повний скрипт,

- додам отриманий скрипт до проетку, так щоб можна було зберігати версії в SVN,

- і на прикінці коли настане час деплоймента, за допомогою SQL Server Database Publishing Wizard  закину все на продакшен серевер.

- коли в майбутньому мені знадобиться змінити базу данних, я вже буду робити інкрементальні скрипти, тобто ті які не повнісью будують базу даних, а тільки її змінюють. Щось на кшталт ALTER TABLE ADD AdditionalColumn.

SQL Server Database Publishing Wizard можна подивитись тут: http://www.microsoft.com/downloads/details.aspx?FamilyID=56E5B1C5-BF17-42E0-A410-371A838E570A&displaylang=en

03 September 08 at 1:27 AM
# status_alexus said:

Большое спасибо за обзор.

Меня например в нем зацепила тулза под названием Gallio. Будем обкатывать, потому как стандартный NUnit-Gui мне не очень нравится.

По поводу плагина AnkhSVN. Мне с ним приходилось работать околог одного года назад. Много воды конечно утекло с того времени, но он себя показал как очень сырое расширение. С TortoiseSVN в принципе нельзя сравнить. Очень много мелких недоработок было на тот момент.

Так что если интересно именно бесплатное решиние, то, наверное TortoiseSVN единственный разумный вариант...

...только что заглянул на официальный сайт. Похоже с тех пор как я ее смотрел много воды утекло. Я работал с AnkhSVN 1.0.0.2668-RC4, а сейчас уже версия 2.0

Думаю что стоит пробовать.

> Наразі з виходом Visual Studio 2008 Express Edition SP1, Майкрософт дуже пом’якшила обмеження. Це мене і надихнуло ;).

Я так понял что больше идиотского ограничения на один проект уже нету? :)

04 September 08 at 9:32 AM
# Mike Chaliy said:

>>> Наразі з виходом Visual Studio 2008 Express Edition SP1, Майкрософт дуже пом’якшила обмеження. Це мене і надихнуло ;).

>> Я так понял что больше идиотского ограничения на один проект уже нету? :)

Ні, але залишилось обмеження на підтримку Адд-інів ;(.

04 September 08 at 9:39 AM
# MichaelM said:

А из распределенных систем контроля , вроде Меркуриала, что нить посоветовать можете?

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

10 December 08 at 9:31 AM
Анонімні коментарі деактивовані. Увійдіть або Зареєструйтесь щоб мати доступ до ресурсів Спільноти.

About Mike Chaliy

Вчу українську, багато працюю. Цікавлюсь моделюванням небезпек. Більшість часу витрачаю на .Net.