Slashdot Mirror


.NET Programmers In Demand, Despite MS Moves To Metro

mikejuk writes "Are you a newbie programmer looking for a job? It seems your best bet is to opt for .NET. According to technical jobs website Dice.com, companies in the U.S. have posted more than 10,000 positions requesting .NET experience — a 25 percent increase compared to last year's .NET job count. So Microsoft may want us to move on to Metro but the rest of the world seems to want to stay with .NET."

52 of 319 comments (clear)

  1. Confused by sourcerror · · Score: 5, Insightful

    Isn't Metro just a different GUI library on top of .Net?

    1. Re:Confused by recoiledsnake · · Score: 2

      This is Slashdot, which seems to invent it's own alternate reality when it comes to Microsoft. The headlines and summary spread misinformation, then those are repeated in the comments ad nauseam by the commenters who only get news from Slashdot.

      --
      This space for rent.
    2. Re:Confused by tech4 · · Score: 2

      Exactly. Metro is just GUI. In fact, you can use .NET languages to develop for it. Even the article doesn't talk anything about Metro. wtf submitter?

    3. Re:Confused by SerpentMage · · Score: 4, Informative

      Here is Miguel on the topic and I think he does a great job of explaining it...

      http://tirania.org/blog/archive/2011/Sep-15.html

      --

      "You can't make a race horse of a pig"
      "No," said Samuel, "but you can make very fast pig"
    4. Re:Confused by SpryGuy · · Score: 4, Insightful

      That is factually untrue.

      "Microsoft demoed creating new WinRT components on both C++ and .NET."

      http://tirania.org/blog/archive/2011/Sep-15.html

      --

      - Spryguy
      There are three kinds of people in this world: those that can count and those that can't
    5. Re:Confused by derGoldstein · · Score: 4, Interesting

      It's this type of attitude that separates programmers into idiotic "camps". I'm not talking about MS behaving weirdly and making nonsensical decisions -- that's a given. I mean making it sound like C# is oceans apart from modern C++. When you're programming in C++ and STL (along with some Boost, as required), most programs are going to be almost identical in structure. I know this because I've had to port code back and forth from C# to ANSI C++, and apart from some specific, easy-to-isolate areas (like interfacing with the GUI), the structure of the programs remains the same. You should be separating the code that talks with the GUI no matter what language you use, unless your program is heavily intertwined with the GUI (like graphics programs or visualizers).

      You should be comfortable using both languages. If you're coming from C# to C++, then check out Accelerated C++, and (some time later) follow that up with this advice.

      This isn't like moving from C# to C, it's much closer. Also, you should aim to be a Programmer, rather than a (C++ || Java || C# || Python) Programmer. It'll make your life easier and make you better at your job.

      --
      Entomologically speaking, the spider is not a bug, it's a feature.
    6. Re:Confused by derGoldstein · · Score: 2, Informative

      See also:
      Here's the one Microsoft Windows 8 slide that everyone wants to redo

      Anyway you look at it, C# isn't going anywhere.

      --
      Entomologically speaking, the spider is not a bug, it's a feature.
    7. Re:Confused by Tacvek · · Score: 2

      Managed C++ has long been deprecated in favor of C++/CLI.

      C++/CLI is C++ plus a set of extensions to allow intermixing C++ and managed objects. The code is by default compiled to a mixture of managed code and native code. It is by far the easiest way to interface managed and native code, since you do not need to use COM, nor do you need to use p/invoke. (Of course if you don't know C++/CLI it may be easier to use one of those other methods).

      There is also the option to generate pure managed code which then uses automatically generated p/invoke calls, and marshaling of managed equivalent structures. The code remains unverifiable, since it uses techniques like raw pointers. The resulting assembly is very unlikely to work on other architecures, due to differences in mangling, alignment, or word sizes.

      You also have the option of attempting to generate "safe" verifiable MSIL (managed code), This puts substantial restrictions on the code, but allows the code to be called by other code running under partial trust. This code is potentially portable, but my not be if calls are made to native code.

      --
      Stylish sheet to fix many problems in Slashdot's D3: https://gist.github.com/801524
    8. Re:Confused by derGoldstein · · Score: 2

      I disagree with much of what he said, but this point is actually easy to corroborate:
      See -- C++ Renaissance at Microsoft, Craig Symonds and Mohsen Agsen: C++ Renaissance, and What does the latest "C++ Renaissance" mean?

      This doesn't mean they're abandoning C#, however.

      --
      Entomologically speaking, the spider is not a bug, it's a feature.
    9. Re:Confused by Tacvek · · Score: 5, Informative

      I as understand it WinRT replaces COM.

      WinRT consists of several parts.
      The first such part is a replacement for COM, heavilly inspired by managed code. Indeed the restrictions on the exported interface are explicitly designed such that objects remain easy to call from managed code. It also lifts some idiotic restrictions that COM had. The interfaces are now described using CLI metadata in the form of a WinRT file. Despite being heavily inspired b y managed code, this is still all native code, and does not require a garbage collector.

      The second part of WinRT is a set of APIs that replace many Win32 Apis, exported using this new COM replacement. These APIs are also inspired by managed code, especially the naming and namespacing conventions. The APIs are not particularly low level, but are actually rather similar to many of the APIs in the .Net Framework. For example, consider the 'Windows.Data.Json' namespace. That hardly seems low level. Or how about 'Windows.Data.Xml.Dom' which is very roughly a ported version of the .NET 'System.Xml' namespace?

      When writing .NET metro style apps in C#, the Full .Net framework is actually available, although only a portion of it is exposed by default, because the app store will reject Metro-style apps that use APIs not exposed by default, because those APIs can be used to escape the Metro Sandbox. (This is much like how metro-style C++ code could call any win32 API, even those not exposed by default, but that will cause the application to be rejected from the app store).

      --
      Stylish sheet to fix many problems in Slashdot's D3: https://gist.github.com/801524
    10. Re:Confused by cheekyjohnson · · Score: 2

      Wait... so if he said, "1 + 1 = 2," the fact that part of his comment is allegedly made up would make that untrue?

      --
      Filthy, filthy copyrapists!
    11. Re:Confused by PhrostyMcByte · · Score: 3, Interesting

      WinRT doesn't replace .NET or the Win32 API, nor is it a second-class citizen when used from C#.

      Metro apps are intended to be small—about the size of a cell phone app. They aren't made to replace full desktop apps meant to get work done. The .NET APIs you get for Metro apps have been scrubbed, getting rid of "insecure" APIs as well as ones that WinRT made redundant. A lot of the .NET API you've become used to is still available, though.

      It uses COM behind the scenes, but there's no hint of COM in the API -- in fact, people in the Mono project have already begun work on a purely managed WinRT implementation. It definitely doesn't feel like a second-class citizen while using it. I'll be curious to see how much overhead it introduces.

      WinRT in C++ is a little weird. There are two ways to use it: WinRTL, which is written in standard C++ but has all the verbosity of COM, or C++/CX, some extensions to C++ that make using it a breeze if you don't care about portability. It doesn't replace the Win32 API either. They encourage you to use WinRT when possible, but the entire Win32 API is still available. It's not clear if they'll be filtering the APIs you're allowed to use during the review process.

      The biggest problem with Metro apps is that you can't just distribute an exe—all distribution needs to go through the Windows app store, complete with $100/year fees and review process. I'm sure a hack will come out, but this might make life a bit more difficult for many hobby developers trying to reach the common user.

    12. Re:Confused by Coolhand2120 · · Score: 3

      Please read the comments as well as the mia copa at the top of the link you provided.

      http://blog.expensify.com/2011/03/25/ceo-friday-why-we-dont-hire-net-programmers/

      That you think .NET devs are script kiddies speaks volumes about you. I'm curious - what IDE do you think .NET developers should be using? The only thing that VS does for a .NET dev is run the command line for CLI when they click 'build'. Learning how to use CLI to compile from the command line takes 5 minutes to figure out, so there's that hurdle. What other "magic" is VS doing that makes .NET devs so stupid/lazy? Refactoring? Intelesence? Just because you're too ignorant to understand what an IDE is and what the .NET framework is doesn't mean can (without looking like a fool) go around and bash .NET. That you think that .NET devs are script kiddies makes me think that you don't know what .NET is or what a script kiddie is. I'll give you a hint: Script kiddies don't know how to write code - that's what makes them a script kidde.

      But really, I think you've made your little story up there. Please give me the scenario where you would "take a .NET developer out of Visual Studio". Because it sounds a too me like you're fibbing.

    13. Re:Confused by colinrichardday · · Score: 2

      Curmudgeon99 never said that Microsoft was moving away from .NET; he said that developing in .NET doesn't lead to a deeper awareness of programming.

    14. Re:Confused by BitZtream · · Score: 5, Informative

      Sigh ... please tell me you don't tell people you know the .NET framework.

      What makes WinRT a royal pain is that it is low level C++ API. Thus C# becomes a second rate citizen and C++ a first rate citizen and it uses COM technologies.

      The Windowing and other GUI apis have ALWAYS been low level C (not C++) APIs, and likely always will be. Windows.Forms was built on top of that. I'm not real sure how you can say that C# is a second class citizen or a first class citizen, it is neither and both. .NET Libraries care not what language they are being used by, sure the API may not feel as natural in one language over the other, but thats not anything new and will always be there.

      Its rather retarded to think that any API other than the one at the lowest level is going to be the one that is most natural. Its all implemented in C at the low level, regardless of what lazy language you throw on top of it.

      Never thought that would happen in that COM is brought back to life.

      Then you have absolutely no idea how the .NET framework is built. .NET Assemblies are extensions to ActiveX, which are ... extensions to COM objects ... which are extensions of OLE2 objects. In fact, every .NET framework assembly is a OLE2 object, as is every ActiveX and COM object, each one just a different set of interface requirements on top of the previous.

      It is what it is and personally I think WinRT will fail overall because it means you are completely beholden to the Windows platform!

      You mean like Windows.Forms is beholden to the Windows platform? So I guess you're saying it would be absolutely impossible for someone to write a clean implementation of it or a wrapper around Qt or GTK to do the same? Thats odd, why do you seem to think what can be done for the Windows.Forms namespace can't be done again, why do you think thats the case?

      I'm fairly certain you have absolutely no idea how the .NET framework works. You have heard of Mono haven't you?

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    15. Re:Confused by gbjbaanb · · Score: 2

      no, but a majority are what we used to call 'VB devs', only now they have curly brackets, woot!

      Try to develop some C# code outside VS and you'll see it is a very verbose language, you have to do a lot of stuff that used to be a single line or two of C++ - I don't mean access the APIs, but it seems to me that everything you do requires a new object being created. Try writing the code in notepad and you won't like it.

      Now a lot of people say 'but I never will write C# in notepad so its a moot point' not really, it shows how dependant on the environment you are, how much you rely on the IDE to write code for you. I know some people who can't write C# code without resharper being installed!

      So its not the language that gives you productivity, but the IDE. I wish they'd sent all that effort on making the IDE write C++ code for you instead and not bothering with C# at all.

    16. Re:Confused by shutdown+-p+now · · Score: 2

      Isn't Metro just a different GUI library on top of .Net?

      No.

      Metro is not a GUI library. It's not a library at all. It's a term to describe a new kind of apps, specific to Win8, that are fullscreen, run in a very tight sandbox, and have different life cycle that allows the OS to unload them. Basically, tablet-enabled apps for Windows.

      WinRT (Windows Runtime) is the library (and a bit more than that; the term is overloaded). It's not just a GUI library, mind you. It also has file I/O, and sockets, and HTTP, and lots of other stuff. It's most similar to .NET or Java standard class library.

      WinRT is not on top of .NET. The implementation itself is pure native code. It it "projected" into .NET, so that WinRT classes and interfaces look like CLR classes and interfaces. This is done on runtime/bytecode level, not on language level, so any .NET language can target WinRT.

      Not all Metro apps have to use WinRT. In particular, HTML/JS apps don't use it for GUI, and they may not need to use it for anything else if capabilities provided by HTML5 modules (canvas, IndexedDB etc) are sufficient. If they do want/need to use it, it is projected into JavaScript (sans UI parts, since HTML5 is supposed to be used for that with JS).

    17. Re:Confused by shutdown+-p+now · · Score: 2

      "Renaissance" in this case means "no longer a second-class citizen". It doesn't mean "fuck everything else".

      All proof you need is the fact that everything you can do in a Metro app in C++, you can do in C# or VB.

    18. Re:Confused by shutdown+-p+now · · Score: 3, Informative

      The Windowing and other GUI apis have ALWAYS been low level C (not C++) APIs, and likely always will be.

      The whole point of WinRT is to change that, actually. It's no longer low-level C. It's an object-oriented API from ground up using a framework that's deliberately designed to be consumable from different languages (GC or no GC, static or dynamic typed... there are a lot of considerations there).

      Then you have absolutely no idea how the .NET framework is built. .NET Assemblies are extensions to ActiveX, which are ... extensions to COM objects ... which are extensions of OLE2 objects. In fact, every .NET framework assembly is a OLE2 object, as is every ActiveX and COM object, each one just a different set of interface requirements on top of the previous.

      You are absolutely wrong here. .NET assemblies are not extensions to ActiveX. It doesn't even make sense, because an "ActiveX object" is a COM component with a visual UI. Nor are they COM objects. You can take a .NET class and make it visible to COM as a COM object, but it has to be explicitly done, limits what you can do with such a class, and is implemented via a separate bridge (COM Interop).

      Heck, .NET classes don't implement IUnknown (the most basic requirement for a COM object).

    19. Re:Confused by Eskarel · · Score: 3, Informative

      Except that's not what they're doing, they're un-deprecating C++, not deprecating C#.

      Microsoft seems finally to have come to the conclusion that anyone with a lick of sense could have told them a decade ago. Some things work really well in managed code, some things don't. A large part of Microsoft's product suite has been migrated to .NET, but for reasons anyone with half a brain could tell you, not everything should be written that way. At the absolute least, you need to write enough code to run .NET(or any managed code) in an non managed language because unlike C++, managed code cannot run itself. In addition to that sort of stuff there's plenty of things which could be written in .NET, but for which doing so wouldn't make any real sense.

      At present there are certain things in the Windows OS which are a huge pain to do in C++ since Microsoft has essentially replaced MFC with .NET, so you end up mixing in C# code where it really doesn't make any sense. Microsoft are rectifying this and allowing C++ to be an equal player, they're not getting rid of .NET, they are continuing to build their own software in .NET(where it makes sense), they're just allowing C++ programmers to play too.

    20. Re:Confused by TheCycoONE · · Score: 2

      He could be referring to the .designer classes that are made when you use the form designer tools, or some of the convenient templates. I would argue back that typing tons of tedious repetitive code doesn't make you a better programmer - QT Designer and Eclipse provide the same shortcuts for the same reasons.

    21. Re:Confused by spongman · · Score: 3, Informative

      AFAIK, it's not a replacement of COM, as such. more like a set of enhancements to COM:

      - it's still based on IUnknown
      - instead of CoCreateInstance, HKCR & CLSIDs, theres RoActivateInstance and its string-based registry entries.
      - instead of VB's IDispatch/ITypeInfo, there's IInspectable/IMetaDataImport2 for getting type information
      - instead of BSTR, there's the immutable HSTRING

      the confusing this is that there's a whole bunch of work done in the language environments (C++ compiler, .NET runtime) to make all this invisible.

  2. What a stupid headline by ilsaloving · · Score: 5, Insightful

    Of *course* .NET programmers are demand 'despite the move to metro'. Windows 8 isn't going to be release for at least a year, and Windows shops need software built *now*.

    I mean, c'mon... that's not even wrong!

    1. Re:What a stupid headline by curmudgeon99 · · Score: 2

      The economy is coming back--that's why. If .NET jobs plunged 75% two years ago and rose 25% this year, that does not suddenly signal a .NET renaissance. If you knew a 20-something getting into programming--would you steer them into .NET? No fucking way. You'd make them learn Java, PHP and Ruby. Java is on fire right now, for example.

  3. Metro isnt a replacement for .NET by Anonymous Coward · · Score: 5, Informative

    Metro is merely a new style of app interface that can be written using .NET, not a replacement for it.

  4. Quite crappy headline by giuseppemag · · Score: 5, Informative

    Metro is a UI on top of Windows 8.

    WinRT is the new Windows 8 runtime, which will be accessible by C++, C# and any .Net language. The .Net standard libraries will be available for Windows 8 Desktop applications but not for Metro applications, which will be written targeting WinRT.

    So, the summary is wrong because:
    a) Metro is not a development framework
    b) .Net-related skills remain central in Windows 8 even when targeting Metro

    --
    My book: Friendly F#, fun with game development and XNA; my game: Galaxy Wars by VSTeam; my gamedev language: Casanova.
    1. Re:Quite crappy headline by westlake · · Score: 5, Informative

      WinRT is the new Windows 8 runtime, which will be accessible by C++, C# and any .Net language.

      WinRT demystified [Miguel de Icaza]

      WinRT is a new set of APIs that have the following properties:

      It implements the new Metro look.
      Has a simple UI programming model for Windows developers (You do not need to learn Win32, what an HDC, WndProc or LPARAM is).
      It exposes the WPF/Silverlight XAML UI model to developers.
      The APIs are all designed to be asynchronous.
      It is a sandboxed API, designed for creating self-contained, AppStore-ready applications. You wont get everything you want to create for example Backup Software or Hard Disk Partitioning software.
      WinRT wraps both the new UI system as well as old Win32 APIs and it happens that this implementation is based on top of COM.

      Some developers are confused as to whether .NET is there or not in the first place, as not all of the .NET APIs are present (File I/O, Sockets), many were moved and others were introduced to integrate with WinRT.

      When you use C# and VB, you are using the full .NET framework. But they have chosen to expose a smaller subset of the API to developers to push the new vision for Windows 8.

      And this new vision includes safety/sandboxed systems and asynchronous programming. This is why you do not get direct file system access or socket access and why synchronous APIs that you were used to consuming are not exposed.

      Now, you notice that I said "exposed" and not "gone".

      What they did was that they only exposed to the compiler a set of APIs when you target the Metro profile.

      You might be thinking that you can use some trick (referencing the GAC library instead of the compiler reference or using reflection to get to private APIs, or P/Invoking into Win32). But all of those uses will be caught by AppStore review application and you wont be able to publish your app through Microsoft's store.

      You can still do whatever ugly hack you please on your system. It just wont be possible to publish that through the AppStore.

    2. Re:Quite crappy headline by ljw1004 · · Score: 3, Informative

      That's not quite right.

      The .NET standard libraries exist in several profiles -- "Core", "Client", "Full".

      People today write their libraries under the "Core" profile so that they work equally well on any platform -- Silverlight, desktop, phone. Core contains the common standard libraries -- e.g. things like StringBuilder, LINQ, generic collections, and the other day-to-day programming side. "Client Profile" also contains UI stuff, and "Full Profile" also contains server stuff.

      For Metro, you will use APIs from both .NET Core Profile and from WinRT. WinRT will provide things like local storage APIs and UI. Core Profile will provide all the other stuff.

      NB. I'm on the C#/VB language design team at Microsoft.

    3. Re:Quite crappy headline by ljw1004 · · Score: 3, Informative

      The .NET standard libraries WILL be accessible from Metro applications. You'll write your C#/VB metro applications targeting both WinRT APIs and standard .NET APIs at the same time. I suspect that very nearly all C#/VB metro apps will be using many .NET APIs.

      (you had said that the .NET standard libraries wouldn't be available for Metro apps).

      For example:

      IAsyncInfo ai = MessageBox.ShowAsync("hello world"); // using a WinRT API
      Task t = ai.StartAsTask(); // here we're bridging from WinRT to .NET
      await Task.WhenAll(t, Task.Delay(100)); // here we're using standard .NET APIs

      (disclaimer: I work for Microsoft on the VB/C# language team)

    4. Re:Quite crappy headline by DocHoncho · · Score: 2

      Nothing can prevent that, short of a complete reworking of the theoretical framework upon which computing is based. As long as there is direct access to memory somewhere (in this case the JVM/CLR) there will be zero-day exploits based on buffer overflows and other such vectors. The only thing APIs like WinRT and .Net buy you is the knowledge that the application code your running isn't going to directly cause any of the classical buffer overrun vulnerabilities.

      It's still completely possible that under some specific circumstance the .Net string class might be used to leverage a bug in the underlying implementation, causing an exploit of one kind or another. You're just shifting the trust from "random application developer" to "Microsoft engineers responsible for implementing the various functionality of .Net or WinRT"

      --
      Celebrity worship is a poor substitute for Deity worship and costs more to boot.
  5. who will want metro with it's lock down? by Joe_Dragon · · Score: 2

    The windows 8 only is a big trun off.

    And the Must be in app store is a other killer as well. No way adobe will give MS 30% the cost of the CS pack just to have a Metro Photoshop.

  6. Also by Sycraft-fu · · Score: 2

    Windows 8 isn't out yet! Right now it is just a developer preview. That means it isn't even in beta yet, it is still effectively alpha, meaning feature incomplete. They just want people to be able to start learning the new development environment that will be coming. It has a long way to go before it is out on the desktop (a year or more). Of course even once it is out, it has a longer way to widespread adoption. It'll be several years before lots of desktops feature Metro.

    So why in the hell would businesses be looking for Metro programmers now even if it was a new programming method (which you correctly point out it is not)? They aren't going to suddenly switch all their development to a product that hasn't been released.

  7. Well duh by TheSpoom · · Score: 3, Interesting

    Nobody ever got fired for recommending IB^H^HMicrosoft.

    --
    It's better to vote for what you want and not get it than to vote for what you don't want and get it.
    - E. Debs
  8. Re:And just because it gets released... by Sycraft-fu · · Score: 2

    Actually the majority, or rather plurality at this point, do use 7 now. It has overtaken XP. It is enough (when combined with Vista which quite a few people do use) that some games are now coming out that require DirectX 10, which is Vista and 7 only.

    But yes, the adoption of Windows 8 will be slow. Even if it is an amazing OS, people will upgrade slowly just because that's how people do things. Some don't like change, others see no reason to spend money if what they have now works. Still others just don't do OS upgrades, a new OS comes with a new computer. Businesses need time to test things and get ready for new deployments.

    It'll be several years before 8 (or its successors) form a majority of OSes used.

  9. That's ridiculous by David+Gerard · · Score: 2

    .NET obsolete? Next you'll be claiming Microsoft has abandoned Silverlight!

    --
    http://rocknerd.co.uk
  10. Slashdot needs competent editors, not user surveys by pdxChris · · Score: 4, Insightful

    Slashdot just did a survey, that asked whether readers would recommend Slashdot to others. Here is a perfect example of why I answered No to that question, and would have picked Hell No if that option had been in the survey. An increase in job postings for .Net is newsworthy on a "news for nerds" site. Totally ignorant, misinformed, clueless, stupid, arrogant and worthless editorializing, in the article and the headline, is not at all news for nerds, nor is it stuff that matters. Not only is the commentary about Metro completely wrong, so is the "home for newbies" slant. The linked article clearly indicates that more than 70% of resume searches in .Net are for developers with at least four years of experience. Obviously it's impossible to have four years experience with Metro, but it is entirely possible to have been using .Net for a decade now. The article has no mention at all of Metro. The article also mentioned an utterly ignorant, untrue, trite fear of .Net developers: that their skills do not carry over to other platforms. I guess this means a lot of fearful .Net developer who have never heard of Java? Where does Slashdot get the editors to approve this kind of junk?

  11. Re:If it aint broke don't fix it by Voyager529 · · Score: 2

    Microsoft has collected data that shows people are using the start menu less and less.

    Microsoft is misunderstanding this data point. Just because people are using it less doesn't statistically say that it's less useful to them. It simply means that between the start menu, the quick launch/taskbar, and the desktop (barring people like me who use Stardock Objectdock, Launchy, or other third party add-ons), the start menu is the least used. However, it doesn't indicate how useful it is to them once it is opened. Also, Microsoft's stat gathering habits are opt-in, which usually precludes power users and corporate installations.

    The best car analogy I could come up with is this: I live in New York, which means that we get decent amounts of snow each winter. if Volvo were to take usage statistics of my car in the summer and indicate that that the traction control was only enabled 30 trips out of the 1,000 or so trips I make with that car in a year, it doesn't indicate that traction control isn't valuable. I remember at least twice when the traction control saved me from an accident, so by any REAL metric it's incredibly useful, despite being a statistical anomaly.

  12. Re:People stay with what they know by curmudgeon99 · · Score: 2

    Microsoft has already lost the tablet market. And .NET is already a dying platform. Microsoft itself does not eat its own dog food. None of Microsoft's own products are written in .NET. Neither Windows nor Office were ever written in .NET. If Dice shows a 25% increase in .NET ads, that's because the economy is coming back and it does not imply some incremental improvement for .NET.

  13. Re:.NET Metro by Tacvek · · Score: 2

    The full .Net framework is technically available. By default only a subset of is exposed to Metro-style apps because Metro is sandboxed, and the excluded APIs could potentially be used to subvert the sandbox. It is not difficult to use the full .Net API from Metro-style apps, but if you do that, your app will be summarily rejected from the Windows app store for using unauthorized APIs.

    --
    Stylish sheet to fix many problems in Slashdot's D3: https://gist.github.com/801524
  14. Re:If it aint broke don't fix it by curmudgeon99 · · Score: 2

    Bullshit. The Java world is so huge and is much more than just the language. Java is surrounded by a sea of open-source technologies such as Spring and Hibernate and all the other things you need to know to succeed. Also, if all you have on your resume is C pound, nobody is going to consider you for a Java job.

  15. Re:Microsoft Does Not Eat Its own Dog Food by PPH · · Score: 4, Insightful

    The demand for .NET programmers is to fill the vacancies created by the previous group having seen the light and fled.

    Dice.com posts ads for positions that companies are having trouble filling.

    --
    Have gnu, will travel.
  16. Metro or .NET, why use any? by loufoque · · Score: 3, Insightful

    Why in your right mind would be using any of these?

    1. Re:Metro or .NET, why use any? by Alkonaut · · Score: 3, Informative
      1) If you write a windows (only) desktop app, I recommend c# over c++ for most scenarios (some high perf. things such as games excluded). The productivity is much higher.

      2) Windows phone apps. You definitely need .NET here.

      3) Streaming video apps for desktop. Html5 can't do it, and Silverlights video streaming beats flash every day of the week. Neither is excellent, and SL has terrible linux support. But still, SL is the least bad one.

    2. Re:Metro or .NET, why use any? by gman003 · · Score: 2

      Because your boss says to.

    3. Re:Metro or .NET, why use any? by pdxChris · · Score: 2

      Development on Metro will allow apps to be sold in Microsoft's upcoming app store. Whether you personally like or respect it, there will be many millions of computer users on Windows 8 who will buy apps this way. .Net spans a huge range of computer languages, tools, and API's from both Microsoft and third parties. Many of the languages, tools and API's are free and open source. There is a ten year history of updates and compatibility that let developers trust Microsoft's ongoing commitment to .Net. .Net can be used to make several types of software, including command line utilities, Web sites, Web services, GUI apps, in-database logic, etc. When used properly, .Net facilitates dividing a large software project into modules that can be separately developed, maintained, and upgraded by multiple teams. The teams can coordinate and re-use each others' work, even if they use different programming languages.

      The runtime prevents or intercepts many types of programming mistakes, while automatically adapting the software to run on different types of hardware. There are many options for caching, optimization and debugging, so that a .Net software infrastructure can be deployed in many different types of environments through configuration rather than by throwing away code.

      A huge number of developers are available, along with consultants, books, training materials and so forth. The majority of all of these advantages are also available to open source developers, through the Mono project's re-implementation of .Net as free and open source. Developers with adequate skills to work on modules are easy to find, and less expensive than developers for some other types of software development.

      You might prefer other approaches, but it's clear that for many shops, one can consider or even adopt .Net and still be in one's right mind.

  17. Re:People stay with what they know by micheas · · Score: 3, Insightful

    Either that or there is a mass defection of programmers from dot net to other platforms that are viewed as having more of a future.

    There are a lot of possible reasons for the influx of ads for a skilled position. Some of them indicating a healthy platform, some of them not.

  18. Re:People stay with what they know by ghjm · · Score: 3, Insightful

    Look, isn't it obvious that .NET is simply transitioning from early mainstream to late mainstream? You can only conceivably call it a "dying" platform if your perspective is 100% early adopter, which is 100% not the perspective of business customers.

  19. Mod Parent Down by bondsbw · · Score: 4, Informative

    This isn't insightful. It's plain wrong. As someone who attended the Build conference and spoke directly with several Microsoft program managers, I can attest that Metro/WinRT is not a replacement for .NET. I asked several times something like "But can I do Q in the sandbox?" and they would say "No, in that case use regular .NET to do Q and distribute your apps through traditional channels (or link to the installer in the app store)." I never got the impression that Metro was always the preferred approach, just the preferred approach for slate devices.

    I don't know what Microsoft wants to do in the future past Windows 8. Maybe you're right, and Microsoft wants to give up their stronghold on enterprise applications that have certain hardware or interoperability requirements not allowed by Metro, so that they get control over tablet apps. But I'm not betting the bank on that.

    --
    All my liberal friends think I'm a conservative, all my conservative friends think I'm a liberal.
  20. Re:People stay with what they know by Corson · · Score: 2

    "Neither Windows nor Office were ever written in .NET" -- Yes, because the Windows, Development Tools, and Office teams are separate entities and none of them wants to restart from scratch. But new applications for Windows are another story. You can developn C++, C#, and very soon in... Javascript. :)

  21. Re:People stay with what they know by GigaplexNZ · · Score: 3, Informative

    None of Microsoft's own products are written in .NET.

    Visual Studio is.

  22. Re:People stay with what they know by shutdown+-p+now · · Score: 3, Informative

    None of Microsoft's own products are written in .NET.

    Most Microsoft development tools are written partially or wholly in .NET (guess what I do for a living...).

    FWIW, Windows itself has bits and pieces written in .NET as well. Nothing major, but it's there.

  23. Re:People stay with what they know by Kaenneth · · Score: 3, Informative

    Sharepoint, Visual Studio, Expression suite, the Tablet API, the Surface platform, Silverlight, many of the Windows 'Live' applications, and the XNA game framework are all written with .NET