Visual Studio 의 Extention 을 소개하려고 합니다.

 

Go To Definition 이라는 Extention 인데요.

Class 나 변수를 Ctrl 과 함께 클릭을 하면 정의한 곳으로 이동 시켜줍니다.

 

추가 팁으로는 Ctrl + Shift + 7 또는 8 을 이용하여 다시 되돌아가거나 돌아 올수 있습니다.

마우스에 따라 앞으로, 뒤로 가기 버튼이 있는 경우도 있지만

있어도 기능이 먹는 녀석이 있고, 안되는 경우도 있고.

 

^^;

 

VisualStudio 2017 의 경우는

 

https://marketplace.visualstudio.com/items?itemName=VisualStudioProductTeam.CtrlClickGoToDefinition

 

에서 Download 받아 설치하시고요.

 

이전 버전의 경우는

https://marketplace.visualstudio.com/items?itemName=NoahRichards.GoToDefinition

 

에서 Downlad 받으시면 되겠습니다.

 

매우 유용합니다.

 

 

행복한 고수되셔요.

 

 

woojja ))*

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\













저작자 표시 비영리 변경 금지
신고

'Tools > Settings' 카테고리의 다른 글

[Settings] VisualStudio - Go To Definition  (2) 2017.11.07
[Settings] Visual Studio 2010 Pro Power Tools  (0) 2010.06.25
Posted by woojja

 

GUID Maker 를 수정했습니다.

