Understanding Advanced .NET Technologies


The entire world of .NET is understandable. You may have to work hard, study hard, and practice hard. Nevertheless, it is doable. This section takes a quick look at the following advanced topics:

  • Secure and configurable applications

  • COM+ application creation

  • Distributed and concurrent processing

  • Interoperability

Cross-Reference  

Part Five of this book further discusses the topics presented in this section.

.NET Is Secure and Configurable Applications

Security is probably one of the most discussed topics in some circles. And yes, Microsoft has addressed this concern. So, when some people answer the question "What is .NET?" the security features will come to mind first. Portions of the .NET Framework you will learn about explore this topic completely. Additionally, the Global XML Web Services Architecture (GXA) WS-Security standard also increases the level of security available to .NET applications. You will want to learn about both.

start sidebar
Include Security As Part of Your Web Application Design

The area of security for a reformed mainframe programmer will seem strange . Not because the mainframe programmer does not appreciate the need and importance of the topic, but rather because the average mainframe programmer typically did not need to worry about security.

Even when you developed large mainframe CICS online applications, there was an entire team of security experts that secured the environment ” mainly from internal employees . In the Web development world, your application is potentially exposed to the outside world. So now security is more of an application-level and enterprise-level problem, and thus your problem to share. You will need to take this paradigm shift very seriously.

end sidebar
 

Others will quickly refer to the enhanced, configurable features. .NET provides a host of configuration files. These configuration files are available at the user level, application level (both Windows application and Web application), machine level, and system level. .NET has certainly taken the idea of being configurable to a new level (pun intended).

For those programmers who have historically avoided hard-coding anything in their program code, these configuration files will be welcome. During your mainframe development, perhaps you created QSAM files and PDS members that contained configuration information and parameter values. Now you have this set of configuration files to take advantage of. Again, this is a similar idea and a similar concept ”it's just the implementation that's different.

Cross-Reference  

Chapter 18 discusses configuration and security in depth.

.NET Is COM+ Application Creation

In the next chapter, I define COM+. For now, I will just mention that COM+ on the Windows platform is similar to CICS itself. In other words, in the same way that individual transactions and application programs are installed on top of the system-level program CICS, you can have application-level programs installed on top of the system-level program COM+.

There are many services that COM+ offers to an application. If you want to leverage those services, you create a COM+ application and install your program into the COM+ application. I will provide step-by-step instructions on how to accomplish this.

Cross-Reference  

I have extended this introduction to COM+ in Chapter 3. Later, in Chapter 19, I discuss COM+ further.

.NET Is Distributed and Concurrent Processing

If there were such a thing as a really advanced section in this book, this particular section would be it. That is the reason I chose to discuss these two topics in more detail near the end of the book. Allow me to point out that both distributed processing and concurrent processing are rather important topics. There is a possibility that one of your future applications will need to take advantage of either of these advanced features. That is certainly reason enough to not ignore these advanced topics. After all, this book is designed to be your one-stop guideto .NET.

Cross-Reference  

Chapter 20 explores distributed and concurrent processing.

Distributed Processing

On the mainframe, have you ever used CICS's Distributed Program Link (DPL) feature? Don't feel bad if you haven't. Even on the mainframe, this is considered to be an advanced topic. Nevertheless, .NET has a feature called .NET Remoting that is similar to the DPL feature.

On the mainframe, if you had a CICS program on one CICS region that you wanted to be able to "connect" to from a different CICS region, you would use the DPL feature. On .NET, if you have a program on one machine that you want be able to communicate with a program on a different machine, you would use .NET Remoting.

You might wonder , "If this .NET Remoting feature is similar to the mainframe CICS DPL feature, will this feature be equally obscure?" To that, I would have to respond, "It depends." It depends on the particular needs of your users and the types of applications you plan on developing. Even more, it will depend on the physical configuration of your production (hardware) environment and your organization's security/firewall policies. You will explore these variables and others in Chapter 20. At that point, you will gain an understanding of when it is appropriate to include .NET Remoting as part of your application design.

Concurrent Processing

The topic of concurrent processing leads to the area of (.NET) threading. When I discuss concurrent processing further in Chapter 20, I compare it with the CICS features multitasking and multithreading.

.NET threading (or multithreading) is certainly a sensitive topic. There are those who will quickly swear to its usefulness . At the same time, there are those who have been "burned" so badly from previous attempts to use it that they will not even enter into an open discussion of the topic. And then there are those who are simply excited that the current version of Visual Basic (VB .NET) finally supports true multithreading.

Regardless of which camp you belong to, you will still want to know how to use threading ”properly, that is ”in the event that you can justify using it. Generally speaking, an application that has significant processing overhead may (I repeat, may ) be a candidate. If the timely completion of key portions of this same application becomes critical (e.g., an online application that interacts with a user), this would further support the notion of the application being a candidate for explicit threading management. Furthermore, if you have designed your application such that multiple threads can safely be dealt with explicitly, you just might (I repeat, might ) have yourself a candidate for .NET's threading.

Obviously, discussing when and when not to include explicit threading in your program design is important. Simply learning how to programmatically manage threads is equally important. In Chapter 20, when I further discuss this topic, I trust that you will be adequately informed, debriefed, and enlightened.

Yes, distributed processing and concurrent processing are rather advanced topics and should be treated as such. As you learn more about them, you will be armed with enough knowledge to use caution when traveling down the path of "alternative" processing models. Nevertheless, you will want to know that these features exist, just in case you ever need them.

.NET Is Interoperability

You can use multiple languages on .NET. However, what about the topic of interoperability? What about .NET's capability to allow modules of multiple languages to interact and coexist in the same application? With .NET, software modules written in one language (e.g., VB .NET) can easily interoperate with software modules written in a different language (e.g., C#). .NET is ready for these types of situations.

In fact, interoperability is a key characteristic of .NET that seems to get a fair amount of attention. I believe this can be attributed to the fact that when you need interoperability, you really need interoperability. Inclusion of interoperability as part of your application design usually means that there was not a more viable choice.

start sidebar
.NET Supports Component Object Model (COM) Interoperability

If you need to leverage existing Windows/Web legacy modules (i.e., COM modules), .NET's COM Interoperability (Interop) feature supports this need. For example, say that you have older COM objects that were written before .NET existed. If you need it to, your new .NET application can use COM Interop to directly integrate with the older, non-.NET module. Conversely, you can take new .NET (managed) objects and use them in your older COM (unmanaged) environment. Remember COM Interop just in case you inherit any legacy applications while you are becoming a .NET expert.

end sidebar
 

In your previous mainframe experience, you may have worked with applications written in COBOL that used subprograms written in assembler. You may have had Dyl280 programs that depended on subprograms written in COBOL or assembler. In other words, you are already familiar with the concept of language interoperability. What will be new for you here is how easy interoperability is with .NET. For example, with virtually no extra effort, you can interactively debug an application, stepping line by line, with execution transferring from a module written in one language to a module written in a different language. Now, that is a great feature.

Having multiple languages to choose among is great. It's also great that .NET fully supports multiple language integration and coexistence. While I'm on that topic, isn't it great that .NET fully supports each and every technological feature discussed so far? You've got to admit, there is a lot to .NET. So "What is .NET?"

Discussion from each of the previous sections has contributed to answering that question. Continuing on to the following section, you will take a slight turn away from this development/programming “centric focus. Although you will still ask the same question ("What is .NET?"), you will cast your view slightly outward toward the industry and the enterprise. You will find that these additional sides of .NET are in fact relevant and of importance to you.

Cross-Reference  

You can find a good example of language interoperability in Chapter 19.




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