본문 바로가기

ASP.NET14

업무용 콘솔 응용 프로그램을 처음부터 만들 때의 주의점 ASP.NET으로 업무용 콘솔 응용 프로그램을 프로젝트 생성부터 시작할 경우의 주의점을 정리한 내용입니다. 1. 로그처리:log4net 도입 방법(C#) Log4Net basics with a Console Application (c#) 1-1. 로그 출력 단위를 정한다 어디까지 로그를 출력할 것인가INFO, 에러, SQL에러SQL쿼리를 로그에 출력할 경우, 모든 SQL쿼리를 출력할 것인가 INSERT/UPDATE(데이터에 변경이 있을 경우)만 출력 할 것인가 1-2. 메일 송신 에러 로그의 경우, 메일 송신을 할것인가 말것인가처리내용에 메일 송신이 필요한가 아닌가근래에는 메일보다 Slack에 통지하는 방식이 많은거 같기도 함 2. 응용 콘솔 어플의 실행 결과 실행 결과 구분은 기본적으로 하기 3타입 +.. 2019. 1. 24.
Entity Framework에서 제일 최근에 갱신된 레코드를 추출하기 Entity Framework에서 제일 최근에 갱신된 레코드를 추출하는 방법을 정리해 보았습니다. DB샘플 tb1 Id DetailId LastUpdatedAt 1 101 2017-02-01 01:00:00 2 102 2017-02-01 10:00:00 3 103 2017-02-02 01:00:00 4 104 2017-02-01 01:00:00 5 105 2017-02-02 01:00:00 tb2 DetailId Name 101 Name1 102 Name2 예시1. tb1에서 같은 DetailId를 가진 복수의 레코드 중에서 제일 최근에 갱신된 레코드를 추출 var list = (from t in db.tb1 group t by t.DetailId into g select g.OrderByDescendi.. 2019. 1. 23.
Entity Framework에서 SQL문을 직접 실행해서 결과 취득하기 SQL쿼리를 그대로 Entity Framework에서 실행하고 싶을 경우의 사용법입니다. SELECT var testList = new List(); var test = DbContext.Database.SqlQuery("SELECT item_id, details FROM item WHERE item_type = 1;"); if (test != null) { testList = test.ToList(); } INSERT/UPDATE int updateResultCount = DbContext.Database.ExecuteSqlCommand("UPDATE item SET item_type = '2' WHERE item_id = 11;"); SQL -> IQueryable string sql = "SELEC.. 2019. 1. 23.
개인적으로 자주 쓰는 LINQ 샘플 자주 사용하는 내용을 위주로 정리해 보았습니다. 상시 갱신 예정. 1. LINQ로 간단히 데이터를 추출할 경우 Model Sample Model // List testList = new List(); public class TestModel { public int Id { get; set; } public string Name { get; set; } public int Quantity { get; set; } public decimal Price { get; set; } public string Remarks { get; set; } } // List testSubList = new List(); public class TestSubModel { public int Id { get; set; } pub.. 2019. 1. 23.
CSV 파일 출력시에 마지막 행에 NULL 문자열이 삽입되는 문제(byte[] 변환 문제) CSV 파일 작성 기능을 코딩중에 일어난 문제입니다. stream을 byte[]로 변환시킬때 GetBuffer()를 사용할 경우 return stream.GetBuffer(); 제일 마지막 행에 NULL 문자열이 추가되어 있다!? Why do I have a million null characters at the end of my CSV file https://stackoverflow.com/questions/27268994/why-do-i-have-a-million-null-characters-at-the-end-of-my-csv-file?answertab=active#tab-top 조사해 보니 GetBuffer()를 쓰지말고 ToArray()를 사용하라는 답변을 발견했습니다. 이유인 즉슨 GetBuf.. 2019. 1. 23.
ASP.NET http접속을 https로 리다이렉트 시키기 http로 접속시에 https로 리다이렉트 시키고 싶을 경우, IIS의 설정을 변경하거나 어플의 Web.config을 설정을 변경하는 등 선택지는 여러가지가 존재하지만 이번엔 어플 측에서 설정하는 방법을 알아보았습니다. web.config 원글 작성일 2016-12-28 2019. 1. 23.
메일 수신과 삭제 with OpenPoP.NET Open Pop.NET http://hpop.sourceforge.net/ OpenPop.NET은 C#으로 이메일을 제어 가능한 라이브러리입니다. 아래는 OpenPop.NET을 이용해서 메일의 수신과 삭제를 실행하는 부분을 정리한 내용입니다. 메일 수신과 삭제 기능의 호출 부분 using (Pop3Client pop3Client = GetPop3Client()) { var pop3 = new Pop3Mail(); List receivedMailList = pop3.ReceiveMails(pop3Client); pop3.DeleteMessageByMessageId(client, 1); // MessageId } Pop3Client생성 public static Pop3Client GetPop3Client().. 2019. 1. 21.
log4net의 버젼 차이에 따른 문제 해결 log4net 버젼 차이에 따른 문제 프로젝트 A : 새로운 프로젝트. 당연히 log4net도 최신 버젼을 도입합니다. 하지만 프로젝트 B의 비지니스 로직을 참고해야 합니다... log4net 버젼 : 1.2.15.0 프로젝트 B : 공통 비지니스 로직을 포함하고 있는 오래된 프로젝트로 log4net의 버젼도 당연히 옛날 버젼 입니다... log4net 버젼 : 1.2.10.0 … 그리고 상기의 사양대로 코딩을 했더니 프로젝트 A가 단독으로 움직일때는 문제가 없지만 프로젝트 B의 로직을 호출(Add References로 dll 참조)하면 프로젝트 B에서 로그를 출력하는 타이밍에서 에러가 발생했습니다. 에러 메세지 Could not load file or assembly 'log4net, Version=1.. 2019. 1. 21.
Entity Framework에서 tinyint(1)를 sbyte로 인식 시키고 싶을 경우의 해결 방법 1. config 파일을 수정 Web.config 또는 App.config의 에 “TreatTinyAsBoolean=false”를 추가합니다. 2. DB의 edmx 파일을 수정 SSDL content 부분의 bool를 tinyint로 수정합니다. 그리고 CSDL content 부분의 Boolean을 SByte로 수정합니다. 현재(2016.12) Web.config의 설정만으로 edmx가 자동으로 대응해 주는 방법은 없어서 exmd 파일에서 해당 컬럼과 모델 항목 설정을 일일이 수정해 줄 필요가 있습니다. 그리고 edmx에 변경이 발생할 때마다 (테이블의 추가/변경/삭제 등) 기존의 수동 설정은 새로 리셋되기 때문에 갱신 할때마다 설정을 수정하지 않으면 안됩니다. 처음부터 새로 DB를 구축할때 Entity.. 2019. 1. 21.