(http://jumptovb.net/search/guidmaker 를 참고하셔요.)

 

 

필요한 사항이 있어서요. ^^

 

 

수정사항은 Hyphen 표시 유무 입니다. ^^

Source 는 링크를 Click 하시면 GitHub 로 이동합니다.

 

 

GUID Maker Source

 

 

 

 

 

GUID Maker 2 Source

 

 

다음 Update 시에는 두개를 합쳐야겠습니다. ^^

 

 

행복한 고수되셔요.













저작자 표시 비영리 변경 금지
신고

'Tools' 카테고리의 다른 글

[Tools] GUID Maker Updated.  (0) 2017.10.31
[Tools] Log4Net  (0) 2017.10.12
[Tools] DotNetZip  (0) 2017.10.10
[Tools] 3 Ways to Change Bitrate on MP3 Files  (0) 2017.09.08
[Tools] NShape  (0) 2017.06.28
[Tools] GUID Maker  (0) 2017.06.21
Posted by woojja
2017.10.12 20:00

들어는 보셨을 Log4Net 을 소개해 드립니다.


Web 에서 간단하게 Log 를 쌓을 때 사용하던 녀석입니다.


이번 프로젝트는 WinForm 인데 Log 기능을 넣어달라고 하여 이 녀석을 추가해주려고 합니다.


일단은 파일로만 생성해 주렵니다.

공식웹사이트는 http://logging.apache.org/log4net 이며


GitHub Site 는 https://github.com/apache/logging-log4net/ 입니다.



Project 를 여시고요.

NuGet Manager Console 에서 


Install-Package log4net


이렇게 입력하시면 설치가 간단히 끝납니다.


그 다음은 app.config 또는 Web.config 파일에 Log4Net 을 사용하겠다고 알려주고요.


Log 에 대한 설정 사항을 입력해 주면 됩니다.


별도의 Log4Net.config 파일에 정의해 주어도 되겠습니다.


Log4Net.config 에서 설정을 관리하겠다면 첨부되어 있는 Logger.cs 파일의 initialize() 함수에서 처럼 로그를 관리하는 class 에 아래 구문을 추가해주시고요.


XmlConfigurator.ConfigureAndWatch(new FileInfo(logFilePath));


app.config 나 web.config 을 사용하시겠다면 

assemblyinfo.cs 이나 program.cs 파일에 아래 구문을 입력해 주셔요. ^^


[assembly: log4net.Config.XmlConfigurator(Watch = true)]



다음 설정은 App.Config 에 적어준 사항을 블로그에 맞게 약간 수정해서 기록합니다.


다른 사항들도 빼곡하게 적어 놓았는데 그 사항들을 여러분들이 사용하실때 주석을 풀어 사용하시면 되리라 생각하고 일단은 파일에 Log 를 쌓는 부분만 사용할 수 있게 주석을 풀어 놓았습니다.



<?xml version="1.0" encoding="utf-8"?>

<configuration>

  <startup> 

    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>

  </startup>

  <runtime>

    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">

      <probing privatePath="DLL" />

    </assemblyBinding>

  </runtime>


  <configSections>

    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>

  </configSections>


  <log4net>


    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">


      <file type="log4net.Util.PatternString" value="Logs/%date{yyyy-MM-dd}_log4net.log"/>

      <datePattern value="yyyy-MM-dd"/>

      <appendToFile value="true" />

      <rollingStyle value="Date" />

      <staticLogFileName value="true" />

      <maxSizeRollBackups value="60" />

      <maximumFileSize value="15MB"/>

      <layout type="log4net.Layout.PatternLayout">

        <conversionPattern value="%d [%t] %-5p %c - %m%n" />

      </layout>


    </appender>

    

    <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">

      <bufferSize value="1" />

      <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

      <connectionString value="Data Source=DataSourceName;Initial Catalog=DatabaseName;integrated security=True" />

      <commandText value="INSERT INTO SADT_Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" />

      <parameter>

        <parameterName value="@log_date" />

        <dbType value="DateTime" />

        <layout type="log4net.Layout.RawTimeStampLayout" />

      </parameter>

      <parameter>

        <parameterName value="@thread" />

        <dbType value="String" />

        <size value="255" />

        <layout type="log4net.Layout.PatternLayout">

          <conversionPattern value="%thread" />

        </layout>

      </parameter>

      <parameter>

        <parameterName value="@log_level" />

        <dbType value="String" />

        <size value="50" />

        <layout type="log4net.Layout.PatternLayout">

          <conversionPattern value="%level" />

        </layout>

      </parameter>

      <parameter>

        <parameterName value="@logger" />

        <dbType value="String" />

        <size value="255" />

        <layout type="log4net.Layout.PatternLayout">

          <conversionPattern value="%logger" />

        </layout>

      </parameter>

      <parameter>

        <parameterName value="@message" />

        <dbType value="String" />

        <size value="4000" />

        <layout type="log4net.Layout.PatternLayout">

          <conversionPattern value="%message" />

        </layout>

      </parameter>

      <parameter>

        <parameterName value="@exception" />

        <dbType value="String" />

        <size value="2000" />

        <layout type="log4net.Layout.ExceptionLayout" />

      </parameter>

    </appender>

    

    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">

      <layout type="log4net.Layout.PatternLayout">

        <conversionPattern value="%d [%t] %-5p %c - %m%n" />

      </layout>

    </appender>

    <appender name="OutputDebugStringAppender" type="log4net.Appender.OutputDebugStringAppender">

      <layout type="log4net.Layout.PatternLayout">

        <conversionPattern value="%-5p %m - %c -%n" />

      </layout>

    </appender>

    <appender name="TraceAppender" type="log4net.Appender.TraceAppender">

      <layout type="log4net.Layout.PatternLayout">

        <conversionPattern value="%d [%t] %-5p %c - %m%n" />

      </layout>

    </appender>

    <appender name="AspNetTraceAppender" type="log4net.Appender.AspNetTraceAppender">

      <layout type="log4net.Layout.PatternLayout">

        <conversionPattern value="%d [%t] %-5p %c - %m%n" />

      </layout>

    </appender>


    <root>

      <level value="DEBUG" />


      <appender-ref ref="RollingFileAppender" />


      <!--

      <appender-ref ref="AdoNetAppender" />

      <appender-ref ref="ConsoleAppender" />

      <appender-ref ref="OutputDebugStringAppender" />

      <appender-ref ref="TraceAppender" />

      <appender-ref ref="AspNetTraceAppender" />

      -->

    </root>


  </log4net>

  

</configuration>




내용은 설명을 달아 놓아야 할까 싶을 정도로 간단합니다.

제가 굵게 표시한 글자들만 보셔도 아하~~ 하실거라 생각합니다.


설명을 안할까 생각중인데... 헤헤헤 

에헤~~ 한번 찬찬히 봐 보셔요. ^^

설명 필요없을거예요. 






행복한 고수되셔요. ^^


woojja ))*

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
















