Partager via


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

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,
    -Dan

  • Anonymous
    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 removed

  • Anonymous
    November 02, 2004
    The comment has been removed

  • Anonymous
    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 removed

  • Anonymous
    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 removed

  • Anonymous
    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=21657

  • Anonymous
    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.aspx

  • Anonymous
    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 removed

  • Anonymous
    November 03, 2004
    The comment has been removed

  • Anonymous
    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,
    -Dan

  • Anonymous
    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 removed

  • Anonymous
    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 1

  • Anonymous
    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 :)

    Julian

  • Anonymous
    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.aspx

  • Anonymous
    November 17, 2004
    "invest heavily" link is broken

  • Anonymous
    November 17, 2004
    The Lookout Outlook plugin is .NET I think

  • Anonymous
    November 17, 2004
    Thanks Dave, I updated the broken link

  • Anonymous
    March 21, 2005
    The comment has been removed

  • Anonymous
    June 20, 2005
    The comment has been removed

  • Anonymous
    June 04, 2006
    The comment has been removed

  • Anonymous
    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,
    -Dan

  • Anonymous
    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,
    -Dan

  • Anonymous
    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,
    -Dan

  • Anonymous
    August 28, 2006
    Hello,

    Well,Live.com also developed in asp.net

  • Anonymous
    June 01, 2007
    Site - very comprehensive and meticulous from all sides, its good! Just excellent website, I sure! http://caverta1.blogcu.com/ Caverta Online

  • Anonymous
    June 02, 2007
    I wanted to thank you for the time you spent building this page. I will visit your website again. Thank you

  • Anonymous
    June 28, 2007
    Produse Microsoft dezvoltate pe .NET Framework

  • Anonymous
    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. Kal

  • Anonymous
    September 27, 2007
    Two of my ISVs were asking about Microsoft applications which use the .NET Framework. When I had a quick

  • Anonymous
    September 27, 2007
    PingBack from http://www.artofbam.com/wordpress/?p=3371

  • Anonymous
    September 27, 2007
    You've been kicked (a good thing) - Trackback from DotNetKicks.com

  • Anonymous
    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?