Сайт msug.vn.ua: что внутри?
Как-то я обещал, что буду писать статьи с описанием практического опыта. В этой статье я опишу некоторые вопросы, связанные с разработкой нашего сайт, который является практически полностью самопиным.
Общие данные:
- ASP.NET MVC 3.0;
- Microsoft SQL Server 2008
- Entity Framework 4.0;
- Mercurial;
- Unobtrusive JavaScript validation (jQuery);
- NuGet;
- Яндекс карты;
- TinyMCE в качестве HTML редактора (таке использовался Markdown WMD редактор).
Начиналось все с NerdDinner
"Движок" нашего сайта начал свою историю с проекта NerdDinner, который был продемонстрирован на одной из конференций MIX в качестве примера веб-сайта написанного на ASP.NET MVC. Кстати, недавно NerdDinner плучил большое обновление. Исходный код можно скачать по ссылке nerddinner.codeplex.com.
Сначала проект был портирован с MVC 2.0 на MVC 3.0, позже все файлы представления были переписаны с использованием Razor разметки.
Используемые библиотеки
Вся работа с библиотеками организована с помощью NuGet.
ASP.NET MVC Scaffolding используется для генерации конроллеров и CRUD представлений. В последней версии EF Code First появилась возможность испольовать Code First подход для существующей базы данных, в планах использование этого подхода для доработки нового функционала.
ASP.NET MVC Mini Profiler используется для профилирования запросов к базе данных и времени выполнения отдельных частей веб-страницы. Профайлер позволяет эффективно выявлять дубликаты SQL запросов, решать N+1 Select проблемы как на уровне всего приложения, так и на уровне отдельных контроллеров или actions.
Ninject используется для dependency injection. Инициализируется с помощью WebActivator.
Elmah используется для протоколирования ошибок и исключений.
DotNetOpenAuth используется для авторизации с помощью сторонних сервисов.
Для экспериментов используются:
- Data Extracting SDK собственного производства для извлечения данных из веб ресурсов и html парсинга;
- QuickGraph для работы с графами;
- Lucene.NET для поиска - пока используется Google провайдер;
- GAPI - для работы с Google API;
- ASP.NET MvcMailer - для рассылки сообщений (в процессе разработки).
Если будут какие-то вопросы по конкретным библиотекам - пишите вопросы в комментариях.
Компании из статьи
Яндекс Украина
|
У Яндекса в Украине три офиса — головной в Одессе, где сосредоточен управленческий аппарат и отдел продаж, и два офиса разработки — киевский, занимающийся разработкой и управлением украинскими проекта... |
Microsoft Украина | Украинское подразделение компании Microsoft. |