Unless you plan to retire sometime during the next few years, you will probably modernize your software development skills by learning a new development environment and language. If you're an RPG developer, you can take advantage of your existing skills and the .NET development environment to create new applications for your System i. Using .NET you can construct fresh System i applications that integrate and reuse your existing databases as well as your CL, RPG, and Cobol code.
Microsoft introduced the .NET framework in 2002 for writing web applications and web services. The company designed .NET as an environment that would let PC developers quickly create Windows desktop and web-based applications and services, and to give Virtual Basic and C/C++ developers a consolidated and consistent development environment, regardless of which language they use.
Microsoft's Visual Studio programming environment, which is built on the .NET framework, includes an interactive development environment (IDE) that supports code completion, automatic logic indenting, and on-the-fly syntax checking. Support for writing code in any .NET language (including C#) and/or Java is native. You can also use several other third-party languages such as Cobol and Python to develop .NET applications. Additionally, .NET supports interactive debugging for Windows applications, web applications, and web services on the System i. Although XML support is native to the environment, you don't necessarily need to know much about it. Network communications for talking to other applications via HTTP and TCP/IP sockets are also available, thus providing for a relatively feature-complete development environment.
With .NET's built-in database access functionality, System i developers can produce applications for other database platforms and environments. After these developers become familiar with programming .NET applications to access System i data, they can create .NET applications that access Oracle, SQL Server, MySQL, Microsoft Access, XML, or any other database by making a few minor code syntax changes.
RPG and .NET have similar built-in functionality. For example, RPG has the %SCAN and %REPLACE functions integrated into the language, and .NET's string-handling functionality is built directly into the string variable types. Examples of string variable operations you can perform are scan, replace, substring, remove, insert, upper case, lower case, and length. You can also declare variables at the program level, form level, or function level (procedure), thus providing similar functionality to RPG. Instead of using D-specs, a .NET developer uses the Dim statement to declare a new variable.
Additionally, .NET developers can create class libraries, which are similar to ILE service programs. A class library can contain precompiled business logic, database access logic, and reusable code. The idea is to write the code once and reuse it consistently in all your .NET applications.
The Visual Studio environment also has a consistent screen designer for Windows and web applications. For Windows applications, developers use the Windows form designer. For web applications, they use the web designer. Even though the HTML screen design for web applications is relatively transparent, I recommend that all developers learn HTML or JavaScript, regardless of their programming environment. HTML is your screen DDS for the web.
If you're an RPG subfile developer like me, your skills won't be complete unless you have access to a subfile control in .NET. The DataGridView--.NET's data grid control--functions like a subfile on steroids. The grid rows automatically scroll horizontally if a row of data exceeds the screen width. You can even include alternating row colors as well as set different column foreground and background colors to highlight information in a row or column. Sorting is automatically built into the grid control for all data rows as well.
You can reuse most of your RPG code within your .NET applications, and call CL, RPG, and Cobol code directly from a .NET application or as stored procedures. Since you probably have several logic routines such as pricing modules or special calculations, you won't want to rewrite all your System i code modules. Simply use them from your .NET applications. You can also access the System i database. Your .NET applications can read, insert, update, and delete records from your existing databases, so you can reuse all your existing application files from your .NET applications. Finally, you can submit remote jobs on the System i that run commands or batch jobs. You have access to most system functions from .NET, so integration is not an issue.
With all these features and capabilities, .NET provides PC and System i RPG developers a consistent and productive programming environment for producing new applications. .NET also includes functionality that will be familiar to RPG programmers. Start modernizing your development skill sets today by learning .NET. I look forward to hearing about your success.
Richard J. Schoen is president and chief technology officer of RJS Software Systems, a provider of document management, workflow, electronic forms, report delivery, and other system integration software for the System i platform. He will speak at a Java/.NET Face-Off in September at the IBM Innovation Center in Chicago.
Links:
[1] http://systeminetwork.com/author/richard-j-schoen-1