ASP 101 - Active Server Pages 101 - Web06
The Place ASP Developers Go!

Please visit our partners


Windows Technology Windows Technology
15 Seconds
4GuysFromRolla.com
ASP 101
ASP Wire
VB Forums
VB Wire
WinDrivers.com
internet.commerce internet.commerce
Partners & Affiliates














ASP 101 is an
internet.com site
ASP 101 is an internet.com site
IT
Developer
Internet News
Small Business
Personal Technology

Search internet.com
Advertise
Corporate Info
Newsletters
Tech Jobs
E-mail Offers

ASP 101 News Flash ASP 101 News Flash



 Top ASP 101 Stories Top ASP 101 Stories
Migrating to ASP.NET
Getting Scripts to Run on a Schedule
The Top 10 ASP Links @ Microsoft.com

QUICK TIP:
Quick query design
Show All Tips >>
ASP 101 RSS Feed ASP 101 Updates


.NET Buzzword Reality

by Jayram Tallamraju

DIME, GXA, RAS, Web Services, Smart clients, .NET Remoting, ‘No touch deployment’ and many to go, we hear a lot of buzzwords only to scare people who do not know much about them.

Let us look at some of the buzzwords so that we are not left out in the crowd. We will also look at some of the new concepts introduced in .NET and see how we can understand them better.

Following sections are divided into two parts – buzzword/new technology and my view about it in real life. Obviously views I presented here are purely from my experience and my only intention here is to give you little more feedback. New technology is mostly better than old technology, as it comes with ways to address current drawbacks and to improve productivity. It is important also to understand where to use what, without which we may not be getting the benefit of the new technology in anyway.

.NET Web Services

.NET Web Services is similar to SOAP (Simple Object Access Protocol) based distributed computation. .NET Web Services provide a wrapper on top of SOAP using WSDL (Web Services Description Language). Obviously this makes it easy to use web services vs. using SOAP directly. UDDI (Universal Description, Discovery and Integration) allows us to publish web services to enterprise or public Internet so that it can be located and queried easily.

Reality: So far my experience is that this is really cool and much better option than using http get/post with special data formats or using SOAP directly, in distributed environment. Using visual studio .NET with in very short time you can create a web service. But my suggestion on this is, always keep your business logic in separate assembly or set of assemblies. Use Web services only as a way to expose that functionality in distributed environment. Also some developers (and their managers I guess) are in hurry to develop everything as web services. I would recommend using web service, in cases you foresee the need for distributed computation.

DIME

DIME (Direct Internet Message Encapsulation) specification provides a mechanism for packaging pieces of data together. When we need to send documents, jpeg/image files or any other binary data/files through web services, WS-Attachments defines ways, how to use DIME to send SOAP messages with these attachments. In many ways it is similar to sending files as attachments in email or uploading files through HTML Forms on any web site. Mostly email attachments use MIME (Multipurpose Internet Mail Extensions).

MIME and DIME address similar problem in different ways. There is a very good article on Microsoft site that gives details of this: Understanding DIME and WS-Attachments

.NET Remoting

If you are aware of JAVA RMI or DCOM in windows world, this is something similar in .NET world. In .NET there is no DCOM and .NET Remoting is best way to support distributed computing, other than using web services.

