Winform을 이용해서 프로젝트를 많이 수행하는 편은 아니다보니, 그때 그때 필요한 사항을 찾아서 개발하곤 합니다. 가급적 테스트 툴을 개발하는 목적으로 많이 사용하다보니, 사용성은 적은데요. 그러다 보면, 가끔 List View를 이용해서 Log 를 보여줄때 thread 에 영향을 받게 되는 경우가 발생합니다. msdn 에 검색해 보니, 아래 링크 검색이 되서 공유합니다. docs.microsoft.com/ko-kr/dotnet/desktop/winforms/controls/how-to-make-thread-safe-calls-to-windows-forms-controls?view=netframeworkdesktop-4.8 스레드로부터 안전한 컨트롤 호출 - Windows Forms .NET Fram..
동기 방식으로 설계된 프로젝트에서, 비동기를 호출하기 위해서 Task.Run() 메소드를 이용해서 호출합니다. 개별 요청에 대한 HTTP 관련 정보를 캡슐화 하는 HttpContext를 이용해야 하는 경우, 현재 요청에 대한 정보를 Task.Run() 메소드 이용시 공유할 수 없는데요. 이를 해결 하기 위한 방법을 간략하게 정리하였습니다. 사용방법 public async Task UpdateAsync() { ... } public void main() { var result = Task.Run(async () => { HttpContext.Current = this.Context; return await UpdateAsync(); }).Result; } 조금 불편한 방식이긴 합니다만, Task.Run()..
요즘 동기와 비동기가 혼재되어 사용중인 프로젝트를 진행하고 있습니다. 최초 설계시부터 작업방식을 정해놓고 진행해야 하는데, 이 프로젝트는 그러지 못했나 봅니다. 설계과정에서부터 비동기 async / await 모델로 설계된 프로젝트가 아니라면, 중간에 적용하기에 애매한 상황이 발생합니다. 프로젝트를 다시 설계할 수 있는 상황이 아니라면, Task.Run() 메소드를 이용해서 비동기 호출을 이용 할 수 있습니다. 호출 방법 public bool Test() { var result = Task.Run(async () => await Update()).Result; return result; } public async Task Update() { ... } 위와 같이 람다식을 이용해서, 비동기로 짜여진 Upd..
학습도 할겸 해서 ASP.NET MVC 템플릿을 이용해서 제작되어 있는 기능을 Blazor로 옮기는 작업을 최근 진행하고 있었습니다. RESTFul API를 호출 하고, 결과를 JSON으로 보여주는 부분을 Beautiful JSON Viewer Editor 라이브러리를 이용해서 보여주고 있었는데요. https://www.jqueryscript.net/other/Beautiful-JSON-Viewer-Editor.html Beautiful JSON Viewer And Editor With jQuery - JSON Editor A lightweight, simple, beautiful JSON viewer and editor plugin helps the developers to render JSON obj..
Blazor를 이용해서 간단한 테스트 사이트를 제작하려고 하다보니, 기본적인 수명주기 LifeCycle 이 궁금해서 가볍게 정리해보았습니다. 구성요소 수명주기 구성요소가 요청시 처음 렌더링 되는 경우 구성 요소의 인스턴스를 만들고, 속성 삽입을 수행하고, SetParametersAsync 실행. OnInitialized{Async} 호출 OnParametersSet{Async} 을 호출하고 구성요소를 랜더링 합니다. Blazoer 프레임워크는 동기 및 비동기 수명주기 메소드를 제공합니다. Render 수명 주기 첫번째 렌더링 이후나, ShouldRender가 false 인 경우에는 추가 렌더링 작업을 중지합니다. 렌더링 트리 diff(차이)를 빌드하고 구성요소를 랜더링 합니다. DOM이 업데이트 될 때 ..