터치에서 사용할 만한 메모장 프로그램을 여러가지 찾아보고 써 보았지만 딱 마음에 드는 것이 없었다. 에버노트에 스프링노트까지 써 보았지만 이거다 싶은 것은 없었다.

내가 기준으로 가지고 있던 메모장 프로그램의 기준은 아래와 같다.


-. 웹과 연동이 되어야 한다.(웹은 아니어도 되지만 컴퓨터에서도 입력, 수정, 삭제가 가능하고 싱크도 가능해야 한다.)

-. 터치에서 싱크가 자유롭고 수정이 가능해야 한다.


웹과의 연동에서는 에버노트가 가장 좋았다. 하지만 지정한 글밖에 되지 않고 글의 수정도 불가능했다.(내용의 추가만 가능)


그래서 생각해낸 것이 블로깅 어플이다. 블로그에 내 메모를 싱크하고 저장하면 되지 않을까 하는 것,

하지만 한가지 걸린 것이 내 메모가 바로 웹상에 공개되어 버린다는 것.


그래서 이 곳 저 곳을 기웃기웃하던 중 구글에서 지원하는 블로거에서는 블로그를 읽을 수 있는 독자를 자기 자신만으로 제한할 수 있다는 것을 알았다. 문제 해결!



구글 계정 가입과 블로그 가입은 이미 되어 있다는 가정하에 설명을 하도록 하겠다.

자신의 블로거를 하나 만들고 설정에 들어가면 사용권한을 설정하는 부분이 있다. 거기서 블로그 독자를 블로그 작성자만으로 설정하는 자신이외에는 보지 못한다.


구글 블로그에서 다른 사람이 보지 못하게 설정


이렇게 하면 본인 이외에는 아무도 읽을 수 없게 된다. 구글블로거를 메모장으로 사용하기 위한 기본적인 준비는 완료다.


그다음은 터치를 준비한다. 원하는 프로그램은 뭐든 좋지만 나의 경우에는 공짜인 BlogWriterLite버전을 사용하고 있다. 거기서 계정설정으로 하고 싱크해서 사용하면 된다.(구글의 블로거는 왠만한 프로그램에서는 싱크를 지원하고 있다.)

이올린에 북마크하기(0) 이올린에 추천하기(0)
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by RedJesusist

 정말 간단한 작업만 하면 만들 수 있는 C#을 통한 웹브라우저이다.
여기서 툴은 비주얼 스투디오가 아닌 SharpDevelop(오픈소스 개발 툴, 간단한 개발이라면 비주얼스투디오를 쓰는 것보다 효율적이다.)을 이용하였다. 사용방법은 거의 비주얼스투디오와 동일하므로 비주얼 스투디오에서도 동일하게 할 수 있을 것이다.

먼저 윈도우 어플리케이션 프로젝트를 생성한다. 이름은 간단하게 SimpleWebBrowser로 했다.

그렇게 하면 빈 폼 디자인이 하나 나오는데 거기에 주소를 입력할 텍스트박스와 컴포넌트에 있는 웹브라우저 컴포넌트를 붙이고 각각 프로퍼티를 조절한다.(여기서는 간단하게 위치 조절만 하였다.)

 simplewebbrowser_01.png

 simplewebbrowser_02.png

 이제 텍스트박스에 이벤트를 걸면 끝이다. 주소를 입력하고 엔터키를 치면 아래에 화면이 불러지도록 할 것이므로 키입력에 관한 이벤트에 메소드를 작성하자.

일단 텍스트박스의 프로퍼티를 보면 위에 번개모양이 있는게 이게 이벤트관련 프로퍼티를 보여주는 부분이다. 여기서 KeyPress부분을 클릭하면 자동으로 메소드가 추가되고 소스 입력화면으로 이동한다.

  simplewebbrowser_03.png


void TextBox1KeyPress(object sender, KeyPressEventArgs e)
  {
   char presskey = e.KeyChar;
   if(presskey == 13)
   {
    changePage();
   }
  }
 
  protected void changePage()
  {
   string newPath = textBox1.Text;
   webBrowser1.Url = new Uri(newPath);
  }
 }

위의 소스는 굳이 설명할 필요가 없을 것이라고 본다. Char에서 13은 엔터키를 말하는 것으로 눌려진 키가 엔터키인 경우 ChangePage메소드를 호출하도록 하고 있다.

 ChangePage메소드는 텍스트박스의 입력값을 가져와서 웹브라우저컴포넌트의 주소값을 변경해주고 있다.


