Регистрация     
Russian Sharepoint User Group
Найдено постов: 68
7й подкаст Петербургской группы ALT.NET
RssAgregator опубликовал 11 часа(ов), 58 минут(ы) назад в блог 'butaji on tech'

Domain-Driven Design и CQRS

Ведущий: butaji

Наши гости: frozen_space и chaliy

Содержание:

  • Что значат все эти буквы, стоит ли изучать?
  • Список литературы

Applying Domain-Driven Design and Patterns: With Examples in C# and .NET http://www.amazon.com/Applying-Domain-Driven-Design-Patterns-Examples/dp/0321268202

Yahoo group Domain-Driven Design http://tech.groups.yahoo.com/group/domaindrivendesign/

http://www.infoq.com/minibooks/domain-driven-design-quickly

http://www.domaindrivendesign.org/

CQRS a la Greg Young http://blog.fohjin.com/blog/2009/11/12/CQRS_a_la_Greg_Young

  • Насколько DDD реально имеет место в проектах?
  • Действительно ли DDD помогает управлять сложностью?
  • Сколько паттернов вы запомнили из книги Ивенса?
  • CQRS - недостаAтки и преимущества
  • OpenSource примеры

DDDSample http://dddsample.sourceforge.net/

S#arp Architecture http://code.google.com/p/sharp-architecture/

http://www.codeplex.com/dddpds

http://www.habanerolabs.com/





Просмотров: 1 |  Комментариев: 0 | 
5й подкаст Петербургской группы ALT.NET
RssAgregator опубликовал 28.02.2010, 18:22 в блог 'butaji on tech'


SOLID & TDD и прочие показатели качества кода

Ведущие: dnesteruk & butaji

Наши гости: Alexander Byndyu и Vitaly Stakhov

SCRUM & XP

OOD: Best practicies

SOLID

  • Single Responsibility Principle
  • Open/Closed Principles
  • Liskov Substitution Principle
  • Interface Segregation Principle
  • Dependency Inversion Principle

TDD: Best Practicies

Ещё говорили о

Pain-Driven Development

Spolsky vs Uncle Bob

NHibernate Sources, NAnt




Тэги: Podcast, S.O.L.I.D., scrum, tdd, xp
Просмотров: 12 |  Комментариев: 0 | 
4й подкаст Петербургской группы ALT.NET
RssAgregator опубликовал 20.02.2010, 17:12 в блог 'butaji on tech'

Всё, что вы хотели узнать о ASP.NET

Участники: dnesteruk & butaji

Что нового в ASP.NET MVC2.

  • Асинхронные контроллеры
  • Зоны (areas)
  • Валидация через data annotation
  • Строго-типизированные хелперы
  • Хелпер-темплейты, параметры по-умолчанию

Альтернативные view engines

Удобен ли Visual Studio для веб-разработки

FubuMVC

  • Новое понимание MVC. Другой контроллер. Конвенции.

Почему я уйду на Ruby on Rails / Django

Как хорошо работать с Asp.Net AJAX и jQuery

HTML5 + CSS3 (@font-face)

RIA

Создавать ли View для iPhone




Альтернативный MVC Framework на ASP.NET: FubuMVC
RssAgregator опубликовал 15.02.2010, 21:43 в блог 'butaji on tech'

Введение

Почему же альтернативный? Всё просто, данный framework пишется силами выдающихся участников ALT.NET community, а именно:

Jeremy Miller, Chad Myers, Mark Nijhof, Ryan Kelley, и Joshua Flanagan.

FubuMVC не имеет никакого отношения к ASP.NET MVC Framework, кроме того, что так же построен поверх ASP.NET и реализует паттерн Front-Controller. Название FubuMVC строится из акронима "For us by us" и аббривеатуры MVC (кто ещё не знает, что это значит Model-View-Controller ?). Проект был инициирован по причине недовольства вышеперечисленных личностей архитектурными решениями, принятыми в ASP.NET MVC. Сказать, по правде, по прошествии года, после старта проекта, он не утратил своей элегантности и простоты в подходах.

