2017년 9월 26일 화요일

[인천경제산업정보테크노파크] 2017 SW융합 전문인력 양성 과정 교육생 모집 공고

4차 산업혁명시대 흐름에 맞춰 인천경제산업정보테크노파크 주관의
사물인터넷(IoT) 및 가상현실(VR) 등의 미래 지향적 기술 교육과 취업 지원을 무상으로 지원하는 사업이 있어 안내해 드립니다..
SW 기술 인재 수요가 높고 미래 고용 증가가 예상되는 가상현실(VR)과 사물인터넷(IoT) 분야에 대하여
SK의 T아카데미를 운영했던 회사에서 커리큘럼을 기획하고 T아카데미에서 강의했던 우수한 강사님들이 강의를 진행한다고 합니다.
EMB000021246da4
사물인터넷(IoT), 가상현실(VR), 웹개발 등의 IT 분야로의 진출을 생각하는 졸업예정자 및 취업 준비생들을 기업 현장에서 바로 적응할 수 있는  역량을 향상시킬 수 있도록 지도하고 수료 후에는 취업을 지원해 준다고 합니다.
교육과정
교육생이 습득하는 개발 역량
사물인터넷(IoT) 네트워크 프로그래밍
Ÿ Arduino를 이용한 센싱 프로그래밍
Ÿ Android 기반 모바일 앱 개발 기법
Ÿ 네트워크 프로그래밍 기법 (HTTP, MQTT, 웹 소켓)
Ÿ RDBMS, NOSQL 데이터베이스 활용 (MySQL, MongoDB, Redis)
Ÿ Node.js 기반 웹 서비스 및 Restfull API 구현
Unity엔진을 활용한 VR/AR 콘텐츠 개발
Ÿ C# 프로그래밍에 대한 중급레벨의 숙련도
Ÿ Unity 엔진에 대한 충분한 사용법 숙지
Ÿ 게임 개발에 필수적인 개발 기법 숙지
Ÿ VR/AR 콘텐츠 개발 환경 이해
Ÿ Unity API를 활용한 VR/AR 콘텐츠 개발 능력
Ÿ Cardboard / Daydream 와 같은 3rd Party SDK 활용 능력

·            교육 참가 특전
 실무형 개발 교육  현업 전문가 코칭 지원
 우수 교육생 2 3 단기 해외연수 기회 제공
 교육비 전액 무료, IT  SW 기업으로의 취업 지원

·            프로그램 상세보기 Click  ß https://goo.gl/5KVcWD

2017년 9월 25일 월요일

