Skip to main content
gamedev.net
🔒 Locked

.NET Framework

Started by WiseElben Nov 19, 2003 at 8:59 PM 10 replies 1.7k views
Original Post
WiseElben
WiseElben
Ok, so I''ve heard this name many times. I have it installed along with my Visual Studio .NET. I have docummentation on it. Yet, I don''t even know what a "framework" is. So please, can you explain?
Toolbar: [ | My Journal | nMagic | My Profile ] "Give a man a fish and he will eat for a day. Teach a man how to fish and he will eat for a life time." -Chinese Proverb
khawk
A framework is essentially the "glue" for a set of components. You can conceptually think of it as an operating system kernel, as it provides the core system services required by a software application, which resides in a set of components that define the software application product. Frameworks are generic, but they may be customized for a specific domain1.

.NET is a framework that provides a generic means for applications to communicate to each other. It's similar to Java and VM's, in that you should (in theory) be able to build once and run anywhere with a .NET installation, but the difference here is that you have your choice of languages.

What you're essentially getting into with .NET is component development. It's a higher-level abstraction than object-oriented in that each component is an encapsulated piece of software with a set of inputs and a set of outputs. When looking at system-level design, all you care about is the interactions between components at the interface level. Contrast this to OO, where the design can breakdown due to dependencies between components and a breakdown in interfaces.

I'm trying not to get into too much detail and keep it simple at the same time, so if it's a little confusing I apologize. Do some searches on component-based development, component architecture, and other similar terms. Here's a Wiki link to start you off:
ComponentFrameworkDefinition

1At my work, I co-developed a generic component framework for creating simulation products. The framework executes a state machine that is standard across all of our products and provides a set of services and features that components use to implement their required functionality for each product. Also, GameDev: Arena is essentially a component framework, with bots as the components.

Kevin
Admin for GameDev.net.
CpMan
CpMan
The framework is also an API, which an application can take and build things with, just like a normal API.



VSEDebug Visual Studio.NET Add-In. Enhances debugging in ways never thought possible.
VSEDebug Visual Studio.NET Add-In. Enhances debugging in ways never thought possible.
khawk
Well, frameworks have an interface so you can use them, which is called the API. But an API by itself is not a framework.
Admin for GameDev.net.
WiseElben
WiseElben
Ok, so a framework is like how Java is compiled and stuff, but also an API. So lets say I''m gonna use the .NET F in C++, does that mean some statments and stuff will change? Like:

cout << "hi!";

Into:

console.text("hi!");

or something like that?



Toolbar: [ | My Journal | nMagic | My Profile ]

"Give a man a fish and he will eat for a day. Teach a man how to fish and he will eat for a life time."
-Chinese Proverb
TempusElf
TempusElf
I really don't know much about the .Net framework... but my guess is you'll still be able to use cout, but only because it's part of the infamous standard and Microsoft would be really stupid to ignore that...

So in a managed c++ program using the .NET framework, you should be able to do:


Console.WriteLine("hi!");

or:

cout << "hi!" << endl;


However, the cout object will basically be a wrapper for the Console.Whatever() commands... but this is good if you'd like you're code to be portable to other OS's

[edited by - tempuself on November 20, 2003 9:07:49 PM]
WiseElben
WiseElben
Ah, I see. So the .NET F is being ported to Linux, Mac, and ect? So I should use the .NET statements to ensure protability? As in using Console.WL instead of cout, and all.



Toolbar: [ | My Journal | nMagic | My Profile ]

"Give a man a fish and he will eat for a day. Teach a man how to fish and he will eat for a life time."
-Chinese Proverb
TempusElf
TempusElf
quote:
Original post by WiseElben
Ah, I see. So the .NET F is being ported to Linux, Mac, and ect? So I should use the .NET statements to ensure protability? As in using Console.WL instead of cout, and all.



no no no... I meant the other way around... cout is the standard and is implimented on most if not all OS's and so if you want your code to be portable you'd use cout.

Console.Something() would be the windows specific way of doing things

[edited by - tempuself on November 20, 2003 11:05:01 PM]
CpMan
CpMan
quote:
Original post by Khawk
Well, frameworks have an interface so you can use them, which is called the API. But an API by itself is not a framework.


In terms of the actual terminology that they use in the specification and so on is a little different.

They refer to the entity as the Common Language Infrastructure..but I guess we''re arguing over trivial details.



VSEDebug Visual Studio.NET Add-In. Enhances debugging in ways never thought possible.
VSEDebug Visual Studio.NET Add-In. Enhances debugging in ways never thought possible.
khawk
quote:
Original post by CpMan
quote:
Original post by Khawk
Well, frameworks have an interface so you can use them, which is called the API. But an API by itself is not a framework.


In terms of the actual terminology that they use in the specification and so on is a little different.

They refer to the entity as the Common Language Infrastructure..but I guess we''re arguing over trivial details.



VSEDebug Visual Studio.NET Add-In. Enhances debugging in ways never thought possible.



Okay, then it must be a Microsoft thing. Given that they''re on the forefront of component technologies, I guess they get to ignore the rest of the software industry and name things the way they want to name them.

Admin for GameDev.net.
Greatwolf
Greatwolf
quote:
Original post by WiseElben
Ah, I see. So the .NET F is being ported to Linux, Mac, and ect? So I should use the .NET statements to ensure protability?



I''m wondering about this, as I understand it the .NET framework MS developed is an open standard and VS.NET is one implementation based on this standard. Since it''s open anyone can look at the specs for .NET and do an implementation of this framework for other OS''s like Mac OS, Linux, Unix, etc. is this correct?

If a .NET implementation is done for other OS''s does that mean any kind of manage code that we program for Windows will work in other OS''s as well like Java? (assuming a .NET implementation is available for that OS)

Thanks





--{You fight like a dairy farmer!}
--{You fight like a dairy farmer!}
intrest86
intrest86
There are projects already underway to port the .Net Framework to other operating systems. The most known example is probably mono. I haven''t looked at it much, but from what I have heard it should be able to run most things, with some notable exceptions like WinForms.
Turring Machines are better than C++ any day ^_~

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.