묻고 답해요
129만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[C#/.NET 8.0]어서와, Blazor Server는 처음이지?
BlazroServerMaster를 인식하지 못하고 있는데요.
안녕하세요. 좋은 강의 감사드립니다. 섹션1 : "Class 설계 후 Razor 에서 호출!"강의에서 BlazroServerMaster를 인식하지 못하고 있는데요. 수업시간에 설치하는 패키지 4개 다 설치했습니다.●Microsoft.EntityframeworkCore●Microsoft.EntityframeworkCore.Design●Npgsql.EntityFrameworkCore.PostgreSQL●Npgsql.EntityFrameworkCore.PostgreSQL.Design Windows 11 Pro 64bitVS 2022.Netframework 8.0.2PostgreSQL 15설치되지 않은 라이브러리가 있나요?
-
해결됨[C#/.NET 8.0]어서와, Blazor Server는 처음이지?
PostgreSQL 문의
안녕하세요 PostgreSql 설치 중 12버전 이상은 아래와 같은 에러로 설치가 안됩니다.구글에서 저와 같은 현상으로 인한 해결책은 11을 설치하는 것인데 11 설치 후 backupFile Restore가 실패합니다ㅠㅠ BinaryPath도 다 지정했습니다.그런데도 failed가 나는건 15 bacupfile과 11의 호환성 문제일까요?ㅠㅠ Assembly강의도 들어야하는데 이거 때문에 진도가 나가지가 않습니다 도와주세요ㅜㅜ
-
해결됨[C#/.NET 8.0]어서와, Blazor Server는 처음이지?
버튼이 하나만 나오는 경우
강의에서 나오는 코드를 그대로 따라가다 보면, 다음과 같이 하나의 버튼만 보이는 경우가 있었습니다.... <RadzenDataGridColumn TItem="GangnamguPopulation"> <Template Context="data"> <RadzenButton Icon="edit" ButtonStyle="ButtonStyle.Light" Variant="Variant.Flat" Size="ButtonSize.Medium" Click="@((args) => EditRow(data))"></RadzenButton> </Template> <Template Context="data"> <RadzenButton Icon="delete" ButtonStyle="ButtonStyle.Danger" Variant="Variant.Flat" Size="ButtonSize.Medium" Click="@((args) => DeleteRow(data))"></RadzenButton> </Template> </RadzenDataGridColumn> ...혹시 저와 같은 문제가 발생하시는 분들은 아래와 같이 코드를 수정하면, 정상적으로 버튼 두 개가 렌더링됩니다.... <RadzenDataGridColumn TItem="GangnamguPopulation"> <Template Context="data"> <RadzenButton Icon="edit" ButtonStyle="ButtonStyle.Light" Variant="Variant.Flat" Size="ButtonSize.Medium" Click="@((args) => EditRow(data))"></RadzenButton> <RadzenButton Icon="delete" ButtonStyle="ButtonStyle.Danger" Variant="Variant.Flat" Size="ButtonSize.Medium" Click="@((args) => DeleteRow(data))"></RadzenButton> </Template> </RadzenDataGridColumn> ...이런 문제가 발생하는 이유는 마지막 Template 컴포넌트가 이전 컴포넌트를 덮어쓰는 것 같은데, 정확한 이유는 모르겠습니다. 마지막 Template컴포넌트만 렌더링 되는 것 같습니다.그래서 하나의 Template컴포넌트에 두 개의 버튼을 포함시키니 강의와 같이 작동합니다. ++ 영상을 살펴보니, 6:28 부분에서는 두 개의 Template 컴포넌트를 사용하시고, 이후 7:21 부분에서 하나의 Template 컴포넌트가 두 개의 버튼 컴포넌트를 포함하는 코드로 바뀌어 있네요. 아마, 편집하시면서 중간에 내용이 빠진 것 같습니다 ㅠㅜ
-
해결됨[C#/.NET 6.0]어서와, Blazor WebAssembly는 처음이지?
빌드 오류 관련 문의 드립니다,
섹션2-데이터입력디자인파트1-08:01부터는 이상하게 빌드에러가 계속나네요. 구글검색으로도 해결이 안되서 강좌 처음부터 다시 작성해서 해도 계속 발생해서 문의 드립니다,. 에러내용 : ---------------------------Microsoft Visual Studio---------------------------하나 이상의 오류가 발생했습니다.디버그 어댑터를 시작하지 못했습니다. 출력 창에서 추가 정보를 확인할 수 있습니다."Failed to launch browser!TROUBLESHOOTING: https://github.com/GoogleChrome/puppeteer/blob/master/docs/troubleshooting.md" 브라우저를 시작할 수 없음
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버
Uri함수 파라미터 주소에 sslport번호를 넣으면 무한 로딩이걸림
여기 sslPort 번호를 가져와서Uri함수 파라미터에 주소를 입력했더니이렇게 무한 로딩이 걸려서 해결하고 싶어서 중단점 걸어보고 실행해봤습니다.여기서여기로 들어가면 var resultContent = await result.Content.ReadAsStringAsync(); 이 부분 전에 있는 중단점에는 잘 걸리는데 이 중단점에는 안 걸리고 함수 안에 있는 코드들이 전부 실행 되지 않고결국 _gameResults 는 정상적으로 함수가 실행 되지 않아서 값을 못 받아서 계속 null인 상태로 있어서 무한 로딩이 걸렸습니다. 그래서 처음에는 비동기 함수가 실행을 완전히 끝내기 전에 그 전에 있던 함수가 종료 되었나? 생각하면서 이것저것 만지다가 그런 문제는 아닌 것 같고 그냥 무지성으로 Uri 파라미터에 sslPort번호 말고여기에 "applicationUrl": "https://localhost:7146이 부분을 Uri파라미터 주소에 넣었더니 잘 실행됩니다 그런데 강사님은 sslPort번호를 넣어서 잘 작동시켰는데 왜 저는 sslPort를 넣었는데 이상하게 작동되는지 궁금합니다.
-
해결됨[C#/.NET 8.0]어서와, Blazor Server는 처음이지?
새로운 테이블 추가방법?
새로운 테이블을 Model에 추가할 경우 어떤 방법이 있을까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버
An unhandled exception has occured. See browser dev tools for detail.
blazor ranking app #3을 하던 도중에 스크린샷과 같은 에러가 나타났습니다.콘솔창에는 아래와 같은 에러 메세지가 떠서 제 입력이 userId가 null인 것으로 입력된 것 같습니다.문제가 있을 수 있어 하단에 제가 작성한 ranking.razor와 RankingService.cs의 코드를 첨부하지만 강의의 내용에서 작성한 코드와 동일하게 작성하였습니다.ranking.razor@page "/ranking" @using RankingApp.Data.Models @using RankingApp.Data.Services @inject RankingService RankingService <h3>Ranking</h3> @*LoginDisplay.razor의 내용 참조*@ <AuthorizeView> <Authorized> @*로그인한 경우*@ @if (_gameResults == null) { <p><em>Loading...</em></p> } else { <table class="table"> <thead> <tr> <th>User</th> <th>Score</th> <th>Date</th> </tr> </thead> <tbody> @foreach (var gameResult in _gameResults) { <tr> <td>@gameResult.UserName</td> <td>@gameResult.Score</td> <td>@gameResult.Date.ToString()</td> </tr> } </tbody> </table> @*데이터 추가하기*@ <p> <button class="btn btn-primary" @onclick="AddGameResult"> Add </button> </p> @if (_showPopup) { <div class="modal" style="display:block" role="dialog"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-Header"> <h3 class="modal-title">Add/Update GameResult</h3> <button type="button" class="close" @onclick="ClosePopup"> <span area-hidden="true">X</span> </button> </div> <div class="modal-body"> <label for="UserName">UserName</label> <input class="form-control" type="text" placeholder="UserName" @bind-value="_gameResult.UserName"> <label for="Score">Score</label> <input class="form-control" type="text" placeholder="Score" @bind-value="_gameResult.Score"> <button class="btn btn-primary" @onclick="SaveGameResult"> Save </button> </div> </div> </div> </div> } } </Authorized> <NotAuthorized> <p>You are not Authorized</p> </NotAuthorized> </AuthorizeView> @code { List<GameResult> _gameResults; bool _showPopup; GameResult _gameResult; protected override async Task OnInitializedAsync() { _gameResults = await RankingService.GetGameResultsAsync(); } void AddGameResult() { @*팝업 띄워주기*@ _showPopup = true; _gameResult = new GameResult() { Id = 0 }; } void ClosePopup() { _showPopup = false; } async Task SaveGameResult() { if(_gameResult.Id==0) //새로 데이터를 추가하는 작업, 이때는 id가 없지만 db에 넣어지면id 자동 생성 { _gameResult.Date=DateTime.Now; var result = RankingService.AddGameResult(_gameResult); @*AddGameResult는 rankingService.cs에 있다*@ } else { //TODO } _gameResults = await RankingService.GetGameResultsAsync(); @*다시 바뀐 데이터 다시 가져오기*@ } } RankingService.csusing RankingApp.Data.Models; namespace RankingApp.Data.Services { public class RankingService { ApplicationDbContext _context; public RankingService(ApplicationDbContext context) { _context = context; } //Create public Task<GameResult> AddGameResult(GameResult gameResult) { _context.GameResults.Add(gameResult); _context.SaveChanges(); //db에도 저장 return Task.FromResult(gameResult); } //Read public Task<List<GameResult>> GetGameResultsAsync() { List<GameResult> results = _context.GameResults .OrderByDescending(item => item.Score) .ToList(); return Task.FromResult(results); } //Update //Delete } }
-
미해결[C#/.NET 8.0]어서와, Blazor Server는 처음이지?
삭제 후, GRID 재조회
안녕하세요! 섹션2 수업 마무리한 상태인데,DELETE 후, GRID를 재조회하는 방법이 없어서, 질문드립니다!구글링해서 해봐도 GRID 업데이트가 안되더라구요..
-
해결됨[C#/.NET 6.0]어서와, Blazor WebAssembly는 처음이지?
강의 누락
안녕하세요.우선 블레이저 강의를 제작해주셔서 감사합니다.강의를 듣는데 종종 "저희가 작성했던 코드~" 하면서 말씀하시는데 이전 강의에서 해당 코드를 작성한 적이 없거든요... 컨트롤러나 razor 페이지의 태그들이 선생님이 먼저 작성되어 있는 경우가 많더라구요. 그래서 종종 오류가 나도 어디서 잘못 된 건지 파악하는데 시간이 굉장히 오래 걸립니다.. 이런 부분 파악되시면 누락된 강의나 영상은 추가해주셨으면 좋겠습니다.
-
해결됨[C#/.NET 6.0]어서와, Blazor WebAssembly는 처음이지?
EntityFrameworkCore 활용한 DB CRUD 기본 실습 소스코드 공유 요청
RAZOR님 안녕하세요 강의 잘 보고 있습니다.혹시"EntityFrameworkCore 활용한 DB CRUD 기본 실습 (Create)" 와"EntityFrameworkCore 활용한 DB CRUD 기본 실습 (Read,Update,Delete)" 강의를 따라하고 있습니다.제가 오타가 났는지... 제 PC에 설치된 패키지 버전 차이인지 ㅠㅠ실습내용이 제가 따라하는 부분과 다소 차이가 있는 것 같습니다.해당 소스코드를 받아볼 수 있을까요?
-
미해결[C#/.NET 8.0]어서와, Blazor Server는 처음이지?
화면 갱신
제가 윈폼만 하다가 웹으로 개발할 일이 있다보니 Blazor 수업을 수강하는데 수업 내용이 전체적으로 사수한테 배우는 느낌이어서 좋네요. ㅎㅎ궁금한게 있어서 질문하나 드립니다.메인 서버에서 여러 디바이스의 상태를 웹페이지에 계속 업데이트 해야 하는데 클라이언트가 여러명이 됩니다.데이타 갱신시 서버에서 갱신되는 데이타를 프론트에서 갱신되게 하는 방법이 대략 어떻게 되나요?
-
미해결[C#/.NET 8.0]어서와, Blazor Server는 처음이지?
ASP.NET Core SignalR을 사용하는 방식의 장점이 있나요?
blazor server 방식은 기존의 asp.net 웹서버프로그래밍과 동일한 방식인 것으로 보입니다.기존의 웹서버프로그래밍을 공부할때는 http 프로토콜을 이용해서 request, response를 하므로, stateless, 헤더 정보, get, post 등에 대해서 학습을 했었던 것으로 기억합니다. 그때의 방식과 내부적으로 SignalR을 사용하는 소켓방식과의 차이점을 알고 싶습니다.클라이언트의 요청이 서버에 request로 전달이 되고, 서버가 실행되어서 렌더링한 결과를, 클라이언트에게 response 해주는 것이 아닌가요? 아...근데 새로 페이지를 전부 그리는 것이 아니고, 해당 변경부분만 렌더링해서 response를 해주는 것으로 아는데...소켓과 http 프로토콜과의 역할을 구분하여 알고 싶습니다.
-
미해결[C#/.NET 8.0]어서와, Blazor Server는 처음이지?
Blazor web app 생성할때 질문있습니다.
렌더링이 어디서 일어나느냐에 따라서 블레이저 서버와 웹어셈블리로 프로젝트를 구분하는데,.net 8.0 부터 blazor web app 이 추가된 것이라고 설명해주셨는데요...프로젝트 생성시, 샘플로 있던 페이지 중에 counter 증가되는 것만 클라이언트쪽에 생성되고, 나머지 페이지들은 서버쪽에 생성되었습니다. 클라이언트 쪽에는 DB 연결과 상관없는 기존의 자바스크립트로 동작하는 것이 주로 오는 것이고,서버 쪽에는 DB 사용하는 페이지들이 존재하는 것인지 궁금합니다. 즉, 어떤 것을 기준으로 클라이언트와 서버를 나누는 것인지 궁금합니다. blazor WASM을 선택해도, 페이지에 연결되는 DB 처리를 위해서는 API로 서버를 호출해서 결과를 받아와서 바인딩을 해준다면...blazor Server로 작성해서 해당 부분을 바인딩하는 것과 차이가 어떤 것인지 궁금합니다.또한, 실제 실무에서는 어떤 방식이 더 선호되는지 궁금합니다.
-
해결됨[C#/.NET 8.0]어서와, Blazor Server는 처음이지?
솔루션 배포(게시) 부분에서 질문있습니다.
작성된 솔루션 파일을 게시할 때, 콘솔 exe가 실행되면서 어떻게 렌더링이 되고, 실행이 되는지 잘 모르겠습니다.즉, Blazor 서버 앱의 실행 방법과 게시할 때 포함시켜야 하는 범위를 알고 싶습니다.솔루션에서 게시를 선택해서 로컬에 생성된 폴더를 보면, IIS 에서부터의 실행방법을 잘 모르겠습니다. 게시할 때 WASM 방식과 서버방식의 차이를 이해하기 쉽게 다시한번 설명해주셨으면 합니다.감사합니다.
-
미해결[C#/.NET 8.0]어서와, Blazor Server는 처음이지?
razor 문법에서의 @표기
강의 중의 코드인데요,.razor 파일에서 C# 코드를 사용할때 @를 사용하는데,@Click = "메서드명" Click = "@메서드명"Click = "메서드명"@bind-Value="@value"등등 모든 방법을 다 허용하는 것인지, 권장하는 방법은 어떤 것인지 알고 싶습니다. Orientation, Data 은 RadizenStack 클래스의 속성인거 같은데...@bind-Value 는 어떤 것으로 정의된 건가요?기본적으로 정의된 항목 PageTitle 같은 것들은 어디에 몇가지로 정의된 기본 클래스인지도 궁금합니다.전반적으로 Blazor 페이지에 대한 구조와 기본 틀에 대한 설명이나 자료를 조금 더 가르쳐주셨으면 좋겠습니다.
-
미해결[C#/.NET 8.0]어서와, Blazor Server는 처음이지?
Grid 컴포넌트 사용에 대해서 질문있습니다.
asp.net 의 WebForm 에서도 DataGrid, DataList, Repeator 등이 있었습니다. DataGrid, DataList 는 기능이 많아 보이지만, 기능이 많은 것만큼 렌더링 된 데이터의 사이즈가 너무 커져서 실무에서는 속도 문제로 결국 html 태그를 적극 활용하면서 Repeator를 사용했었습니다.혹시 QuickGrid , RadzenGrid 등도 그런 문제가 발생하는 것은 아닐까 해서요...샘플로 작성되는 weather 페이지처럼 html 태그가 결국 사용되는게 아닐까 싶은데요...결국은 모든 데이터를 다 조회해서 갖고 있는게 아니라, 해당 페이지에 대한 데이터만 갖고, 페이징 네비게이션 부분은 별도로 코딩하게 된다면...그리드의 정렬, 필터 기능은 사용 못하는게 아닐까 싶습니다.혹시 속도 비교를 해 놓은 것이 있는지 궁금합니다.제가 아직 WASM 방식과 서버 방식을 잘 이해를 못하고 있는데요,제가 기존에 했었던 방식(asp.net webform, mvc)은 서버 방식이었을 것으로 이해하고 있습니다.WASM 방식이 된다면 Grid 사용이 달라지는 건가요???
-
해결됨[C#/.NET 8.0]어서와, Blazor Server는 처음이지?
홈페이지 실행
안녕하세요. 궁금한 점이 있어서 질문을 남깁니다!현재 제 컴퓨터의 기본 브라우저가 웨일로 되어있습니다.2강에서 프로젝트를 만들고 난 후, 시작을 했을 때, 웨일에서는 개인 정보 보호 오류라고 뜨고, 크롬에서는 문제없이 작동이 됩니다.혹시 이게 어떤 것 때문에 그러는지 알 수 있을까요?요즘 눈도 많이 오고 날씨도 추운데 항상 감기조심하세요.
-
해결됨[C#/.NET 8.0]어서와, Blazor Server는 처음이지?
? 코딩하는 이유
int? 나 <string, object>? 뒤에 ?를 넣는 이유가 뭔가요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버
EFCore 포렌키 설정 관련 질문(Entity Framework Code First One-to-Many Relationship)
public class UserData { //public int Id { get; set; } [Key] public string UserId { get; set; } public string? Token { get; set; } [MaxLength(32)] public string? UserName { get; set; } public DateTime? CreateTime { get; set; } public BanData BanData { get; set; } public List<MailData> MailDatas { get; set; } public List<GetMailData> GetMailDatas { get; set; } } public class BanData { public int Id { get; set; } public DateTime Start { get; set; } public DateTime End { get; set; } public int State { get; set; } public string DescKey { get; set; } // Foreign Key ////1:1 방향일 경우 한쪽이 아이디까지 물고 있어야함 public string UserDataUserId { get; set; } [JsonIgnore] public UserData UserData { get; set; } } public class MailData { /// <summary> 우편물 구분 값 </summary> public int Id { get; set; } /// <summary> 발송일 </summary> public DateTime SendDate { get; set; } /// <summary> 우편물 받아야하는 기간 </summary> public DateTime EndDate { get; set; } /// <summary> 우편 내용물 </summary> public string Body { get; set; } /// <summary> 보낸이 ex)GM, DEV 등등 </summary> public string Sender { get; set; } // Foreign Key public string UserDataUserId { get; set; } [JsonIgnore] public UserData UserData { get; set; } } 이렇게 코드가 있을 경우 MailData -> UserData로 연동은 잘 됩니다다만 DB 테이블에 MailData가 생성되는데 제가 원하는 것은 UserData 테이블에 MailDatas 가 생성되는 것입니다 다만 위 코드처럼 처리를 할 경우 MailData 테이블에 모든 유저들의 메일 정보가 저장되고 UserData에서 긁어오는 것으로 파악되는데 맞을까여?만약 이렇게하여 모든유저들의 정보를 처리하는게 더 좋은 방식인지 UserData 테이블에 JSON으로 메일을 처리하는것이 좋은 방식인지 궁금합니다
-
해결됨[C#/.NET 8.0]어서와, Blazor Server는 처음이지?
BackUp DB > Failed
PostgreSQL 여러번 지우고 재설치 하여 backup DB restore 결과가 Failed 나오네요 문제가 뭘까요?