FubuMVC вносит несколько непривычное понимание Controller'а. Теперь это не просто некоторый класс, теперь это больше логическая связность некоторых методов. Это раскрывает более широкие возможности для настройки специфичного поведения Controller'а, к примеру, обработки ошибок, реализации правил кэширования, определения типа возвращаемых значений. К тому же возможность динамического объединения вызовов Action'ов уже является удобным механизмом к расширению. Далее мы более подробно поговорим об особенностях этой реализации в FubuMVC.

В качестве View Engine (в данном случае является лишь определением и не имеет отношения к ASP.NET MVC View Engine) используется механизм рендринга WebForms (проще говоря FubuPage, которая является View в FubuMVC, наследует от System.Web.UI.Page), но имеется возможность в подключении всех существующих в ASP.NET MVC ViewEngine'ов, примером тому может быть реализация SparkViewEngine.

Конечно же уместным будет вопрос, а зачем же нужен "другой" MVC Framework, с меньшим количеством участников проекта, с меньшим вниманием со стороны разработчиков, с меньшим количеством тестеров и прочими атрибутами mainstream проектов.

В основу проекта FubuMVC его создатели заложили больше возможностей для кастомизации проекта под прикладные нужды, а так же конвенциям (соглашениям) относительно настройки и расширяемости. Причём конвенции должны покрывать основные и типичные нужды приложения, коих в разработки решений достаточно большое количество. Какие-л...




Просмотров: 16 |  Комментариев: 0 | 
Каких возможностей мне не хватает в SharePoint 2010 BCS
RssAgregator опубликовал 08.02.2010, 16:18 в блог 'butaji on tech'

В данной заметке я решил немного поразмышлять о том, чего же мне не хватает в BCS при планировании основных сервисов приложений, руководствуясь стандартными для SharePoint практиками. Большинство из этих ограничений связаны с природой сервисов BCS, а именно тем, что данные не находятся в локальном хранилище, соответственно не могут полностью контролироваться с помощью сервисов SharePoint.