이것으로 끝이다. 웹브라우저가 만들어졌다. 여러가지 버튼이나 북마크 기능등은 각자 만들어 보자.

 simplewebbrowser_04.png


ps.이 것은 매우 문제가 많은 브라우저다. 입력값이 틀릴 경우의 예외처리나 자동완성 기능 등이 전부 누락된, 한마디로 심플웹브라우저이다.

이 글은 스프링노트에서 작성되었습니다.

크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by RedJesusist
spring.NET

스프링 닷넷은 자바 진영에서 매우 다양한 곳에서 쓰이고 있는 유명한 프레임워크 스프링의 닷넷 버전이다. 아래의 그림을 보면 알 수 있듯이 단순한 컨버젼이 아니라 스프링이 가지고 있는 개념을 닷넷에 가장 어울리도록 최적화한 것이라고 볼 수 있다.

springnet.png 

여기서는 이런 다양한 스프링 닷넷 프레임워크 중 DI에 대해서 간략하게 알아보겠다.(이 부분은 코어에 소속된 부분이다. 즉 스프링의 다양한 개념 중에서도 매우 중요하며 기초적인 부분이다.)

DI

 먼저 DI라는 개념을 먼저 파악해야 한다. DI는 Dependency Injection의 약자로서 번역하면 의존성 주입 정도가 된다. 간략하게 설명하자면 하나의 클래스에서 다른 클래스의 객체를 사용할 경우에 직접 객체를 생성해서 사용하지 않고 사전에 설정해 둔 바에 따라서 객체를 가져와 사용할 수 있게 한다는 개념이다.

이렇게 할 경우의 가장 큰 장점은 가져오는 객체의 구조나 생성방식이 바뀌더라도 설정파일을 바꾸는 것만으로 그에 무관하게 사용할 수 있다는 점이다.

아래의 간단한 예를 보면 쉽게 이해가 되리라 생각한다.


스프링 닷넷에서 DI의 사용

 먼저 사전작업으로 Spring.Net 프레임워크를 다운받아 설치해두는 작업이 필요하다.(이는 스프링닷넷 프레임워크 사이트에서 다운받아 설치만 하면 되므로 생략)

 그리고 Spring.Core 어셈블리 파일을 참조추가해둔다. 이로서 사전 작업은 끝

Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Spring.Context;
using Spring.Context.Support;

namespace SpringNET
{
    class Program
    {
        static void Main(string[] args)
        {
            IApplicationContext ctx = ContextRegistry.GetContext();
            Hello hello = (Hello)ctx.GetObject("MyHello");
            string name = "lee";
            string result = hello.SayHello(name);
            Console.WriteLine(result);
            Console.Read();
        }
    }
    class Hello
    {
        public string SayHello(string name)
        {
            return "Hello!, " + name;
        }
    }
}


 위와 같이 소스코드를 하나 작성한다. 다른 부분은 간단하므로 설명하지 않고 DI가 실제로 일어나는 붉은 색부분만 설명하면 첫번째 줄은 현재 어셈블리의 설정파일로 부터(아래에 작성해 볼 것이다.) 어플리케이션 컨텍스트를 가져온다. 둘째줄은 가져온 컨텍스트에서 MyHello라는 이름의 Object를 가져오도록 하는 것이다.

App.config

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

 <configSections>
  <sectionGroup name="spring">
   <section name="context" type="Spring.Context.Support.ContextHandler, Spring.Core" />
   <section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core" />
  </sectionGroup>
 </configSections>

  <spring>
  <context>
   <resource uri="config://spring/objects" />
  </context>

  <objects xmlns="http://www.springframework.net">

   <object name="MyHello" type="SpringNET.Hello, SpringNET">
   </object>
  </objects>
 </spring>
</configuration>


 위의 파일은 해당 어셈블리의 설정파일과 같은 것이다. 여기에 스프링에 관한 설정도 넣을 수 있다.

다른 부분은 무시하고 핵심적인 부분만 설명하면 붉은 색의 코드 한 줄이 의존성 주입이 가능하도록 해주는 부분이다. 객체의 이름은 MyHello, 클래스형은 SpringNET.Hello이며 해당 객체가 들어있는 어셈블리의 이름은 SpringNET라는 이야기이다.

간단히 스프링 닷넷의 DI를 살펴보았다. 좀더 자세한 것은 스프링 닷넷의 다른 기능을 봐가며 살펴보도록 하겠다.


참고자료: spring-net-reference.pdf Spring.NET_guide_ensoa_v.0.2.pdf



이 글은 스프링노트에서 작성되었습니다.

크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by RedJesusist
TAG C#, DI, IT, Spring.NET