저작자 표시 비영리 변경 금지
신고

'Tools' 카테고리의 다른 글

[Tools] GUID Maker Updated.  (0) 2017.10.31
[Tools] Log4Net  (0) 2017.10.12
[Tools] DotNetZip  (0) 2017.10.10
[Tools] 3 Ways to Change Bitrate on MP3 Files  (0) 2017.09.08
[Tools] NShape  (0) 2017.06.28
[Tools] GUID Maker  (0) 2017.06.21
Posted by woojja
2017.10.10 20:00

.NET Framework 에서 사용할 Zip library 로 DotNetZip 을 사용했습니다.


사용도 편하여 사용 code snippet ? 을 적어봅니다.


공식 Source Page 는 사용이 정지된 Codeplex 의 https://dotnetzip.codeplex.com/ 입니다.

해당 페이지에 사용법도 간단하게? 설명해 놓았습니다.


NuGet Package Manager 에서도 DotNetZip 이라는 Keyword 로 찾으시면 되겠습니다.

제가 사용한 Version 은 1.10.1 입니다.



참조 추가는 해주시고요.


using Ionic.Zip; 으로 사용을 시작하겠습니다.


using Ionic.Zip;


. . . 


string strFileName = string.Format("NewZip_{0}.zip", DateTime.Now.ToString("yyyyMMddHHmm"));

bool isOk = false;


saveFileDialog.CreatePrompt = false;

saveFileDialog.CheckFileExists = false;

saveFileDialog.CheckPathExists = true;

saveFileDialog.Filter = FileFilterZip;

saveFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

saveFileDialog.FileName = strFileName;


if (saveFileDialog.ShowDialog() == DialogResult.OK)

{

    strFileName = saveFileDialog.FileName;


    . . .


    using (ZipFile zip = new ZipFile { CompressionLevel = CompressionLevel.BestCompression })

    {

        . . . 

        strPath = Path.Combine(strFileFolderPath, "FileName.ext");


        if (File.Exists(strPath))

{

    // Zip 파일내에 FolderName 이라는 Folder 를 만들어 그 폴더 내에 저장합니다.

            zip.AddFile(fi.FullName, "FolderName"); 


            // Zip 파일의 Root 에 저장됩니다.

            // zip.AddFile(strPath, ""); 


            // 이렇게 하시면 System 의 Folder 구조대로 Zip 파일에 포함됩니다. 

            // 경로의 앞부분은 잘립니다.

    // 어느 Depth 에서 잘리는지 확인하지 못했네요. 직접 확인해보시길... ^^;

            // zip.AddFile(strPath); 

}


        if (Directory.Exists(strFolderPath))

{

    // Directory 를 Zip 파일에 포함하고자 할 때 사용하는 구문이겠죠?

            zip.AddDirectory(strFolderPath, strFolderName);


    // 이렇게 하시면 System 의 Folder 구조대로 Zip 파일에 포함됩니다. 

    // 이 경우도 마찬가지로 경로의 앞부분은 잘립니다. ^^;

            // zip.AddDirectory(strFolderPath); 

        }


string strRootPath = dirRoot.FullName;

        foreach (var d in dirRoot.GetDirectories())

        {

            // 이렇게도 사용할 수 있습니다.

    // 이렇게하면 Zip 파일내에 New_Folder 라는

    // Directory 를 생성하고 그 아래에 d Directory를 포함시킵니다.

    zip.AddDirectory(d.FullName, "New_Folder" 

+ d.FullName.Replace(strRootPath, string.Empty));

        } 

        . . .


        zip.Save(strFileName);

        isOk = true;

    }


    if (isOk)

    {

        DialogResult result = MessageBox.Show("Completed Export Work.\n\t Do you want to open result file's location?", "Network Designer", MessageBoxButtons.OKCancel);

        //압축에 성공했으니 압축결과물을 봐야겠죠? ^^


        if (result == DialogResult.OK)

        {

            if (File.Exists(strFileName))

            {

                Process.Start(new ProcessStartInfo("explorer.exe", " /select, " + strFileName));

            }

        }

    }

}


