Перейти к содержимому
tarakanoffth

m-r Tarakanoff

@tarakanoffth

На сайте с 22 августа 2010 г.Казахстан, Алматы

The best C# and .NET days are ahead of us. (25 Mar 2010 by Miguel de Icaza)

рейтинг

100

постов

47

комменты

116

подписчиков

14

подписок

5

Сравнение производительности ASP.NET WebFormViewEngine и SparkViewEngine в ASP.NET MVC.

Spark (первый запрос)
Time taken: 1,1341 sec (1) req/sec

Spark (последующие запросы)
Time taken: 0,0021 sec (480) req/sec

ASP.NET Web Form (первый запрос)
Time taken: 0,2179 sec (5) req/sec

ASP.NET Web Form (последующие запросы)
Time taken: 0,0035 sec (283) req/sec

Не очень убедительный тест, поскольку это была просто пустая веб-страница, без вывода каких-либо данных, циклов, условий и т.п.

-4
0
336

Поддержка модулей в OXITE

Наконец-то ядро OXITE приобрело "чистый" вид, а весь дополнительный функционал уже оформляется в виде дополнительных модулей. Пока, весьма скромный, набор модулей включает в себя: - блог-платформу (удобочитаемые URL, комментарии, ReCaptcha, теги, категории, RSS-лента, подписка на рассылку по e-mail) - новостной модуль (практически модуль блог-платформы, разницы большой нет) - разграничение доступа пользователей по ролям (membership) - движок представлений Spark View Engine (кроме движка WebForms по-умолчанию) - движок баз данных на SQLite - компрессия HTML (gzip, deflate) Пока в размышлении, стоит ли выносить панель администрирования также, в виде отдельного модуля, в целях абсолютной "чистоты" кода ядра. Т.е. ядро будет представлять из себя всего лишь загрузчик функциональных модулей и н…

-5
0
368

OXITE и система логирования на Elmah

Нашел в Интернете статью Протоколирование ошибок в ASP.NET при помощи Elmah на сайте Codehelper.ru и решил остановиться именно на этой системе логирования (при этом я уже  тестировал log4net).

Elmah (error logging modules and handlers for ASP.NET) перехватывает любые исключения в веб-приложении т.к. представляет собой Http-модуль (реализующий интерфейс IHttpModule).

Чтобы внедрить эту систему логирования в OXITE, мне понадобилось прочитать вот эту статью на stackoverflow.com и затем просто внести соответствующие опции в файл web.config, создать новый ActionFilter (наследуемый от HandleErrorAttribute) и зарегистрировать его в классе OxiteApplication (метод registerActionFilters()).

-4
0
310

OXITE и лог

Для OXITE я не стал изобретать очередной велосипед. А лог...он просто необходим. Перелопатив несколько систем логирования, на сайте Codeplex.com, я наткнулся на очень интересный проект, под названием MVC Logging.

В общем этот проект представляет собой демо-версию веб-приложения, который демонстрировал использование наиболее популярных систем логирования на платформе .NET для паттерна MVC.

Заявленый список:

* Basic CRUD with Linq to Entities
* MVC ->View Models
* MVC ->Validation
* Logging with ELMAH
* Logging with NLog
* Logging with Log4Net
* Logging with Health Monitoring
* RSS feeds
* Google Sitemaps
* Google Visualization (charting)
* Microsoft charting controls
* Paging
* OpenID login facility
* vCard

Очень "вкусные" системы, даже трудновато с выбором.

-4
0
260

Перевод OXITE на System.Web.Mvc.dll версии 2.0.0.0. Интеграция Spark View Engine в OXITE. Прощай технология WebForms!

