Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations SkipVought on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

C# & .NET - What Is The Point?

Status
Not open for further replies.

JTeagle

Programmer
May 30, 2000
49
0
0
GB
OK folks, I'm going to take an aggressive stance here - just what is the point of this "exciting new technology", and what's "new" about it?

Perhaps people could describe what all this .NET stuff does for the programmer / user that can't be done with existing languages and technologies.

In other words, someone justify it all to me.

(I'm always sceptical of new things, and if I'm going to switch to new things I want to know why I should)

Note: I bear no resentment towards MS or their technologies, but I believe that new things should only be introduced if they serve some significant purpose.
 
Or perhaps you could take the trouble to at least go the the various sites with c# and .Net information and do some reading for yourself.
 
No, really? <SARCASM>

I did that - Microsoft's info is all marketing spiel that really doesn't say what .NET accomplishes that existing languages can't, and anywhere else all I find is &quot;How to do such-and-such in C# / .NET&quot; - again, not an explanation of what .NET is.

Please, if you don't have anything positive to contribute, don't contribute. This was intended as a serious 'debate' on what the advantages are.
 
As I understand it .NET means the following.

1) All visual studio development tools will compile code to a sort of Virtual Machine (like Java) except they call it something else. Currently .NET's VM is only for Win2k and XP systems... not so portable but that could change as they write more VMs for other systems... Unix, Solaris, OSX etc. I should say if they write more VMs

2) All .NET development tools can use any .NET resources, so weather use VB or C you have all the same libraries, the differnce I suppose is syntax.

3) All .NET development tools share the same IDE. This further blurs the division between languages. I suppose you will program in what you already know.

Thats all I know. Our shop hasn't bought in and is not planning too. We are watching it develop and will wait and see what happens.
-Pete
 
You might also read these threads...

thread732-141278
thread732-35810

-Pete
 
Thankyou, that was a nice explanation. I can't say I'm sold on it yet.

Do you know if this compiled code (called something like CRL &quot;Compiled Runtime Library&quot; I think) is browser-dependent or a sort of Java codebyte-style native program that runs without the browser? I'm wondering if it will be affected by users who choose to use Netscape, for example...
 
As it happens, I had already read that first named thread before I posted here - the second named thread was slightly more informative {:v) I see I got CRL letters right but the meaning totally wrong - that's speedreading for ya {:v)
 
CRL is not browser dependent. Its not applet but full blown application. It can ben an applet (as I understand it). Of Java code can .JAVA application or an applet, so you tell me.

But performance of .NET CRL (Just in time compiled code, sounds like java to me) is lower than standard .EXE code. How much slower I don't know.

I'm not sold on .NET either. But I do like MS's IDEs they blow away Borland, Sun and IBMs. The IDE has always made MS attractive to me.
-Pete
 
Yes, I agree about MS' IDEs - they are fantastic. I wish MS had simply made J++ = Sun's Java + MS' IDE - it would have been the best.