Reality: It might be confusing when to use web services and when to use .NET Remoting. .NET Remoting has more flexibility in terms of what channel (HTTP, TCP etc) to be used for communication and other aspects. .NET Web service is based on SOAP and uses HTTP protocol. Web services might be easier to use when it comes to development (You need to know little less details). Unlike DCOM you can use .NET Remoting in Intranet or Internet environment. Also .NET Remoting is recommended way to communicate across Application Domains (Application Domain: .NET way of separating .NET application's process space).

.NET Framework (Write once and run it anywhere?)

Unlike "Write once and run anywhere" slogan of JAVA, .NET supports "Write once and Use it everywhere". JAVA forces everyone to use JAVA language and as long as you write code in JAVA, it can run on any machine including UNIX OS (Assuming you installed JVM – Java Virtual Machine).

Reality: JAVA is good in homogeneous environment where all the code modules are developed in JAVA and it is easy to run the whole product in this case, on any machine irrespective of the operating system. .NET Framework is similar to JVM and if you need to run any .NET code on any machine, you need .NET Framework installed on that machine. But big question is how easy it is to have a fully functional .NET Framework for non-windows based operating system. We need to wait and see. One big advantage of .NET is, it works well with current heterogeneous development environment where we use many different languages. With Visual studio .NET IDE, it is very easy to not only step through different languages, also to inherit or reuse code developed in different languages. .NET Common Language Runtime (CLR) and CTS (Common Type System) support this.

NOTE: I have seen many articles (including ones on Microsoft site) encouraging people to use Platform Invoke in .NET, to access Win32 functionality that is not supported directly in .NET Framework. People who use Platform Invoke for this purpose are forcing themselves to Windows platform again. Some articles on Microsoft web site mention, lack of time for coding, testing and documenting to support all Win32 API, is the reason for this functionality not supported in current .NET Release. Hopefully this might improve with future releases.

GXA (Global XML Web services Architecture)

Web services, built with SOAP, UDDI and WSDL specification, support basic application environment. Once we start developing complex applications using .NET Web services, we might need Transaction, Message routing and Security support required for most of the enterprise applications. GXA is an attempt to address these issues and standardize their implementation in web services based development.

Reality: If you are using .NET Web Services heavily, it is good to be in touch with latest developments in this area.

RAS (Reusable Asset Specification)

Software Industry research claims that development using Reusable modules costs only 20% of development cost from ground up. Reusable Asset Specification (RAS) is taking it to one more level and defining a standard in grouping your assets in any project. Assets can include any artifact in the project.

Reality: I understand this concept and like the idea of reusability. But it takes a huge part of my brain to really understand the reusability at any level higher than modules/code. Also there are very few tools available currently and not sure how much training we need to understand how to use them. Good news is that Rational has some tools that integrate well into Visual studio .NET (check out www.rational.com for more details).

XCopy Deployment

All .NET code can be installed on new machines with an easy XCopy deployment. XCopy term is used to say that it is easy to copy and paste (or zip and unzip) project files from one machine to other machine and that should complete installation. XCopy deployment in.NET has no issues of DLL hell or COM registration and registry mess.

Reality: This is not much different from .ini file based configuration and using dlls from project directory, used by most of us in Win 3.1 world. Later on Microsoft introduced registry as a central place to keep configuration and introduced COM to avoid DLL hell and multiple versions of dlls, all over the machine. Now we are back to similar world with few exceptions. Configuration of .NET application is stored in XML based configuration file. Assemblies (are similar to dlls), if they are copied to current project directory then they are loaded from where they are. This will allow us to have multiple assemblies of different versions used by different projects on same machine. One good thing mainly in web world is, if you copy new assemblies or change configuration (web.config), it will be reflected in your application with out stopping the web server. Annoying thing is that there is no good tool that I am aware of, to manage all different .NET application configuration files installed on a single machine. .NET Configuration tool allows to some extent changing configuration of applications but does not support all. So we are back to opening the XML file in notepad and editing configuration settings.

Smart Client

Get the rich UI experience and more processing on client machines. With Smart Client you can download latest assemblies (No touch deployment – more on this in next section) and give rich UI experience to end users and do more computation on client machine. (Fine print: You need .NET Framework installed on client machine).

Reality: This is not new concept. In windows world we download ActiveX controls and in JAVA world we download JAVA applets almost the same way. How do we create a Smart Client normally? Answer is just creating a simple Windows Forms application using Visual Studio .NET. Why is it called Smart Client? It is Smart Client because it can do a lot better (creating threads and nice UI) than an ASP.NET based Client-server application. Obviously what you need to know at the end is that you need to install .NET Framework on client machines before you can use any Smart Client. Needless to say that for .NET Framework you must have so and so installed on your machine. For so and so to install you also need something else to be installed first. Not sure how simple it is going to be to force all the clients to install .NET Framework. I will not recommend this to anyone. In my opinion this Smart Client is another way Microsoft can push .NET Framework installation to many machines. Best approach still is to use ASP.NET web application.

No touch Deployment

With no-touch deployment, Windows Forms applications (desktop applications) built using the Windows Forms classes of the .NET Framework, can be downloaded, installed, and run directly on the users' machines without any alteration of the registry or shared system components.

Reality: Like I mentioned above, this is not much different from .CAB based or .JAR based download of ActiveX or Applets. Main issue to remember here is that 'No touch Deployment' requires .NET Framework and IE 5.01 browser installed on client machine. If you develop .NET Windows Forms applications, this is something you will be interested in. Otherwise it is good to go with ASP.NET application and avoid any deployment on client machines all together.

Conclusion

Sincerely there is one thing I want to admit. Visual Studio .NET is the best IDE I have ever worked with. Microsoft really did a very good job with .NET and Visual Studio .NET. Mainly people who worked with MFC/ATL and VC++ will sure appreciate how much productive it is to develop projects with .NET technologies. It is very productive environment. And also a note on deployment: Visual studio .NET comes with very good setup project templates, that are very easy to use for building ‘Windows Installer’ kind of setup packages. In this article I made a sincere attempt to show you, what is hype and what is reality from my experience. Please bring to my attention, if you find any mistakes or any suggestion about this article at: tjayram@yahoo.com.

About the Author

Jayram Tallamraju is a Sr. Programmer Analyst/Software Architect for Hemisphere Financials (a Bisys Group Company) in Boston, MA. He is MCP of .NET, MCSD (Microsoft Certified Solution Developer) and SCJD (Sun Certified Java Developer). Jay holds an MS in Electronics and has been working in the software industry for the past 9 years. He is focused more in building server architecture and in building reusable business components. His current area of expertise is in Microsoft technologies such as .NET, C#, Web services, ASP.NET, VC++/VB, COM/DCOM, ASP/IIS.

More articles from the same author:


Home |  News |  Samples |  Articles |  Lessons |  Resources |  Forum |  Links |  Search |  Feedback

Internet.com
The Network for Technology Professionals

Search:

About Internet.com

Legal Notices, Licensing, Permissions, Privacy Policy.
Advertise | Newsletters | E-mail Offers