Notice»

Recent Post»

Recent Comment»

Recent Trackback»

Archive»

« 2024/12 »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

 
 

자북자료실가기

소설같은 C# Third Edition 소스코드와 강의자료를 자북자료실에서 받으세요. 

첨 C#시작할때 봤던책인데 계속 업데이트를 시키는 군요. 그리고 소스와 책내용을 PPT로 해서 웹에 공개도 하셨구요.
최영관님과 자북출판사에 감사드리며~ ^^

보시다가 괜찮으면 한권 구매하시면 되겠네요. ㅎ
아무래도 아직 책으로 직접보는게 훨씬 편해자나요 ^^

:

http://www.mono-project.com/Main_Page

http://mono-project.com/Moonlight



iPhone
http://monotouch.net/
아직 3.1까지만 지원하고 있구나..
http://monotouch.net/News/post.aspx?id=f1bed953-6c3d-412e-8182-ab33ed400bf7


레스코에 개발자 센터가 있군
근데 너무 비싸다;
모노에서 소개하고 있네.
http://monotouch.net/News/post.aspx?id=f850f17a-05e3-409f-ad4e-ab0fb1b0a2fb
http://www.resco.net/developer/mobileappstudio/overview.aspx



Android
http://monodroid.net/


I have a MonoTouch or WindowsPhone 7 application, can I just rebulid it with MonoDroid and target Android?

Both MonoDroid and MonoTouch bring the core of .NET to the iPhone and Android platforms, but we do not offer a UI cross-platform solution. Each operating system offers slightly different services for building user interfaces, interacting with the phone, the address book, the built-in GPS and audio systems.

Our recommendation for users that want to target all three mobile platforms is for developers to separate the business logic of their application from the user interface and hardware interface layer.

This means that both the user interface layer and any hardware integration components will have to be written once for each platform.

Your business logic can consist of anything that uses the core APIs in: mscorlib, System, System.Xml, System.Core, System, System.Data, System.Json, System.Runtime.Serialization, System.ServiceModel, System.Web.Services and System.Xml.Linq as well as

In addition, OpenGL code between the iPhone and Android can be shared as we support the OpenTK API, an object-oriented wrapper for C# developers to access OpenGL libraries.

Since the core MonoDroid and MonoTouch libraries are supersets of the Silverlight APIs, you might have to factor those features out.

Does MonoDroid support WCF?

MonoDroid supports a subset of WCF, but this support is not battle tested like our standard System.Web.Services stack (old .NET 1.0 SOAP).

The WCF subset is the same subset exposed by Silverlight.   This is because MonoDroid's WCF stack is derived from the work we did for our open source Silverlight implementation, Moonlight.

You should consider our WCF support "alpha" quality, as it is known to have various missing features.    Although we are working to resolve those, it is best to not depend on these features being ready until we actually ship and announce them.

If all you want is an RPC system across systems, we recommend that you use one of the various .NET versions of Google's Protocol Buffers:



Windows Phone 7

monolight??
:

.NET 서비스팩,재배포

프로그래밍/C#, Xamarin | 2009. 4. 30. 01:15 | Posted by 99%
:

.NET2.0 에서 Generics 이란?


델파이2009에도 Generics가 추가 되었군요.
Template의 영향력이 크네요.
STL과 같은 구조의 라이브러리가 전언어에서 구현가능하겠군요.


찾게 되면 이곳에 정리 하겠습니다.

:
예전에 올라온 글 정리인데 출처를 모르겠다 ㅜ.ㅜ

지 난 2000년 6월 포럼 2000에서 처음 발표된 닷넷은 MS가 추진하고 있는 서비스 중심의 통합 플랫폼이라는 거대 전략이다. 모노(Mono Project)는 닷넷 프레임워크를 오픈소스로 구현하려는 프로젝트이다. 그 동안 서른 번의 릴리즈에도 불구하고 말도 안 되는 실현 불가능한 일이라 여겼는지 아니면 눈에 띄는 뚜렷한 결과물, 이를테면 비주얼 스튜디오 닷넷(이하 VS.NET)과 같이 눈에 착착 달라붙고 보여줄 수 있는 닷넷 개발 환경을 무작정 기대한 것일까. GUI 환경의 많은 Gtk# 애플리케이션들이 나왔지만 국내에선 일부 MS와 관련한 비판만 있었을 뿐 그다지 큰 반향을 일으키지는 못한 것 같다. 그럼 먼저 최근 활발히 개발되고 있는 MonoDevelop 모노 IDE(Integrated Development Environment)를 소개해 본다.