사이트에 설명이 되어 있는 내용도 있고 제가 요리조리 잔머리 굴리며 작성한 내용입니다.

Folder 이름이나 파일명을 바꾸느라 코드에 오류가 있을 수도 있습니다. ^^;

오류가 있더라도 큰 줄기만 잘 살펴보시고...

도움이 되었으면 합니다.



행복한 고수되셔요.


woojja ))*

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\













저작자 표시 비영리 변경 금지
신고

'Tools' 카테고리의 다른 글

[Tools] GUID Maker Updated.  (0) 2017.10.31
[Tools] Log4Net  (0) 2017.10.12
[Tools] DotNetZip  (0) 2017.10.10
[Tools] 3 Ways to Change Bitrate on MP3 Files  (0) 2017.09.08
[Tools] NShape  (0) 2017.06.28
[Tools] GUID Maker  (0) 2017.06.21
Posted by woojja
TAG DotNetZip

 

Car Audio 에서 MP3 를 Player 하고 있지만 언제부터인가 Bitrate 가 높은 음악들이 많아져서

재생이 안되는 경우가 많아졌습니다.

이에 Bitrate 를 바꿔주는 App 이 필요하게 되었는데요.

App 을 만들까 생각하다가 혹시나 싶어 찾아봤는데 좋은 녀석들이 좀 있네요.

 

3 Ways to Change Bitrate on MP3 Files

 

행복한 고수되십시요.

 

woojja ))*

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

 













저작자 표시 비영리 변경 금지
신고

'Tools' 카테고리의 다른 글

[Tools] Log4Net  (0) 2017.10.12
[Tools] DotNetZip  (0) 2017.10.10
[Tools] 3 Ways to Change Bitrate on MP3 Files  (0) 2017.09.08
[Tools] NShape  (0) 2017.06.28
[Tools] GUID Maker  (0) 2017.06.21
[Tools] HP OMEN 게이밍노트북 (OMEN 15-AX012TX)  (1) 2017.01.23
Posted by woojja
2017.06.28 11:48

이번 프로젝트에서 Drawing 기능을 사용하게 되었습니다. (4월부터 진행했으니 한참지났죠? ㅋㅋㅋ)

Open Source 를 찾아보던 중 알게된 제품입니다.

 

다른 Drawing Tool 보다는 짜임새 있게 만들어져 있습니다만

조금 복잡합니다.

 

Visio 만큼은 아니지만 비등한 기능을 제공합니다.

띄엄띄엄 업데이트가 이루어지고 있고요.

구매고객만 지원하는 것이지는 모르지만

2016년 6월 2.2.1 버전이 마지막 업데이트인것으로 생각됩니다.

 

Codeplex 사이트는 중지되었지만

제품사이트 다운로드보다는 Codeplex 의 버전이 더 높네요. ^^;

 

https://nshape.codeplex.com/

 

한번 사용해 보시지요...

 

 

행복한 고수되십시요. ^^

 

woojja ))*

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\













저작자 표시 비영리 변경 금지
신고

'Tools' 카테고리의 다른 글

[Tools] DotNetZip  (0) 2017.10.10
[Tools] 3 Ways to Change Bitrate on MP3 Files  (0) 2017.09.08
[Tools] NShape  (0) 2017.06.28
[Tools] GUID Maker  (0) 2017.06.21
[Tools] HP OMEN 게이밍노트북 (OMEN 15-AX012TX)  (1) 2017.01.23
[Tools] 텍스트편집기 Sublime Text  (0) 2015.10.01
Posted by woojja
2017.06.21 16:13

수십개의 GUID 를 입력해야하는 상황이 발생했습니다.

 