Теперь OXITE может работать с более новыми функциями доступными в ASP.NET MVC 2.0. Ура! Важный подводный камень. После подключения новой версии сборки, компилятор напрочь отказывается компилировать представления (в случае, если они работают на WebForms). Для устранения проблемы, нужно в web.config, вслед за тегом </system.webServer> добавить: <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0" /> </dependentAssembly> </assemblyBinding> </runtime> И теперь шаблоны представлений OXITE в формате самого HTML-ориентированного двигателя представлений Spark View Engine. Мо…

-4
0
357

Unable to open the database file ([SQLiteException (0x80004005)])

System.Data.SQLite.SQLiteException: Unable to open the database file [SQLiteException (0x80004005): Unable to open the database file unable to open database file] System.Data.SQLite.SQLite3.Reset(SQLiteStatement stmt) +375 System.Data.SQLite.SQLite3.Step(SQLiteStatement stmt) +199 ... Эта ошибка возникает при попытке выполнения SQL-инструкции INSERT (UPDATE). Внимание! Не путать с подобным исключением при выполнении открытия базы данных (System.Data.SQLite.SQLite3.Open(...)). См. разницу в трассировке кода. Всё дело в недостаточных правах на каталог (!), в котором находится *.db-файл (SQLite). Т.е. следует задать права для чтения/записи не только для файла базы данных, но и для каталога, в котором этот файл находится. Это нужно SQLite для создания временного файла журнала операций. На пои…

-4
0
1585

Кнопка "Версия для печати" в OXITE

Вполне обычная кнопка "Версия для печати". Причем, хотелось бы такую кнопку вставлять куда угодно и получать "легкую" печатную версию чего угодно в OXITE. Мне на ум пришло три варианта реализации такого функционала. Описываю варианты в последовательности возникновения в голове. 1. IPrinted. Понятно, что интерфейс. С методом GetPrintedVersion(). Этот интерфейс должны реализовывать все модели сущностей, которые я хочу представлять в печатной версии. В частности, реализация метода GetPrintedVersion(), должна будет возвращать объект класса PrintModel, который имеет стандартный набор свойств, типа Title, Body, DateCreated, UserCreated и пр. Ну, а модель PrintModel, можно передать общему (shared) представлению (легкой .aspx странице, хотя можно применить и частичное представление .ascx). Контро…

-4
0
359

Подписка (subscription) в OXITE

Разработчики OXITE предоставили базовую логику подписки на комментарии к записи блога. Причем, существует возможность подписки как зарегистрированного пользователя, так и анонимного. Модель базы данных для такой подписки включает в себя таблицу пользователей (oxite_User[UserID, ...]), таблицу подписчиков (oxite_Subscription[SubscriptionID, PostID, UserID]) и таблицу анонимных подписчиков (oxite_SubscriptionAnonymous[SubscriptionID, Name, Email]). Тут всё понятно. Путем соединения таблиц, вытаскиваются зарегистрированные подписчики (со всеми данными) и анонимные подписчики (немного данных в виде имени и адреса эл. почты) для определенного поста. Вот и всё. Чего не хватает? А не хватает универсального механизма подписки на всё что угодно: на комментарии к посту, на новые посты, на события и…

-4
0
260

Всплывающая форма авторизации пользователя в OXITE

Для создания удобной всплывающей формы авторизации пользователя, потребовалась библиотека JQuery (которая входит в состав проекта ASP.NET MVC) и плагин Fancybox. Кстати, можно скачать библиотеки в папки своего проекта или использовать ссылки на них (например, на code.google.com). Тут вопрос в производительности, ну и ещё в том, буду ли я менять исходные коды библиотек под свои нужды. Файлы библиотеки складываются в папку шаблона (/skins/name-skin/scripts/) и на них создаются ссылки в контроле HeadCustomContents.ascx, который и предназначен для подключения библиотек, таблиц стилей и пр. Затем, в таблице стилей шаблона (/skins/name-skin/styles/site.css), создаются стили для формы авторизации. В контрол LoginUserControl.ascx, который отображает ссылки авторизации (вход/выход), добавляется HT…

-4
0
403