Microsoft products using the .NET Framework
In the comments of Scott Hanselman's blog posts on why VB developers don't switch/migrate/convert to VB.NET, someone replied with the following:
So what application has Microsoft written totally in .NET that is worth a [expletive]?
Visual Studio - NO, Office - NO, Notepad - NO, Calc - NO.
Why haven't they? .....
Here's my response. While the .NET Framework hasn't been around for a long period of time (shiping in February 2002), there is quite a lot of work being done by different teams to use the .NET Framework across Microsoft's product line. Below is a quick list of just some of the ways we're using managed code in products that ship today and how we plan to use managed code in the future.
Windows Client
- Windows XP Pro/Home was released before the .NET Framework which is why it was not included in the box. That being said, Soma points out the 70+ million who have downloaded the .NET Framework using Windows Update (note that the 70M number includes all versions of Windows). In fact, there is a lot of debate about why we didn't include Windows XP Service Pack 2 (XP SP2) with the .NET Framework, although most feedback agrees that we should not require installing new features in a service pack that don't relate to security/bug fixes.
- Windows XP Pro Tablet PC Edition includes the .NET Framework and the Tablet API is written using the .NET Framework.
- Windows XP Media Center Edition includes the .NET Framework and includes MCE-specific applications written using the .NET Framework.
- Windows "Longhorn" dramatically increases the amount of managed Windows code including components like WinFx, an all managed API, "Avalon", a managed presentation layer, and "Indigo" a messaging stack, all using managed code.
Windows Server
- Windows Server 2003 shipped with the .NET Framework 1.1. New features like Sharepoint Team Services and UDDI Services are written in managed code and require the .NET Framework.
- Small Business Server 2003 shipped with the .NET Framework 1.1 and includes some SBS-specific applications like Remote Web Workplace and the Backup Snap-in written in managed code.
Office
While Office is a little behind in adopting the .NET Framework, you'll still find the .NET Framework in use, athough probably not as much as you would probably want. Then again, Office is also expanding itself from being stand alone applications to a fully integrated set of tools for collaboration as witnessed with the Microsoft Office System, and our server products with Web front ends pretty much all use ASP.NET.
- Office 2003 Professional Edition includes the .NET Framework, but I believe this is an optional install and is primarily geared for using FrontPage 11 with ASP.NET. Outlook's new Business Contact Manager is primarily written using managed code and requires the .NET Framework.
- SharePoint Portal Server 2003 is written using ASP.NET.
Windows Server System
- SQL Server 2000 was released before the .NET Framework. Even so, managed providers for SQL Server 7/2000 were included in the .NET Framework 1.0/1.1.
- SQL Server Reporting Services shipped after SQL Server 2000, and is primarily written in managed code.
- SQL Server 2005 (“Yukon”) will natively host the .NET Framework 2.0, meaning you can write managed database objects like user defined types, stored procedures, triggers, and more in managed code.
- Exchange 2003 included managed code for it's mobile UI. Outlook Mobile Access is written in managed code using ASP.NET mobile controls.
- BizTalk 2004 has parts written in managed code.
- Commerce Server 2002 has parts are written in managed code.
- Content Management Server 2002 hasparts are written in managed code.
- MSN Messenger Server includes a presence server and admin/config tools written in managed code.
- Microsoft Business Network has parts written in managed code and requires .NET Framework 1.1.
- MS-CRM has parts written in managed code.
- Speech Server 2004 has parts written in managed code.
Developer Tools
- .NET Framework 1.0/1.1 has parts written in managed code.
- .NET Framework 2.0 has parts written in managed code
- Visual Studio .NET 2002/2003 has parts written in managed code.
- Visual Studio 2005 has parts written in managed code.
- ASP.NET Web Matrix is fully written in managed code.
Microsoft Web Properties using the .NET Framework
- www.msn.com
- www.microsoft.com
- msdn.microsoft.com
- www.gotdotnet.com
- uddi.microsoft.com
- www.xbox.com
- MapPoint XML Web Service
Microsoft Internal applications using the .NET Framework
- Account Explorer
- HeadTrax
- Consensus
- MS Contract
- eSupport
- Enterprise Product Roadmap (EPR) Explorer
- TSP Academy Virtual Instructor
- Country Manager Content
- TANLink Contributor and TanLink Explorer
- Contoso Enterprise Demo v2 – Hotel Desk
Does this mean Microsoft is only developing in managed code? No, definitely not. I would say the #1 language in use at Microsoft is C/C++. We also invest heavily in C++ and help support developers who need the power and performance C++ offers. We also have, in my opinion, the best C++ compiler of any platform.
And we're just getting started...
Comments
Anonymous
November 02, 2004
Excuse me, but this blog entry can be summarised as:
A person asks you "Why aren't the big MS applications written in .NET? Where is a pure-.NET copy of MS Office?" and you answer by "Well, a lot of MS products bundle .NET". Did I understand that correctly?Anonymous
November 02, 2004
Murphee: I think you misunderstood me. These aren't products that just contain the .NET Framework, these are products written in managed code. We are developing our products, our Web properties, and our internal applications using the .NET Framework.
Thanks,
-DanAnonymous
November 02, 2004
In that case, Dan, please write for me a small editor entirely in managed code - with no unsafe code - that allows me to write text in hebrew and English.
Constraints:
Must not use Richedit or IE. Must be an editor written from scratch.
Answer?
You can't do that. You need Uniscribe support and GDI support to do it - .NET only gives you GDI+ support.
Show me nice, fully-fledged Winforms apps that don't touch native code libraries via Interop, and are written entirely in .NET, and I'll happily jump for joy. But until I start seeing major apps written entirely in .NET and not in C++, I'm going to avoid it like the plague.Anonymous
November 02, 2004
The comment has been removedAnonymous
November 02, 2004
The comment has been removedAnonymous
November 02, 2004
BTW: that would be correct page layout as in layout on a printed page.Anonymous
November 02, 2004
The comment has been removedAnonymous
November 02, 2004
I agree - and that's what I'd do.
However, here's the problem.
The topic you're responding to is this one:
"So what application has Microsoft written totally in .NET that is worth a [expletive]?
Visual Studio - NO, Office - NO, Notepad - NO, Calc - NO.
Why haven't they? ....."
I've given one reason why major apps are NOT written exclusively in .NET - the necessary typographic stuff just isn't exposed through managed code; you have to dig down into win32.
Surely the correct solution is to fix this?Anonymous
November 02, 2004
The comment has been removedAnonymous
November 02, 2004
Hi Simon,
I agree with you that to have a large client application running fully on the .NET Framework is probably more difficult then it needs to be. For one thing, if the .NET Framework isn't installed on the machine, your setup exe needs to be unmanaged to bootstrap the installer. That said there are plenty of applications use both the Framework and Win32. As you say, the correct solution is to make a much larger portion of Win32 available as managed libraries, and that's the goal of Longhorn and WinFx.Anonymous
November 02, 2004
Hey James,
It seems like all of your points and the points of others are about using the .NET Framework for client Microsoft applications.
In any case, I'll see if someone from the Windows Forms team can respond to the specific list you raised. To your point about what type of UI is possible, Joe Stegman recently did some videos for channel9 where he showed what type of UI was possible using Windows Forms 2.0. The samples are also now up on the Web as well....
http://channel9.msdn.com/ShowPost.aspx?PostID=21706#21706
http://channel9.msdn.com/ShowPost.aspx?PostID=21657Anonymous
November 02, 2004
What about Movie Maker the team that Eric Gunnerson went to? It's suppose to be C#.Anonymous
November 02, 2004
I can tell exactly what part of Visual Studio uses .Net:
Right click on your project in the Solutions pane, and click "Properties." Wait 3-5 seconds and the properties dialog pops up. How do I know this uses .Net? Because it took 3-5 seconds to load. On the same machine, MSVC 6 shows the properties dialog nearly instantly.
So why not make your users wait an extra 3-5 seconds, and switch to .Net today!Anonymous
November 02, 2004
James and Simon - you're both complaining that no real applications are written in .NET?
Does an OLAP tool (web reporting and data analysis - as marketing would have me say) count as a real application?
Checkout our application via my blog entry: http://dotnetjunkies.com/WebLog/mlevison/archive/2004/10/18/28961.aspxAnonymous
November 02, 2004
Pretty reasonable - but remember, there are large classes of apps that are excluded right now from being implemented in .NET.
The bigger issue I have is that I've not seen more apps released by MS written exclusively in .NET and not in a melange of C++ and C#.
That's not what I call dogfooding the framework.Anonymous
November 02, 2004
The comment has been removedAnonymous
November 03, 2004
The comment has been removedAnonymous
November 03, 2004
To refute your point, they're not all browser based. About half are. For one example case study on a smart client application we're doing in-house, you can read about how we implemented Headtrax at: http://www.microsoft.com/resources/casestudies/CaseStudy.asp?CaseStudyID=12055.
There a lot of great client applications using the .NET Framework, from TabletPC to Visual Studio .NET to Outlook Business Contact Manager to external applications like KeyHole, SharpReader, iPodSoft, OnFolio, and lots of our customer applications too - http://www.windowsforms.net/Default.aspx?tabindex=9&tabid=48.
I'm not bashing Web applications, but to imply that .NET is only for Web applications is a stretch. Whether you're talking about background application services, or classic desktop applications, or to extending Office, or creating applications for devices, the .NET Framework is better then anything available.
What would you use for developing client applications instead of the .NET Framework?
Thanks,
-DanAnonymous
November 03, 2004
Dot Net seems to be something nice to me the way it is designed etc. But it does not seem to be big enough of an improvement over what we currently have in order to switch. For most real life applications at this moment of time dot NET is a draw back. Some software simply cannot be written using dot NET. I personally do not see any advantage of using it. Nevertheless dot NET seems to be taking off somehow, as some developers use it (or forced to use by their "bright" managers) and some "smart" users now ask "Is your software dot NET ?" It reminds me the way it was when Windows OS first appeared. No serious developer in his right mind would suggest back then to develop for that new Windows platform, as it did not bring anything but bugs. Yet end users liked the GUI, and so it went ahead with a lot of pain. Finally we are all here with a reasonably well implemented Windows. Now what ? Start all over again ? Rush in and use something you do not need just because it is there ...Anonymous
November 06, 2004
The comment has been removedAnonymous
November 07, 2004
oh, of course and then there is Closing... which is virtually useless because it doesn't tell you WHY it's closing thus you can't use it for anything usefull because if you were to actually cancel something here you would cancel OS restarts and shutdowns etc. That's a really bad thing.... of course VB6 has this nicely handled with QueryUnload but we don't get that functionality either and it still isn't there in Vs.net 2005 as far as I can tell....
More proof that MS doesn't eat it's own garbage in the case of .NET winforms.Anonymous
November 09, 2004
How do I find out if I have .Net framework installed on my win Xp pro SP2 machine?Anonymous
November 09, 2004
One way to tell is to see if you have the following directory:
C:WINDOWSMicrosoft.NETFramework. Under the Framework directory, you will see folders for each version of the .NET Framework you have.
- v1.0.3705 is .NET Framerwork 1.0
- v1.1.4322 is .NET Framework 1.1
- v2.0.40607 is .NET Framework 2.0 Beta 1Anonymous
November 12, 2004
It's interesting that no non-developer client applications are on the list. Might this be because .NET languages are too easily decompilable? It would make the internals very visible to anyone wanting to look. Almost like open source :)
JulianAnonymous
November 13, 2004
Outlook's Business Contact Manager would count as a non-developer client application. That being said, you can pretty much decompile any technology, whether that's C++, Java, or .NET code.Anonymous
November 17, 2004
Julian,
Does our "Analysis and Web Reporting" tool count as end-user? (I mentioned in a previous comment).
http://dotnetjunkies.com/WebLog/mlevison/archive/2004/10/18/28961.aspxAnonymous
November 17, 2004
"invest heavily" link is brokenAnonymous
November 17, 2004
The Lookout Outlook plugin is .NET I thinkAnonymous
November 17, 2004
Thanks Dave, I updated the broken linkAnonymous
March 21, 2005
The comment has been removedAnonymous
June 20, 2005
The comment has been removedAnonymous
June 04, 2006
The comment has been removedAnonymous
June 19, 2006
I just love how MS tries to defend their VERY incomplete product and help files with yet more useless non-reality examples. Has anyone at Microsoft ever tried writting anything outside the realm of "Hello World" with the very limited data binding model and ADO.NET? And don't even get me started on the WinForm controls.Anonymous
June 19, 2006
Hi Shane,
Have you looked at the patterns available in the Enterprise Library - http://msdn.microsoft.com/library/?url=/library/en-us/dnpag2/html/EntLib2.asp?
What is an example of a complete product that you are comparing Visual Studio too? In other words, rather than talk in generalizations, what specifically would you have us fix?
Thanks,
-DanAnonymous
June 20, 2006
One thing you could fix that I have seen other agonizing over, as well as myself, is the DataView.RowFilter size limitation. I have not seen this documented by MS. I built a class that dynamicly builds the RowFilter string. My DataTable contained tens of thousands of rows. I isolated the crash to the application of the Rowfilter. It seems the rowfilter has a size limitation, though string data type does not. I used several techniques to limit the number of values( in this particualr query there were several thousand and the column name ..."column = value AND" + "column = value AND" etc) including IN clause. This will eventually still break as my table grows. Why is there a limitation on the RowFilter size? I can't imagine someone doing this on accident.Anonymous
June 27, 2006
Hey Shane,
Good find :)
With the help of some folks, I tracked down Mark Ashton (blog at http://blogs.msdn.com/markashton/ ) who owns this feature. It turns out this isn't documented anywhere and it's not a limitation on the string type, but rather that you can only perform a certain number of binary operations in a filter string and this number isn't set as it's dependent on the stack depth.
One possible workaround Mark suggested would be to manually filter the data and copy the result to a separate DataTable and add a new DataView on that table without a filter.
Mark said he would add a blog post discussing this issue in detail soon as well.
Thanks,
-DanAnonymous
July 12, 2006
I have a stand alone pc Win XP Home Edition, SP2. Home use only. I am only user. I use it as my amenuensis, catch-all, secretary, appointment clerk, documents, etc., etc. as well as other odds and ends. I also use MONEY for my finances. Do I absolutely need .net framework?Anonymous
July 28, 2006
Katherine,
No, you don't "absolutely need" the .NET Framework, although you may eventually want to use an application that requires it, like say you upgrade to Windows Tablet PC or Windows Media Center, or other applications, like an RSS Reader that requires the .NET Framework.
Hope this helps,
-DanAnonymous
August 28, 2006
Hello,
Well,Live.com also developed in asp.netAnonymous
June 01, 2007
Site - very comprehensive and meticulous from all sides, its good! Just excellent website, I sure! http://caverta1.blogcu.com/ Caverta OnlineAnonymous
June 02, 2007
I wanted to thank you for the time you spent building this page. I will visit your website again. Thank youAnonymous
June 28, 2007
Produse Microsoft dezvoltate pe .NET FrameworkAnonymous
July 08, 2007
Is this depate really going till this moment, come on guys, do you expect that MS will throw away all the code they have written since 85 just to prove a point!. that .NET works. well i guess with the release of WCF/WPF/WF the debate is entierly deferent. KalAnonymous
September 27, 2007
Two of my ISVs were asking about Microsoft applications which use the .NET Framework. When I had a quickAnonymous
September 27, 2007
PingBack from http://www.artofbam.com/wordpress/?p=3371Anonymous
September 27, 2007
You've been kicked (a good thing) - Trackback from DotNetKicks.comAnonymous
October 12, 2007
How do I find out if I have .Net framework installed on my win Xp pro SP2 machine?Anonymous
January 12, 2008
Outlook's Business Contact Manager would count as a non-developer client application. That being said, you can pretty much decompile any technology, whether that's C++, Java, or .NET code.Anonymous
January 06, 2009
PingBack from http://adrianroman.ro/2007/06/28/produse-microsoft-dezvoltate-pe-net-framework/Anonymous
October 24, 2009
I have been getting hacked by the maasad, cia ,fbi, and nsa, for years. I can tell u one thing, I always suspected that the .Net Framework, was key for hacking.Anonymous
May 12, 2010
Don't supposed there is an updated list of MS products that are primarily written in dotnet?