Upload
dataart
View
85
Download
0
Tags:
Embed Size (px)
Citation preview
ASP.NET Identity tools for Entity Framework modelАндрей Чебукин
XperiAndri © 2015
О чём поговорим
▪ Шаблоны проектов и элементов проекта в Visual Studio
▪ Дизайнер Entity Framework и его расширение
▪ T4 трансформации
История
XperiAndri © 2015
Какие в ASP.NET есть системы аутентификации?
▪ ASP.NET Membership
▪ ASP.NET Identity
XperiAndri © 2015
Какая была проблема с ASP.NET Membership?
XperiAndri © 2015
XperiAndri © 2015
ASP.NET IdentityМодель данных
XperiAndri © 2015
Entity Framework
Code First
▪ Не люблю писать то, что может быть сгенерировано
Model First / Database First
▪ Дизайнер – это счастье
▪ SSDT
XperiAndri © 2015
ДемоASP.NET Identity Database
Project Templates и Item Templates
XperiAndri © 2015
XperiAndri © 2015
Шаблоны бывают
XperiAndri © 2015
Где Project Templates и Item Templates
▪ В папках▪ C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE
▪ C:\Users\<пользователь>\Documents\Visual Studio 2015\Templates
▪ В расширениях▪ C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\
IDE\Extensions
▪ C:\Users\<пользователь>\AppData\Local\Microsoft\VisualStudio\14.0\Extensions
ДемоШаблоны проекта и элемента проекта
Проект создали…Что дальше?
ASP.NET Identity Entity Model
XperiAndri © 2015
ASP.NET Identity требует!
XperiAndri © 2015
Зачем нам тогда комп?
Entity Framework же это как-то сам делает!
Трансформации T4
XperiAndri © 2015
Простые шаблоны
XperiAndri © 2015
T4
▪ <#@ #> – директива
▪ <#= #> – вывод в файл
▪ <# #> – код на C# или Visual Basic
▪ T4 Include
XperiAndri © 2015
CSharpDbContext.Context.tt
XperiAndri © 2015
CSharpDbContext.Types.tt
XperiAndri © 2015
Стандартные переменные шаблонаПараметр Описаниеclrversion GUID [1-10] 10 уникальных GUID’овitemname Имя из диалогового окна Add New Itemmachinename projectname Имя из диалогового окна New Projectregisteredorganization Значение из HKLM\Software\Microsoft\Windows NT\CurrentVersion\RegisteredOrganizationrootnamespace Корневое пространство имён. Только для шаблона элемента
safeitemname Имя из диалогового окна Add New Item с удалёнными небезопасными символами и пробелами
safeprojectname Имя из диалогового окна New Project с удалёнными небезопасными символами и пробелами
time Текущие дата время в формате DD/MM/YYYY 00:00:00.
SpecificSolutionName Имя решения. Когда "create solution directory", SpecificSolutionName = имя решения. Когда не "create solution directory" SpecificSolutionName = пустая строка
userdomain username webnamespace Имя текущего веб-сайтаyear Текущий год в формате YYYY
XperiAndri © 2015
Моя трансформация
XperiAndri © 2015
Автоматическое подключение NuGet
XperiAndri © 2015
XperiAndri © 2015
XperiAndri © 2015
Описание моего шаблона элемента
Есть проблемка…Откуда шаблон будет знать где User, где Role, где Claim, а где Identity?
Нужно что-то делать с моделью!
Сущности ASP.NET Identity Entity
XperiAndri © 2015
Структура модели
XperiAndri © 2015
Структура концептуальной модели
Расширение дизайнера Entity Framework
XperiAndri © 2015
XperiAndri © 2015
ДемоEF Designer Extension Starter Kit
XperiAndri © 2015
Experimental Instance
▪ "C:\Users\Андрій\AppData\Local\Microsoft\VisualStudio\12.0Exp“
▪ "C:\Users\Андрій\AppData\Local\Microsoft\VisualStudio\14.0Exp"
XperiAndri © 2015
Мои расширения концептуальной модели
ДемоРасширение модели
ASP.NET Identity tools for Entity Framework modelМоё первое расширение для Visual Studio
Присоединяйтесь к разработкеhttps://github.com/xperiandri/Asp.Net-Identity-Tools-for-Entity-Framework-model
XperiAndri © 2015
Спасибо за внимание
XperiAndri © 2015
Андрей Чебукин
XperiAndri
▪ Блогhttp://xperiandri.azurewebsites.net/
▪ GitHubhttps://github.com/xperiandri/
▪ Профили в соц. сетяхwww.fb.com/xperiandri www.vk.com/xperiandri
▪ YouTubehttps://www.youtube.com/user/andriicsharp/videos