Расширение Visual studio для ASP.NET Identity

Post on 06-Aug-2015

68 views 0 download

Tags:

Transcript of Расширение Visual studio для ASP.NET Identity

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