What is WinFX?


Recommended Posts

What is WinFX?

WinFX is a managed (CLR-based) API that extends the .NET Framework. However, it is accessible via MC++ to unmanaged applications. It encompasses all of the managed APIs that Microsoft will ship in Longhorn, including Avalon, Indigo, and WinFS, and .NET Frameworks.

It is broken down in to interface/data/communication layers which are Avalon/WinFS/Indigo respectively.

WinFX is the heart of Longhorn from which Avalon/WinFS/Indigo will all follow.

Link to comment
Share on other sites

What is WinFX?

WinFX is a managed (CLR-based) API that extends the .NET Framework. However, it is accessible via MC++ to unmanaged applications. It encompasses all of the managed APIs that Microsoft will ship in Longhorn, including Avalon, Indigo, and WinFS, and .NET Frameworks.

It is broken down in to interface/data/communication layers which are Avalon/WinFS/Indigo respectively.

WinFX is the heart of Longhorn from which Avalon/WinFS/Indigo will all follow.

I think it should say C++ and not MC++ :devil:

Link to comment
Share on other sites

Indeed bluebsh. I thought MC++ here meant Microsoft C++..

And one for me because I read the post too quickly! :x

Its ok, you don't need to make excuses. MC++ has never stood for Microsoft C++. You just weren't aware of what Managed C++ is. Nothing wrong with that.

Link to comment
Share on other sites

hey,

new here, but why not answer questions at first place? :)

CLR stands for Common Language Runtime, which is a needed environment for .NET enabled (managed) software. That means that softwares written in .NET are not in native win32 code, but rather in MSIL, which stands for MS Intermediate Language.. That code will be compiled during runtime by the CLR (or only at first run, but that's not important) with a tool called JITC, standing for Just-In-Time Compiler.. As these specifications are publicly available, everybody could write a JITC for the intermediate code, one project for that is Mono for Linux..

CLR (and the .NET framework) will be part of Windows codename: Longhorn in 2006, there's no other operating system that has it pre-installed, you can get it for Windows 2000/XP, but believe me, it's quite big, that means longer to download (and quite long to install) that means less people download it, that means less people have it, that means noone will really develop for the .NET platform on the client-side, only if it can be distributed with it (eg. software distributed on CD), but its still a hassle.. That's IMHO, as a developer, altough i would love to already work on current software meant for public with the .NET framework as it rocks :)

Hope that helps some better understanding, but ask more in detail, I might be here again someday :D

rev :D

Link to comment
Share on other sites

Hi,

Me too new here. And since I'm that kind of guy, I thought that I have to add my personal 50 cents. :happy:

rev, your opinion is exactly why there are not more .net applications. I stopped writing native apps some time ago, since IMHO it's not worth the effort to battle MFC bugs and glitches, when you can use the .net framework and WinForms instead. There even is a managed version of DirectX available. We wrote a 3D game engine using MDX, which really works well and is fast and good-looking. Thanks to the C# compiler being exposed to the framework, it's possible to have the game logic dynamically compiled and attached to objects at run-time. Our first game using that technology is currently in development (and we even found a publisher for it). You can have a look at some screenshots on our preliminary web site at http://www.saintbox.net.

The .net framework setup is only about 20MB. Okay, that's a lot for people with narrow-band internet connections, but for apps that are distributed on CD it's no problem at all. We have a setup app that takes care of installing all the neccessary components, so that the user isn't bothered with having to install lots of stuff manually. Think about it, almost every PC game requires DirectX to be installed, and installs a suitable version automatically as well. So why not install the .net framework and MDX, as well?

Apart from that, I absolutely agree with you - the .net framework rocks and puts the fun back into app development. And thanks to the marshalling mechanism, it's no big deal to use unmanaged code from your managed app (such as a third-party physics or sound engine). I'm looking forward to the future of Windows and .net! :D

PerpulaX

Link to comment
Share on other sites

hey,

new here, but why not answer questions at first place? :)

CLR stands for Common Language Runtime, which is a needed environment for .NET enabled (managed) software. That means that softwares written in .NET are not in native win32 code, but rather in MSIL, which stands for MS Intermediate Language.. That code will be compiled during runtime by the CLR (or only at first run, but that's not important) with a tool called JITC, standing for Just-In-Time Compiler.. As these specifications are publicly available, everybody could write a JITC for the intermediate code, one project for that is Mono for Linux..

CLR (and the .NET framework) will be part of Windows codename: Longhorn in 2006, there's no other operating system that has it pre-installed, you can get it for Windows 2000/XP, but believe me, it's quite big, that means longer to download (and quite long to install) that means less people download it, that means less people have it, that means noone will really develop for the .NET platform on the client-side, only if it can be distributed with it (eg. software distributed on CD), but its still a hassle.. That's IMHO, as a developer, altough i would love to already work on current software meant for public with the .NET framework as it rocks :)

Hope that helps some better understanding, but ask more in detail, I might be here again someday :D

rev :D

Thnx for writing up a very nice explanation of the technology - I just want to refine some of the details you mentioned. First, managed software has two parts, the MSIL (as you mentioned) and Metadata which contains information about classes, function calls, variable types, etc... Also, MSIL is not compiled, it is more-or-less translated. The code is already compiled from a programming language into a psuedo machine language. What the CLR does is (and speedily) translate the abstract instructions into instructions that your CPU uses. This is in contrast to compiling the program from source code right before running it, which is a less elegant solution. Additionally, MSIL is for ANY cpu, not just x86 (Intel). So the same program can run on CISC, Itanium, ARM ... whatever.

I also believe that Windows XP SP1 includes the .Net framework during install - if not, SP2 surely will. And the download is not very large for broadband (about 15Mb I think?). A lot of this size is because of the Framework Classes (similar to MFC). What Longhorn does is not just include the framework during install - but the entire operating system is built around the managed code concept, to seemlisly integrate it all. Basically, the OS will be targeted for faster CPUs and promote strong security and unified development model (read more about MSBuild) - I think.

I agree with everyone else so far, it's awesome!

Link to comment
Share on other sites

Well the two new guys sure made this a great post :) Thanks and weclome