아래 그림처럼 VisualStudio 의 도구(Tools) 메뉴에 보시면 GUID 생성하는 도구가 있지요?

 

 

실행시키면 아래와 같습니다.

 

 

하지만 수십개의 GUID 만들어야 하는데...

 

New GUID 버튼을 클릭하고 Copy 버튼을 클릭 하는,  

그렇게 두번 클릭해서 복사한다음

Ctrl + V 로 붙여넣기하는 작업을 수십번 해야한다니... 

 

귀찮았습니다. ^^;

 

 

그렇게 어려운 코딩도 아니고 해서 그냥 하나 만들었습니다.

 

 

 

그냥 갯수정한 후 생성하고 전체 복사하는 도구입니다. ^^;

 

 

GUID Maker Source

 

 

Update Version... ^^;

 

 

저 작업도 귀찮았습니다.

생성한다음에 GUID 하나씩 선택해서 복사하기(Crtl + C) 나 잘라내기(Ctrl + X) 한후 다시 붙여넣기(Crtl + V) 하는 세번의 손놀이를 해야하니 손가락이 뻑쩍지근해서. ㅋㅋㅋ

 

 

 

그냥 버튼만 클릭하면 각 포맷으로 ClipBoard 에 저장됩니다.

클릭한번에 붙여넣기 (Crtl + V) 한번이면 되겠습니다.

 

 

GUID Maker 2 Source

 

 

설치파일까지는 생성하지 않았습니다.

 

어차피 개발자 분들만 보시리라 생각하니까... ^^

.NET Framework 4.5 환경에서 C#으로 작성했습니다.

 

 

행복한 고수되십시요. ^^

 

woojja ))*

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

 













저작자 표시 비영리 변경 금지
신고

'Tools' 카테고리의 다른 글

[Tools] 3 Ways to Change Bitrate on MP3 Files  (0) 2017.09.08
[Tools] NShape  (0) 2017.06.28
[Tools] GUID Maker  (0) 2017.06.21
[Tools] HP OMEN 게이밍노트북 (OMEN 15-AX012TX)  (1) 2017.01.23
[Tools] 텍스트편집기 Sublime Text  (0) 2015.10.01
[Tools] 텍스트 편집기 APTANA  (0) 2015.10.01
Posted by woojja

이번에 노트북을 한대 구매했습니다.

개발용으로 사용하기 위해 여기저기 조회를 해 본 결과

가성비? 를 따져보니 괜찮은 녀석이라 사료되어 결정하게 되었습니다.


지난 9월 큰 마음 먹고 280만원가량의 Dell 의 XPS15 9550 풀옵 바로 아랫 제품으로 구매를 했었으나

원인 모를 (잘 가르쳐주지 않음) 문제로 인하여 두번의 교환을 하게 되었고

두번의 교환이 되게 되면 환불조치가 이루어진다는 Dell 측의 규정으로 인해 환불하게 되었습니다.


그래서 다른 녀석들을 조회해보니 맘에 드는 것은 별로 없었고 그제야 정신차리고 가성비를 따지게 되었죠... ^^;



LG 의 Gram 에 강력한 지름신이 강림하시긴 했습니다만 CPU 가 조금 딸리는 상황이었고

i7-7700HQ CPU를 장착한 노트북이 나오고 있는 상황이라 이 또한 고려를 했습니다.

삼성의 Odyssey 를 봤습니다만...

i7-7700HQ 를 장착한 모델의 경우 모니터가 FHD 지원하는 모델만 있었고 별로 만족치 않아 제외되게 되었습니다.

i7-6700HQ 한단계 낮추어 생각하게 되었고

삼성 노트북9 pro NT930Z5L-X716 모델이 제품들 중 좋더군요.(지인을 통해 좀 싸게 살수 있었거든요.)


두 제품 비교를 좀 해보시지요.




사양은 조금 비슷해 보이나

오멘을 결정하게 된 데는 램의 사양과 하드의 사양, 그래픽카드, 블루투스 였으며 램을 추가하는 것도 주문을 통해 가능해서였습니다. 유선랜포트도 밖으로 노출되어 있고요.