(C#강좌/WPF강좌/WPF 데이터바인딩)WPF 데이터바인딩 첫번째 개요 및 간단 예...


WPF 데이터 바인딩 방법중 DataContext를 이용한 데이터바인딩 소개합니다._(C#학원_C#강좌_C#교육]


(WPF학원,WPF강좌)WPF이벤트라우팅, 버블링이벤트, 터널링이벤트, 다이렉트이벤트...


[WPF학원/WPF강의/WPF강좌]C#, WPF의 의존속성, 의존프로퍼티(Dependency Property)란?...


닷넷, WPF, XAML, 오라클, 링크, 어댑터이용 AOD.NET 간단 예제(C#, Wpf,odp


(비주얼스튜디오 실습영상)C#,WPF로 오라클 EMP 테이블 데이터를 데이터...



(C#,WPF,ADO.NET,오라클 ODP.NET예제)C#,WPF에서 DataSet의 Linq쿼리식을

(C#,WPF,ADO.NET,오라클 ODP.NET예제)C#,WPF에서 DataSet의 Linq쿼리식을 이용하여 데이터 추출(XAML윈도우,ListView이용)

n   Visual Studio 2015에서 ODP.NET을 사용하기 위해서는 Oracle Developer Tool for Visual Studio 2015를 다운받아 설치하면 된다.( http://www.oracle.com/technetwork/topics/dotnet/downloads/odacmsidownload-2745497.html )
n  오라클홈 디렉토리 아래 NETWORK\Admin 폴더에 tnsnames.ora 파일에 다음 접속하고자 하는 Oracle Server의 접속정보 추가
ONJ =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = onj)  ß DB
    )
  )
n  WPF 응용프로그램 형태의 프로젝트를 생성(프로젝트명 : WpfOracleTest)
n  참조 추가 프로젝트 생성 후 솔루션 탐색기 -> 참조 -> 참조추가 선택 후 찾아보기” 버튼을 클릭하여%ORACLE_HOME%\ODP.NET\bin\2.x\Oracle.DataAccess.dll을 선택하여 추가하자.

n  테스트 PC가 64Bit 윈도우10 이므로 프로젝트에서 마우스 오른쪽 속성 선택 후 빌드 -> 플랫폼 대상(Target Platform)을 x64로 선택한다. (32Bit인 경우 생략)
n 
 EmpViewModel.cs
using System;
using System.ComponentModel;
using System.Windows.Input;


namespace WpfOracleTest
{
    public class EmpViewModel : INotifyPropertyChanged
    {       
        int empno = 0;
        string ename = string.Empty;
        string job = string.Empty;


        //속성이 바뀔때 이벤트 발생하도록 이벤트 정의
        public event PropertyChangedEventHandler PropertyChanged;

        // public 프로퍼티
        public int Empno
        {
            get { return empno; }
            set { this.empno = value;  }
        }

        // public 프로퍼티
        public string Ename
        {
            get { return ename; }
            set { this.ename = value; }
        }


        // public 프로퍼티
        public string Job
        {
            get { return job; }
            set { this.job = value; }
        }

        protected void OnPropertyChanged(string propertyName)
        {
            //이벤트를 발생시킨다.
            if (PropertyChanged != null)
                PropertyChanged(thisnew PropertyChangedEventArgs(propertyName));
        }
    }

}

n  MainWindow.xaml
<Window x:Class="WpfOracleTest.MainWindow"
        xmlns:local="clr-namespace:WpfOracleTest"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="461.659">
    <Grid Margin="0,0,3.2,-0.2">
        <Button x:Name="button" Content="DB Connect" HorizontalAlignment="Left"Margin="20,28,0,0" VerticalAlignment="Top" Width="75" RenderTransformOrigin="0.391,-0.29" Click="DB_Connect"/>
        <ListView Margin="10,66,10,10" Name="lstView">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <WrapPanel>
                        <TextBlock Text="Empno: " />
                        <TextBlock Text="{Binding Empno}" FontWeight="Bold" />
                        <TextBlock Text=", " />
                        <TextBlock Text=" (" />
                        <TextBlock Text="Ename: " />
                        <TextBlock Text="{Binding Ename}" TextDecorations="Underline"  FontWeight="Bold" />
                        <TextBlock Text=")" />
                        <TextBlock Text="{Binding Job}"  Foreground="Blue" Cursor="Hand" />
                    </WrapPanel>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
        <Button x:Name="button1" Content="Get Data" HorizontalAlignment="Left" Margin="114,28,0,0" VerticalAlignment="Top" Width="75" Click="Select_Emp"/>
        <Button x:Name="button2" Content="Get Data from Adapter" HorizontalAlignment="Left" Margin="205,28,0,0" VerticalAlignment="Top" Width="133" Click="Select_Emp2"/>
        <Button x:Name="button3" Content="From Linq" HorizontalAlignment="Left" Margin="357,28,0,0" VerticalAlignment="Top" Width="75" Click="Select_Emp3"/>
    </Grid>
</Window>

n  MainWindow.xaml.cs
using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
using System.Data;
using Oracle.DataAccess.Client;
using System.Collections;
using System.Linq;

namespace WpfOracleTest
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        OracleConnection conn;

        private void DB_Connect(object sender, RoutedEventArgs e)
        {
            try
            {
                string strCon = "data source=onj;User ID=scott;Password=tiger";
                conn = new OracleConnection(strCon);
                conn.Open();

                MessageBox.Show("DB Connection OK!");

            }
            catch(Exception error)
            {
                MessageBox.Show(error.ToString());
            }           
        }

        /* Connection, Command, DataReader를 통한 데이터 추출 */
        private void Select_Emp(object sender, RoutedEventArgs e)
        {
            string sql = "select empno, ename, job from emp ";

            OracleCommand comm = new OracleCommand();
            if(conn == null) DB_Connect(thisnull);
            comm.Connection = conn;
            comm.CommandText = sql;
                       
            OracleDataReader reader = comm.ExecuteReader(CommandBehavior.CloseConnection);
            List<EmpViewModel> emps = new List<EmpViewModel>();
            while (reader.Read())
            {
                emps.Add(new EmpViewModel() { Empno = reader.GetInt32(reader.GetOrdinal("empno")),
                                              Ename = reader.GetString(reader.GetOrdinal("ename")),
                                              Job = reader.GetString(reader.GetOrdinal("job"))
                });
            }

            lstView.ItemsSource = emps;
        }

        /* OracleDataAdapter를 통한 EMP 테이터 추출 */
        private void Select_Emp2(object sender, RoutedEventArgs e)
        {

            OracleDataAdapter adapter = new OracleDataAdapter();

            string sql = "select empno, ename, job from emp ";

            OracleCommand comm = new OracleCommand();
            if (conn == null) DB_Connect(thisnull);
            comm.Connection = conn;
            adapter.SelectCommand = comm;
            comm.CommandText = sql;
            DataSet ds = new DataSet("emps");
            adapter.Fill(ds, "emp");

            // Clear the ListView control
            lstView.Items.Clear();

            List<EmpViewModel> emps = new List<EmpViewModel>();
            for (int i = 0; i < ds.Tables["emp"].Rows.Count; i++)
            {
                DataRow dr = ds.Tables["emp"].Rows[i];
                emps.Add(new EmpViewModel()
                {
                    Empno = System.Convert.ToInt32(dr["empno"]),
                    Ename = dr["ename"].ToString(),
                    Job = dr["job"].ToString()
                });
            }

            lstView.ItemsSource = emps;
            conn.Close();
        }

        /* Linq 쿼리식을 통한 EMP 테이터 추출 */
        private void Select_Emp3(object sender, RoutedEventArgs e)
        {
            OracleDataAdapter adapter = new OracleDataAdapter();

            string sql = "select empno, ename, job from emp ";

            OracleCommand comm = new OracleCommand();
            if (conn == null) DB_Connect(thisnull);
            comm.Connection = conn;
            adapter.SelectCommand = comm;
            comm.CommandText = sql;
            DataSet ds = new DataSet("emps");
            adapter.Fill(ds, "emp");

            // Clear the ListView control
            lstView.Items.Clear();

            List<EmpViewModel> emps = new List<EmpViewModel>();
            IEnumerable query = from myemp1 in ds.Tables["emp"].AsEnumerable()
                       where myemp1["job"].Equals("CLERK")
                       select myemp1;

            foreach (DataRow dr in query)
            {
                emps.Add(new EmpViewModel()
                {
                    Empno = System.Convert.ToInt32(dr["empno"]),
                    Ename = dr["ename"].ToString(),
                    Job = dr["job"].ToString()
                });
            }

            lstView.ItemsSource = emps;
            conn.Close();
        }
    }
}