no image
05-1 MSSQL - ASP.NET CORE 연동
local 접속 후 데이터베이스 계정 로그인 안 될 때 -> hannom.tistory.com/195 참고 using System.Data.SqlClient; using System.Data; // using 등록해야 할 것들 public IActionResult TicketList() { var dt = new DataTable(); // 다른 곳에서 참조가 되면 남아 있을 수 있기 때문에 명시적으로 코딩 하는 게 좋음 (using) using (var conn = new SqlConnection("Server=DESKTOP-2H5KO6N\\SQLEXPRESS;Database = myweb;User ID = sa;password = sa1234")) { conn.Open(); #region [sql 구..
2021.03.05
no image
05 - Database 연동
1. why use Database - 모든 데이터는 메모리에서 적재되어 이용됨 - 웹서버 생명주기 모델에 따라 대부분의 경우 Response 후 제거 - TempData, Cache 등으로 생명주기를 늘릴 수 있으나, 웹서버 종료 시 삭제됨 2. 영속성(Persistence) - 메모리가 아닌 별도의 저장공간을 이용하여, 영구적인 저장을 가능하도록 함 - 영속성이라는 의미는 데이터의 불변성이 아님 - 즉, 서버를 껐다 켜도 데이터가 살아 있느냐를 생각해 보면 된다. (웹서버 IIS나 Tomcat 같은 것) 데이터 베이스 서버 (Maria DB, oracle, MSSQL... ) RDBMS 3. MariaDb - License 문제에서 자유로움 - MS-SQL Express 또는 Oracle XE 가 있..
2021.03.04
04 - Layout 구성
1. HTML, CSS, Javascript - HTML: 화면을 구성함 - CSS: 화면 디자인을 구성 - Javascript: 클라이언트 프로그램 2. Bootstrap4 - CSS, javascript - 4.x까지는 jquery 기반 - 5.x 부터 독립 3. Free template - Bootstrap4 기반으로 만들어진 오픈소스 템플릿 - License 확인 필수 -> MIT 라이선스로 사용 추천 - site:github.com bootstrap4 free templete 4. Layout 구성과 ViewComponent - Layout.cshtml 에 기본 레이아웃 넣기 - Body 로 들어가야 할 부분 분리 - 메뉴바와 같이 상황에 따라 별도로 처리해야 하는 부분은 ViewComponen..
2021.03.04
03 - 데이터 전달
1. Request - URL - GET - POST 2. PUT, DELETE, PATCH ~~ (REST API 에서 쓰는 거) 3. Reponse (MVC) - return - MIME Type http는 request, 즉 요청을 통해서 응답을 받는다. 클라이언트, 웹브라우저가 무엇이 필요하다고 리퀘스트를 보내면 웹 서버에서 reponse를 해 준다. 요청의 종류 1. URL -> http://home.com/data1/data2 슬래쉬 통해 라우팅 됨 즉, 순서에 맞춰서 value 값이 들어감 2. GET -> http://home.com?name=data&name2=data2 ?변수=내용&여러개일때는변수2=내용2&붙여서사용변수3=내용3 물음표 통해 변수명 들어감 순서에 상관없이 변수명에 따라 ..
2021.03.03
no image
02 - MVC 프로젝트 생성
요청(Request)과 응답(Response)은 한 번씩 Statelss - 연결이 끊어짐 -> 극복하기 위해서 Cookie, Session으로 상태관리를 함 wwwroot - 정적 파일들 모아놓은 곳 lib: bootstrap 같은 라이브러리 js: javasrcipt favicon.ico: 페이지 열었을 때 상단에 뜨는 페이지 아이콘 HomeController 분석 - logger는 알아서 생성자 만들어지기 때문에 신경쓸 필요 X 그래도 쓰면 됨 Home 폴더의 index, privacy, error 구조로 들어감 1. 빌드 후 2. Startup.cs로 간다 따로 설정하지 않는 이상 localhost:5001/Home/Index/Id
2021.03.03
01 - ASP.NET CORE 시작하기
ASP.NET ASP.NET | Open-source web framework for .NET Build web apps and services that run on Windows, Linux, and macOS using using C#, HTML, CSS, and JavaScript. Get started for free on Windows, Linux, or macOS. dotnet.microsoft.com 1. Web Form - winform - 웹페이지 내에 소스 코드 존재 -> 유지보수 굉장히 어려움 2. ASP.NET MVC - View -> HTML, CSS, JavaScript (Front-end) - Controller => DB 통신, 기타 계산 (Back-end) - Model -..
2021.03.03

mssql 테이블 생성

 

local 접속 후 데이터베이스 계정 로그인 안 될 때 

-> hannom.tistory.com/195 참고 

using System.Data.SqlClient;
using System.Data;
// using 등록해야 할 것들 