리눅스에서 새로운 통합개발환경
[화면 1]의 MonoDevelop은 Gtk# 기반의 통합개발환경(이하 IDE)로서 모노 기술로만으로 만들어진 C# 프로그램이다. Gtk#은 리눅스에서 사용자를 위한 편리하고 화려한 데스크탑 환경을 제공하는 그놈(GNOME)을 C# 바인딩한 것으로 최근 2.6이 발표된 그놈의 눈부신 발전에 힘입어 리눅스에서 미려한 각종 GUI 컨트롤을 쉽게 만들 수 있는 기반이 된다. 아직 몇 달 안 된 프로젝트이지만 신세대 IDE라면 갖추어야 할 코드 인텔리전스([화면 2]), 디버깅, 플러그인 기능을 내장하였다. 물론 2001년부터 시작하여 지금은 IBM을 비롯한 수십 개의 회사가 지원하는 경쟁자 이클립스가 있긴 하다. 자바로 만든 이클립스는 한번 더 언급하기로 하고 일단 MonoDevelop과 함께 선보인 멋진 발표 현장을 가 보자.

[화면 1] MonoDevelop 실행 화면

[화면 2] Intellisense 기능

Novell BrainShare 2004
지 난 3월에 있었던 노벨 세미나에서 미겔(Miguel de Icaza)과 에릭(Erik Dasque)은 리눅스에서 애플리케이션 개발을 얼마나 쉽고 빠르게 할 수 있는지 단적으로 보여주었다. 진행자의 신호에 빨간색 모노 티를 입은 미겔과 에릭이 등장했고 발표는 MonoDevelop을 띄워 놓고 진행되었다.우선 새로운 Glade# 프로젝트를 선택하자 기본적인 코드가 생성되었다. 그놈 UI 디자이너 Glade를 실행하고 버튼, 텍스트 입력 컨트롤 그리고 Gecko 웹 컨트롤을 배치하여 UI를 구성했다. 관련 닷넷 어셈블리 등록을 마치고 [리스트 1]과 같은 코드를 간단히 몇 줄 추가함으로서 웹 브라우저가 완성이 됐다.


[리스트 1] 웹 브라우저 예
using System;
using Gtk;
using Glade;
using Gecko;

public class GladeApp
{
  [Widget] Frame frame1;
  [Widget] Entry entry1;
  WebControl web;

  public static void Main (string[] args)
  {
    new GladeApp (args);
  }

  public GladeApp (string[] args)
  {
    Application.Init();
    Glade.XML gxml = new Glade.XML ();
    gxml.Autoconnect (this);
    web = new WebControl ();
    web.Show ();
    frame1.Add (web);
    entry1.Activated += load_url;
     Application.Run();
  }

  void load_url (object s, EventArgs a)
  {
    web.LoadUrl (entry1.Text);
  }
}

이 것을 리눅스 프로그램이라 쉽게 믿을 수 있을까. 그것도 완벽하게 실행되는 환경이라면. 뿐만 아니라 닷넷의 특징이라 할 수 있는 윈도우?리눅스 바이너리 호환성, 즉 리눅스에서 컴파일한 실행 exe 파일을 윈도우에 복사하는 것만으로 윈도우에서 실행이 가능하다.

미리 보는 모노 1.0
이번에 발표되는 모노 1.0은 다음과 같은 기능을 포함할 것이다.

◆ C# 컴파일러
◆ 닷넷 CLR(Common Language Runtime)
◆ 닷넷 1.0과 1.1 API를 완벽하게 구현한 닷넷 클래스 라이브러리
◆ System.Web을 구현한 웹 서비스 애플리케이션 플랫폼
◆ System.Data를 비롯한 모노 데이터베이스 프로바이더
◆ 그놈 데스크탑 컴포넌트의 C# 바인딩인 Gtk#
◆ 자바 플랫폼 실행 환경 IKVM

C# 컴파일러
모 노 C# 컴파일러는 순수 C#으로만 작성된 프로그램이다. C#으로 된 컴파일러 소스를 컴파일하는 최초의 부모는 MS 컴파일러가 되는 셈이다. 컴파일러가 컴파일러 자신을 만드는 이러한 셀프 호스팅(self hosting)은 개발자들이 C# 언어를 이해하는 데 훌륭한 기본 바탕이 되었으며 많은 코드 재사용이 이루어졌다.