It seems to me that .NET is great for the coding community as a whole since we all end up using the same tools but can stick to our own preferred languages - and the concept of portability is great (and I'm sure we will be able to run the compiled code on other platforms eventually). I'm suspect about the access to the system - while I would like to see more flexible control over graphics and sound, and better means of persistent storage of data, I think the more you try to give access to the system the tighter the compiled code becomes bound to the various platforms - and that seems counterproductive to me.

 
My 2 cents:
I see .Net as something that is intended to improve development, however, I don't believe that the solutions, or end results, developed with .Net, will actually do anything that can't already be done with existing compilers -- perhaps with a little more work involved.

I admit that I haven't done very much research on .Net, nor have I bothered to try the beta. I paid good money for Visual Studio 6 Enterprise, and I'm not going to run out and pay another $1000-2500, just because Microsoft releases the next &quot;latest and greatest&quot; technology.

Microsoft is a business. If they don't come up with something big and new every six months, they won't survive. A good example is Windows Me and Windows 2000. Companies, at least the smaller ones that I deal with, are just beginning to switch to these now and out comes Windows XP.

The key to good marketing is making people believe that they need something that they don't. If you do your research you will find that Microsoft has released many duds, that were thought to be the latest and greatest at the time. Some poor individual invested tons of money on books and a lot of time to learn these technologies, only to find Microsoft scrap them almost as quickly as they were released. Does anyone remember Win G? It's the predecessor of DirectX.

I think .Net will make it, but I won't shell out the cash until I have no other choice.
 
Back to the top.

Yes Really. <Sarcasm>

If you read the info available perhaps you could have posted specific questions instead of what you posted which IMHO came across as. I am to lazy to do any research my self so please do it for me and give me a predigested summary.

 
One of the advantages of this new environment is the compatibility of code between different delivery environments. I just completed a small database app that runs on the desktop as a WinForm app, runs over the Internet in a browser as an ASP.NET app and runs on my Jornada Pocket PC as a Mobile app with all of the backend code accessing the SQL database and responding to front end events like radio buttons and selection lists being very close to the same for all three delivery environments. And the IDE and common libraries made developing the front end for all three apps a pretty simple quick process while the backend (C#) was mostly cut and paste. I really like it. I'm glad I'm switching to the new and over time I believe I will be a more productive programmer with the new framework.

Kyle
 
Although I understand what you are saying and recognise that you are pleased with your coding because of it, is it really any different than developing the back end as a COM object and the front ends in their various separate environments (for example, VC++ and InterDev (ASP) )? I'm just trying to determine if the cost of Visual Studio .NET is worth it. So far, I don't think anyone has named anything you can't do with the existing tools, languages and technologies - no insult intended to people's efforts with .NET and C#, of course.
 
I agree that there is nothing in the new environment that you can't do with existing tools and technology. But having worked with Interdev for some time I personally am much more pleased with the ASP.NET enviroment. In my opinion the debugging and visual development tools alone are worth the switch. The first time you run an ASP.NET app it does have to Just In Time compile it, but after that the ASP code runs compiled. This is true even if you are just running standard ASP code written with Interdev. And it compiles taking advantage of the hardware it is running on. And I've never done a mobile app before so having it be a simple add-on was really cool to me. I think there is a real advantage to being familar with your development environment and I can understand why it might be best for you to stay with the current programming environment you are in. You are likely to be much more productive for some time to come. But I am looking forward to not having to make registry entries to install an application, to have the bulk of the libraries be part of the operating system (in the future of course) and only having to distribute a small file that can be copied to a system and run without concern for what else is installed. The fact that they rewrote instead of upgraded the language was a determining factor for my choice to move to the new language now. I plan to invest in this environment early so I can get some shelf life out of it. It's the right choice for me but that is certainly not saying it is the right choice for everyone. Your points are valid and I take no offense at another opinion.

Kyle
 
&quot;And it compiles taking advantage of the hardware it is running on&quot;

I may be misunderstanding what you mean here, but how can it do this? (a) I thought it all compiled to CLR, i.e., cross-platform, and (b), the development environment's hardware isn't necessarily going to be the same as the target's hardware!

&quot;to have the bulk of the libraries be part of the operating system&quot;

Well, the idea of shared MFC libraries was to help make programs smaller... and look how that turned out. I'd be very surprised if this was any better.

Thanks for the insight.
 
The final compile is done on the target hardware. The distributable code only gets compiled to &quot;Intermediate Language&quot; code which you distribute or load on your Web server. This is what some have been interpreting as Java's PCode. But it is different. It looks like assembly language code and unlike Java PCode this code is not interpreted every time it runs, it is compiled the first time it runs. The compiler is included in the .NET framework that must be loaded on each target machine. The first time your program is run on a target machine the &quot;Just In Time&quot; compiler compiles the code specifically to the features of that machine. From that point forward it runs compiled. When 64 bit computers are common the same code you wrote to work with 32 bit computers will get compiled taking advantage of the 64 bit computer if that is the target computer. This works great for ASP.NET as only one user (and that's usually the webmaster) has to wait while it is compiled and then all subsequent users will be running compiled code. For desktop apps, once each time it is loaded it will get compiled so if you are closing and opening an app all day long it's not so good. Microsoft claims to be working on the compile time but I've not found it to be of real concern to me that initial loading time is longer.

If I am interpreting what I have read correctly, in the future versions of XP the .NET framework will be included in the operating system which would be somewhat equivalent to including the VB runtime with every operating system. At the present time the .NET framework in beta is around 17MB and must be installed on each target machine in order for a .NET app to run. For now we're still stuck with a large add-on but I dream of things being better.

Kyle
 
I'd say, once you've used the fantastic VS.Net IDE, discovered the incredible ease of writing say a web database application full of complex controls with just a few mouseclicks, walked through the code running on a web server with the amazing debugger and successfully got something up and running without spending ages wondering why activex objects weren't being instantiated and so on, and finally rolled out the app with a simple copy, you'll be wondering why you felt so fond of that old-fashioned way of doing things that you were struggling with for so long...and then you'll notice that those who started learning with the .Net Beta have a long headstart on you for all those contracts that will be coming... :) Hope that this helped! :)
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top