public IActionResult TicketList()
        {
            var dt = new DataTable();

            // 다른 곳에서 참조가 되면 남아 있을 수 있기 때문에 명시적으로 코딩 하는 게 좋음 (using)
            using (var conn = new SqlConnection("Server=DESKTOP-2H5KO6N\\SQLEXPRESS;Database = myweb;User ID = sa;password = sa1234"))
            {
                conn.Open();

                #region [sql 구문 작성법]
                /*
                 * string sta = "ddd"
                 WHERE 구문에서 a.status = sta + '%' 이런 식으로 쓰면 안 되는 이유 
                -> 사용자가 악의적으로 sta 변수에 OR '1' = '1' 같은 변수를 넣었을 경우 select 문으로 테이블의 모든 값을 조회할 수 
                있기 때문에 보안상으로도 올바르지 않음 (sql 해킹법으로 많이 쓰인다) 
                 */
                #endregion

                using (var cmd = new SqlCommand())
                {
                    string status = "In Progress";
                    cmd.Connection = conn;
                    cmd.CommandText = @"
                                        SELECT
	                                        A.ticket_id
	                                        ,A.title
	                                        ,A.status
                                        FROM 
	                                        t_ticket A
                                        WHERE 
	                                        A.status = @status 
                                        ";

                    cmd.Parameters.AddWithValue("@status", status);

                    var reader = cmd.ExecuteReader(); // READ 부분 select~ 
                    dt.Load(reader);
                    
                    //cmd.ExecuteNonQuery(); // CURD 처리 부분 (insert, update, delete) int 값 반환
                }
            }
            ViewData["Dt"] = dt;

            return View();
        }

- HomeController.cs

DB 연동 방법 다양함. appsettings.json에서 바로 연동해 주는 방법이 있고, 해당 페이지에서만 연동해 주는 방법이 있는데

해당 페이지에서만 연동하는 방법으로 HomeController에서 ticketList 페이지에서만 ticket 테이블 조회할 수 있도록 연동

 

 

@{ 
    var dt = ViewData["dt"] as System.Data.DataTable;
}

-- 해당하는 html의 cshtml 위에 데이터 테이블 전달 

  <tbody>
    @foreach(System.Data.DataRow row in dt.Rows)
    {
      <tr>
        <td>@row["status"]</td>
        <td>@row["title"]</td>
        <td>@row["ticket_id"]</td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
      </tr>
    }
</tbody>

Ticket.cshtml 

-> 데이터를 표시할 부분에 전달 

 

기본적인 데이터 구조는 이렇게 흘러감

MVC의 Model을 사용해서 쓰는 방법 필요

'Develop > ASP.NET CORE' 카테고리의 다른 글

05 - Database 연동  (0) 2021.03.04
04 - Layout 구성  (0) 2021.03.04
03 - 데이터 전달  (0) 2021.03.03
02 - MVC 프로젝트 생성  (0) 2021.03.03
01 - ASP.NET CORE 시작하기  (0) 2021.03.03

1. why use Database

  - 모든 데이터는 메모리에서 적재되어 이용됨

  - 웹서버 생명주기 모델에 따라 대부분의 경우 Response 후 제거 

  - TempData, Cache 등으로 생명주기를 늘릴 수 있으나, 웹서버 종료 시 삭제됨

 

2. 영속성(Persistence)

  - 메모리가 아닌 별도의 저장공간을 이용하여, 영구적인 저장을 가능하도록 함

  - 영속성이라는 의미는 데이터의 불변성이 아님

  - 즉, 서버를 껐다 켜도 데이터가 살아 있느냐를 생각해 보면 된다. 

 

(웹서버 IIS나 Tomcat 같은 것) 

데이터 베이스 서버 (Maria DB, oracle, MSSQL... ) RDBMS

 

영속성 개념 

3. 

MariaDb - License 문제에서 자유로움

            - MS-SQL Express 또는 Oracle XE 가 있으나 제약이 큼 

            - ANSI SQL 기준으로 쿼리를 만들 것이므로 다른 DB에도 쉽게 적용이 가능하다. 

 

-> 우리는 DB MSSQL로 진행 

 

4. ADO.NET 예제 

   - CRUD(Create, Read, Update, Delete) 예제 

 

5. Dapper 예제

  - ADO.NET 로 만든 CRUD 를 Dapper로 변경 

 

 

JAVA - DB 연결 

  1. JDBC

  2. JDBC mybatis ibatis

  3. JDBC Hibernate (DB에 있는 테이블이나 컬럼들이 하나의 오브젝트고, 프로퍼티가 되는 것. 그것을 자바 코드와 연결해서 매핑시켜 줌) 

 

 C#에서 DB 연결하는 방법

   1. ADO.NET (가장 기본적인 DB 연결 방식) 

