Top Banner
ASP.NET Identity tools for Entity Framework model
49

WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"

Aug 12, 2015

Download

Technology

GeeksLab
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"

ASP.NET Identity tools for Entity Framework model

Page 2: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"

Андрей Чебукин

▪ The Secret Circle Solutions

▪ Windows Phone, Windows 8

▪ Unity 3D

▪ Microsoft Azure

▪ F#

▪ CMS, Ruby

▪ ШАГ

▪ C#

▪ Windows Forms

▪ WPF

▪ ADO.NET

Основатель The Secret Circle Solutions

Преподаватель КА «ШАГ»

Студент-партнёр Microsoft

MCSD по Windows 8

Page 3: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"

О чём поговорим

▪ Шаблоны проектов и элементов проекта в Visual Studio

▪ Дизайнер Entity Framework и его расширение

▪ T4 трансформации

Page 4: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"

История

Page 5: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"

Какие в ASP.NET есть системы аутентификации?

▪ ASP.NET Membership

▪ ASP.NET Identity

Page 6: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"

Какая была проблема с ASP.NET Membership?

Page 7: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"
Page 8: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"

ASP.NET Identity

Модель данных

Page 9: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"

Entity Framework

Code First

▪ Не люблю писать то, что может быть сгенерировано

Model First / Database First

▪ Дизайнер – это счастье

▪ SSDT

Page 10: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"
Page 11: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"

ДемоASP.NET Identity Database

Page 12: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"

Project Templates и Item Templates

Page 13: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"
Page 14: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"

Шаблоны бывают

Page 15: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"

Где 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

Page 16: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"

ДемоШаблоны проекта и элемента проекта

Page 17: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"

Проект создали…Что дальше?

Page 18: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"

ASP.NET Identity Entity Model

Page 19: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"

ASP.NET Identity требует!

Page 20: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"
Page 21: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"

Зачем нам тогда комп?

Page 22: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"

Entity Framework же это как-то сам делает!

Page 23: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"

Трансформации T4

Page 24: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"

Простые шаблоны

Page 25: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"

T4

▪ <#@ #> – директива

▪ <#= #> – вывод в файл

▪ <# #> – код на C# или Visual Basic

▪ T4 Include

Page 26: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"

CSharpDbContext.Context.tt

Page 27: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"

CSharpDbContext.Types.tt

Page 28: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"

Стандартные переменные шаблонаПараметр Описание

clrversion

GUID [1-10] 10 уникальных GUID’ов

itemname Имя из диалогового окна Add New Item

machinename

projectname Имя из диалогового окна New Project

registeredorganization Значение из HKLM\Software\Microsoft\Windows NT\CurrentVersion\RegisteredOrganization

rootnamespace Корневое пространство имён. Только для шаблона элемента

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

Page 29: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"

Моя трансформация

Page 30: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"

Автоматическое подключение NuGet

Page 31: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"
Page 32: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"
Page 33: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"

Описание моего шаблона элемента

Page 34: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"

Есть проблемка…Откуда шаблон будет знать где User, где Role, где Claim, а где Identity?

Page 35: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"

Нужно что-то делать с моделью!

Page 36: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"

Сущности ASP.NET Identity Entity

Page 37: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"

Структура модели

Page 38: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"

Структура концептуальной модели

Page 39: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"

Расширение дизайнера Entity Framework

Page 40: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"
Page 41: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"
Page 42: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"

ДемоEF Designer Extension Starter Kit

Page 43: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"

Experimental Instance

▪ "C:\Users\Андрій\AppData\Local\Microsoft\VisualStudio\12.0Exp“

▪ "C:\Users\Андрій\AppData\Local\Microsoft\VisualStudio\14.0Exp"

Page 44: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"

Мои расширения концептуальной модели

Page 45: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"

ДемоРасширение модели

Page 46: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"

ASP.NET Identity tools for Entity Framework modelМоё первое расширение для Visual Studio

Page 47: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"

Присоединяйтесь к разработкеhttps://github.com/xperiandri/Asp.Net-Identity-Tools-for-Entity-Framework-model

Page 48: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"

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

Page 49: WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0 используя Entity Model теперь проще простого"

Андрей Чебукин

XperiAndri

▪ Блогhttp://xperiandri.azurewebsites.net/

▪ GitHubhttps://github.com/xperiandri/

▪ Профили в соц. сетяхwww.fb.com/xperiandriwww.vk.com/xperiandri

▪ YouTubehttps://www.youtube.com/user/andriicsharp/videos