닷넷 CLR
다 양한 언어를 위한 공통적인 플랫폼인 닷넷 CLI(Common Language Infrastructure) 그리고 여기에 사용되는 중간 언어인 CIL(Common Intermediate Language) 코드를 위한 아키텍처 코드 생성과 실행은 모노 런타임이 맡고 있다. 이는 CIL 가상머신(VM), 클래스 로더, 가비지 컬렉터, 쓰레드 시스템, 메타데이터 접근 라이브러리를 위한 JIT(Just-in-Time) 엔진을 담당한다. 런타임 개발 도중 미리 네이티브 코드로 컴파일해 둬 성능을 극대화시키는 AOT(Ahead-of-Time)를 지원하기 위한 mini 런타임을 만들었고 현재 기본 런타임이 되었다. 모노는 현재 리눅스/x86, 솔라리스/SPARC, Mac OS/PowerPC 아키텍처를 지원한다.

닷넷 클래스 라이브러리
닷 넷 네임스페이스를 구성하는 어셈블리들의 방대한 닷넷 클래스 라이브러리를 구현하는 것은 무모해 보였다. 공개된 API만을 보고 내부 사정을 구현하는 작업이기 때문이다. 하지만 현재 MSCORLib(Multilanguage Standard Common Object Runtime Library), System, System.Security, System.XML 라이브러리를 100% 완성하여 이를 1.0에 포함할 것이다. 게다가 MS가 지원하지 않는 모노 전속 라이브러리도 많아졌다. 또한 다양하고 방대한 라이브러리의 자동화된 테스트를 위한 유닛 테스팅 프레임워크와 각 수천 개의 테스트 케이스를 지속적으로 관리하였다.

ASP.NET, ADO.NET
ASP.NET 은 웹 서비스를 구축하기 위한 닷넷 환경이다. 이를 위한 관련 System.Web 라이브러리를 구현하였고 웹 서버 XSP 또는 아파치 모듈을 통해 웹 애플리케이션을 돌릴 수 있다. 이와 함께 ADO.NET을 지원하기 위해서 다양한 모노 데이터베이스 프로바이더(MSSQL, Oracle, MySQL, Interbase, IBM DB2, SQL Lite, Sybase, TDS)를 제공하고 있다.

Gtk#
그놈은 모노의 시발점이 된 프로젝트이다. 다양한 언어를 지원하는 그놈이긴 하지만 API 바인딩을 지속적으로 관리하기 위해선 수작업 노동이 동반된다. Gtk#은 닷넷 특성을 최대한 활용하였다. [리스트 1]의 [Widget] 코드를 보라. 닷넷 애트리뷰트를 이렇게 적용할 수도 있음을 확인할 수 있다. 커스텀 XML 파일에 바인딩 정보를 넣어 자동 생성되는 Gtk#은 단순 C# 바인딩을 넘어 OOP, 닷넷 델리게이트 등 각종 트릭을 가능케 했다. [리스트 2]의 코드는 OOP의 대표적인 특징인 상속을 보여주고 있다. 알다시피 Gtk+를 비롯한 그놈 컴포넌트의 대부분은 C로 짜여져 있다.


[리스트 2] Gtk# subclassing
// Subclass.cs - Widget subclass Test
//
// Author: Mike Kestner
//
// (c) 2001-2003 Mike Kestner, Novell, Inc.

namespace GtkSamples {

   using Gtk;
   using System;

   public class ButtonApp {

     public static int Main (string[] args)
     {
         Application.Init ();
         Window win = new Window ("Button Tester");
         win.DeleteEvent += new DeleteEventHandler (Quit);
         Button btn = new MyButton ();
         win.Add (btn);
         win.ShowAll ();
         Application.Run ();
         return 0;
     }

     static void Quit (object sender, DeleteEventArgs args)
     {
         Application.Quit();
     }
   }

   public class MyButton : Gtk.Button {

     static GLib.GType gtype = GLib.GType.Invalid;

     public MyButton () : base (GType)
        {
           Label = "I'm a subclassed button";
        }

        public static new GLib.GType GType {
           get {
               if (gtype == GLib.GType.Invalid)
                  gtype = RegisterGType (typeof (MyButton));
               return gtype;
           }
        }

        protected override void OnClicked ()
        {
           Console.WriteLine ("Button::Clicked default handler fired.");
        }
   }
}

