[ASP.NET MVC] 1. ASP.NET ์๊ฐ - .net Framework, .net Core https://www.youtube.com/watch?v=Y_X4A0P06Os
[ASP.NET MVC] 2. ASP.NET MVC Core ํ๋ก์ ํธ ๋ง๋ค๊ธฐ https://www.youtube.com/watch?v=mMIkH6T3euA
[ASP.NET MVC] 3. _Layout https://www.youtube.com/watch?v=86ehigeqri8
[ASP.NET MVC] 4. Razor Syntax https://www.youtube.com/watch?v=GRHy0FgrJrw
[ASP.NET MVC] 5. Controller์์ View๋ก ๋ฐ์ดํฐ ์ ๋ฌํ๊ธฐ https://www.youtube.com/watch?v=TTQW2ou3w7c
[ASP.NET MVC] 6. EntityFramework Core ์๊ฐ ๋ฐ MS SQL Server https://www.youtube.com/watch?v=7PTFfqov1wY
[ASP.NET MVC] 7. EntityFramework Core๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฑํ๊ธฐ https://www.youtube.com/watch?v=MNmcTeEv07A
[ASP.NET MVC] 8. ํ์๊ฐ์ ๊ธฐ๋ฅ ๋ง๋ค๊ธฐ https://www.youtube.com/watch?v=negMazMl7WQ
[ASP.NET MVC] 9. Visual Studio 2017 ์ค์น ๋ฐ 2015 ํ๋ก์ ํธ ์ ๊ทธ๋ ์ด๋ https://www.youtube.com/watch?v=tyx4Vyj5a_U
[ASP.NET MVC] 10. ๋ก๊ทธ์ธ ์ ๋ ฅ Form ๋ง๋ค๊ธฐ https://www.youtube.com/watch?v=492E2t0gxEg
[ASP.NET MVC] 11. ๋ก๊ทธ์ธ, ๋ก๊ทธ์คํ ๊ธฐ๋ฅ ๋ง๋ค๊ธฐ https://www.youtube.com/watch?v=G5AxF9pt4Pw
[ASP.NET MVC] 12. ๊ฒ์ํ ๋ฆฌ์คํธ ์ถ๋ ฅํ๊ธฐ https://www.youtube.com/watch?v=ryf9ikInHsQ
[ASP.NET MVC] 13. ๊ฒ์๋ฌผ ์ถ๊ฐํ๊ธฐ https://www.youtube.com/watch?v=6wA9Ilhj6sA
[ASP.NET MVC] 14. ๊ฒ์๋ฌผ ์์ธ๋ณด๊ธฐ ํ์ด์ง ๋ง๋ค๊ธฐ https://www.youtube.com/watch?v=CbnoRYXgw0c
[ASP.NET MVC] 15. ์๋ฐ์คํฌ๋ฆฝํธ ํ ์คํธ ์๋ํฐ ์ ์ฉํ๊ธฐ (feat. Trumbowyg) https://www.youtube.com/watch?v=oOFNh0KM7kU
[ASP.NET MVC] 16. ์๋ฐ์คํฌ๋ฆฝํธ ํ ์คํธ ์๋ํฐ ์ด๋ฏธ์ง ์ ๋ก๋ https://www.youtube.com/watch?v=7cKA-lEqDjM
[ASP.NET MVC] 17. Enterprise Architecture ํ๋ก์ ํธ ๊ตฌ์ฑํ๊ธฐ https://www.youtube.com/watch?v=dKvCZUec100
[ASP.NET MVC] 18. Dependency Injection, IoC Container ์ฌ์ฉํ๊ธฐ https://www.youtube.com/watch?v=GWgXbQEOi9Y
[ASP.NET MVC] 19. MVC5์์ Unity Container๋ฅผ ์ด์ฉํ Dependency Injection https://www.youtube.com/watch?v=ac-IQsmaY3M
[ASP.NET MVC] 20. appsettings.json๋ฅผ ํตํ ConnectionString ์ฒ๋ฆฌํ๊ธฐ https://www.youtube.com/watch?v=UACohTbIfpM
[ASP.NET MVC] 21. async, await ๋น๋๊ธฐ ์ฒ๋ฆฌ ํ๋ก๊ทธ๋๋ฐ ๊ตฌํํ๊ธฐ https://www.youtube.com/watch?v=T-XskK2kBmg
[ASP.NET MVC] 22. ASP.NET Core Identity ์๊ฐ https://www.youtube.com/watch?v=t9ApesVOalw
[ASP.NET MVC] 23. Identity ์์ฑ ํ ์ด๋ธ PK ํ์ ๋ณ๊ฒฝํ๊ธฐ https://www.youtube.com/watch?v=JnA29XdZnxg
[ASP.NET MVC] 24. ASP.NET Core Identity ๋ชจ๋ธ ํด๋์ค ์ค๋ช https://www.youtube.com/watch?v=DW7Sl9Q6HBA
[ASP.NET MVC] 25. AccountController ์์ค์ฝ๋ ๋ถ์ํ๊ธฐ https://www.youtube.com/watch?v=_GZHPPdM3OQ
Chapter 6
ASP.NET MVC
C# DB ํต์
ADO.NET -Winform, Classic ASP
Enterprise Library 5
- ์ฟผ๋ฆฌ๋ฌธ์ ์ง์ ์์ฑ -> ๊ฐ์ ์ฒ๋ฆฌ
- Logging
๋จ์ : 1,2์ ๊ฒฝ์ฐ์ฟผ๋ฆฌ๋ฌธ์ ์ง์ ์์ฑ์ผ๋ก ์ค๋ฅ ๋ฐ์์ ์์ง๊ฐ ๋์.
#ORM
- Java JPA๋ฅผ ๊ธฐ์ค์ผ๋ก ํ์ด๋ฒ๋ค์ดํธ
- C# EntityFramework 1.0 ~ 7.0 Mapper
#๊ฒ์ํ ํ๋ก์ ํธ ์ค๋น๋ฌผ : Asp.net MVC, MS SQL, EntityFramework
EntityFramework 1.0 ~ 6.0๊น์ง๋ .net Framework (ํ๋ท๋ท)์ ์ฌ์ฉ ASP.NET Core๋ 7.0๋ถํฐ EntityFramework Core
ASP.NET Core 1.x EntityFramework Core 1.1
# ๊ฐ๋ฐ๋ฐฉ์ EntityFramework
- Database First ๋ฐฉ์
- Database DBA(๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ์)
- ์ค๊ณ ์๋ฃ, ๋ฌผ๋ฆฌ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ชจ๋ ์์ฑ๋ ์ํ. => Database ๊ธฐ์ค์ผ๋ก Appication ๊ฐ๋ฐ
- Code First ๋ฐฉ์
- Database ๊ธฐ์ค์ผ๋ก Appication ๊ฐ๋ฐ ์ญ์ผ๋ก => Code -> Database ์์ฑํด Appication ๊ฐ๋ฐ
MS SQL 2014, 2016
- SQL ์์ง
- Management Studio 14, 16
MySQL ๊ณผ ๋น๊ต 1)MySQL ์์ง 2)Workbench
# MS SQL SA ๋น๋ฐ๋ฒํธ ์ค์ ์ด์
- Web Server์ SQL Server๊ฐ ๋ค๋ฅธ ์ปดํจํฐ์ผ ๊ฒฝ์ฐ http://db.example.com:1433
Chapter 7
ASP.NET MVC
# 1. ํ๋ ์์ํฌ ์ ๊ทธ๋ ์ด๋
-ASP.NET MVC Core 1.1 (##NuGetPackage์์ ์ ๋ฐ์ดํธ, www.nuget.org ,๋ฉ์ด๋ธ๋ฆฌํ์งํ ๋ฆฌ์ ๋น์ท https://mvnrepository.com/)
# 2. EntityFramework Core ์ค์น ( ##Microsoft.EntityFramework core, Microsoft.EntityFramework core.Server, Microsoft.EntityFramework core.Tools ์ค์น)
CodeFirst ๋ฐฉ์์ผ๋ก Model Class -> DBContext -> ์ค์ ํ ์ด๋ธ์ ์์ฑ
User ๋ชจ๋ธ -> ์ฌ์ฉ์ Note ๋ชจ๋ธ _> ๊ฒ์ํ
User ์ฌ์ฉ์ ๋ฒํธ(PK) ์ฌ์ฉ์ ์ด๋ฆ ์ฌ์ฉ์ ID ์ฌ์ฉ์ Password
Note ๊ฒ์๋ฌผ ๋ฒํธ(PK) ๊ฒ์๋ฌผ ์ ๋ชฉ ๊ฒ์๋ฌผ ๋ด์ฉ ์์ฑ์ (์ซ์ - ์ฌ์ฉ์๋ฒํธ)
# 3. DBContext ์์ฑ -> Table ์์ฑํ ์ ์๋ ์ฝ๋๋ฅผ ์์ฑ.
(##DataContext๋ง๋ฆ)
1.
public class AspnetNoteDbContext : DbContext
{
public DbSet
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { base.OnConfiguring(optionsBuilder); }
connectionstring https://www.connectionstrings.com/sql-server/
๋น์ฃผ์ผ์คํ๋์ค์ ์๋จ ๋ณด๊ธฐ >Server Explorer ์ฌ์ฉํด์ Data Source=(localdb)\v11.0;Initial Catalog=master;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False
๋ณด๊ธฐ > ๋ค๋ฅธ ์ฐฝ > ํจํค์ง ๊ด๋ฆฌ์ ์ฝ์ add-migration FirstMigration update-database
# 4. DBContext -> ์ค์ ํ ์ด๋ธ์ ์์ฑ
xml์ฃผ์ ์ฌ์ฉ๋ฐฉ๋ฒ /// ctrl + ์, ์๋ using ๋ฌธ์์ ctrl + . ์ฌ์ฉํ์ง ์๋ ๊ฒ์ ์ ๊ฑฐ ํด๋์ค ์กฐ์ธ๋ฐฉ๋ฒ public virtual, virtual์ ๊ถ์ฅํจ
chapter 8
์ฌ์ฉ์ ๋ก๊ทธ์ธ, ํ์๊ฐ์
ํ์๊ฐ์ -> ์ฌ์ฉ์ ์ ๋ณด ์ ๋ ฅ -> DB ์ ์ฅ.
๋ก๊ทธ์ธ -> ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์ ๋ ฅ -> ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ๋ณด์
spring security ์์ ์ ๊ฐ์ ๊ฒ
ASP.NET Identity(Securiry) -์ฌ์ฉ์ ๋ก๊ทธ์ธ(์ธ์ฆ) -์ฌ์ฉ์ Role(Admin,User,Poweruser) -SMS ์ธ์ฆ, Email ์ธ์ฆ
Session ์ด์ฉํ ๋ก๊ทธ์ธ, ํ์๊ฐ์ ๊ตฌํ
๋ก๊ทธ์ธ 2๊ฐ์ง ๋ฐฉ๋ฒ๋ก .
# 1. Session
-์น ์๋ฒ๊ฐ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ๋ด์๋์ ๋ณด์์ฑ์ด ๋๋ค.(์ฅ์ ) -์น ์๋ฒ ๋ฉ๋ชจ๋ฆฌ ๋ถํ๊ฐ ๋์์ง๋ค.(๋จ์ )
# 2. Cookie
-์น ์๋ฒ ๋ก๊ทธ์ธ -> ์ฌ์ฉ์ ์ ๋ณด -> ๋ธ๋ผ์ฐ์ ์ ๋ฌ -> ์ฟ ํค๋ก ์ ์ฅ -์น ์๋ฒ์ ๋ถํ๊ฐ ๋ฎ์์ง๋ค.(์ฅ์ ) -๋ณด์์ฑ์ด ๋ฎ์์ง๋ค.(๋จ์ )
# ๊ฒฐ๋ก : Cookie
-Cookie๋ฅผ ์ํธํ -> ๋ณตํธํ / ์๋ณ์กฐ์ ์ํ -SSL์ธ์ฆ์๋ฅผ ์ฌ์ฉํ์ฌ ์๋ณ์กฐ์ ์ํ์ ๋ง์
# SSL
- ์ ๋ฃ 100๋ง์ 20๋ง์ (๋งค๋ ), ๋ฌด๋ฃ
GET : DB์์ ๋ฐ์ http://www.example.com/api/GetBookList?bookNo=1
POST : DB์ ์ ๋ฌ http://www.example.com/PostUser
AccountController.cs Register.cshtml
Chapter 9
.net core 2๊ฐ์ง ํธ๋
# 1. LST (Long Term Suprot)
๋๋ฆฌ๊ฒ ์ ๊ทธ๋ ์ด๋ .net core ------------1------------1------------1------------1------------1
# 2. Current
๋น ๋ฅธ ์ ๊ทธ๋ ์ด๋ .net core ----1----1----1----1----1----1----1----1----1
Chapter 10
๋ก๊ทธ์ธ
Linq, ๋งค์๋ ์ฒด์ด๋ https://docs.microsoft.com/ko-kr/dotnet/csharp/linq/
๋๋ค์์์ A Go to B u => u
๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ๋ฐฉ์งํ๊ธฐ์ํด์ == ์ฌ์ฉํ์ง ์๊ธฐ //var user = db.Users.FirstOrDefault(u=>u.UserId == model.UserId && u.UserPassword == model.UserPassword); var user = db.Users.FirstOrDefault(u => u.UserId.Equals(model.UserId) && u.UserPassword.Equals(model.UserPassword));
# ๋ก๊ทธ์ธ์ Validation Required๊ฐ ๋ค์์ด์ผ ๋๋ฏ๋ก ์์ด์ ์ธ์ฆ์ด ์๋จ
Model => ๊ธฐ๋ณธ ์ํฐํฐ ํด๋์ค
User -> UserNo -> UserName ID,Password
ViewModel -> ๋ทฐ(View)๋ฅผ ์ํ ๋ชจ๋ธ MVC(Model,View, Controller) WPF(MVVM)
# ModelState ์ํ ๋ฉ์์ง ๋ณด๊ธฐ
asp.net core asp-validation-summary
https://docs.microsoft.com/ko-kr/aspnet/core/tutorials/first-mvc-app/validation?view=aspnetcore-2.1
Chapter 11
# NuGet Package -> Microsoft.AspNetCore.Session ์ค์น
ASP.NET MVC -> IIS(์น์๋ฒ) = ์ํ์น -WebAPI ์์ถ๊ธฐ๋ฅ ์ด์ฉ์ ๋๋ค ์ค์ ํด์ค์ผํจ
ASP.NET Core -> ๋ฆฌ๋ ์ค, ์๋์ฐ, MacOS
# Startup.cs ์์ ๋ฏธ๋ค์จ์ด ํํ๋ก ์ฌ์ฉ
services.AddSession();
app.UseSession();
๋ก๊ทธ์์ ์ ์ธ์ ์์ ์ง์
Chapter 12
๊ฒ์ํ ๋ฆฌ์คํธ ์ถ๋ ฅ
์ํธ+ ์ฌํํธ ์๋ ์ฌํํธ + delete
Chapter 13
๊ฒ์๋ฌผ
๋ก์ฐ 12๊ฐ ์ค์ col-lg-4ํด์3๋ฑ๋ถ
asp.net core HttpContext.Session
https://benjii.me/2016/07/using-sessions-and-httpcontext-in-aspnetcore-and-mvc-core/
Chapter 14
๊ฒ์๋ฌผ ์์ธ๋ณด๊ธฐ ํ์ด์ง ๋ง๋ค๊ธฐ
http://www.example.com http://www.example.com/{noteNo} http://www.example.com/Note/Detail?noteNo=1
# Trumbowyg ์๋ฐ์คํฌ๋ฆฝํธ ์๋ํฐ
github javascript editor
https://alex-d.github.io/Trumbowyg/?utm_source=tool.lu
https://summernote.org/
Chapter 15
NPM Node Package Manager
Node.js
# bower
ํ๋ก ํธ์๋ ํจํค์ง ๋งค๋์
CLI (Command Line Interface)
trumbowyg ์ฌ์ฉ
https://alex-d.github.io/Trumbowyg/documentation/
Superscript: ์์ฒจ์
Chapter 16
์๋ฐ์คํฌ๋ฆฝํธ ํ ์คํธ ์๋์ด ์ด๋ฏธ์ง ์ ๋ก๋
ctor ํญ 2๋ฒ
@๊ธฐํธ๋ก ์ด๊ฑฐ๋ฅผ ๊ทธ๋๋ก ์ธ์ํ๋๋ก http://ko.cppreference.com/w/cpp/language/escape
@๊ธฐํธ๋ก ์ด๊ฑฐ๋ฅผ ๊ทธ๋๋ก ์ธ์ํ๋๋ก
trumbowyg.upload.js์ ํ์ผ ์์
serverPath fileFieldName
https://alex-d.github.io/Trumbowyg/?utm_source=tool.lu
์ฌ์ ์
ํ๊ธ๋ณํ
# ๋น๋๊ธฐ์ ์ฒ๋ฆฌํ๋ Async
# https://docs.microsoft.com/en-us/aspnet/core/security/authentication/identity?view=aspnetcore-2.1&tabs=visual-studio%2Caspnetcore2x
Chapter 17
Enterprise Architecture c#
# Enterprise Architecture
- ๋ํ ์๋ฃจ์ , ํ๋ก๊ทธ๋จ ๊ฐ๋ฐํ ๋ ์ฌ์ฉํ๋ ํ๋ก์ ํธ ๊ตฌ์ฑ ๋ฐฉ์ - ํฐ ํ์ ๊ตฌ์ฑ 2. ๋ค์ํ ํ๋ซํผ์ ์ง์ํ๋ ์ฌ์ฌ์ฉ์ฑ์ด ๋์ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐฉ์
Presentation Layer : WPF, WinForm
Business Layer : Validation Check
Cache -๋ชฉ์ : ์์ฃผ ๋ถ๋ฌ์ค๋ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ๋ด์์ ์ถ๋ ฅํ๋ ๊ฒ -์ฅ์ : ์ปดํจํ ๋น์ฉ ๊ฐ์, ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํ๋ ์๋๊ฐ ์ฆ๊ฐ -๋จ์ : ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ง์ด ํ์๋ก ํ๊ฒ ๋จ
Data Access Layer : DB์ ์ ๊ทผ
# Class Library๋ฅผ ์ฌ์ฉํ์ฌ Business, Data Access layer๋ฅผ ๋ง๋ฆ
# DLL
# ํด๋์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ข ๋ฅ
- .net Framework
- .net core
- .net Framework(portable) -Xamarin
- .net Standard
ASP.NET ๋ท๋ท ํ๋ ์์ํฌ ํ๋ก์ ํธ์ด๊ณ data ํด๋์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ (๋ท๋ท ์ฝ์ด) ์ด๋ฉด ์ ๊ทผ์ด ์๋๋ ๊ฒฝ์ฐ๋ ์์
# .NET STANDARD๋ก ํตํฉ
IDataAccessLayer
# ๊ฐ Tier ๋ณ๋ก ์ ๊ทผ ์์
ํด๋ผ์ด์ธํธ ๋ฒํผ -> ASP.NET MVC ๋ฆฌ์คํธ ์ถ๋ ฅ ํธ์ถ -> BLL -> IDAL -> DAL ( -> BLL -> MVC )
์ค๋ผํด๋ก ๋ณ๊ฒฝ์์๋ Oracle.DAL ๋ง ๋ฐ๊ฟ
Chapter 18
์์กด์ฑ ์ฃผ์ (Dependency Injection):
ํ๋ก๊ทธ๋๋ฐ์์ ๊ตฌ์ฑ์์๊ฐ์ ์์กด ๊ด๊ณ๊ฐ ์์ค์ฝ๋ ๋ด๋ถ๊ฐ ์๋ ์ธ๋ถ์ ์ค์ ํ์ผ ๋ฑ์ ํตํด ์ ์๋๊ฒ ํ๋ ๋์์ธ ํจํด
์ ์ด๋ฐ์
IoC (Inversion of Control)
ํ๋ก๊ทธ๋๋จธ๊ฐ ์์ฑํ ํ๋ก๊ทธ๋จ์ด ์ฌ์ฌ์ฉ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋ฆ์ ์ด๋ฅผ ๋ฐ๊ฒ๋๋ ์ํํธ์จ์ด ๋์์ธ ํจํด์ ๋งํ๋ค.
IoC Container
๊ฐ์ฒด๋ฅผ ํ๋ ์์ํฌ์์ ๊ฐ์ ์ ์ผ๋ก ์์ฑ, ์๋ฉธ ์์ผ์ฃผ๋ ์ปจํ ์ด๋๋ฅผ ๋ปํจ.
# MVC 6 - ์์กด์ฑ ์ฃผ์ ์ ํ ์ ์๋ 3๊ฐ์ง.
- services.AddSingleton
(); - ์น์ฌ์ดํธ๊ฐ ์์ํ๋ฉด ์น์ฌ์ดํธ๊ฐ ์ข ๋ฃ๋ ๋๊น์ง ๋ฉ๋ชจ๋ฆฌ ์์ ์ ์ง๋๋ ๊ฐ์ฒด ์ฃผ์ - services.AddScoped
(); - ์น์ฌ์ดํธ๊ฐ ์์๋์ด 1๋ฒ์ ์์ฒญ์ด ์์ ๋ ๋ฉ๋ชจ๋ฆฌ ์์ ์ ์ง๋๋ ๊ฐ์ฒด ์ฃผ์ - services.AddTransient
(); - ์น์ฌ์ดํธ๊ฐ ์์๋์ด ๊ฐ ์์ฒญ๋ง๋ค ์๋กญ๊ฒ ์์ฑ๋๋ ๊ฐ์ฒด ์ฃผ์
# ์ฑ๊ธํด ํจํด
https://ko.wikipedia.org/wiki/%EC%8B%B1%EA%B8%80%ED%84%B4_%ED%8C%A8%ED%84%B4
http://jusungpark.tistory.com/16
1๋ฒ ์ฌ์ฉ์ -> UserBll ์ฌ์ฉํ๋ฉด ๊ณ์ ๋จ์ ์์
#AddScoped https://docs.microsoft.com/ko-kr/aspnet/core/fundamentals/dependency-injection?view=aspnetcore-2.1
Chapter 19
# Unity Container
https://docs.microsoft.com/en-us/previous-versions/msp-n-p/ff647202(v=pandp.10)
# ioc Container c#
๋๊ฒํจํค์ง ์ค์น Unity.Mvc
์ฝํธ๋กค + home ๋๋ฅด๋ฉด ๋งจ์๋ก ์ฌ๋ผ๊ฐ ์ฝํธ๋กค + tab ์ฝํธ๋กค + ์ ์๋ ํญ์ ํ ๋๋ฅด๋ฉด ๋ซํ
Chapter 20
appsettings.json์ ํตํ ConnecitionString ์ฒ๋ฆฌ
๋ฆฌ์ตํผ์ฌ์ฉํ๋ฉด interface ์ํ๋ ์์๋ก ๋ฐ๊ฟ์์์
# DataAccessLayer์์ ๋๊ฒํจํค์ง ๋๊ฐ ์ถ๊ฐ
Microsoft.EntityFrameworkCore Microsoft.EntityFrameworkCore.SqlServer
# connectionstring
https://www.connectionstrings.com/sql-server/
# ํจํค์ง ๋งค๋์ ์ฝ์์์ ๊ธฐ๋ณธํ๋ก์ ํธ๋ Note.DAL๋ก
# ๋๊ฒ ํจํค์ง Microsoft.EntityFrameworkCore.Tools
add-migration NoteDb update-database
# connectionstring์์น๋ฅผ appsettings.json์ ์ ๋ ฅ
Startupp.cs
Chapter 21
# ์ค๋ ๋
https://ko.wikipedia.org/wiki/%EC%8A%A4%EB%A0%88%EB%93%9C_(%EC%BB%B4%ED%93%A8%ED%8C%85)
# Winform, WPF
Thread
1.UI Thread 2.Background Thread
-for, foreach, ํ์ผ์ ์ถ๋ ฅ
# ๋๊ธฐ์ ํ๋ก๊ทธ๋๋ฐ
Method1(); 3์ด Method2(); 3์ด Method3(); 3์ด
- ์ด 9์ด ์์
# ๋น๋๊ธฐ์ ํ๋ก๊ทธ๋๋ฐ
Method1(); 3์ด Method2(); 3์ด Method3(); 3์ด
- ์ด 3์ด ์์
C# ๋น๋๊ธฐ์ ํ๋ก๊ทธ๋๋ฐ์ ์ํ ํค์๋
- async, await, Task, Task
- C# 5.0 , ๋ท๋ท ํ๋ ์์ํฌ 4.5
# ํ ์คํธ ๋ฐฉ๋ฒ - ์ ํต์ ์ธ ๋ฐฉ์
Stopwatch watch = new Stopwatch();
watch.Start();
var test1 = Test1Async();
var test2 = Test2Async();
var test3 = Test3Async();
var result1 = await test1;
var result2 = await test2;
var result3 = await test3;
watch.Stop();
var result = watch.ElapsedMilliseconds;
# ํ ์คํธ ๋ฐฉ๋ฒ - ์๋ก์ด ๋ฐฉ์ Visual Studio Diagonositcs Tools
# ๋น๋๊ธฐ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ ๊ฒ์ด ๊ณผ์ฐ ์ฑ๋ฅ์ ์ข์์ง ๊ฒ ์ผ๊น?
์ฑ๋ฅ์ ์ข์์ง ๊ฒ์ด ์๋๋ผ ๋จ๋ ๊ฒ์ ์ฌ์ฉํ๋ ๊ฒ
Ctrl + mm ๋๋ฅด๋ฉด ์ต์ํ๋จ
Chapter 22
# ASP.NET Core Identity
- ๋ก๊ทธ์ธ, ๋ก๊ทธ์์, ๊ฐ๋ณ ์ธ์ฆ(๊ด๋ฆฌ์, ์ผ๋ฐ์ฌ์ฉ์)
- ์ผ๋ฐ ์ฌ์ฉ์(๋์ด๊ฐ 19์ธ ์ด์)
# Identity ํ ์ด๋ธ ๊ตฌ์กฐ
- dbo.AspNetUsers => ApplicationUser (์ ์ ํด๋์ค)
- ID, ๋น๋ฐ๋ฒํธ, ์ฌ์ฉ์ ์ด๋ฆ
- dbo.AspNetRoles => ApplicationRole (๋ฃฐ ํด๋์ค)
- ์ด ์น์ฌ์ดํธ์ ํ์ ๋ถ๋ฅ
- ์ํผ ๊ด๋ฆฌ์, ๊ด๋ฆฌ์, ํน๋ณ ์ฌ์ฉ์ , ์ผ๋ฐ ์ฌ์ฉ์
- dbo.AspNetUserRoles =>
- 1๋ฒ ์ฌ์ฉ์(PK 1) -> ๊ด๋ฆฌ์(1)
- 2๋ฒ ์ฌ์ฉ์(PK 2) -> ์ผ๋ฐ ์ฌ์ฉ์(4)
- dbo.AspNetClaims => 5๋ช ์ ์ฌ์ฉ์ -> ์ผ๋ฐ ์ฌ์ฉ์(Role)
- 2๋ช
์ด ๋์ด 20์ธ ๋ฏธ๋ง -> 20์ธ ๋ฏธ๋ง์ ํน์ ๊ฒ์ํ ์ง์
๊ธ์ง Age 20
[HttpGet, Authorize(Claims ... Age >20]
- dbo.AspNetRoleClaims =>
- ๊ด๋ฆฌ์ - 1๋ฑ, 2๋ฑ, 3๋ฑ
__EFMigrationsHistory ๋ ๋ง์ด๊ทธ๋ ์ด์ ์ด๋ ฅ๊ด๋ฆฌ
dbo.AspNetUserLogins => ์ธ๋ถ๋ก๊ทธ์ธ Oauth1.0 / 2.0
dbo.AspNetUserTokens => ์ธ๋ถ๋ก๊ทธ์ธ ๊ด๋ จ
Chapter 23
Identity ์์ฑ ํ ์ด๋ธ PK ํ์ ๋ณ๊ฒฝํ๊ธฐ
# ApplicationDbContext ์ค๋ช
#
์ ๊ฐ์ ๊ฒฝ์ฐ๋ AccountController ๋ ManageController๋ถ๋ถ์ ๋ฉ์ผ๋ฐ์ก๋ถ๋ถ user.Id ์ด๊ฒ ์ซ์ํ์ผ๋ก ๋ณ๊ฒฝ๋์ด์ .ToString() ํด์ ํด๊ฒฐํ๊ณ startup.cs. ๋ services.AddIdentity<ApplicationUser, ApplicationRole>() .AddEntityFrameworkStores
https://docs.microsoft.com/en-us/aspnet/core/security/authentication/identity-primary-key-configuration?tabs=aspnetcore2x&view=aspnetcore-2.1
โ - wpf - education โ