Click Here to Install Silverlight*
IndiaChange|All Microsoft Sites
MSDN
|Developer Centers|Library|Downloads|How To Buy|Subscribers|My MSDN
 
Chat Transcript
 
What's new in the .NET Framework 1.1
Host
: Kumar Gaurav Khanna, Microsoft MVP
May 02, 2003
 
Deepak_MS: Hi Folks!

Deepak_MS: Good Evening, today we have with us Kumar Gaurav Khanna, who works with HP and is a Microsoft MVP

Deepak_MS: and a good morning to Gaurav, who has joined us from US.. (its still very early morning there )

KGK: Good morning from me

KGK: Thank you Deepak

KGK: Yes...not my usual day

Deepak_MS: Ok Gaurav, we already have two questions.. so you can get started right away..

Deepak_MS: (Pratap): what are the new features added in framework 1.1?

KGK: Before I start off with that let me tell you something. .NET 1.1 has

KGK: 1) New Additions

KGK: 2) Non-breaking Changes

KGK: 3) Breaking Changes

KGK: And in this chat I shall give you an introduction to all of these hopefully answering your queries. So, we kick off with "new additions":

KGK: Visual J# is new addition. .NET 1.1 includes the installation of its redistributable when VS.NET 2003 is installed

KGK: It leverages the skill-set of existing Java language developers to .NET with very negligible grammatical learning curve.

KGK: Apart from this, we have the new and enhanced support for targeting mobile devices from ASP.NET and couple this with the fact that its part of VS.NET 2003 unlike VS 2002 with supporting 200+ devices compared to 150+ of VS 2002.

KGK: For the C++ community, the good news is that the VC++ compiler is now a lot more ANSI standards compliant, reaching close to 98%.

KGK: But the more important issue here is the support for VC++ developers to "draw" a WinForms application just like any other VB.NET VC#, VJ# developer. This wasn't supported in the VS 2002. So, now VC++ developers for .NET can take complete advantage of RAD development.

KGK: Moving to database accesses, .NET 1.1 has now support built-in for accessing Oracle database and accessing databases via ODBC. The relevant namespaces introduced to work with them are System.Data.OracleClient (which uses OCI internally) and System.Data.Odbc

KGK: Network developers who intend to write applications targeting IPv6 networks, now have complete support for .NET 1.1.

KGK: Finally for WinForms controls hosted in IE, a new "Internet" permission has been introduced, marking them as semi-trusted, so that WinForm controls can be easily hosted.

KGK: And while I am a telling you how managed controls are hosted in unmanaged hosts this will also be a good news for the MFC developers that MFC 7.1 shipping with VS 2003 has been tested completely with WinForms controls to host them, and works great!

KGK: CWinFormsControlSite is the controlling end just like COleControl is for COM Controls

KGK: Apart from these major and obvious changes internally the runtime has been optimized to scale well, particularly in context of GC.

KGK: Well that's all for the "what's new"

KGK: As we proceed I shall talk about breaking and other changes

Deepak_MS: (Pratap):: ok. among vb.net, c#.net, vc++.net and j#.net which has the faster execution. Can you tell me the order?

KGK: When you are writing pure managed code, they are all at par. In an enterprise deployment where just pure managed code is being deployed they will perform equally well. Choosing one over other depends a lot on what you plan to do. For instance, if you are concerned over the overheads involved when accessing COM components from your .NET app, then you might consider using Managed C++, using IJW (It Just Works!), to reduce the interop. overhead and get better performance.

Deepak_MS: (Subuki): Would this VB-like Windows Forms RAD be available to .NET platform applications only?

KGK: Which other platforms do you have in mind?

Deepak_MS: (Subuki): Would this VB-like Windows Forms RAD be available to .NET platform applications only? (Like MFC)

KGK: Well.. MFC itself has a good bit of RAD for itself, albeit not as extensive as VB6 or WinForms RAD since the MFC Framework design is such.

KGK: All the same, it has a good RAD support, we don't write code for creating a UI anyways

Deepak_MS: (venu): System.Data.OracleClient ....does this speed up the things...compared using System.Data.Oledbclient?

KGK: Definitely. Just like the SqlClient client actually speeds up talking with the SQL Serve using TDS protocol OracleClient uses OCI (Oracle Call Interface) to talk with Oracle Servers. OleDB instead,would go thru a series of calls, via the OleDB provider before it gets to talk with the Oracle Server, unlike OracleClient which talks directly. Sure enough, things speed up.

Deepak_MS: (SriSamp): Have any improvements been made to the Oracle client from the earlier version which was downloadable? The Oracle .NET driver had native support for lots of Oracle data types, which the MS driver did not have...

KGK: As of the moment, this is no exceedingly different enhancement from the separate download which was available, except for few optimizations and namespace name changes.

KGK: But if you see the latest Oracle proivder download for 9i, they require the 9i client to be installed on the system where the 9i managed provider will be installed. This prerequisite is not there when you use the MS provider.

Deepak_MS: (pratap): is there any tool for converting vb.net code into c#.net?

KGK: http://www.kamalpatel.net/

Deepak_MS: (Venu): when we use validation controls with asp.net...when the code is validated the message appears very fast...but as we say controls are server controls...how does the things turn up fast...does IE has integrated .net framework/CLR?

KGK: When we say they are server controls, what it means that they are rendered at the server and then relevant HTML/Script code is sent to the client (browser). When validation occurs, its pure client side javascript. No server trips come into the picture. Hence, the quick response.

Deepak_MS: (Nanda): how could the code written in vc++ can be made .NET compatible ?

