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."

13 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 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"
    2. 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
    3. 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.
    4. 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
    5. 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
  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!

  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.

  5. 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?

  6. 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.
  7. 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.