IKVM
예 컨대 자바나 닷넷 선택의 기로에 있는 개발자들이 있을 것이다. 하지만 닷넷이 자바의 장점을 많이 흡수해서인지 졸탄(Zoltan Varga)의 IKVM은 자바 클래스 라이브러리를 구현한 GNU Classpath를 이용하여 자바 플랫폼을 실행할 수 있게 해준다. 즉 이클립스를 모노 런타임으로 돌리는 것이다. 한편 그놈 진영에서도 자바냐 모노냐 하고 논쟁이 있는데 이런 프레임워크 선택 문제는 상황과 위치에 따라 자기 목소리를 낼 수밖에 없는 것 같다. 각각의 장단점을 파악하고 자신만의 경쟁 무기를 만드는 것이 좋을 것이다.

열정적인 커뮤니티, 모노 팀
그렇다면 어떻게 3년 만에 이 많은 것을 완성할 수 있었을까. 2001년 7월 9일, 4명의 지미안(Ximian) 해커로 시작한 모노 프로젝트는 현재 노벨이 지미안을 인수하여 노벨 소속 십여 명의 개발자와 130여명의 전 세계 각지의 자발적인 해커들이 참여하여 진행하고 있다. 모노 테스팅 프레임워크를 구축한 Nick Drochak과 XML 마스터 Atsushi Enomoto는 일본에서 참여하고 있다. Ben Maurer는 도저히 17세라고 믿기 힘든 런타임 최적화 패치들을 쏟아내고 있다. 닷넷 시큐리티 구현에 주도한 Sebastien Pouliot는 리눅스가 아닌 윈도우가 개발 환경이었다. Mainsoft와 같은 거대 업체에서 대량 지원을 하는 경우도 많았다. 모노에 관심만 있다면 제한없이 누구라도 참여하여 공헌하였다. 디스어셈블과 같은 불법 도용 코드는 사양하되 재사용하는 코드는 많았다.

생산성의 측면에서 소프트웨어 개발에 불필요한 중복 과정을 최대한 줄이는 것은 아주 중요하다. 가독성 높은 코드, 충분한 대화 후에 디자인하고 패치하고 테스팅 그리고 체계적인 버그 관리까지의 모든 과정은 모노 초기부터 모든 영역에서 꾸준히 지켜왔다. 열정적인 커뮤니티 현장은 그간의 메일링리스트 기록으로 확인할 수 있다. 주요 개발자들의 실제 만남이 지난 3월 5일에 열린 보스턴 미팅에서야 처음 있었으니 모노가 얼마나 전 지구적인 오픈소스 프로젝트인지 다시금 느끼게 한다.

모노 적용과 그 미래
아 직 1.0이 나오지도 않았지만 시장에서 모노를 쓰고 있는 개발사(ISV, Independent Software Vendor)가 있는지 궁금할 것이다. 독일 뮌헨 시는 350대 서버 규모의 시스템을 모노 ASP.NET으로 적용하였다. SourceGear라는 회사는 웹 서비스 클라이언트용 프로젝트 관리 애플리케이션 Vault을 내놓았고 리눅스에서 모노를 사용한 커맨드 환경을 지원한다. 임베디드 시스템 벤더들은 C 기반 SDK에 추가로 임베디드용 모노를 도입하고 있다. 이는 강력한 성능과 다양한 플랫폼을 지원하는 모노 클래스 라이브러리와 런타임이 있기에 가능하다.

닷넷이 어디까지 완전 자유로운지 현 상황에선 예측하기 어렵다. 하지만 비록 MS의 소송 가능성이 있다고 하더라도 모노의 가치는 분명 무시할 수 없다. 현대적인 개발 프레임워크의 모든 것을 제시하고 있기 때문이다. 효율적인 개발 환경이 필요했던 많은 개발자들에게 모노는 분명 희소식이다. 거대한 변화에 동참할 개발자는 모노를 두들겨 보길 바란다.


:

SharpDevelop v1.1&2.1 (&Mono)

프로그래밍/C#, Xamarin | 2009. 3. 17. 13:01 | Posted by 99%
Visual Studio라는 훌륭한 툴이 있지만 너무 비싸고 Express버젼은 기능 제약이 있습니다.
C#도 자바처럼 커맨드라인으로 컴파일을 할 수 있지만(닷넷 프레임웍이 있다면..)
빨리하고 쉬어야지~ 더 재밌는 거 만들어봐야하고~ ㅋ

