back to article Microsoft's high-risk Windows 8 .NET switch

Microsoft spooked .NET developers earlier this year by emphasising HTML and JavaScript as the programming platform for Windows 8. Any questions were met with the answer: "Wait until BUILD." Well, BUILD took place last week, so what is happening with .NET and Windows? You can frame the beginning of this story in various …

COMMENTS

This topic is closed for new posts.
  1. banjomike

    More Windows touchy friendly.

    Oh hell. The removal of basic tools in the name of making Windows "more friendly" is already a pain in the butt. I, personally, could do with a less friendly but more powerful and flexible version of Windows.

  2. Alan Bourke

    Insert 'anonymous' MS hating rhetoric ...

    below.

  3. Joel Mansford

    Are MS missing the point?

    I'm sure I'm not in a minority in developing BUSINESS applications for Windows. What is Metro going to do for me when I need to write something for Purchase Order generation? What about that complex DB front-end?

    Anything that I'd write for Metro I'd probably first develop as a browser-based application. If it's not suitable as a web app then I doubt Metro will cut it either.

    Am I wrong?

    1. Brian

      Are YOU missing the point? - Yes

      Your PO generation or complex data input program will stay in the desktop unless you can envision a touch friendly interface. However, there's no reason you couldn't create metro apps that are companion apps to support your business app. Do you have users/roles that log into the app to do simple tasks? Move the simple tasks to your metro companion app.

      However, I have seen examples of very complicated applications redesigned to run in Metro and do so very well. Some apps I've seen would have been a very complicated design in a traditional windows forms application, were actually very simple to use in a metro interface.

      1. Glyn 2

        hmm

        @Brian

        So you want some apps built for XP/7 and some for metro. If developing for both is going to be as seperated as it seems, then won't you have to build everything twice? What happens when a metro user is asked to help with work on a company's XP/7 system? They won't be used to the look or functionality so that's another impedence to productivity.

        1. Brian

          Not at all. There's still a desktop on Windows 8. I'm saying you can develop an app for the desktop if that's the right place for your app, then you can build companion apps that run in Metro (still part of windows 8) that compliment your desktop app.

          I'm done designing/building apps for XP. The desktop app I build for Windows 8 will be the same desktop app used in Windows 7. The windows 7 users just won't get the companion metro app.

          1. Glyn 2

            Hmm

            So, like I said, you'll be developing 2 sets of apps, one W8, one Metro

            "I'm done designing/building apps for XP. "

            You're not done yet as

            "The desktop app I build for Windows 8 will be the same desktop app used in Windows 7. "

            You're still building desktop apps and as W8 is just XP (and W95) with blurry edges around the windows ... :P

    2. Richard 12 Silver badge

      I think you're right

      As described, Metro appears to be effectively the same as running in a browser sandbox, just possibly a bit faster than Java.

      In fact, it doesn't half look like Google Native Client by another name.

      So I really doubt anyone will bother - better to simply develop for the browser if you can live inside those constraints, as then you're not limited to Windows 8 Metro, instead the majority of platforms can use your application.

      As to "DLL Hell" - I think this approach actually eliminates DLL hell by ensuring that you can't share compiled code between applications anymore. The only shared installed code in this model is inside OS libraries!

      To be fair, that does appear to be the primary approach is use these days anyway - Windows side-by-side actually works pretty well but almost everybody seems to install the DLLs inside the program folder anyway, removing any chance of sharing the installed code.

      This eats HDD space for breakfast of course, but I suppose that doesn't matter too much on the desktop. However, I think it will matter on a tablet form factor as you have to use flash for that - which is still very expensive, especially as Apple have eaten most of it.

    3. Anonymous Coward
      Anonymous Coward

      Re: Are MS missing the point?

      Yes. But, what's new?

      "Am I wrong?" -- No. I'd say you're certainly right.

      And as Eadon before me so eloquently put it: "if you're a .NET developer - hahahahahaha"

      Me, I think Metro weirdly reminds me of Unity too much (no, really). Although W8 boots amazingly fast and runs incredibly well on limited hardware.

      Don't worry. That won't last. Final release will almost certainly be a horrific bloatfest and leave everyone, users and developers alike, blundering about in shellshock wondering "what the hell just happened?".

  4. Anonymous Coward
    Anonymous Coward

    No real surprises

    You don't see much love in MS's own applications for managed code, either .NET or Silverlight. Many of their previous attempts to wrap native libraries with managed code have been dire (System.Drawing, the awful wrapping around the turd that is GDI+ springs to mind) and the second go round (WPF and XAML) was slightly cleverer but still left a hell of a lot to be desired. Some of the Silverlight stuff (eg, the 3d graphics routines) was utterly, inexcusably slow and memory-inefficient, as if it had been written by an intern or something.

    Third time lucky maybe? They'd better be... they've messed around their developers for far too long. I'm very glad I never took the trouble to use WPF for serious work; my concerns about its future were well founded and I've made much better use of my available brain space.

  5. Anonymous Coward
    Anonymous Coward

    Dual Personality !

    The last time MS tried that sort of stuff it was mixing W32 and 16 bit libraries into that awful OS called ME, this going to be painful.

  6. Mage Silver badge

    GDI is horrid, but at least unlike DirectX it's designed for Window Icon Mouse Pointer interface, DirectX is a huge monster of an Adhoc interface invented to make porting DOS Games easy.

    COM was stupid and it's offspring DCOM evil.

    Is there no-one left in MS that can do real OS design or is it dominated by Xbox, Zune and Win95 games folks?

    1. Ken Hagan Gold badge

      Re: COM was stupid and it's offspring DCOM evil.

      COM was system-level support for Aspect Oriented Programming. DCOM was an obvious application of the underlying idea, to support aspects concerned with "who" and "where" code was running. MTS was another obvious application, making it easy to write fully transacted code.

      It was a thing of beauty. You'd get security or ACID correctness enforced at the boundaries of your code simply by ticking the "yes, please" box in the registry for your code.

      Microsoft once said they'd open up the API still further, with interfaces to let you define your own aspects (contexts, in COM-speak) and somewhere in the Vista SDK there are interfaces that suggest they eventually did so. Sadly, by that time, their marketing department had moved back to something vastly inferior.

      And if COM also weeds out programmers who are too stupid to even count references or remember to register their code, then end-users are the better off for it.

    2. Bronek Kozicki

      no, all have been taken over by evil work of Visual Studio team and its chief architect Herb Sutter http://herbsutter.com/2011/09/19/my-two-build-talks-online/

      ... who just happens to be convener to C++ standard commitee, which only serves to prove that C++ is Evil Microsoft Invention , Lius was right to stick to plain old C and any attempt to patch over lack of ABI in C++ on Windows is PURE EVIL !

      1. Bronek Kozicki
        Unhappy

        hm somehow "Joke Alert" icon got missing from my previous post. Moderator?

        1. JudeKay (Written by Reg staff)

          Re:

          Our tech team has been working on a fix and icons should work now... we can't get those adorning comments from the last 24 hours back though...

  7. Neil Cooper

    Article does a great job of detailing more reasons to migrate to linux

    They clearly succeeded in turning Windows 8's internals into even more of a dog's dinner.

  8. Chris Gray 1

    Sounds interesting

    I'm a Linux/C/my-own-stuff programmer myself (never used Windows much, but have done a bit of work with it in the past). But, I find what MS is doing here quite interesting. For example, the concept of not allowing full file paths to be used from inside the code, instead requiring them to come from the user, is an interesting idea. However, I'm pretty old fashioned (I *like* strong static typing), so I don't know how well some of this will go over with the latest generation of wizz kids.

    1. Anonymous Coward
      Anonymous Coward

      Hmm...

      I tend to sympathise with MS regarding file paths - lots of lazy programmers hard coding paths which include, for example, system32, is the reason we end up with 64bit DLLs having to be put into system32 on 64 bint machines. It was either that or MS break hundreds of programs, they were very much between a rock and a hard place on that one.

  9. Pedro Mendosa

    What's the fascination with making a desktop OS touch-friendly?!

    Touchscreen interface is a compromise and a better alternative to pressing a button three times to get one letter.

    I'm happy with a full-size keyboard and mouse 95% of the time.

  10. Eric Teutsch

    Developers upbeat...

    Of course they were happy, they were all given a shiny new slate to play with. Who cares if the code will be easy, right now it's play time!!! Seriously, Windows 9 will have the missing bits added and will be awesome. And guess when Phone 8 comes out? At the same time Windows 8 is released! In lockstep from now on. And it will have WinRT as well, so that apps are portable.

  11. JDX Gold badge

    No big deal?

    So for touch-devices, you get a new way of doing things, locked down APIs and so on... surely nobody expected much else.

    And for 'regular' Windows things carry on as before... well there was not a whole lot that needed changing IMO.

    Serious developers can continue with .NET, App developers can do HTML5/JS, and we're all happy.

    Just stop thinking of W8 as one platform and view it as 2, linked ones, and what's the big deal?

    1. Ken Hagan Gold badge

      Re: W8 as one platform

      "Just stop thinking of W8 as one platform and view it as 2, linked ones, and what's the big deal?"

      That's certainly how it looks to me. Microsoft's next phone OS is called Metro and runs on ARM, but they've built a Metro-box into Windows, which runs on x86. Therefore, any apps written for Metro can also be run in the box if you flick the switch and compile them as x86 code.

      Now why couldn't MS have said that two weeks ago?

    2. VaalDonkie

      RE: No big deal

      Because then you can't copy and paste pre-rolled "I hate M$" arguments from www.billgatesisthedevil.org

  12. mikeyd

    As a C#/ASP.Net developer this all sounds like moves in the right direction to me.

    I'm too am not convinced by Metro for my apps but I suspect that it will be essential for tablets. Allowing a choice seems reasonable to me.

    Having the apis described by metadata is good as well - I very much doubt it will be possible to have an out of sync metadata file (strong naming??) so DLL hell will be much less likely.

    It should also be a lot easier to call "COM" APIs from C# since you don't need to write so much of the interop code.

  13. Anonymous Coward
    Anonymous Coward

    I don't see the problem here..

    Note: I'm now solely trying to approach this from a developer pov; /not/ that of an end user or sysadmin. Within the last contexts I think the whole Metro environment stinks.

    Seriously; this news is not as bad as being portrayed IMO. First the fears that .NET might be replaced turned out to be fictional, as anyone thinking about it could have assumed (maybe even predicted). Instead of replacing .NET they added to the basic functionality and extended upon it with their HTML5 adoption in Metro. Now you can't only use .NET but HTML5 as well.

    Second; wasn't this a little bit foreseeable? I mean; only last week did MS announce that they'd be dropping plugin support for their Metro styled browser. Which on its own would automatically imply to be an increase of risk. But if you set something like that up within an environment which is restricted on its own then the risk factor will significantly drop again as well.

    Its no secret that MS has some massive catching up to do when it comes to OS security. They've come a long way, sure, but there is still a lot of work.

    And the whole "contract approach" also seems to address another issue; with the current RPC model its not possible to apply access control (separation on a per-application basis). Yet with such a contract model I could imagine that a client would need to setup a contract session with a server after which the server will determine if the client gets access to the required services.

    That could benefit their new server environment as well. So I don't see the problem here to be honest.

  14. Henry Wertz 1 Gold badge

    I'm amused...

    That Microsoft is again (with .NET) going from some Microsoft technology of the week being "the wave of the future" to now being "some thing we might support for a while longer." I'm just going to say now: "I told you so", so when a bunch of people spend the time and effort to learn WinRT, or Metro, or whatever they decide to call it, and Microsoft scraps it in a few years for the *next* new thing.. well.. "I told you so."

    1. Mr Cheddarfingers

      Yes, that's great Henry. You keep telling them so, in the meantime those developers who are agile enough to move between technologies will keep earning the big bucks.

      It doesn't really matter what you told anyone so, the fact is whether an intentional tactic or not, it works for Microsoft, it works for talented and flexible developers, and it works for companies exploiting these technologies whilst they're hot. You told them so yes, but they don't care, but it doesn't hurt them or anyone, it benefits them, if you haven't clued onto that then I feel sorry for you. Times change, sucks that you're living in the past and still probably think C++ is the right tool for every job or whatever, but that's okay you sit there with your lack of career progression using obsolete technology because that's okay, I mean, you told them so.

  15. Stephen Channell

    ...and the next step... open source .NET

    Microsoft has already open-sourced F#, and whilst C# is an excellent language, it has not dislodged Java for Enterprise Applications because it was tied to Windows and Mono has failed to keep up.

    The .NET story for MS is now about promoting Azure, and the best way to do that is to open-source the client and runtime.

    1. Mark 65

      "Microsoft has already open-sourced F#, and whilst C# is an excellent language, it has not dislodged Java for Enterprise Applications because it was tied to Windows and Mono has failed to keep up."

      Not in the enterprises I've worked in - anything developed in-house on the desktop was .Net. Period. It's also moving into a lot of the server-side code previously the sole domain of Java principally, I would guess, because you're already employing C# on the desktop so why not just get some server guys too? Server OSes from MS have improved and it certainly doesn't hurt that Visual Studio is an excellent IDE even if it does come from MS.

      It may not have dislodged it in that Java is still heavily used but the split seems pretty even in terms of employment prospects at present (Jobserve UK/Europe search). Be interesting to see what difference this announcement and Oracle's continued arsehole behaviour makes.

    2. Mr Cheddarfingers

      "Microsoft has already open-sourced F#, and whilst C# is an excellent language, it has not dislodged Java for Enterprise Applications because it was tied to Windows and Mono has failed to keep up."

      This is wrong. You only have to look at any job site, or speak to any IT recruitment agency nowadays to see that companies want .NET developers way over and above anything else and that Java roles are becoming few and far between such that they're no more prominent than even PHP roles nowadays. Java has been dislodged without a doubt, and Oracle's meandering and failure to get Lambdas into 7 mean it's going to struggle to take it's crown back.

      You know, it's not that I dislike Java or any such thing, it was my preferred development environment for business apps up until very recently. But it's just become so lacklustre that there's just no point doing new development in it, so all that's left are legacy apps. I'd like to see Java improve and become a strong competitor to keep Microsoft on their toes but it's just not doing that anymore.

      1. Armando 123

        Not here

        Seriously? I live in one of the few Midwest cities that's been doing okay during the recent economic blahs, and I am getting people constantly calling me for Oracle, Java, PHP, RoR, Perl, etc. I'm getting calls from national recruiters. Hell, I even get questions about Objective C, which I haven't programmed in years. The .NET and C# guys I know and network with are looking over their shoulders and asking me to pass anything on to them; apparently more than a little enterprise work is moving from their technologies.

        And this is in traditional, older companies in a somewhat conservative city in the Midwest. Anecdote <> global truth, but it's something that's caught my attention.

  16. dogged

    I'm looking forward to it

    Face it, there's going to be PLENTY of upgrade/refit work out there. Which suits me just fine.

    1. VaalDonkie

      indeed

      See, that's the enterprising spirit.

  17. Anonymous Coward
    Anonymous Coward

    Wow - how much further detached from reality can this article get.

    If you want to write a metro app (in any language) then you have to hit the WinRT; if you are not doing a Metro app then you don't have to hit WinRT, you can do whaever you want as you would do now in Win7.

    I think some here have confused what the metadata is and when/how it is created. Developers will only have metadata created form them if they are creating a WinRT library for others to consume.

  18. JDX Gold badge

    @Henry

    Apparently it's called progress. Same as how we generally don't use ASM much these days and even most penguin-fanciers have coped with upgrading to C++ from C!

    1. Anonymous Coward
      Anonymous Coward

      "nd even most penguin-fanciers have coped with upgrading to C++ from C!"

      What utter, utter fucking balls.

      1. Ken Hagan Gold badge

        Re: utter balls

        Because they haven't coped?

        Because they haven't upgraded?

        Because "upgrade" isn't the correct word?

        1. Anonymous Coward
          Anonymous Coward

          @ Ken

          No I think he's saying you have some serious balls for standing up to grey bearded obsolete C++ FOSS zealots, because they're the biggest trolls on the internet and if you dare to suggest that sometimes, just sometimes, developers need to update their skills, then you can expect these grey bearded trolls to come storming at you with their oh so fearsome downvote button.

          I bet you're shitting bricks, but at least the other AC thinks you have balls.

  19. Anonymous Coward
    Anonymous Coward

    View from the inside

    ... was just as scary as from the outside. I joined the WPF team when it looked like it was the Next Big Thing ... Learned that "products" that don't have paying customers behave according to their own rules, which are more often based on the VPs angling for relevance/continued employment than on the needs of users or even differentiation between competing products.

    Silverlight was a horrible little parasite in DevDiv's colon, built on 3 things: copying other group's work (badly), bragging about how much quicker it could generate output, and stealing resources. Watching it's style spread to other MS groups depresses me.

  20. json

    .NET architecture is not suitable for online apps..

    ..and they know it.. that's why they're considering Javascript for the presentation.. however, if they do so that will be a big blow for their stack of developer tools and consulting and all the revenues it entails.

    For today's connected world, separating the presentation (javascript and associated tech e.g. JSON, XML etc) provides an excellent, multiple device, cross-platform and much more secure deployment platform. With .NET or .COM you have to rely exclusively on MS tech. Unfortunately there's still a lot of FUD about open source technologies in the corporate world the savings with FOSS are real not imaginary.

    1. Mr Cheddarfingers

      @ json

      Sorry, when you say .NET, are you talking about Silverlight?

      Are you aware that you need something on the serverside and that .NET, especially with ASP.NET MVC is actually a very good choice here?

      .NET is fine for online apps, if you're saying bespoke browser plugin based solutions like Silverlight and Flash are shit then yes I agree with you however, but Silverlight is not .NET, it's just a technology that utilised .NET.

      FWIW in separating concerns the biggest problem there is HTML5, which fails epicly at this. Microsoft for it's part is one of the better vendors out there are ensuring you have good tools to separate things like persistance, web services, business logic, and server and client front end stuff. A decent alternative is Java with libraries like Spring, other technologies like PHP and Ruby are pretty hopeless in these respects though - that's precisely why Microsoft does so well in the enterprise, even for web apps because for all their faults, they know what developers need to follow good practice software development, even if they're not so great at doing it themselves, just like the Java world understands this. The PHP world is still dominated by kids who really don't get even simple things like MVC and has yet to grow up, some projects make an effort to fix this like Zend, but others like CakePHP and Symfony create their own bastardised versions of MVC instead amongst other thnigs because they just don't know how to get it right.

      Yeah .NET has it's faults, but it's still one of the best choices for doing really good quality online application development right now alongside Java. Silverlight, like Flash, and like Java applets though, is indeed shit.

      1. Anonymous Coward
        Anonymous Coward

        and writing and consuming web services is such a piece of piss in .Net

  21. clean_state

    makes sense

    It makes sense for MS to code the core framework in native code. You do not want the native stuff to have a 2x performance penalty because it runs on a managed VM. You can use this framework in .NET and you have good performance too. I think it is a good choice.

  22. pip25

    I am probably not fair..

    ...but for Metro it looks to me like Microsoft threw its own existing frameworks out the window, created some heavily limited Frankenstein out of them, and now expects their tablet-only environment to be successful.

    I was not sure that using Silverlight for Windows Phone 7 was a great idea, but this is just sad. And if they succeed regardless, that will be even more sad. Apparently Microsoft needs a Vista-styled wakeup-call every two OS versions. :/

    1. Frank 2

      'tablet-only environment'

      FYI - Windows8 can run in 2 modes: 'Metro' and traditional desktop.

  23. David Cantrell

    Wow. I recognised almost all the words but have no idea at all what that article was about. I sure hope that Microsoft's documentation does a better job of explaining their platform than this article does.

  24. Anonymous Coward
    Anonymous Coward

    Confusion reigns (for a while!)

    I'm confused, if the future is html 5, when are the standards going to be agreed? How much will they change in the next couple of years and what will that mean for applications developed now?

  25. IGnatius T Foobar

    Compatibility fail.

    All this pollyanna wankfesting about Metro is nice, but it glosses over an important point: if you write a Metro app it will not run on Windows 7 or Vista or XP or any version of Windows other than 8. Are any ISV's going to release software *only* for 8? I don't think so.

    By the way, if you haven't seen the preview of 8 yet -- despite Microsoft's posturing about the traditional desktop being relegated, all they *really* did was to replace the Start menu with Windows Phone. That's really all it is. When you click Start, the whole screen turns into a Windows Phone. If you select a non-Phone application it switches back to the desktop.

    One might argue that Linux and Apple could counter this by simply replacing their Start menus with fully functional Android and iOS environments.

  26. oroboros

    No, the new "programming model" isn't COM, or anything similar. Actually it is called WinRT and it's basically a replacement for Win32. The thing is it's for Metro, the phone and tablet UI (which, for whatever reason, you will be able use on your PC as well). It's not replacing the Windows desktop and is not meant to. And programming apps to run in the Metro UI using WinRT is not the end of .NET. Hell, even Win32 isn't going away. So don't you all get your hopes up. Metro isn't replacing the desktop, and nor could it for the foreseeable future (what? Don't think being able to fondle your PC will increase your productivity?)

  27. Tchou
    Pint

    Win32

    forever.

This topic is closed for new posts.

Other stories you might like