COBOL에서 VB.NET으로 마이그레이션
Ispirer MnMTK는 COBOL 응용 프로그램을 VB.NET 응용 프로그램으로 변환 제공합니다.
왜 Ispirer MnMTK인가?
Ispirer MnMTK는 COBOL 응용 프로그램에서 VB.NET으로의 마이그레이션을 자동화 합니다. 또한, Ispirer MnMTK를 활용하면 마이그레이션과 관련된 대부분의 위험을 제거함과 동시에 내부 노력을 상당 부분 줄일 수 있습니다. 이런 모든 장점은 데이터베이스 및 어플리케이션을 마이그레이션 하는 경우 Ispirer MnMTK를 사용한다면 매우 합리적이고 경쟁력있는 비용으로 프로젝트를 진행할 수 있음을 의미합니다.
Ispirer MnMTK 2015의 주요 장점
Ispirer Systems의 주된 목적은 최상의 애플리케이션의 마이그레이션을 제공하는 것입니다. Ispirer Systems의 마이그레이션 툴은 고객님의 비즈니스 요구 사항을 충족할 수 있도록 여러 가지 방식으로, 원하는 대로 개인화합니다.
- 고품질의 기술 지원 Ispirer Systems의 기술 팀은 다양한 마이그래이션 프로젝트에서 경험이 있습니다.
- 고객 지향적 접근 방식 및 신속한 고객화 Ispirer Systems의 마이그레이션 툴은 고객님의 비즈니스 요구사항 에 맞추기 위하여 툴을 고객님의 요구대로 개인화합니다. 고객님께 맞춤 및 최적화 변환은 영업일 2일 내에 수행합니다.
- 사전 판매 전시 고객님이 결정을 내리기 전에 Ispirer Systems는 평가 과정에서 전환을 입증합니다.
- 유연한 가격 정책 다양한 옵션 중에서 고객님께 필요한 것을 찾을 수 있습니다.
- 최적화된 변환 변환 후에는 Ispirer의 미들웨어를 사용할 필요없이 지능적인 코드를 얻을 수 있습니다.
평가 과정
고객님께서 Ispirer Systems와 프로젝트에 대해 공동 논의를 위해 주저 없이 설문지를 작성하시고 보내주십시오.
Ispirer 마이그레이션 솔루션
COBOL to VB.NET 요청하기
Ispirer 마이그레이션 솔루션
COBOL to VB.NET 서비스
툴킷
Ispirer MnMTK 툴은COBOL에서 C#.NET으로 마이그레이션을 가능합니다.
변환의 특징
COBOL 프로그램 구조
IDENTIFICATION DIVISION.
PROGRAM-ID. DemoId.
ENVIRONMENT DIVISION.
DATA DIVISION.
PROCEDURE DIVISION.
FIRST-PARAGRAPH.
DISPLAY "First DEMO".
4가지 부문
- IDENTIFICATION DIVISION: 프로그램 이름을 입력하는 부분.
- ENVIRONMENT DIVISION: 프로그램에 필요한 파일을 정의하는 부분.
- DATA DIVISION: 변수, 레코드, 파일 등을 선언하는 부분.
- PROCEDURE DIVISION: 프로그램을 작성하는 부분. 위의 예제가 모두 한 단락(paragraph)이며, 한 단락이 하나의 레이블로 명명된 명령문의 집합. 단락 마지막에 특정한 표시가 없음.
- COBOL 응용 프로그램 데이터베이스에서 MSSQLServer 데이터베이스로의 마이그레이션
- COBOL 프로그램에서 VB.NET 클래스로의 변환
Namespace CobolApplication
Public Class DemoId
Public Sub Main()
ProcedureDivision()
End Sub
Private Sub ProcedureDivision()
Console.WriteLine("First Demo")
End Sub
End Class
End Namespace
"camel"의 경우 식별자의 이름을 변환
WORKING-STORAGE 섹션과 함께 변수 선언을 클래스 변수로 변환
WORKING-STORAGE SECTION.
01 MY_STRING_1 PIC X(20).
01 MY_STRING_2 PIC X(30).
01 MY_NUMBER PIC 9(2) VALUE 1.
To:
Private MyString1 As String
Private MyString2 As String
Private MyNumber As Integer = 1
COBOL 레코드를 user-defined VB.NET 타입으로 변환
01 MY_DATA_RECORD.
03 MY_NAME PIC X(20) VALUE "John Smit".
03 MY_ADDRESS PIC X(40) VALUE "Walt Street".
03 MY_ID PIC 9(2) VALUE 123.
To:
Public Class MyDataRecord
Public MyName As String = "John Smit"
Public MyAddress As String = "Walt Street"
Public MyId As Integer = 123
End Class
Private _myDataRecord As MyDataRecord = New MyDataRecord()
COBOL MOVE TO/COMPUTE 문을 VB.NET assignment 문으로 변환
MOVE 5 TO MY_NUMBER.
To:
MyNumber = 5
COBOL 섹션 (단락(paragraphs)이나 문장의 그룹)에서 VB.NET subs로 변환. 이 섹션은 PERFORM 문을 호출하여 사용할 수 있음. PERFORM은 VB.NET의 sub로 변환하여 호출
DISPLAY-INFORMATION.
DISPLAY DISPLAY 'My Number = ' MY_NUMBER.
To:
Private Sub DisplayInformation()
Console.WriteLine("My Number =" + MyNumber)
End Sub
COBOL control 구조를 VB.NET control 문으로 변환
IF MY_NUMBER > 5
MOVE 12 TO MY_NUMBER.
To:
If MyNumber > 5 Then
MyNumber = 12
End If
And
PERFORM UNTIL WS-NUMBER-1 > 100 AND WS-NUMBER-1 < 1000
DISPLAY "Still between 100 and 1000"
END-PERFORM
To:
While MyNumber > 100 And MyNumber < 1000
Console.WriteLine("Still between 100 and 1000")
End While
Screen output (DISPLAY 문)을 "Console.WriteLine" 메소드로 변환
EXEC SQL/ END-EXEC 문 (select, insert, update, delete, CURSOR 문)을 VB.NET LINQ 쿼리로 변환
EXEC SQL
SELECT COUNT(*)
INTO :MY_NUMBER
FROM MY_TABL
WHERE CTR_ID = :MY_STRING_1 AND
MOD_CD = 'ONE'
WITH UR
END-EXEC.
To:
MyNumber = Aggregate MyTabl In db.MyTabls
Where MyTabl.CtrId = MyString1
And MyTabl.ModCd = "ONE"
Into Count()
And
EXEC SQL
DECLARE MY_CUR CURSOR FOR
SELECT LOC_NO,
EFF_DT,
XPIR_DT,
DET_AMT
FROM MY_TABL
WHERE CTR_ID = :MY_STRING_1
AND MOD_CD = 'TWO'
AND TRN_ID IS NULL
ORDER BY LOC_NO
WITH UR
END-EXEC.
EXEC SQL
OPEN MY_CUR
END-EXEC.
EXEC SQL
FETCH MY_CUR
INTO :MY-LOC-NO,
:MY-EFF-DT,
:MY-XPIR-DT,
:MY-ARO-AMT
END-EXEC
EXEC SQL CLOSE MY_CUR END-EXEC.
To:
Dim MyCur = From MyTabl In db.MyTabls
Where MyTabl.CtrId = MyString1
And MyTabl.ModCd = "TWO"
And MyTabl.TrnId IS Nothing
ORDER BY LocNo Descending
For Each MyTabl In MyCur
MyLocNo = MyCur.LocNo
MyEffDt = MyCur.EffDt
MyXpirDt = MyCur.XpirDt
MyAroAmt = MyCur.DetAmt
Next
db.SaveChanges()
추가로 문의 사항이 있으시면연락주시기 바랍니다.
|