well, let me continue then ;) (thanks for all the kind posts about our posts btw :cool: )

I agree with all the stuff you posted here after my post.. Personally, I would LOVE to work on the .net platform as it is really cool. What holds me back, that the projects I work on are mostly based on web downloads.. They are not distributed on CDs, because you can never reach that many people as on the internet.. but here, unfortunately because broadband is still not enough widespread, size does count. There's a theory, a myth or whatever I should call, that every 100k that you add to the download size halves the number of downloads, and that means half of the people will evaluate your software and even less buy it.. This statement is based on experience, still might not be true, but it is the point.. and of course, if your business model relies on web-based downloads and purchase, it is something that you have to count on.

Okay, back to .NET framework.. What I like is that on the server-side, it's already there, may it be ASP.NET or else.. I already saw very very cool web services built on .NET technology and expect a lot more, even on my .NET enabled PDA, mobile phone, you name it.. or if you take a look at the Tablet PCs and Ink API that is part of the Tablet PC SDK.. It is so f*ckin' cool how you have a collection of strokes and you call .ToString() on it to convert it to normal string.. Recognition has never been so easy and if Microsoft cares enough about letting 3rd party developers expand functionality (as we are who have the coolest ideas :rolleyes: ) it will rock. The concept itself is so cool, and I don't care if Java worshippers complain about stealing (which I wouldn't call stealing but using) all the ideas into C# or anybody else complaining about this, then blame theirselves: if Microsoft was the one (because it had the resource, the knowledge, the skill, the better marketing team) to bring it to life as a successful platform, may it be. Right? :D

I'm seeing Billy Gates as 48, still as a child having as much as fun as he did back then and as much fun as we're going to have because all the good stuff is still in the future, waiting for us, anxious developers :)

We'll that's all for now, any technical questions are welcome by me and my fellow newbie friends :)

rev :D

Link to comment
Share on other sites

reactions:

i'm happy to hear that managed DirectX with C# can be a good platform to build DirectX enabled applications, but still think that lower-level (and that means unmanaged c++ with inline assembly stuff ;) languages, environments do a better job at optimizing.. When performance is less important than let's say rapid development, i agree with you and I would choose C# too. Again, games are mostly distributed through CDs and if they are downloads they size 20MB+, where that +20MB doesn't really count. Anyway, gamers have time and the knowledge to download and install stuff (newest Catalyst / Detonator drivers, DirectX9.01b, etc).. It's the everyday users that really spend money and there, it's totally the other side of the coin.. whatever, only important thing is, develop a good business model for it :)

Thanks to the C# compiler being exposed to the framework, it's possible to have the game logic dynamically compiled and attached to objects at run-time.

This thing amazes me and makes me smile even more :)

Keep up the good posts, guys! :)

Link to comment
Share on other sites

I also believe that Windows XP SP1 includes the .Net framework during install - if not, SP2 surely will. And the download is not very large for broadband (about 15Mb I think?).

SP1 does include .NET. I think it runs about 15 MBs for a download and takes up ~100 megs of space, which was sadly an issue on my old laptop with only a 4 gig harddrive.

I can definately see how using it would be a total market killer for a web app though, there was a 2000/XP transparency program written in .NET (can't remember which one it was off hand) and it was about 100k in size, but required the .NET framework, which I didn't have at the time. Needless to say I passed on that program.

Link to comment
Share on other sites

  • 3 weeks later...

I think SP1 (network install) might actually include the .NET Framework. I saw a "install the .NET Framework" option in Additional Tasks in the Windows XP autorun after slipstreaming SP1. :rolleyes: :)

Link to comment
Share on other sites

  • 3 weeks later...
  • 5 months later...
  • 1 year later...
  • 5 months later...

Basically, yeah, it "wants to" but so far the .NET Framework can't do everything so people resort to calling unmanaged Win32 APIs.

Well, thats one of the benefits of WinFX - the whole benefit of it is the fact that it isn't an all or nothing API; its about using managed and unmanaged code where it makes sense - there are times where using one or the other makes sense, but unfortunately in the Java world its so difficult to make native calls, and the fact that its an all Java or nothing, aka, you can't run managed C++ and calling Java classes, what you end up having is very few companies willing to port as they can't make a gradual switch in the areas where managed code would make sense.

Its also about kicking parts of the win32 off the wagon - there is alot of crap there, replacing them with newer ways of approaching problems, using managed extensions where it makes sense, and basically in a nutshell, improving the over all programming experience.

Its like the migration from Classic to Carbon to Cocoa programming, once people made that final move to Cocoa, I know many programmers who look back and ask how they heck they put up with the antiquated crap that is Carbon/Classic.

Link to comment
Share on other sites

  • 3 months later...
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.