Итак, начнём:

  • Нельзя давать разрешения на отдельные записи во внешнем списке (external list). Наконец-то SharePoint в исполнении 2010ой версии научили корректно использовать Access Control Lists (ACL), однако, по вполне понятным причинам данные возможности не доступны при работе с внешними данными
  • Возможности рабочих процессов не доступны полностью для внешних списков. Казалось бы, всё замечательно и готово для интеграции, однако внешние данные остаются внешними данными, и многие события, необходимые для работы с рабочими процессами недоступны для SharePoint, однако это не исключает использование внешних данных в рабочих процессах, работающих на обычных списках. Об этой проблеме и способах её разрешения довольно-таки подробно описано в статье Using SharePoint workflows with Business Connectivity Services (BCS).
  • Отсутствие версионности и истории изменений во внешних списках. Вполне логично, что внешние списки остаются лишь "обёрткой" для внешних данных и хранить изменения, а следовательно и обеспечивать версионность, довольно-таки неординарная задача, которую команда BCS решила не касаться, по той же причине "элементы социального взаимодействия", такие как рейтинги и тегирование, так же будут недоступными при работе с внешними данными (BCS).
  • Экспорт в Excel. Очень странно почему данный функционал не доступен, т.к. не накладывает никаких ограничений на используемые данные, а просто меняет их представление. Как альтернативу данному подходу могу предложить что-нибудь наподобие Print List (http://www.sharepoint-tips.com/2007/01/how-to-add-print-list-option-to-list.html), т.е. решения по экспорту внешних данных из SharePoint будут подразумевать кастомизацию.
  • RSS каналы. С одной стороны причины схожи с экспортом в Excel, однако здесь, как мне кажется, противоречие даже со здравым смыслом, т.е. RSS-канал как правило должен отслеживать изменения в данных и оповещать об этом подписчика, в случае с внешними данными, они могут и не меняться, а будет меняться лишь выборка, что будет генерировать многочисленное количество неконтролируемых обновлений.
  • Просмотр в виде таблицы. Очень удобная функция, не понятно, что именно сподвигло на её отсутствие команду разработчиков, скорее...



Просмотров: 12 |  Комментариев: 0 | 
Полноценный Behavior Driven Development на .NET
RssAgregator опубликовал 03.02.2010, 23:13 в блог 'butaji on tech'

Введение

Меня переполняют эмоции. Это связанно с тем, что сегодня мой товарищ сообщил о следующем: есть полноценная реализация BDD движка для .NET.

Называется проект SpecFlow

Исходный код ныне базируется на GitHub http://github.com/techtalk/SpecFlow

Немного теории

Вопрос о том, что же такое Behavior Driven Development неоднозначен. Особенно противоречивы его отношения с Test Driven Development. Однако предлагаю абстрагироваться от сравнения двух подходов и договорится, что суть этого есть одно и тоже, т.к. особенных различий нет. Основной чертой выделяющей BDD от TDD по-моему усмотрению является ориентация на различных участников процесса производства программного обеспечения, будь то менеджер, разработчик, тестер, заказчик. Вы вместе пишете тесты, и вместе можете развивать проект в нужном направлении и вполне понятных терминах. Так же на ум в данном случае приходит такой термин, как Ubiquitous Language из Domain Driven Design. А ведь и в самом деле, обобщение терминологии описания вашей предметной области вполне может ложится на практику BDD.

Меня в BDD больше всего прельщает возможность описания функциональности на разговорном языке, что гарантирует актуальность документации (т.к. ваши behavior тесты и будут фактически вашей документацией). Так же при написании тестов на подобном уровне вы четко сконцентрированы на поставленной задаче, а не способах её разрешения и применяемых инструментах, что так же весьма полезно для качества как вашего дизайна, так и соответствии программного продукта назначению.

Все известные инструменты (к примеру mock-объекты) и практики (такие как шаблоны тестирования), используемые вами при разработке в стиле TDD, изменятся незначительно при переходе на BDD стиль, в связи с чем можно начать применять BDD уже сегодня. Так же вполне возможно, что вам необходимо будет произвести более низкоуровневое тестирование некоторых компонентов, что несомненно приведёт к смешиванию двух практик, что несомненно должно происходить осознано и с должен вниманием.

Снаружи вовнутрь. Процесс при разработке в стиле BDD так же немного смещается. Так как тестами двигают в равной мере все участники, то ориентация в первую очередь будет на интерфейсе пользователя. т.е. для описания необходимых фич, заинтересованным лицам (скорее всего заказчику) необходимо будет держать перед глазами эскизы эрканов для взаимодействия. Этот подход снижает риски неоправданных ожиданий, т.к. в большинстве случаев программный продукт д...




Просмотров: 36 |  Комментариев: 0 | 
Бесплатный экзамен Microsoft. Бесплатная годовая подписка TechNet Plus.
Основной текст:

Авторизованный учебный центр «Трайтек» проводит

СОВМЕСТНУЮ АКЦИЮ с компанией Microsoft

Бесплатный экзамен Microsoft. Бесплатная годовая подписка TechNet Plus.

TechNet Plus помогает ИТ-специалистам быть готовыми к решению самых актуальных проблем и планировать необходимые развертывания. Его подписчики получают быстрый и удобный доступ к новейшему программному обеспечению, испробовать которое можно без ограничений по времени и функциональности, бета-выпускам, двум сеансам бесплатной технической поддержки и разнообразным профессиональным сведениям и инструментам, позволяющим быстрее решать поставленные задачи.

Эта акция дает Вам возможность:

* При успешной сдаче одного экзамена MCTS - получить шанс на сдачу второго экзамена БЕСПЛАТНО!

* При успешной сдаче двух экзаменов MCTS - получить БЕСПЛАТНУЮ годовую подписку TechNet Plus!

* Не хватает знаний для сдачи экзаменов - прослушай курс лекций по продуктам Microsoft в УЦ «Трайтек» и получи шанс БЕСПЛАТНО сдать экзамен!




Просмотров: 24 |  Комментариев: 0 | 
Spb ALT.NET Podcast #2: Persistence in .NET
RssAgregator опубликовал 02.02.2010, 13:24 в блог 'butaji on tech'

Участники: butaji & dnesteruk

Persistence в .Net-приложениях




Просмотров: 20 |  Комментариев: 0 | 
SharePoint 2010: Примеры работы с BCS
RssAgregator опубликовал 31.01.2010, 18:48 в блог 'butaji on tech'

Введение

Предлагаю рассмотреть несколько примеров работы с SharePoint 2010 Business Connectivity Services.

Все ресурсы, связанные с Business Connectivity Services можно найти на Business Connectivity Services Resource Center. Кстати на нём же можно скачать замечательный постер-шпаргалку по технологии.

image

Для работы с рассматриваемыми примерами предлагаю вам скачать SharePoint 2010 SDK.

Adventure Works Web Service

В данном примере показана реализация стандартного asp.net asmx сервиса, ориентированного на работу с BCS. Этот сервис представляет доступ к данным из SQL Server. С помощью LINQ to SQL реализовано объектно-реляционное преобразование.

Вы наверняка согласитесь с утверждением, что при прочих равных условиях asmx сервисы создаются намного проще WCF сервисов

Для работы с ним понадобится sample database с соответствующим названием "AdventureWorks".

Примеры баз данных (таких как AdventureWorks) для основных версий SQL Server, а так же решений для них, теперь централизованны и хранятся на CodePlex: http://msftdbprodsamples.codeplex.com/

Сервис WebService.asmx предоставляет ряд методов для стандартных операций взаимодействия с данными (Create, Read, Update, Delete).

Для наглядности предметной области основные сущности определены в виде POCO классов, к примеру:

public class SalesCustomer
{
    public int CustomerId { get; set; } 

    public String Title { get; set; }
    public String FirstName { get; set; }
    public String MiddleName { get; set; }
    public String LastName   { get; set; }
    public String EmailAddress { get; set; }
    public String Phone { get; set; }
    public DateTime ModifiedDate { get; set; }
}

Классы же, генерируемые LINQ to SQL используются по назначению, т.е. в качестве DataModel, которая в последствии отображается на модель предметной области. Хоть пример и учебный, было очень приятно, что он имеет довольно таки логичное и обоснованное применение технологий по назначению.

Предметная область в данном случае состоит из 3 основных сущностей:

  1. SalesCustomer
  2. SalesOrderDetail
  3. SalesOrderHeader

Причём дизайн данных сущносте...




Просмотров: 66 |  Комментариев: 0 | 
Может ли .NET Reflector 6 помочь разработчику SharePoint?
RssAgregator опубликовал 31.01.2010, 13:45 в блог 'butaji on tech'

Сегодня наконец-то дошли руки до Reflector 6 Pro Beta. Если вы ещё не слышали, то я повторюсь, что эта версия рефлектора умеет дебажить внешние сборки в Visual Studio. Конечно же меня в первую очередь заинтересовала возможность дебага Microsoft.SharePoint.dll

При первом запуске рефлектора, он автоматически установит плагин в студию. Далее с помощью появившегося пункта меню можно подгрузить интересующую сборочку:

image

Microsoft.SharePoint.dll загружался довольно таки приличное количество времени (несколько минут), после чего передо мной была следующая картинка:

image

Далее я выбрал в том же пункте меню Explore Decompiled Assemblies, нашёл в Object Browser класс SPWeb, выбрал в меню Go To Decompiled Definition, подключился к рабочему процессу w3wp с SharePoint и увидел следующее:

image

Считаю, что это очень полезная возможность. Рекомендую приобрести данный продукт, так как он сможет сэкономить большое количество вашего времени.




Тэги: reflector, sharepoint
Просмотров: 15 |  Комментариев: 0 | 
Обработка ошибок со стороны пользователя
RssAgregator опубликовал 28.01.2010, 18:56 в блог 'butaji on tech'

Сегодня немного поразмышлял о напрасно потраченных человекогодах, а именно о следующем.

Вспомните, что вы обычно делаете, когда вам через чур необходимо воспользоваться какой-нибудь программой, либо её функцией, а перед вами появляется окно сообщающее о какой-либо ужасающей ошибке? Правильно, вы перепечатываете сообщение об ошибке в строку поиска. Ну так вот, мои размышления пришли к тому, а почему бы не ввести в качестве “хорошего тона для разработчиков” кнопку, для того, чтобы поисковик для вас открывался автоматически.

image

Причём, для “агностицизма” поисковика, можно детектить тот, который стоит по-умолчанию в вашем браузере.




Тэги: Ошибки
Просмотров: 12 |  Комментариев: 0 | 
SharePoint 2010: Безопасность в Business Conectivity Services
RssAgregator опубликовал 24.01.2010, 21:15 в блог 'butaji on tech'

Введение

Существует два подхода к аутентификации при работе с внешними источниками данных:

  • идентификатор пользователя
  • имперсонализация

С помощью первого типа по идентификатору пользователя, переданному во внешнюю систему, определяются его разрешения во вешнем источнике данных. На основе этих разрешений возвращаются данные в конечную систему.

Второй тип аутентификации подразумевает под собой наличие специализированной учетной записи, через которую пользователи вашей системы получают данные из внешних источников.

Явным примером двух типов аутентификации может являться работа с SQL Server для развертывания SharePoint.

При наличии у разработчика локально-развернутой копии SharePoint, получение данных происходит через идентификатор текущего пользователя, т.к. разработчик обычно выполняет все действия под единым для SharePoint и SQL Server пользователем.

Однако при варианте развертывания SharePoint на ферме, появляется необходимость имперсонализации пользователя для доступа к данным из SQL Server. Как правило заводится специализированная доменная учетная запись с необходимыми для работы с SQL Server разрешениями. И соответственно, все действия с данными SharePoint производит именно через неё, независимо от того, какой пользователь в данное время аутентифицирован в нём.

Рассмотрим, как же организовать имперсонализацию при работе с внешними источниками данных в SharePoint 2010.

Single Sign-On или Secure Stored Service

Вы наверняка знаете, что такое SSO (single sign-on), и помните, что в предыдущих версиях SharePoint она называлась именно так. В SharePoint 2010 данная служба сменила своё название, теперь она называется Secure Store Service (русский эквивалент: Служба Безопасного Хранения).

Данная служба занимается проверкой подлинности на сервере приложений, если быть точным, то она обеспечивает взаимодействие пользователей/групп пользователей с различными системами без необходимости повторного входа в систему. Основное назначение данной службы в SharePoint - взаимодействие с внешними системами. Если в вашей организации имеются приложения, данные из которых вы хотели бы предоставить для пользователей SharePoint, а так же обеспечить безопасность доступа, то вы должны воспользоваться SSS (Secure Store Service).

При настройке SSS вы указываете отображение данных пользователя SharePoint на данные, передаваемые внешней системе. Данными параметрами могут Имя пользователя, Пароль, Идентификатор пользователя. Набор полей не ограничен и может быть изменен в зависимости от ваших нужд. Для обеспечения взаимодействия с настольными приложениями так же доступны сервисы определения разрешений на основе идентификатора Windows пользователя.

Настройка SSS

Secure S...




Просмотров: 80 |  Комментариев: 0 | 
В эту пятницу (22.01) RUSUG
RssAgregator опубликовал 18.01.2010, 20:25 в блог 'butaji on tech'

Первая встреча RUSUG в Москве в новом году состоится 22 января.

Местонахождение: Офис «Microsoft Russia» в Москве

План встречи:

19:00 — доклад «Пользуемся готовыми решениями сообщества для SharePoint», Виталий Баум;
20:30 — перерыв;
20:45 — доклад «PowerShell и SharePoint», Василий Гусев.
Регистрация: http://sharepoint.su/UG/Lists/Jan2010Reg/NewForm.aspx

На эту встречу к нам приедет Виталий Баум из Санкт-Петербурга. Если вы смотрите видеозаписи встреч группы, то уже видели один доклад Виталия, посвящённый введению в SharePoint. Тема доклада Виталия «Пользуемся готовыми решениями сообщества для SharePoint».

Он расскажет нам о следующем:

  • Почему надо использовать решения с CodePlex
  • Почему не надо использовать решения с CodePlex
  • Как надо использовать решения с CodePlex
  • Обзор доступных решений от сообщества для SharePoint

Вторым докладчиком будет Василий Гусев, известный эксперт, MVP по PowerShell. Он расскажет нам о связке PowerShell и SharePoint. После краткого знакомства с основами PowerShell вы узнаете что он может дать разработчику, и как можно его использовать для работы с SharePoint.




Тэги: RUSUG, sharepoint, ug
Просмотров: 18 |  Комментариев: 0 | 
Совместный подкаст spbalt.net и csharpus
RssAgregator опубликовал 17.01.2010, 22:06 в блог 'butaji on tech'

Встречались:

http://spbalt.net : butaji и dnesteruk

http://csharpus.com/ : dimapasko и tihobrazov

Холиварим, .NET и аналоги:

http://highscalability.com/blog/2009/8/5/stack-overflow-architecture.html

http://stackoverflow.com/questions/791447/windows-azure-vs-amazon-ec2-vs-google-app-engine

Обсуждение новых фич .NET 4.0, в частности:




Временная запись для определения темы (84613573-fe12-42cc-91c7-e91f2f3e9d52 – 3bfe001a-32de-4114-a6b4-4005b770f6d7)
RssAgregator опубликовал 17.01.2010, 20:49 в блог 'butaji on tech'

Это временная запись, которая не была удалена. Удалите ее вручную. (2f7406eb-a9c3-4495-95d4-5d58bfd95206 – 3bfe001a-32de-4114-a6b4-4005b770f6d7)




Тэги: Uncategorized
Просмотров: 21 |  Комментариев: 0 | 
Unit-тесты для SharePoint
RssAgregator опубликовал 08.01.2010, 18:07 в блог 'butaji on tech'

Снова о unit-tests?


Да, я уже рассказывал о том, как "правильно" писать юнит-тесты для SharePoint, однако сегодня наткнулся на одну интересную разработку, речь о которой пойдёт далее.

В состав Pex входит инструментарий для создания stub-объектов под названием Mole, он умеет работать с закрытыми для наследования объектами, на коих строится объектная модель SharePoint.

Если вы не знаете что такое Pex

В компании Microsoft есть подразделение, занимающееся научными разработками, называется оно Microsoft Research, подробнее узнать о том, чем же занимается это подразделение можно узнать здесь: http://research.microsoft.com/en-us/research/default.aspx

Одно из разработок данного подразделения - средство white-box тестирования для .NET под названием Pex. Разработка доступна для скачивания: http://research.microsoft.com/en-us/downloads/d2279651-851f-4d7a-bf05-16fd7eb26559/.

Конечно же концептуально Pex противоречит некоторым аспектам юнит-тестирования, т.к. проверяет как написан код, а не что он должен делать.

Насколько известно для SharePoint удобно писать лишь интеграционные тесты, которые помогут вам убедится, в том, что решение благополучно "прилунилось" и проверить, что вся необходимая логика исполняется на "живых" объектах SharePoint.

Однако во многих случаях хочется избавиться от всех инфраструктурных накладок интеграционного тестирования (производительность: я не хочу уходить пить кофе каждый раз при запуске тестов, обновление данных и проч.) и проводить полноценное модуль тестирование в изолированной среде, что обычно и позволяют делать многочисленные фреймворки для создания "тестовых двойников", примеры для .NET:

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

Пример работы с Mole

Предположим нам необходимо протестировать некоторый участок кода:

public void UpdateTitle(SPItemEventProperties properties) {
    using (SPWeb web = new SPSite(properties.WebUrl).OpenWeb()) {
        SPList list = web.Lists[properties.ListId];
        SPListItem item = list.GetItemById(properti...



Просмотров: 26 |  Комментариев: 0 | 
Spb ALT.NET Group: The Zero Podcast
RssAgregator опубликовал 07.01.2010, 21:43 в блог 'butaji on tech'

Подкасты Петерубргской Группы Alt.Net

Подкасты о разработке в среде .Net. Ключевые слова: C#, F#, Boo, Visual Studio, .Net, PostSharp, Asp.Net

личная подкаст-лента Петербургская Группа Alt.NetПетербургская Группа Alt.Net (подробнее, RSS-поток)

Обсуждаем
Итоги 2009 года:

  • 17 встреч http://spbalt.net
  • Инета в Питере
  • Рынок труда в Питере

Новости 2010:

  • 10 лет .NET
  • Visual Studio 2010
  • Что и как будем использовать в 2010ом году

Говорили в обычном составе: butaji и dnesteruk




Просмотров: 18 |  Комментариев: 0 | 
SubSonic: магия и ORM
RssAgregator опубликовал 07.01.2010, 16:24 в блог 'butaji on tech'

О чём это?

На днях передо мной стояла задача создания прототипа веб-приложения с определенным набором функций, в том числе, подразумевающих работу с данными. Набор инструментов я подобрал следующий:

  • ASP.NET MVC
  • SQLite

Набросав первое приближение модели предметной области, я озаботился её сохраняемостью и решил заняться выбором ORM:

  • LINQ to SQL насколько известно умеет работать только с Microsoft SQL Server
  • Entity Framework ещё не готов в пригодной версии
  • DBLinq вроде бы прекрасно работает со всеми известными RDBMS, однако отсутствие его популярности и низкая версия немного меня оттолкнули
  • О SubSonic я слышал краем уха, однако так и не имел тесного знакомства, на нём и решил остановится, фреймворк имеет в багаже уже 3юю версию, а так же известного создателя (Rob Conery)

Чем же хорош SubSonic?

SubSonic

Очень заинтересовали 5 минутные ролики о SubSonic:

http://subsonicproject.com/docs/The_5_Minute_Demo

http://subsonicproject.com/docs/Simple_Repo_5_Minute_Demo

Кстати SubSonic помимо того, что является ORM, так же предоставляет слой доступа к данным.

Итак в 3ей версии SubSonic мы имеем 2 сценария работы:

  • ActiveRecord - фактически повторяет классический для Ruby On Rails подход, в котором модель является моделью данных, т.е. знает о способах своей сохраняемости. Данный подход в случае SubSonic полезен в построении дата-ориентированных решений, вам достаточно просто сохранить в T4 шаблоне имя строки подключения к имеющейся у вас базе данных, остальное SubSonic сделает сам (генерирует соответствующие данным .NET-типы в вашем приложении)
  • SimpleRepository - более привычный для меня подход, подразумевает под собой абстракцию хранения данных под некоторым классом-коллекцией объектов.

Реализация обоих сценариев прозрачна с точки зрения подхода и реализует соответствующие паттерны PoEAA:

Как же я воспользовался SubSonic в своём приложении?

Я о определил интерфейс репозитория:

  public interface IRepository<T>
  {
    void Add(T entity);
    T FetchById(long id);
    IEnumerable<T> FetchAll(Expression<Fu...



Просмотров: 27 |  Комментариев: 0 | 
Найдено постов: 68 Показывать по 1 2 3 4