1. Кроссплатформенный .NET на практике:
Обзор платформы B4 и решений на ее основе.
+
Докладчик:
Решения для электронного правительства и
Ильмир электронизация государственных услуг
Гибадуллин
Больше, чем технологии!
3. Что такое платформа Bars.B4?
Bars.B4 – это системная платформа и инструментарий для
создания гибких, настраиваемых и изменяемых прикладных
решений.
Больше, чем технологии!
5. Стек технологий
Microsoft .NET Framework
3.5
ASP.NET MVC 2
Castle Windsor (IOC)
Nhibernate
Fluent Nhibernate
Sencha ExtJs
Больше, чем технологии!
6. Microsoft ASP.NET MVC 2
ASP.NET MVC Framework — фреймворк для создания веб-приложений,
который реализует шаблон Model-view-controller.
Больше, чем технологии!
7. Пример контроллера B4
Описание класса контроллера:
public class NewsController : DataController<News> List
{
} Update
Get
Delete
Обращения к методу контроллера:
http://myapp/action/news/list
Определение метода контроллера:
public ActionResult MyAction()
{
return new JsonNetResult(new { result = ”Результат" });
}
Больше, чем технологии!
8. Castle Windsor (IOC)
IOC, Inversion of Control ( Инверсия управления ) – паттерн
реализующий слабую связанность компонентов системы.
Сильная связанность Слабая связанность
Больше, чем технологии!
9. Примеры работы с IOC -
контейнером
Регистрация реализации интерфейса: Transient
Container.Register(Component.For<ILogger>() Singleton
.ImplementedBy<ConsoleLogger>() LifeStyles PerThread
.Named("ConsoleLogger") Pooled
.LifeStyle.Transient); PerWebReques
t
зрешение реализации интерфейса
ILogger logger = Container.Resolve<ILogger>();
logger.Debug("App start");
Разрешение реализации интерфейса по имени
ILogger logger = Container.Resolve<ILogger>("ConsoleLogger");
logger.Debug("App start");
Замена реализации
Container.ReplaceComponent<ILogger>("ConsoleLogger", typeof(DataBaseLogger));
или
Container.ReplaceComponent<ILogger>(typeof(ConsoleLogger), typeof(DataBaseLogger));
Больше, чем технологии!
10. Nhibernate
NHibernate — ORM-решение для платформы Microsoft .NET. NHibernate позволяет
отображать объекты бизнес-логики на реляционную базу данных.
public class Car
{
CAR
int Id { get; set; }
ID MODEL SPEE
string Model { get; set; } D
double MaxSpeed { get; set; } 1 Ferrari 300
}
2 Bugatti 350
public class Person
{ Person
int Id { get; set; }
ID Name BIRTHDA MY_CAR
string Name { get; set; } Y
DateTime Birthday { get; set; } 1 Mr. Freeman 21.09.2009 2
Car MyCar { get; set; } 2 Pupkin 01.01.1980 1
}
Больше, чем технологии!
11. Интерфейс для работы с данными
IRepository – интерфейс для работы с данными.
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();
}
Больше, чем технологии!
12. Примеры работы с данными
Пример запроса
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);
Больше, чем технологии!
14. Архитектура Платформы
Appication
Modules
File
Securit Report
Audit Storag Messenger …
y Panel
e
System modules
Data Framewor Resources
Core Reports Utils
Access k ExtJs
Asp.Net MVC 2
Больше, чем технологии!
15. Как создать и использовать модуль ?
public interface IModule
Реализация {
интерфейса IModule string Id { get; }
string Name { get; }
MyModule.dll string Description { get; }
IEnumerable<string> DependsOn { get; }
void InitModule();
}
B4
Application
modules
Больше, чем технологии!
17. Панель администрирования « Setup»
Настройка подключения к БД
Проведение миграции БД
Обновление
Настройка параметров
приложения Просмотр логов
Просмотр списка
Управление модулями ошибок
Просмотр информация о
системе
Настройка меню
Больше, чем технологии!