윈도우용만 제공되며 C#, VB.NET, Boo 언어를 사용할 수 있고 Mono라는 C# 오픈소스 프로젝트도 사용가능합니다.
http://www.sharpdevelop.com/

SharpDevelop v1.1&2.1 포터블(http://portableapps.com 에서 찾아서 타고 들어갔습니다~)
http://sts.bkukr.de/l-davoss/blog/default.aspx?BlogId=21

SharpDevelop는 3.0까지 나와있으며 각 버젼별로 닷넷 1.1, 2.0, 3.0을 지원합니다.
3.0에선 아직 모노가 정식버젼이 안나와서 그런지 포함이 안되어 있는데요.

아래 사이트를 보시면 mono를 사용할 수 있는 방법을 알려줍니다.
저도 아직 적용은 안해봤구요.
포터블 제공하신 분이 아직 3.0은 안만드셨네요.;
http://mono.wikia.com/wiki/Using_Mono_with_SharpDevelop_3.0


참고
http://kuros.textcube.com/53
.NET을 위한 오픈소스 개발 환경 - #develop

:

모노사이트에서 다운 받은 VMware이미지를 VirtualBox에서 사용해보았다.
별 세팅없이 모노가 뜨는 것까진 쉬웠지만 해상도가 800x600밖에 지원 안된다.

게스트확장을 설치하려했다.. 여기서 부터다.. ㅡ.ㅡ;

 

설치순서를 먼저 설명한다. 다른건 다 바뀌어도 kernel-default를 먼저 업데이트하고 소스를 받는 부분은 지켜야된다.(삽질한 감으로..;;)

순서 밑에는 에러메세지에 따라 설치했던 순서인데 그대로 하면 끝내 인터넷이 안된다.

또는 갑자기 해상도가 다시 800으로 내려온다.

 

1. Control Center에서 언어를 korean으로 바꾼다.(리부팅)

기본 계정은

mono : mono 이다

root계정을 만들면 root패스워드를 입력하라고 한다.

지금은 mono입력

3번정도 import눌러준다


2. root계정에 password를 부여해서 루트계정으로 로그인 한다.

  1) sudo passwd를 입력하고 비밀번호를 입력한다.


2) logout을 해서 root계정으로 로그인 한다.


사용자 이름을  root 로
비밀번호(암호글)를 설정한 비밀번호로 입력한다.


3. install software(소프트웨어 설치)에서 kernel-default를 업데이트한다.(리부팅)


업그레이드 버튼을 누른다.

kernel-default를 찾아서 아래쪽에 정보창에 업그레이드를 누른다.

다시한번 확인창이 뜨면 확인을 눌러 업데이트를 시작한다.


4. 아래 명령으로 커널 소스를 설치한다.(gcc등은 아마 이미 있을 것이다.)

  sudo zypper install gcc make automake autoconf kernel-source


5. cd로 마운트 되어있는 게스트 확장을 설치한다.(리부팅)

root계정으로 들어간다!


6. 1024x768 해상도가 적용됐는지 확인하고 마우스가 리눅스안에 갇히는지도(캡쳐) 확인해보자.

또한 인터넷이 되는지도 확인한다.

 

7. mono에서 C++용 프로젝트를 만들어 보기 위해선

gcc-c++을 소프트웨어 설치에서 찾아 설치해준다.

소프트웨어 설치시 root계정의 비밀번호를 요구할것이다.

 


맑은 글꼴 적용하기
http://zodiac12k.egloos.com/953123

 

수세유저 모임(한국)

http://www.suselinux.co.kr/

:
먼저 VirtualBox를 다운받아 설정하자(포터블 설명)
http://bit1010.tistory.com/3
WMware나 VirtualBox가 이미 깔려 있을 경우는 아래로~

//////////////////////////////////////////////////////////////

http://www.mono-project.com/Main_Page

모노 프로젝트에선 VMWare용 이미지를 다운받을 수 있다.

openSUSE. 같은 노벨 지원 프로젝트.

VirtualBox에서 WMWare이미지 가져다 사용하는건 일도 아니다.

 

다만 게스트 확장 기능을 사용하려면 openSUSE11.0버젼에선

윈도우 호스트 VirtualBox 최신버젼을 사용할 것(2.1.4) 1.6.6은 사용할 수 없더라..



: