Building Blocks for Your .NET Training


I will start this section by showing you a brief snapshot of the technologies you will need to learn:

  • Windows utilities (System Registry, Event Viewer, Task Scheduler, Windows Task Manager)

  • Internet Explorer

  • Microsoft Management Console (MMC)

  • Open Database Connectivity (ODBC) configuration

  • Microsoft Office (Outlook, Word, Excel, Access, and PowerPoint), Notepad, and Visio

  • Microsoft Visual SourceSafe

  • Network protocols (TCP/IP, HTTP, FTP, and SMTP) and the URL

  • T-SQL

  • Active Directory

  • Adobe Acrobat Portable Document Format (PDF)

  • Internet Information Services (IIS)

  • Enterprise Services (COM+) and Microsoft Message Queuing (MSMQ)

  • Microsoft Developer Network (MSDN)

I need to let you in on a little secret. The preceding topics are actually just the prerequisites. In other words, you must have an understanding of these topics before you dive into .NET. As is the case with becoming a mainframe programmer, there is more to learning .NET than just learning a programming language. There is the .NET infrastructure and the supportive technologies. They are the tools and technologies surrounding .NET and the Windows platform.

Cross-Reference  

In Chapter 4, I discuss four additional prerequisite topics: object orientation, Extensible Markup Language (XML), Hypertext Markup Language (HTML), and client-side scripting languages.

Allow me to remind you of my friend Bob (the COBOL graduate), whom you met earlier in this chapter in the section "Presenting a Historical View to Understand Our Future." Would not you have considered it "important" for Bob to be "familiar" with technologies/concepts such as JES2, IPL, and MVS? Would not you have considered it "critical" for someone in Bob's situation to have a working knowledge of TSO, JCL, and VSAM?

Now perhaps you are getting the point. Or maybe you're asking, "Why include network-related topics such as TCP/IP and HTTP in the .NET list for a programmer ”an application programmer, no less?" I ask you, have you ever met a "real" mainframe programmer who wasn't at least "familiar" with network- related topics such as Virtual Telecommunication Access Method (VTAM), System Network Architecture (SNA), and System Application Architecture (SAA)? I could go on with analogy after analogy (in fact, as the chapters progress, I do).

Finally, do you question the applicability of the Active Directory topic being included on a .NET programming training list? You guessed it, there is a mainframe equivalent. You and the rest of the veteran mainframe programmer group are certainly familiar with one of the following security packages: IBM's Resource Access Control Facility (RACF) or Computer Associates' Access Control Facility (ACF2, now known as CA-ACF2).

Assumed Working Knowledge and Familiarity

As programmers, we have learned to never assume anything. However, we often forget this rule when it comes to our expectations of others' knowledge. I have argued the following point once or twice: How can you quickly criticize someone for not having "common sense"? Just because something is common to you does not mean that it makes sense, or even good sense. What is common to one person simply may not be common to another. [5] I think a wise person is someone who is aware of what should be common based on another person's background and experience.

To illustrate this point, consider the following abstract dialogue between three fictitious people: Victim John, Consoling Jane, and Confused Joe. [6]

Victim John: "Again, the coach accused me of being a hot dog. He just doesn't understand what being behind the eight ball is like. With him as the coach, I think we ended up with a lemon. Can you believe that he even asked me to put my John Hancock on the reprimand document? He's a real thorn in my side."

Consoling Jane: "So, that's why you are feeling blue. I think your coach is still wet behind the ears. In fact, when he said that he had ten years of experience, I think I saw his nose grow. So what. You were the coach before he was. That should be water under the bridge at this point. He really is over the hill, you know. By the way, I'm campaigning to have him kicked to the curb. It isn't final yet. Let's knock on wood for now."

Confused Joe: "Can the two of you please translate for me, in English? I have no idea, no clue, what the two of you are saying. I don't know where the bridge and hill are that you're speaking about. Who is John Hancock? I'm not sure what playing pool has to do with kicking the curb and hitting someone with wood. I don't see either of you turning blue. However, I would like to see your coach's nose grow. On top of that, all this talk about hot dogs and lemons is making me hungry."

Now, I ask, does it take common sense for Joe to understand what John and Jane are talking about? I think not. It takes prior experience with or exposure to their terminology. Then the terminology becomes "common" to Joe. In some cases, it may come down to cultural differences existing. I used this abstract example to introduce you to the next topic. As a reformed mainframe programmer, you are "switching" cultures now. You are the new kid on the block. All of your new peers will be speaking in a new language (and programming in a new language as well).

The following sections focus on these new technologies and concepts, which were presented in the earlier list. They may not be "common" to you at this time, but you should become familiar with them all the same.

Before you get into your .NET-specific training (the majority of this book), you will want this little bit of Windows platform "common sense." I know that some of you are more Windows programming “literate than some of your fellow former mainframe programmers. You may want to just use this section as a refresher. Otherwise, be patient. Understand that for some, using a PC has been akin to using another "dumb" terminal, a cathode ray tube (CRT). Turn the power on. Navigate to the 3270-emulation icon. Click. We have all been there at one time or another.

System Registry

To begin with, there is a very important database structure called the SystemRegistry . The registry is a place where sensitive hardware, user , and software information can be stored and retrieved (manually or programmatically). The mainframe has several examples of this type of functionality. It is just that mainframe programmers traditionally used different names to describe those functionalities. In mainframe CICS terms, think of the roles that the PCT, TCT, and FCT played when providing a "registry" of sorts for CICS transactions.

When you ran batch COBOL programs, you typically needed a STEPLIB or JOBLIB JCL statement to "tell" JES2 where your compiled program was located. This type of "program location" feature is just one of the registry's main purposes in life. At least it used to be. After years of this program-location feature being in the middle of controversial application bugs (known as DLL Hell ), .NET offers a less problematic approach.

Cross-Reference  

Chapter 17 discusses the new .NET way of "locating" programs.

Here's one more mainframe analogy for registry types of functions: the System Master Catalog. Remember, after you cataloged a dataset, the system "knew" the location of your dataset. You no longer needed to specify volume-label information. The Windows System Registry is an old concept with a new name .

start sidebar
Going Forward, Registry Usage Will Amount to Two Typical Scenarios

In the first typical scenario, legacy dynamic link library (DLL) COM objects continue to exist. [7] These COM objects will typically be "registered." This registration enables their discovery when you are developing other portions of your application that will want to reference these COM objects. You will revisit this idea of "referencing" objects later. By the way, this reminds me of the continued existence of COBOL 74 programs long after COBOL 85 became the new standard.

In the second typical scenario for future registry interaction, some developers will design applications that (during runtime) will access the "registry" for configuration information. This might remind you of the way that mainframe programmers typically use CONTROL libraries ”static PDS members with configuration information. The good news is that .NET design approaches are moving away from developers needing to design registry-dependent applications this way. There is a new .NET file called the .config file. Developers will gradually move toward taking more advantage of this new feature. Naturally, a later chapter (Chapter 18) discusses this .config file along with the other types of new .NET files.

end sidebar
 

To browse and edit the System Registry, you use the Regedit system program, as shown in Figure 3-1. This program is located in your Windows directory. You can run Regedit by clicking the Start button, selecting Run, and then typing regedit into the Run dialog box. Alternatively, you can double-click regedit.exe in the Windows directory in Windows Explorer. Figure 3-2 shows the resulting Registry Editor window.

click to expand
Figure 3-1: Typing regedit into the Run window
click to expand
Figure 3-2: The Registry Editor window ready for viewing and careful editing
Caution  

When you access the System Registry, use extreme caution. You could cause irreparable damage to your computer by inadvertently changing a registry entry. Using the Regedit utility could result in the need to reinstall your entire operating system. Make sure your emergency recovery disk and system/data backups are current before you mess around with your registry. Please refer to the "A Crash Course: Editing the Windows Registry" Web link in the "To Learn More" section ("Web Sites" subsection) later in this chapter to assist your continued learning on this sensitive topic.

Event Viewer

On the mainframe, if you had a question about the failure/Abend of a JES2 Job, a CICS online region, system software, or even an IPL, where would you have looked for logged error messages? One common repository storing this type of systemwide logging was the system log, which you could view through SDSF (you typically accessed SDSF via an ISPF option). As you know, there were exceptions to the practice of relying on the system log for error messages. Forward-thinking application developers knew to include error-trapping logic in their programs that would write to an application-level output file, sometimes resorting to COBOL DISPLAY statements.

Going forward, you will use the Windows Event Viewer when troubleshooting applications on the Windows platform. .NET introduces a few new types of helpful trace features that complement the functionality of the Windows Event Viewer.

Cross-Reference  

You will learn more about the new .NET debugging features in Chapter 18.

You access Event Viewer by clicking the Start button and choosing Programs Administrative Tools Event Viewer. As on the mainframe, multiple levels of messages (i.e., Application, System, and Security) are available. The Event Viewer tool (see Figure 3-3) makes it easy to view any of these message levels. Incidentally, you will be using a different language syntax (instead of the COBOL DISPLAY statement) to programmatically write application-level messages to the Event Viewer repository.

click to expand
Figure 3-3: The Event Viewer window showing the three types of log choices
Note  

The instructions assume you are using Windows 2000 Server or Windows XP Professional. If you are using Windows 2000 Professional, for example, your menu selections may be different. For instance, instead of choosing Programs Administrative Tools Event Viewer, you may need to choose Settings Control Panel Administrative Tools Event Viewer.

Task Scheduler

Say that you have written a mainframe COBOL batch program. You need this batch COBOL program to execute on a periodic schedule. What do you do? You request to have your program (and its corresponding JCL Job) loaded into your available scheduling package. One common mainframe scheduling product is Computer Associates' CA-7. Allow me to emphasize that this is an extreme comparison: CA-7 to the Windows Task Scheduler. CA-7 is a full-featured software package sold by Computer Associates (a third-party software vendor). The Windows Task Scheduler feature is a Windows-bundled " freebie " ”a basic Windows utility.

Although the features common to CA-7 (i.e., enhanced distributed-client terminal, forecasting, reporting, and event- and time-based scheduling features) are missing from the Windows Task Scheduler, for basic scheduling purposes (executing a program at a predetermined time or interval), the Task Scheduler is sufficient. For more advanced scheduling needs, a third-party software package would be appropriate.

You access the Scheduled Tasks menu option by clicking the Start button and choosing Programs Accessories System Tools Scheduled Tasks (see Figure 3-4).

click to expand
Figure 3-4: The Scheduled Tasks window showing several example tasks scheduled

Windows Task Manager

Sticking with the mainframe analogy approach, let's compare Windows Task Manager to a mainframe product that you know and love: SDSF. This is the second opportunity I have to use SDSF as a mainframe analogy. The first was earlier in this chapter under the section "Event Viewer." During your own mainframe development experience, you have likely used SDSF to view the status of application batch Jobs, CICS regions , and TSO user sessions.

For the sake of having something to compare SDSF with, Windows Task Manager is the closest thing you will commonly find in Windows to fill similar needs. Remember, there are third-party products out there. Windows Task Manager, on the other hand, is another Windows-bundled freebie, and a good one at that. Veteran Windows platform developers will swear by this Windows utility (and so should you). With it, you can view the status of any long-running application program, [8] any Windows processes (also referred to as services ), and the status of "local domain" users. Additionally, Windows Task Manager provides a fully customizable Performance view (memory, CPU, and so forth) for your local workstation (or server).

For those of you who had a glimpse of the operations side of the mainframe world, this performance-viewing feature may remind you of a legacy mainframe product by the name of OMEGAMON ( courtesy of a company named Candle). Granted, the Windows Task Manager Performance tab appears to offer just barely 1 percent of what a full-featured product such as OMEGAMON offers. This is to be expected when you compare a Windows-bundled freebie utility to a product that certainly is not free. Taking nothing from either product, both (on their respective platforms) are respected tools for good reason.

You access the Windows Task Manager utility by simultaneously pressing the Ctrl, Alt, and Delete keyboard keys (see Figure 3-5).

click to expand
Figure 3-5: Windows Task Manager showing the Performance tab selected

Internet Explorer

Some of you might respond, "OK, Chris, this one topic does happen to be ˜common' sense. We all know that Internet Explorer is the name of Microsoft's browser product. Additionally, we all know that a browser is software we use to view Web pages." Right? Great. Therefore, I will not waste any time covering those two points. However, a few other points deserve mentioning. The first one is the most trivial: Do not confuse Internet Explorer with Windows Explorer (also known as NT Explorer if you happen to be using Windows NT). Windows Explorer is the Windows utility (click the Start button and choose Programs Accessories Windows Explorer) that provides a tree view of your local and network environment. Now that I have that one out of the way, let's move on to the remaining points.

Cross-Reference  

In Chapter 4 in the section "Client-Side Scripting Languages," I discuss the topic of browsers from a different angle. The version and brand of browser that your intended customers use will influence your client-side scripting approach.

Please make a point of knowing which browser and which version of that browser you have installed on your computer. Why does this matter? For the average person, it does not matter. However, for a developer ”for a Windows and Web developer ”it is critical. For bleeding-edge Microsoft .NET development, you will want to go for the most current version of Internet Explorer (IE), which at the time of this writing is version 6.

Note  

During your installation of Visual Studio .NET (VS .NET), the Internet Explorer browser (currently version 6) will also be installed. The underlying .NET technologies rely on Internet Explorer being installed.

It is inevitable that someday you will have a question about a particular error that you are troubleshooting. You may end up narrowing your problem symptoms down to a particular version of a software product (for example, the latest version of the Microsoft XML parser), and it will all boil down to knowing what IE version you have. That is right, occasionally other "dependent" software is installed when you install a browser (this is true with many browsers, not just Microsoft IE). If you take the time to read the README.TXT file that accompanies most major browser installations, you will discover these dependent software bundles in advance. There are, of course, other scenarios. For example, you may need a security patch to shield your computer from the latest viruses. The security bulletin may mention that the patch is only needed for certain versions of certain browsers. Again, you will want to know.

Note  

To the average legacy mainframe programmer, these sorts of things have traditionally been somebody else's responsibility ” somebody else's problem. Remember, this was the advantage of the centralized computing model: one "big" computer, many "thin" clients . Rarely did yesterday 's mainframe programmer have to deal with software installation (certainly not basic software) development tools. Welcome to the distributed computing model.

The final point. Microsoft is not the only company that makes browsers for the Windows platform. There are other browsers out there: Netscape, Opera, and so on. It is easy to find people who have a strong preference for one browser over another.

Cross-Reference  

The list of available browsers is constantly growing: http://ipw.internet.com/clients_servers/web_browsers/ .

Personally, I have only one browser installed: Microsoft IE. Why only one? Simplicity. As you embrace your new responsibilities as the custodian of your own computer, you will grow to appreciate installing fewer things on your computer rather than installing everything that comes your way.

Carelessly installing every third-party utility (or worse , games and screen savers) on your computer will eventually bite you. I really didn't understand this until I had a memorable chat with a friend. I asked him, "Why on earth are you buying a second computer for home use? Isn't one enough?" He then explained that he was a "serious Windows and Web developer." He noticed that I still didn't get it. He then asked me the following question: "Chris, in the mainframe world, was the production environment treated as something sacred?" Of course, my answer was an emphatic yes. Then it hit me. For me, my own developer box is my own production environment [9] ”my sacred environment to protect from "software pollution." So, unless you have the luxury of owning more than one computer . . . well, you get the point.

start sidebar
A Word of Caution About Installations

Just because somebody creates a software program and says "Install this" does not mean that it is the right thing to do. And just because that program is downloadable over the Internet or is delivered through e-mail does not mean that installing it is in your best interest. Something that looks harmless can cause irreparable damage to your system. Worse yet, even if everything "seems" OK on your computer, other third-party software ( especially freeware) could be the one thing that is causing that weird program bug ”the one that has kept you up late at night trying to figure out.

The fewer programs that you install, the fewer programs you will have on your process-of- elimination list. I do not want to sound paranoid , but be cautious of what you install ”even other browsers. As you learn more about the Windows System Registry and COM DLLs, you will grow to appreciate this warning. Though this issue stretches beyond the discussion of browsers, it seemed like a good time to mention this concern.

end sidebar
 

By the way, there is a caveat to all of this. When you develop Web applications, multibrowser testing is important. If you are developing an intranet application and everyone is using IE, no problem. However, if the application is going to be accessed from the outside (i.e., it is a regular Internet application), you will not have any control over what browser is used. You can make recommendations, but you cannot control this. Therefore, depending on your target user, you may want to include a multibrowser testing scenario among your other test scripts.

Cross-Reference  

When you develop ASP.NET applications, you have the opportunity to manually override the level (or type) of browser support through code and configuration settings. I further discuss this topic in Chapter 18.

Microsoft Management Console

I have referred to the mainframe tool ISPF throughout this chapter. This is appropriate given its usefulness . Think about it for a moment. Where would you typically go (on the IBM mainframe environment) to access standard tools, utilities, and third-party vendor utilities? Of course, you would use ISPF. Well, that is a good way to think of Microsoft Management Console (MMC).

By itself, MMC is just an empty container. However, you can add software utilities (snap-ins) to turn MMC into a common place to refer to when you need to access various software utilities. Tools used to administer advanced services such COM+ and IIS are typically (already) snapped into an MMC. It's common for multiple MMCs to exist on a system. MMCs have a Console mode that you can use to control a user's ability to modify specific MMCs. Additionally, Microsoft provides development kits to interested software developers to enable them to build custom snap-ins.

You access the MMC by clicking the Start button and choosing Programs Administrative Tools Computer Management. The listed Console.msc choice is an MMC that is provided for easy modification (see Figure 3-6). Alternatively, you can access MMC by right-clicking the My Computer icon on your desktop (on Windows XP, the My Computer icon is typically located on the Start menu) and then choosing Manage.

click to expand
Figure 3-6: The Microsoft Management Console window showing default snap-ins

Open Database Connectivity Configuration

Although it is true that leaving the mainframe means saying good-bye to JCL, you will still need a way to "allocate" data sources. One way is using the Open Database Connectivity (ODBC) configuration tool. This tool allows you to create various types of data source names that you can then use in applications to access data. Specifically, ODBC is a standard protocol that facilitates the connectivity between applications and a variety of external database servers or files. The ODBC drivers (behind the scenes) permit access to SQL Server and several other relational database management systems (RDBMSs), and other data sources (including text files and Microsoft Excel spreadsheets).

You will soon discover (in Chapter 11 in the section titled "Accessing Data") that there are other, more preferable ways to create data source connectivity for your applications. Still, I wanted to introduce the ODBC tool, if for no other reason than you may run across legacy applications that use this approach.

You access the ODBC Data Source administrative tool by clicking the Start button and choosing Programs Administrative Tools Data Sources (ODBC). See Figure 3-7.

click to expand
Figure 3-7: The ODBC Data Source Administrator window

Microsoft Office and Notepad

If you have not already done so, you will want to become proficient in the following Microsoft software packages: [10]

  • Outlook (collaboration software)

  • Word (word processing program)

  • Excel (spreadsheet program)

  • Access (database program)

  • PowerPoint (presentation software)

  • Notepad (text editor)

  • Visio (drawing design software [11] )

You may choose to learn a competing vendor's product. If you have enough time to learn all of the competitors ' products and Microsoft's tools, more power to you. However, if your time is limited, I would suggest starting with the Microsoft Office suite. Considering the market share that Microsoft has with these tools, you will be in good company.

start sidebar
The Importance of Learning the Microsoft Software Packages

Take the mainframe environment, for example. Try to imagine a mainframe programmer not knowing how to efficiently use TSO. Furthermore, think about some of the other common mainframe tools. How many times have you needed to do a quick-and-dirty extract or report program on the mainframe? Some of those times you reached for your trustworthy Dyl280 or Easytrieve software. What about those times that you got really creative with the SORT utility control cards to do OMITS and INCLUDES? How many times have you coded IEBGENERS and IDCAMS control cards while being pleased that you were avoiding the creation of actual programs? How many times has your advanced knowledge of the File-AID software tool practically saved your life? Are you beginning to get the idea of why learning some of the popular Windows tools is a good idea? The more tools that you have in your arsenal, the better off you will be.

end sidebar
 

For those who question the inclusion of PowerPoint and Visio in the context of "tell me what I need to know in order to learn .NET programming," allow me to remind you that being a senior programmer often creates opportunities beyond just banging out code. Your senior-level responsibilities will require you to design applications and to describe and document processes. In some cases, you will need to train junior staff members one day and give a presentation to senior management the next day. Visio and PowerPoint are essential tools to have access to in each of these instances.

Are you still unconvinced? OK, did you ever create a flowchart in your mainframe days? Well, flowcharts still have value, even today. Visio is a great tool for creating charts (and performing many other design and drawing tasks). Have you ever given a presentation to a group of people using a whiteboard or an overhead projector? Now you get the point. Yes, you can use PowerPoint for a more effective presentation.

By the way, as an attractive bonus, the object model for each of these Microsoft software packages is exposed and accessible. This means that you can integrate all of the power and functionality from these existing tools into your own applications. When you learn more about "setting references" to existing objects, you'll be shocked at the things that you can programmatically do with the various Microsoft Office objects. In fact, many people have built entire careers and profitable businesses around exploiting these object models. There's just one catch: You have to learn how to use the object models efficiently first.

You access the Microsoft Office packages, Notepad, and Visio from your Programs list (click the Start button and choose Programs). Figure 3-8 shows Notepad.

click to expand
Figure 3-8: The Notepad editor showing some sample text

Microsoft Visual SourceSafe

What thoughts occur to you when you think of the mainframe software products ChangeMan or CA-Librarian? That's right, source code management. Fortunately, when you install either of the Enterprise versions of .NET, Microsoft Visual SourceSafe is included. Unless your organization has decided to go with a competing vendor's product, the Microsoft Visual SourceSafe software package will be your choice for source code management.

You access the Microsoft Visual SourceSafe software package from your Programs list (click the Start button and choose Programs). [12]

Network Protocols and the URL

In my days of mainframe programming, most of my peers passed through the ranks of computer operations. Time spent in computer operations provided in-depth exposure to system technologies and telecommunications protocols such as VTAM, SNA, and SAA. Interestingly, the Windows and Web programmers of today typically know nothing about the role of a computer operator.

At the same time, though, every Windows and Web programmer is (unknowingly) both a (personal) computer operator and a computer programmer. That is right, when I see the Windows and Web programmers of today "rebooting" their personal computers, I cannot help but recall the mission-critical mainframe IPL of yesteryear. You see, the responsibilities of Windows and Web programmers and their resulting knowledge extend beyond just programming to include intimate system and network knowledge. Hence, it is appropriate to present to you these "commonsense" network topics:

  • Transmission Control Protocol/Internet Protocol (TCP/IP)

  • Hypertext Transfer Protocol (HTTP)

  • File Transfer Protocol (FTP)

  • Simple Mail Transfer Protocol (SMTP)

  • Uniform Resource Locator (URL)

TCP/IP

TCP/IP is the basic network protocol for intranets , extranets, and the Internet. This low-level, stateless protocol takes care of the assimilation and routing of messages (packets) from one point to another point.

HTTP

Essentially sitting on top of TCP/IP are the higher-level protocols HTTP, FTP, and SMTP. HTTP is a set of rules facilitating the transfer of files (including text, graphics, and multimedia files) between a browser (client) and a Web server.

FTP

FTP is also a set of rules that facilitates the transfer of files. However, FTP is typically used for transferring program files and documents (not Web page requests ).

SMTP

SMTP is also a set of rules that facilitates the transfer of files that happen to be e- mails .

URL

A URL is the address of a resource (a file) that can be accessed via TCP/IP. The type of resource (higher-level protocol) that the URL is referring to is actually indicated in the URL (prefix) itself. For example, in an address such as http://msdn.microsoft.com , "http" is shown to be the needed protocol to service this request. The remaining portion of the URL refers to the domain name, which translates to an actual Internet Protocol (IP) address (which in turn points to a specific computer). Optionally, you can include hierarchical folder structures to further categorize and access files on a specific Web server or FTP server.

T-SQL

My guess is that you have already learned SQL from your exposure to a mainframe-based RDBMS (e.g., DB2). If you have not been so fortunate, now is the time to do something about it. Perhaps you did not have DB2 available to you. This would be a good excuse to get your hands on Microsoft Access (better yet, install SQL Server 2000). That is right: You can practice and learn T-SQL on Microsoft Access. T-SQL is Microsoft's implementation of SQL (ANSI SQL) with Microsoft's extensions.

Adobe Acrobat Portable Document Format

On the mainframe, as you know, are various file formats (e.g., VSAM, QSAM, and PDS files). Each of these mainframe files has its own unique format and unique utility used to read and edit the contents. For example, to read VSAM files, you need a special version of File-AID or perhaps the IDCAMS utility.

Now, you may have wondered what types of files the Windows environment has. As it turns out, the Windows environment also has special formats for files and those files require certain software for reading (and editing). Externally, the Windows file format is indicated by the file extension. For instance, if the name of a file is README.TXT, the TXT extension indicates that the Notepad software can be used for reading and editing. If the file name is myspreadsheet.XLS, the XLS extension indicates that the Microsoft Excel software will be used. So, what if the file name is myreport.PDF? What does PDF mean?

Portable Document Format (PDF) is a file format that has become extremely popular. Business applications and special reporting software commonly use PDF as a format to create deliverable output reports . A user that receives a PDF file is required to have a software package called Adobe Acrobat Reader for reading the PDF file.

Cross-Reference  

Adobe Acrobat Reader is available as a free download from the Adobe Web site ( http://www.adobe.com/products/ acrobat/readstep.html ).

Once created, PDF files are read-only. This is useful when you want to preserve the printed appearance of an output report. You even have the option of creating secured PDF documents. A user ID and password are required to read secured PDF documents.

Cross-Reference  

Learning to create reports in PDF format and other formats (DOC, XLS, TXT, and so on) will be one of your objectives as a Windows and Web programmer. Chapter 16 discusses the options that you have for creating PDF-formatted files and other types of reports with .NET (using the .NET Framework objects or Crystal Reports objects that are integrated into VS .NET).

Internet Information Services

I remember the first time someone tried to explain to me what Internet Information Services (IIS) was. This person, with the best of intentions, could not understand why I had a blank look on my face. Eventually, I asked him to define the term "server." Then, I realized where our communication gap was. As it turned out, the term "server" meant several things. Before our discussion, I thought a server was simply a piece of hardware ”but this is not always the case.

It seems that you can have a piece of hardware that is a server. That piece of hardware can run a version of server software (e.g., the Windows 2000 Server operating system). You can have a system-level server software package such as IIS that sits on top of the actual Windows operating system (much like a CICS region sits on top of a mainframe operating system). Furthermore, IIS itself is really made up of other software servers (such as FTP server and HTTP server). The biggest job of IIS is to service HTTP and FTP requests. When IIS services HTTP requests, Active Server Pages (ASP, now ASP.NET) and static HTML files are processed . Are we all clear now? IIS is a Microsoft software package ”a very powerful software package.

Cross-Reference  

The Microsoft Windows features list shows IIS and other software as being included with Windows. Visit http:// www.microsoft.com/catalog/display.asp?site=656&subid=22&pg=2 for more information.

Using the MMC snap-in for IIS shown in Figure 3-9, you can set up, configure, and manage Web sites and virtual directories.

click to expand
Figure 3-9: You can administer IIS through MMC.
Cross-Reference  

Chapter 17 discusses some of the common IIS configuration steps.

Enterprise Services and Microsoft Message Queuing

Eventually (maybe sooner than later) you will develop multiuser, industrial-strength applications. Some of your applications will grow to support dozens, then hundreds, and later thousands and tens of thousands of users. Such applications will have a Service Level Agreement (SLA) detailing expected performance levels and acceptable levels of reliability. You will adjust your application designs to support such growth. Fortunately, at your disposal is system-level software designed to help support the increasing demands of your Windows and Web application software. Two very good examples of such (Microsoft-provided) software are Enterprise Services (COM+) and Microsoft Message Queuing (MSMQ).

COM+

Similar to IIS, Enterprise Services (COM+) is a very powerful system-level software package. As its name implies, Microsoft's COM+ is composed of several component services (resource management tasks, thread allocation, security, thread pooling, object pooling, transaction support, and object activation, just to name a few).

Take a look backward at the mainframe and think about the types of "services" that CICS itself provides for an application program. On the mainframe, your CICS application runs "inside" of CICS in much the same way that a component runs "inside" of a COM+ application. On the Windows platform, when you develop the components of your application, you can design your components to take advantage of these COM+ services (rather than create all of the needed plumbing yourself).

A properly designed component can be "installed" into COM+ as a COM+ application. The COM+ application can then service desktop or Web applications that depend on the programmatic processing provided by your component. .NET components can be designed to take advantage of COM+ services. Microsoft's COM+ software package is shipped with Windows 2000 and Windows XP.

Cross-Reference  

The Microsoft Windows features list shows COM+, MSMQ, and other software as being included with Windows. Visit http://www.microsoft.com/catalog/display.asp?site=656&subid=22&pg=2 for more information.

MSMQ

Microsoft Message Queuing (MSMQ) is Microsoft's answer to the need for an independent message-queuing software package. Why do I bring it up in a discussion about COM+? Because one additional service that COM+ includes is the Queued Components service (based on MSMQ).

Incidentally, you may have had the pleasure of working with message queuing software on the mainframe ”perhaps IBM's MQSeries. Similar to MSMQ, MQSeries (as you recall) was a system-level software package that some IBM mainframe environments used to facilitate the passing of information between a mainframe CICS application and an application on an alternative platform.

Generally , message queuing products are called upon when there is a need for asynchronous communication or a guarantee of message delivery. The passing of messages asynchronously (application to application) may be needed between disparate platforms or on common platforms. Through the Queued Components service, the COM+ software package is able to leverage features of MSMQ. Conversely, MSMQ is able to leverage one other feature of COM+: transactional support. You see, MSMQ and COM+, whether together or apart, complement each other. I suggest you keep both of them on your radar.

Using the MMC snap-in for COM+ (the Component Services administrative tool) allows you to configure and manage COM+ applications. You can access all COM+ services, including the Queued Components service, from the MMC snap-in, as shown in Figure 3-10.

click to expand
Figure 3-10: You can administer COM+ applications using the MMC snap-in.
Cross-Reference  

Chapter 19 covers some of the common Enterprise Services (COM+) application configuration steps.

Microsoft Developer Network

In my mainframe programmer days, we programmers had this thing called "the bible." Actually, we generally referred to the thick, printed reference manuals this way. These reference manuals were always reliable, always available. Nowadays, as a reformed mainframe programmer developing Windows and Web applications on the Microsoft platform, I have become reliant on the Microsoft Developer Network (MSDN, online and on CD and DVD). [13]

By the way, the online version of MSDN ( http://msdn.microsoft.com ) would naturally be the most current. I suggest that you bookmark this site. I cannot emphasize enough how often you should visit this site. In fact, I would go as far as to say that you should consider making the MSDN site your browser's home page. Incidentally, you will notice that in most chapters in this book, the MSDN site is included in the Web site references in the "To Learn More" section. Having said all of that, I suppose I should explain why.

Microsoft has done a great job of publishing tons of reference information on the MSDN site. There you will find programmer guides, columns and features, tutorials, and so forth. With all of the "new" discussions on .NET, a regular MSDN visitor will typically be the first to know when best practices are published. As an added bonus, you can search the MSDN Knowledge Base archives using keywords and error message numbers for those hard-to-figure-out problems.

From this point forward, I will refer to these so-called commonsense topics as if they are common.

[5] Some scholars may wish to further debate this by making distinctions among acquired knowledge, wisdom, and common sense.

[6] Yes, I am guilty of trying to create an interesting presentation of technical material. Since you have made it all the way to Chapter 3, it looks like I am doing OK so far.

[7] That's right, the Windows and Web programming worlds have legacy applications. Remember, .NET is a revolutionary change for the Windows programming platform.

[8] This applies to out-of-process programs only. This issue is further explained later in this chapter in the section "Enterprise Services (COM+)."

[9] Additionally, remember that in the mainframe world, we always backed up production data ” always . Yes, your development box is not "production" per se, but remember, you are ultimately responsible for your computer, your box, and the program source code developed on it. This emphasis applies more to a stand-alone computer ”at home, for example. At work, this risk can be mitigated slightly. I explain this in more depth later in this chapter in the section "Microsoft Visual SourceSafe."

[10] Some of you will have to request that your employer install the "full" version of Microsoft Office (Professional version) on your computer. Visio is sold separately from all Microsoft Office versions. Notepad is a Windows freebie.

[11] In the next chapter, when I discuss object orientation, I introduce a popular notation called the Unified Modeling Language (UML). One of the many features of the Visio software package is its capability to create UML drawings.

[12] The Visual SourceSafe product requires separate installation. You need to perform the installation before you can complete the suggested "access" steps mentioned in this section. The Visual SourceSafe product is bundled with the Enterprise Architect and Enterprise Developer VS .NET editions.

[13] Besides visiting MSDN, my need for additional supplemental reading is satisfied by investing in good technical books, such as the one that you are holding your hands. (Hey, if you don't ring your own bell every now and then, the bell may not be rung at all.)




COBOL and Visual Basic on .NET
COBOL and Visual Basic on .NET: A Guide for the Reformed Mainframe Programmer
ISBN: 1590590481
EAN: 2147483647
Year: 2003
Pages: 204

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net