Java .net  
파일 형태 2000 줄이 넘으면 분리 필요

가급적 한 행의 길이는 80자 미만

영역을 빈줄로 구분
첫줄은 패키지명 선언


   
class 선언 class ClassName
interface IClassAncestor
class  ClassName
struct StructName
record RecordName
interface IClassAncestor
구성된 단어의 첫 글자는 대문자 (PascalCasing)
.net 인터페이스에는 앞에 I 를 붙여서 선언
    -  
class 에 속한
variables/functions
camel case 사용.
자료형을 이름에 붙이지 않는다!
 
  기능별로 묶음 internal, private 에 속한 멤버는
_ 를 앞에 붙임
static 은 s_ 를 붙임
threadstatic 은 t_ 를 붙임

private IWorkerQueue _workerQueue;
 
function 의 파라미터 camel case 사용    
varialbe 선언 가급적 한 줄에 1개씩 선언
가급적 다른 유형의 자료 형태를 같은줄에 배치 하지 않도록
   
body '{' 가 선언을 시작하는 행의 끝에서 부터 시작
void funcName() {
}

if(boolean) {
}
'{' 가 선언을 시작하는 다음행에 위치

void funcName() 
{
}

if( boolean) 
{
}
 
       

 

 

https://docs.microsoft.com/en-us/dotnet/csharp/fundamentals/coding-style/coding-conventions

Posted by 김모작자

댓글을 달아 주세요

nuget 복원 에러 NU1100

.NET 2021. 8. 30. 18:18

dotnet-sdk 설치 후 

dotnet --info 
등의 명령에는 이상 없는데.

dotnet restore
명령 하면 전체 패키지에 대해 복원을 못 하는 문제

xxx.csproj : error NU1100: 'net5.0'에 대해 'xxxx' 을(를) 확인할 수 없습니다.
xxx.csproj : error NU1100: Unable to resolve 'xxx' for ...

---

기존에 .net core SDK 가 있던 상태에서 .net sdk 5.0설치하고 발생한 문제였는데
아래와 같이 해결하였다. (원래 기본값으로 아래 api.nuget.org 가 들어가 있는게 정상인데 하나도 등록이 안돼 있었음)

dotnet nuget add source --name nuget.org https://api.nuget.org/v3/index.json

 

참고 URL : https://github.com/dotnet/sdk/issues/4156

Posted by 김모작자

댓글을 달아 주세요

nuget 에서 protobuf 와 관련된

- google.protobuf
- google.protobuf.tools

두개의 패키지를 설치는 했는데.. .proto 파일을 어떻게 변환하는지 모르겠더라..
구글링..
역시 stackoverflow 에는 답이 있다!

visual studio 에는 pre-build event 라는걸 설정해둘 수 있는데,
아래와 같이 -I 에는 가져다 쓸 .proto 파일이 있는 경로, -csharp_out 에는 c# class 파일이 생성되는 위치, 마지막엔 컴파일 하려는 .proto 파일 경로를 지정하여 빌드 직전에 .cs 파일을 생성해 낸다.

아래는 프로젝트의 protos 폴더에 있는 모든 .proto 파일을 가지고 packet 폴더에 .cs 파일을 생성한다. 
(미리 폴더를 생성해야 에러가 안생긴다!)

$(NugetPackageRoot)google.protobuf.tools\3.13.0\tools\windows_x64\protoc.exe 
  -I=$(ProjectDir)protos 
  --csharp_out=$(ProjectDir)packet 
  $(ProjectDir)protos\*.proto

stackoverflow.com/questions/58385978/invoking-tool-in-a-nuget-package-with-generator-getting-unexpected-was-not-f

Posted by 김모작자

댓글을 달아 주세요

  블럭 인라인
tag div, h1~h7 span
크기 기본 상태에서 폭 100%
width : 100%
height : 0;
내용물에 맞춰짐
width : 0;
height : 0;
크기 지정 불가 크기 지정한게 무시됨
배치 수직(아래) 방향으로 내려간다 옆으로 
줄바꿈   줄바꿈 해서 배치시 띄어쓰기가 눈에 보임
margin, padding   인라인 요소에 상하 패딩 적용시 공간 확보를 안하기 때문에 유의

블록 요소의 태그라도 display 속성을 통해 상호 변경 가능함.

<style>
	div {
    	display : inline;
	}
...
</style>


...

<div>
	is that block?
</div>

 

Posted by 김모작자

댓글을 달아 주세요

vuejs 스터디하다 발견한 건데..

흔히 새 창을 띄울 때 위 처럼
<a target="_blank"> 태그 또는 window.open("url"); 
을 이용하는데,
이 경우 새로 열린 창에서 window.opener 로 부모창의 데이터를 읽을 수가 있다.

근데 <a> 에 rel="noopener" 를 지정하는 경우 웹 브라우저가 분리된 프로세스/쓰레드에서 창을 열기 때문에 window.opener 를 통해 접근할 수 없게된다.
추가로 별도의 프로세스/쓰레드로 동작하기 때문에 새 창이 뜨거나, 이벤트 처리로 인한 딜레이가 부모창에는 발생하지 않는다.. (분리돼 있기 때문에 당연한 거라 생각듬)

 

Posted by 김모작자

댓글을 달아 주세요