using System;
using System.Data;
using System.Data.SqlClient;

class Program
{
    static void Main()
    {
        string connectionString =
            "Data Source=(local);Initial Catalog=Northwind;"
            + "Integrated Security=true";

        // Provide the query string with a parameter placeholder.
        string queryString =
            "SELECT ProductID, UnitPrice, ProductName from dbo.products "
                + "WHERE UnitPrice > @pricePoint "
                + "ORDER BY UnitPrice DESC;";

        // Specify the parameter value.
        int paramValue = 5;

        // Create and open the connection in a using block. This
        // ensures that all resources will be closed and disposed
        // when the code exits.
        using (SqlConnection connection =
            new SqlConnection(connectionString))
        {
            // Create the Command and Parameter objects.
            SqlCommand command = new SqlCommand(queryString, connection);
            command.Parameters.AddWithValue("@pricePoint", paramValue);

            // Open the connection in a try/catch block.
            // Create and execute the DataReader, writing the result
            // set to the console window.
            try
            {
                connection.Open();
                SqlDataReader reader = command.ExecuteReader();
                while (reader.Read())
                {
                    Console.WriteLine("\t{0}\t{1}\t{2}",
                        reader[0], reader[1], reader[2]);
                }
                reader.Close();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            Console.ReadLine();
        }
    }

  2. Enterprise Library

    - ADO.NET에서 불편했던 내용들을 보완한 것 

    - 개발자가 직접 쿼리를 작성해야 한다

  3. EntityFramework (엔티티 프레임워크) + Linq 쿼리식 

    - ORM 도구 

    - ADO.NET이나 Enterprise Library를 배우는 건 솔직히 의미 없음 

   

일반 SQL => SELECT * FROM user WHERE userNo = 1; 

 

Linq 쿼리식 => user.where(u=>u.userNo = 1) // C# 코드로 구성이 되어 있음 

 

 

 

 

'Develop > ASP.NET CORE' 카테고리의 다른 글

05-1 MSSQL - ASP.NET CORE 연동  (0) 2021.03.05
04 - Layout 구성  (0) 2021.03.04
03 - 데이터 전달  (0) 2021.03.03
02 - MVC 프로젝트 생성  (0) 2021.03.03
01 - ASP.NET CORE 시작하기  (0) 2021.03.03

1. HTML, CSS, Javascript

  - HTML: 화면을 구성함

  - CSS: 화면 디자인을 구성

  - Javascript: 클라이언트 프로그램

 

2. Bootstrap4

   - CSS, javascript 

   - 4.x까지는 jquery 기반 

   - 5.x 부터 독립

 

3. Free template

   - Bootstrap4 기반으로 만들어진 오픈소스 템플릿

   - License 확인 필수 -> MIT 라이선스로 사용 추천 

   - site:github.com bootstrap4 free templete

 

4. Layout 구성과 ViewComponent

   - Layout.cshtml 에 기본 레이아웃 넣기 

   - Body 로 들어가야 할 부분 분리  

   - 메뉴바와 같이 상황에 따라 별도로 처리해야 하는 부분은 ViewComponent로 분리 

 

 Enable Razor runtime compilation

-> 실시간 컴파일을 지원해 줌

 

출처: youtu.be/lxUcvtPxih4

 

 

'Develop > ASP.NET CORE' 카테고리의 다른 글

05-1 MSSQL - ASP.NET CORE 연동  (0) 2021.03.05
05 - Database 연동  (0) 2021.03.04
03 - 데이터 전달  (0) 2021.03.03
02 - MVC 프로젝트 생성  (0) 2021.03.03
01 - ASP.NET CORE 시작하기  (0) 2021.03.03

1. Request

 - URL

 - GET

 - POST 

 

2. PUT, DELETE, PATCH ~~ (REST API 에서 쓰는 거) 

 

3. Reponse (MVC)

 - return 

 - MIME Type

 

http는 request, 즉 요청을 통해서 응답을 받는다. 클라이언트, 웹브라우저가 무엇이 필요하다고 리퀘스트를 보내면 웹 서버에서 reponse를 해 준다.

 

요청의 종류 

1. URL

 -> http://home.com/data1/data2   

슬래쉬 통해 라우팅 됨

즉, 순서에 맞춰서 value 값이 들어감

 

2. GET

 -> http://home.com?name=data&name2=data2   

?변수=내용&여러개일때는변수2=내용2&붙여서사용변수3=내용3

물음표 통해 변수명 들어감 

순서에 상관없이 변수명에 따라 값이 들어감 

 

3. POST

 -> <form method="POST">

 

1, 2는 URL, 3은 Formdata 라는 곳에 담겨서 들어감 

 

2. PUT, DELETE, PATCH (RESTFUL API)

 - 세분화 되어 사용

 why? 

  메소드에 따라 액션을 나누기 위해 사용 

 GET, POST, PUT, DELETE 만 사용해도 무방함

 

3. 응답 (Response)

 1. return 

  - View

  - PartialView

  - Json

  - File

  - Content

  - Redirect (다른 페이지로 이동) 

 

one request가 오면 무조건 하나의 reponse가 발생함 (에러가 나도 404로 에러 발생 시킴) 

 2. MIME Type

  - text/html, application/json, image/jpg

  - application/octet-stream

  - etc... 

 

주체가 되는 웹서버가 cshtml 같은 view를 던지게 되는데, 웹서버가 클라이언트에게 이게 뭐다 라는 타입을 던져 주어야 클라이언트가 분석을 함 cf) text/html, application/json. image/jpg 

 

 

 

 

 

'Develop > ASP.NET CORE' 카테고리의 다른 글

05-1 MSSQL - ASP.NET CORE 연동  (0) 2021.03.05
05 - Database 연동  (0) 2021.03.04
04 - Layout 구성  (0) 2021.03.04
02 - MVC 프로젝트 생성  (0) 2021.03.03
01 - ASP.NET CORE 시작하기  (0) 2021.03.03

ASP.NET CORE MVC 구조 

 

 

서버 동작방식 이해 

 

요청(Request)과 응답(Response)은 한 번씩 

Statelss - 연결이 끊어짐 