1테라의 별도 하드가 추가 되어있으나 무게는 별반 차이나지 않습니다.

1테라의 하드를 기존에 가지고 있는 SSD 로 변경하려 했으나 일단은 그래도 사용하기로 결정했습니다.


두 모델의 단점은 모두 Window 10  Home 이라는 점!

Pro 가 탑재되어 있는 모델은 없었고, OS 장착안된 모델도 판매가 되지 않아

구매후 Pro 로 업그레이드를 할 수 밖에 없었습니다.

그리고 사용상의 단점을 굳이 들자면 키보드 우측에 숫자키패드가 있어서 화면의 중앙과 키보딩 자세가 맞지 않다는 점이 약간 거슬립니다만 작업을 하게되면 별도의 키보드를 연결하여 사용하고 모바일로 작업을 하게되는 경우는 그리 많지 않은 상황이라 한번 참아보기로 했습니다. ^^;


게임용 노트북인데도 삼성 노트북과 비교해 그리 무겁지 않습니다.

두께는 무려 6mm?! 하지만 이정도야 뭐... ㅋㅋ



그럼 별 내용은 아니지만 개봉 사진을 보여드리죠...




왜 파빌리온 박스에 왔는지는 모르겠으나... ㅋㅋ


두둥~~

박스가 조금 강렬한데요?! ㅋㅋ


램을 업그레이드 하느라 박스에 약간의 생채기가 있네요... 쩝


뭐 이상한 모양의 스티로폼이...

그래도 조금은 안전해 보이네요.



비닐도 까여있었어요... 힝~ ㅋㅋ



전원 캐이블과 HDMI To RGB 커넥터가 있습니다.


짠!! 박스만큼이나 쵸쿰 강렬하군요.


추운 날씨에 제게 달려오느라 표면에 약간의 성에가...


그리 ... 두껍네요.


배터리는 충전이 안된 상태네요. 전원을 연결하고 땋!!!



지금까지 OMEN 구매기와 개봉기 였습니다.


이정도면 잘 산거 맞나요? ^^;



이제 일 열심히 해야겠네요...



행복한 고수되셔요.


woojja ))*

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\













저작자 표시 비영리 변경 금지
신고

'Tools' 카테고리의 다른 글

[Tools] NShape  (0) 2017.06.28
[Tools] GUID Maker  (0) 2017.06.21
[Tools] HP OMEN 게이밍노트북 (OMEN 15-AX012TX)  (1) 2017.01.23
[Tools] 텍스트편집기 Sublime Text  (0) 2015.10.01
[Tools] 텍스트 편집기 APTANA  (0) 2015.10.01
[Tools] 101 Free Admin Tools  (0) 2014.10.29
Posted by woojja

Less 를 사용하기 위한 플러그인 있음

Less 보다 성능이 좋은 Sass 용 플러그인도 있음.

Zen Coding (Emmet) 플러그인 있음

 

http://www.sublimetext.com

 

행복한 고수되셔요.

 

woojja ))*

\\\\\\\\\\\\\\\\\\\\\\\\\\\\

 













저작자 표시 비영리 변경 금지
신고

'Tools' 카테고리의 다른 글

[Tools] GUID Maker  (0) 2017.06.21
[Tools] HP OMEN 게이밍노트북 (OMEN 15-AX012TX)  (1) 2017.01.23
[Tools] 텍스트편집기 Sublime Text  (0) 2015.10.01
[Tools] 텍스트 편집기 APTANA  (0) 2015.10.01
[Tools] 101 Free Admin Tools  (0) 2014.10.29
[Tools] MockUpBuilder  (0) 2012.10.27
Posted by woojja

 

APTANA

 

 

행복한 고수되셔요~

 

 

woojja ))*

\\\\\\\\\\\\\\\\\\\\\\\\\\













저작자 표시 비영리 변경 금지
신고
Posted by woojja
이전버튼 1 2 3 4 이전버튼

티스토리 툴바