KGK: Good question.. and if you are looking to completely convert your VC++ application for .NET, I suggest you write it from scratch for .NET. However, if only portions/classes need to be made .NET compliant you should use the approach of writing managed C++ classes that wrap corresponding unmanaged C++ class and have one-to-one method mapping. Your .NET application can then consume the managed C++ class, which will internally get the work done using the unmanaged C++ class.

KGK: http://msdn.microsoft.com/library/en-us/vcmxspec/html/vcmg_accessingcodefromframeworkobjects.asp

KGK: Refer to this for more details

Deepak_MS: (vin): When I install Framework 1.1 over an existing 1.0 Framework, When I open the VS.NET IDE I see just the Framework 1.0 components. I have to manually browse to the Framework 1.1 location to select the new components. Is there any settings I have to change?

KGK: I think what you are doing is simply installing .NET SDK 1.1 and trying to use it with VS 2002. This won't work well and isn't advised. Instead, install VS.NET 2003 and use it to work with .NET 1.1 classes.

Deepak_MS: (vin): What about the changes in compatibility breaks from 1.0 to 1.1. e.g. System.XML changes ... How do we code for such changes ... What is your suggestion on this ...?

KGK: Good this came up Refer to this link

KGK: http://www.gotdotnet.com/team/changeinfo/default.aspx

KGK: All the breaking changes from .NET 1.0 to 1.1 are available here and more.

KGK: Now, coming to your question, To handle code that explicitly breaks up, you will need to rewrite it to work with .NET 1.1.

KGK: If, that code is available as a seperate assembly which your application loads at runtime,

KGK: deploy a new assembly and set the version policies to make your application use the new assembly. This way, you will also use Side-By-Side execution, a concept that comes to life with .NET 1.1 and 1.0 deployed together.

Deepak_MS: (Mamsona): Will it be possible to use the 1.1 with visual studio 2002?

KGK: Nope... you will be able to browse and select relevant assemblies, but VS.NET 2002 will not work properly with .NET 1.1 class library assemblies.

Deepak_MS: (Mamsona): means we have only one option to upgrade the current application for 1.1

KGK: Well, if you wish to use RAD of VS, then yes, you got to have VS 2003. But if you simply wish to write class libraries, etc, then just install .NET 1.1 SDK and use any text editor to write code against it. Ensure that you compile using the .NET 1.1 compilers. That's all. This will work.

Deepak_MS: (Mamsona): Then what's the compatibility factor? (I mean the code written for VS 2002 will work with VS 2003 after upgrade???

KGK: Yes it will. Unless its part of the breaking changes, it will work.

Deepak_MS: (SriSamp): Side-by-side is a good option, but if the client buys 2003 servers, it comes with 1.1, correct? Can we install 1.0 on top of this to make sure that existing application (VS 2002) work correctly?

KGK: Are you deploying VS or .NET 1.0 apps? In such a case, configure the policies to redirect the calls to .NET 1.1 assemblies. That will save you the trouble of installing .NET 1.0

Deepak_MS: (Nanda): Can I run the application created using managed c++ in other OS like linux?

KGK: Yes you can provided the OS has a CLI implementation. In-fact, I created a C# console app on Win32 and executed it on Mono. Works great!!

Deepak_MS: (Mamsona): What major changes have been made to ADO.NET classes?

KGK: Well.. as I said earlier, there is now built-in support for Oracle and ODBC access. Apart from this, the DataReader now exposes a "HasRows" property so that you know any rows have been returned. You don't have to do a "While(dr.Read())". Where dr is a DataReader object, to check if rows are present.

KGK: Also, if you have specifically instructed to your database driver not to enlist your calls in transactional contexts, now the Connection objects supports the EnlistDistributedTransaction method that lets you manually enlist your call in an existing transaction context

Deepak_MS: (dotnety): is it possible to make the assemblies created using the frameworks made to invoke an EJB using SOAP? Does Windows Server 2003 support this?

KGK: You answered your own question? If the server hosting the EJB can understand the SOAP packet and invoke the EJB, and return the result anyone can do that. Not just Windows Server 2003.

Deepak_MS: (SriSamp): Is there a performance difference between installing 1.1 on a Windows 2000 server and having it part of Windows Server 2003? The performance documents from MS seem to indicate there is. Why is this so?

KGK: What's new in Windows Server 2003, though, is the fact that now a COM+ application

KGK: can be exposed as a WebSevice with just a single click. That's so, since Win2k3 has been optimized to work with .NET 1.1, not to mention that there are certain specifics to Windows Server 2003 which weren't there in Windows 2000, like I mentioned above: creating a WebService for a COM+ application.

KGK: Finally, understand that Windows Server 2003 is native to .NET 1.1, and hosts its internally. Just like Windows 2000 was the first OS to host COM+ native. Hope the analogy clears your doubts.

Deepak_MS: Ok folks.. we need to wind off.. thank Gaurav for Logging on.. !

Deepak_MS: Do join us next week for discussion on UDDI in Windows 2003 Server..

KGK: Before we leave, few URIs

KGK: WinForms Enhancements:

KGK: http://msdn.microsoft.com/msdnmag/issues/03/03/WindowsForms/default.aspx

KGK: VS 2003 Enhancements:

KGK: http://msdn.microsoft.com/msdnmag/issues/03/03/VisualStudioNET2003/default.aspx
     

©2009 Microsoft Corporation. All rights reserved. Contact Us |Terms of Use |Trademarks |Privacy Statement
Microsoft