 -> 극복하기 위해서 Cookie, Session으로 상태관리를 함 

 

wwwroot
 - 정적 파일들 모아놓은 곳 
lib: bootstrap 같은 라이브러리 
js: javasrcipt 
favicon.ico: 페이지 열었을 때 상단에 뜨는 페이지 아이콘 

 

HomeController 분석 

 - logger는 알아서 생성자 만들어지기 때문에 신경쓸 필요 X 그래도 쓰면 됨 

 

Home 폴더의 index, privacy, error 구조로 들어감 

 

Main.cs

1. 빌드 후 

2. Startup.cs로 간다 

 

startup.cs

따로 설정하지 않는 이상 localhost:5001/Home/Index/Id <- 가 기본 디폴트 값이다. 

 

Index.cshtml

초기 설정에서 _Layout.cshtml에 script 설정 부분이 있는데 그건 별로 쓰지 않고 아예 한 페이지마다 cf)index.cshtml, Privary.cshtml 에 script를 선언해 준다. 

 

youtu.be/2Rwl-DhfSKw - 출처

'Develop > ASP.NET CORE' 카테고리의 다른 글

05-1 MSSQL - ASP.NET CORE 연동  (0) 2021.03.05
05 - Database 연동  (0) 2021.03.04
04 - Layout 구성  (0) 2021.03.04
03 - 데이터 전달  (0) 2021.03.03
01 - ASP.NET CORE 시작하기  (0) 2021.03.03

ASP.NET

 

ASP.NET | Open-source web framework for .NET

Build web apps and services that run on Windows, Linux, and macOS using using C#, HTML, CSS, and JavaScript. Get started for free on Windows, Linux, or macOS.

dotnet.microsoft.com

 

1. Web Form
 - winform
 - 웹페이지 내에 소스 코드 존재
 -> 유지보수 굉장히 어려움

 

2. ASP.NET MVC

 - View -> HTML, CSS, JavaScript (Front-end)
 - Controller => DB 통신, 기타 계산 (Back-end)
 - Model -> User (Back-end)

코드가 뒤섞일 일 없음, 유지보수 편함

 

3. SignalR
 - 웹페이지 
 - 실시간 채팅 서비스 / mqtt

4. Web API
 -> 데이터 베이스에서 나온 정보를 XML이나 JSON 형식으로 송출해 주는 서비스 
 -> Restful API 

 

[Stateless] (요청을 하자마자 끊어지는 것) - DB에 무리가 적음 
모든 플랫폼과 통신이 가능함
ex) Java Spring ajax
ex) WPF, Winform, javaFX
ex) 안드로이드, IOS 앱과 통신 가능 

 

ASP.NET ASP.NET CORE
ASP.NET - Full dot Net
System.Net.XXXX
System.Net.XXXX
System.Net.XXXX
System.Net.XXXX
System.Net.XXXX -> 제거 

속도가 느림 속도 빠름

 

youtu.be/Y_X4A0P06Os - 참고

'Develop > ASP.NET CORE' 카테고리의 다른 글

05-1 MSSQL - ASP.NET CORE 연동  (0) 2021.03.05
05 - Database 연동  (0) 2021.03.04
04 - Layout 구성  (0) 2021.03.04
03 - 데이터 전달  (0) 2021.03.03
02 - MVC 프로젝트 생성  (0) 2021.03.03