25
+ Ильмир Гибадуллин Докладчик: Решения для электронного правительства и электронизация государственных услуг Больше, чем технологии! Кроссплатформенный .NET на практике: Обзор платформы B4 и решений на ее основе.

Обзор платформы B4

Embed Size (px)

DESCRIPTION

Гибадуллин И. Обзор платформы B4

Citation preview

+

ИльмирГибадуллин

Докладчик:

Решения для электронного правительства и электронизация государственных услуг

Больше, чем технологии!

Кроссплатформенный .NET на практике: Обзор платформы B4 и решений на ее основе.

Больше, чем технологии!Больше, чем технологии!

О чем будем говорить?О чем будем говорить?

Больше, чем технологии!Больше, чем технологии!

Что такое платформа Bars.B4?Что такое платформа Bars.B4?

Bars.B4 – это системная платформа и инструментарий для создания гибких, настраиваемых и изменяемых прикладных решений.

Bars.B4 – это системная платформа и инструментарий для создания гибких, настраиваемых и изменяемых прикладных решений.

Больше, чем технологии!Больше, чем технологии!

Трехзвенная архитектураТрехзвенная архитектура

Больше, чем технологии!Больше, чем технологии!

Стек технологийСтек технологий

Microsoft .NET Framework 3.5

ASP.NET MVC 2

Castle Windsor (IOC)

Nhibernate

Fluent Nhibernate

Sencha ExtJs

Больше, чем технологии!Больше, чем технологии!

Microsoft ASP.NET MVC 2Microsoft ASP.NET MVC 2

ASP.NET MVC Framework — фреймворк для создания веб-приложений, который реализует шаблон Model-view-controller.ASP.NET MVC Framework — фреймворк для создания веб-приложений, который реализует шаблон Model-view-controller.

Больше, чем технологии!Больше, чем технологии!

Пример контроллера B4Пример контроллера B4

Описание класса контроллера:

ListUpdateGetDelete

public class NewsController : DataController<News>{       }

Определение метода контроллера:

public ActionResult MyAction()         {              return new JsonNetResult(new { result = ”Результат" });}

http://myapp/action/news/list

Обращения к методу контроллера:

Больше, чем технологии!Больше, чем технологии!

Castle Windsor (IOC)Castle Windsor (IOC)

IOC, Inversion of Control (Инверсия управления) – паттерн реализующий слабую связанность компонентов системы.IOC, Inversion of Control (Инверсия управления) – паттерн реализующий слабую связанность компонентов системы.

Сильная связанность Слабая связанность

Больше, чем технологии!Больше, чем технологии!

Примеры работы с IOC - контейнеромПримеры работы с IOC - контейнером

Container.Register(Component.For<ILogger>() .ImplementedBy<ConsoleLogger>() .Named("ConsoleLogger") .LifeStyle.Transient);

Регистрация реализации интерфейса:

ILogger logger = Container.Resolve<ILogger>();logger.Debug("App start");

Разрешение реализации интерфейса

ILogger logger = Container.Resolve<ILogger>("ConsoleLogger");logger.Debug("App start");

Разрешение реализации интерфейса по имени

Transient SingletonPerThread Pooled PerWebRequest

Transient SingletonPerThread Pooled PerWebRequest

LifeStyles

Container.ReplaceComponent<ILogger>("ConsoleLogger", typeof(DataBaseLogger));

или Container.ReplaceComponent<ILogger>(typeof(ConsoleLogger), typeof(DataBaseLogger));

Замена реализации

Больше, чем технологии!Больше, чем технологии!

NhibernateNhibernate

public class Car{ int Id { get; set; }

string Model { get; set; } double MaxSpeed { get; set; }}

public class Person{ int Id { get; set; }

string Name { get; set; } DateTime Birthday { get; set; } Car MyCar { get; set; }}

CAR

ID MODEL SPEED

1 Ferrari 300

2 Bugatti 350

Person

ID Name BIRTHDAY

MY_CAR

1 Mr. Freeman

21.09.2009 2

2 Pupkin 01.01.1980

1

NHibernate — ORM-решение для платформы Microsoft .NET. NHibernate позволяет отображать объекты бизнес-логики на реляционную базу данных.

Больше, чем технологии!Больше, чем технологии!

Интерфейс для работы с даннымиИнтерфейс для работы с данными

public interface IRepository<T> : IRepository {

new T Get(int id);

void Save(T value);

void Update(T value);

new void Delete(int id);

new T Load(int id);

new IQueryable<T> GetAll(); }

IRepository – интерфейс для работы с данными.

Больше, чем технологии!Больше, чем технологии!

Примеры работы с даннымиПримеры работы с данными

IRepository<News> repository = Container.Resolve<IRepository<News>>();

var newsList = repository.GetAll().Where(x => x.Header == “Тест").Select(x=>new { x.Id, x.Name })

.OrderBy(x => x.Name).ToList();  

Пример запроса

IRepository<News> repository = Container.Resolve<IRepository<News>>();

News news = new News();

news.Name = “Тест”;

repository.Save(news);

Пример сохранения объекта

Больше, чем технологии!Больше, чем технологии!

Sencha ExtJsSencha ExtJs

Больше, чем технологии!Больше, чем технологии!

Архитектура ПлатформыАрхитектура Платформы

Asp.Net MVC 2

CoreData

AccessFramewo

rkReports Utils

Resources

ExtJs

Security

AuditFile

Storage

Report Panel Messenger …

System modules

Appication Modules

B4 Application

B4 Application

Больше, чем технологии!Больше, чем технологии!

Как создать и использовать модуль?Как создать и использовать модуль?

Реализация интерфейса

IModule

MyModule.dllMyModule.dll

modules

public interface IModule{ string Id { get; } string Name { get; } string Description { get; } IEnumerable<string> DependsOn { get; } void InitModule();}

Больше, чем технологии!Больше, чем технологии!

Решаемые задачиРешаемые задачи

Больше, чем технологии!Больше, чем технологии!

Панель администрирования «Setup»Панель администрирования «Setup»

Настройка подключения к БД

Настройка параметров приложения

Управление модулями

Настройка меню

Проведение миграции БД

Обновление

Просмотр логов

Просмотр списка ошибок

Просмотр информация о системе

Больше, чем технологии!Больше, чем технологии!

Setup: КонфигурацияSetup: Конфигурация

Больше, чем технологии!Больше, чем технологии!

Setup: МодулиSetup: Модули

Больше, чем технологии!Больше, чем технологии!

Setup: МенюSetup: Меню

Больше, чем технологии!Больше, чем технологии!

Setup: ОбновлениеSetup: Обновление

Больше, чем технологии!Больше, чем технологии!

Setup: Лог ошибокSetup: Лог ошибок

Больше, чем технологии!Больше, чем технологии!

Setup: Логи приложениSetup: Логи приложени

Больше, чем технологии!Больше, чем технологии!

Анонс мастер-классаАнонс мастер-класса

1

2

4

5

6

+Спасибо за внимание!Спасибо за внимание!