Ласкаво просимо до dev.net.ua Увійти | Приєднатися | Допомога | Увійти Live ID
в Пошук

Информационные системы

  • Bltoolkit - введение

    Итак, краткий обзор BlToolkit'а:

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

    1. Аспекты - кеширование и логирование через аттрибуты + еще немного аттрибутов которые мне лень описывать)
    2. Доступ к данным (linq + DML+ способы с заданием SQL в аттрибутах метода)
    3. CRUD операции
    4. Реализацию IEditableObject других интерфейсов из System.ComponentModel
    5. Валидацию через аттрибуты
    6. Быстрый маппинг объектов в объекты
    7. Рефлексия и генерация ML (Emit)

    Чего нет:

    1. Версионности (хотя мысли на форуме проскальзывали)
    2. В LINQ еще довольно много багов. Хотя ситуация стремительно улучшается и мне кажется, что уровень поддержки уже приблизился к майкрософтскому LINQ2SQL
    3. Dependency Injection
    4. Видимо еще чего-то чем я пользуюсь редко или не пользуюсь вообще :)
    5. Поддержки фреймворков ниже 2.0 SP1, хотя тут я не уверен

    Лучше всего билдить проект из SVN.

    Вики: http://projects.rsdn.ru/RFD/wiki

    Документация в примерах: http://bltoolkit.net/doc/index.htm

    При проблемах можно задать вопрос на форуме http://www.rsdn.ru/Forum/MsgList.aspx?group=prj.rfd, в обсуждениях участвует автор тулкита и множество классных программистов. Сюда же можно отправлять отчеты об ошибках. Что приятно, баги правятся быстро, к тому же автор лёгок на подъем, если найдутся хорошие аргументы, то ждать нужной фичи недолго.

    Скачать дизайнер можно тут: http://code.google.com/p/bltutilsvspackage/downloads/list (спасибо rsdn пользователю koandrew)

    Использовать так:

    1. Правый щелчок на c# проекте -> Add New Item... -> BLToolkit Settings File -> Название (это имя будет частью имени контекста — SomethingDbContext) -> OK

    2. Дабл-клик на файле — страница настроек. Вводишь имя сервака и имя базы. Из типов креденшелов пока работают тока 2 — clear text и Intergrated.

    3. Для (пере)генерации файлов правый клик на проекте -> "Update Database Definition

    Напоминаю SVN: http://bl-toolkit.googlecode.com/svn/trunk

  • Bltoolkit: LINQ2SQL + DML (insert, update, delete)

    Игорь Ткачев, один из создателей сайта RSDN.RU, а также автор легкого ORM BlToolkit приступил к работе над реализаций DML для LINQ провайдера.

    Вкратце: это другой подход к работе с базой. В отличие от Linq2SQL и Entity Framework (и многих "тяжелых" мапперов), тулкит не рассматривает базу как способ сохранения объектов (в полном понимании этого слова) и представляет собой, скорее, типизированный SQL для C# и VB.NET.

    Пример update:

    db.Child

       .Where(c => c.ChildID == id && c.Parent.Value1 == 1)

       .Set(c => c.ChildID, c => c.ChildID + 1)

       .Update();

    Оценить крутизну :) тулкита можно по ссылке: http://ormbattle.net/

    Ссылка SVN проекта: http://bl-toolkit.googlecode.com/svn/trunk