Slashdot Mirror


A .Net 2.0 Migration Strategy?

An anonymous reader asks: "I work for a large organization where we use .Net 1.1 as our sole development language. We have many frameworks, applications and web sites that are developed in .Net 1.1, and these developments are by no means trivial since they are the result of an IT department of over 300 people and 2 years of development. It is my responsibility to develop a strategy to move to .Net 2.0, this includes the existing applications, new developments, integration, QA, live and development environments. Does any one have any experience in this (preferably at this scale) and can any one recommend any reading material that would help?"

164 comments

  1. reason? by Anonymous Coward · · Score: 0

    Is there a reason to migrate to .Net 2.0? Or is this a decision that was just made "because"?

    1. Re:reason? by lateralus_1024 · · Score: 1

      Visual Studio 2005 Team System (C#2.0) ASP.Net 2.0. The System.Security namespace. C#'s partial classes. Anonymous Methods. Generic Types. Garbage Collection bug fixes (allegedly).

      --
      If you think /. comments are bad, check out Digg.
    2. Re:reason? by octopus72 · · Score: 1

      So they even abandoned bugfixing of 1.1?

      "Nice" approach from Microsoft. If you want a bug fixed, upgrade to new upstream version.

    3. Re:reason? by SirTicksAlot · · Score: 1

      This is standard procedure for them. It's been that way for years.

      There ARE no bugfixes. That doesn't make them any money.

    4. Re:reason? by orderb13 · · Score: 1

      How does the team system software work? I'm suppossed to evaluate it, but if it sucks I don't want to waste my very limited time (we're currently using 2005 professional).

  2. nope... by Anonymous Coward · · Score: 0

    No experience with this yet, brave adventurer... let us know how you get along! Specifically, let us know if you make mistakes that get you fired.

  3. Test test test by Xtravar · · Score: 4, Insightful

    At work we're currently in the midst of migrating our app to .net 2.0. As trivial as it should have been, a *lot* went wrong - a lot of functionality is different, and it's not even documented. It may compile, and it may run, but not for long.

    All I can say is... 1. get it compiling, 2. get it (apparently) working with some shallow QAing, and 3. pass it off to QAers, because they know what to test better than you do. Only after should you even consider utilizing features of .net 2.0 and enhancing the product.

    --
    Buckle your ROFL belt, we're in for some LOLs.
    1. Re:Test test test by Duhavid · · Score: 1

      Excellent plan.

      I would add holding off until more bleeding edge types
      have figured out where the really sharp edges are.

      --
      emt 377 emt 4
    2. Re:Test test test by ednopantz · · Score: 1

      >>- a lot of functionality is different, and it's not even documented. It may compile, and it may run, but not for long.

      Specifics? we made the switch and found that the only real problems were some VS nonsense*, but overall, nothing broke completely, just a bunch of warnings about depreciated stuff. As far as failing down the road... you found it would compile and run for a while then stop? What did that? Because we just haven't seen anything like that.

      *The changes to web projects and VB.NET projects made us expand our running list of "people at Microsoft who need to get kicked in the 'nads." I suspect we may need to wait in line for the guys who eliminated the web project file.

    3. Re:Test test test by Xtravar · · Score: 1

      Little subtle things. Different windowing behavior, functions throwing exceptions on conditions they never used to...

      This was for PocketPC. I had to add some .BringToFront hacks to make the app work like it used to. Also, I had to remove some .Prepare statements for SqlServerCe commands when they were of a specific type, otherwise they threw exceptions. Granted, this could have been prevented if the original app were programmed correctly, but it wasn't and I had no control over that.

      --
      Buckle your ROFL belt, we're in for some LOLs.
  4. It shouldn't be bad by Anonymous Coward · · Score: 1, Interesting

    I recently migrated a 250k LOC web app with no code changes, and a few dozen smaller tools as well. Had to change two lines of code in one of those tools.

    The hardest part will be dependencies. If you have anything that won't (or can't) migrate to 2.0 then things get tougher. One of our tools was external, and it loads in external DLLs. It can't load a 2.0 DLL, so our DLL couldn't upgrade to 2.0, but our DLL consumed a shared DLL... that got messy. We worked around it (for the moment) by switching it to use a private version of the 1.1 shared DLL until we can get a 2.0 version from the external tool vendor.

  5. I know this is trollish, but switch to Java by Anonymous Coward · · Score: 1, Insightful

    Seriously. If you were a Java shop, you wouldn't have to worry about crap like this.

    Microsoft has suckered your company into embracing a system designed to go obsolete so that they can sell you a replacement every few years. The time and resources spent converting to Java (and come on, C# and Java are very similar) would be saved in the long run by never having to deal with these silly MS upgrades ever again.

    1. Re:I know this is trollish, but switch to Java by GigsVT · · Score: 0, Offtopic

      You'll just instead have to deal with silly Sun upgrades when they break things every few releases. I've never seen a Java app that didn't say "use this particular version of the JVM or all hell will break loose".

      --
      I've had enough abrasive sigs. Kittens are cute and fuzzy.
    2. Re:I know this is trollish, but switch to Java by Anonymous Coward · · Score: 0

      You must be using some really poorly programmed Java applications then. One of the major complaints in the Java community is that Sun barely ever breaks compatibility which often leads to less than optimal solutions in terms of performance (ie. Generics). Give examples of some of the Java applications that you've had this problem with. I would bet they're closed source "enterprise level" applications written by a bunch of idiots that couldn't write decent code to save their lives.

      Even if I agreed with your claim, which I don't, I don't see why making people run a somewhat recent version of Java or .NET for some applications is a bad thing. It's not like new versions of Java or .NET are out every month, new versions come out once a year or less. In terms of any other software, running a recent version is practically a must for security reasons alone. Furthermore, in almost every case imaginable new versions of Java/.NET can run all of the older code flawlessly.

    3. Re:I know this is trollish, but switch to Java by RetroGeek · · Score: 1

      The time and resources spent converting to Java

      You can use these tools to help you convert.

      --

      - - - - - - - - - - -
      I am a programmer. I am paid to produce syntax not grammar. Deal with it.
    4. Re:I know this is trollish, but switch to Java by Anonymous Coward · · Score: 0

      One of the major complaints in the Java community is that Sun barely ever breaks compatibility which often leads to less than optimal solutions in terms of performance (ie. Generics).

      Bwahaha... you mean when Sun came up with a brain damaged design for generics so as not to break compatibility... and then went and broke compatiblity anyway. Yeah, sure, Java is the bizness!

    5. Re:I know this is trollish, but switch to Java by Anonymous Coward · · Score: 0

      *EVERYTHING* Sun comes up with is brain damaged. Hardly surprising of them!

    6. Re:I know this is trollish, but switch to Java by BobPaul · · Score: 1

      You'll just instead have to deal with silly Sun upgrades when they break things every few releases. I've never seen a Java app that didn't say "use this particular version of the JVM or all hell will break loose".

      Funny. Usually I've seen "Use this version of JAVA or NEWER or all hell will break loose."

      Current Java is 1.5. All versions that are 1.X are backward compatible. JAVA 1.5 can run anything written for 1.x up until 1.5. If a program is later writter for Java 1.6, it probably won't run an a 1.5 JVM. I've never had problems running apps provided I'm using the newest JVM, even if the apps I'm using were written for and compiled on a much older JDK.

      My problem is that .Net is a framework, while JAVA is a language. Grandparent just assumed the poster was using C#. With .Net they could be using J# (kinda java) or a number of other languages. I'm not endorsing anything, just saying it's kinda apples and oranges.

    7. Re:I know this is trollish, but switch to Java by joshsnow · · Score: 1

      My problem is that .Net is a framework, while JAVA is a language

      If .NET is a framework, then Java definitely is a framework too. The only difference being that .NET has several different language syntaxes which use it's frameworks, whereas Java has only one (although there are bindings for other languages).

      In fact, I'd argue that Java is a collection of frameworks - as is .NET

      I think the point about java, is that when things like the Collections framework change, the old stuff is deprecated, meaning it's still available, but is marked for deletion at some future point, whereas the move from .NET 1 to 2 seems not to deprecate stuff. Or am I being too simplistic?

    8. Re:I know this is trollish, but switch to Java by Anonymous Coward · · Score: 0

      funny, i just met with a company yesterday that can't move to the latest Java framwork because of issues between the two. It does not work 100% in Java. .NET can easily coexist on the server and if your app has trouble with the 2.0 framwork use .net binding redirection to specifically set the 1.1 or 1.0 framework.

      You do not HAVE to move to 2.0. Only move to 2.0 if you need to take advantage of new .NET features. What you can do is setup a machine with just .NET 2.0 installed and test if the application built on 1.1 or 1.0 will run correctly in 2.0. If it does this will continue to buy time for a better migration plan.

      Honestly in most cases just open the app in vs2005 rebuild and you are done for a 2.0 migration.

    9. Re:I know this is trollish, but switch to Java by cerelib · · Score: 1

      Java was an experience in bad naming. The Java name was given to the framework, language, and security model. Really anybody could write a language to target the JVM, but Sun did not target that style as much as Microsoft did with .Net by targeting C++, C#, JavaScript(JScript), J#, and of course VB.

    10. Re:I know this is trollish, but switch to Java by Dolda2000 · · Score: 1
      Funny. Usually I've seen "Use this version of JAVA or NEWER or all hell will break loose."
      That probably the GP's point. You only ever see "use this version or newer", never "use this particular version". Sometimes, programmers have to rely on newer features introduced in a later version, but programs written for older versions won't fail, even on newer JVMs. That means that you might have to upgrade your JVM every once in a while, but you won't have to port any applications you have to the new JVM. They'll go on working just as they always did.
    11. Re:I know this is trollish, but switch to Java by GigsVT · · Score: 1

      That's just not true though. Let me find some Java apps off the top of my head.

      Azureus:
      Note: Using an old Java version or having more than one installed may cause severe problems like 100% CPU usage!
      The latest official Java is version 1.5 Update 6.

      That sure sounds like telling you to use a specific version to me.

      jasperreports:
      JRE 1.3 or higher

      OK that's one point for you.

      GanttProject:
      The absolute prerequisite is a correctly installed Java 1.4.x or 1.5.x.

      Yep, no dictating specific versions there.

      --
      I've had enough abrasive sigs. Kittens are cute and fuzzy.
    12. Re:I know this is trollish, but switch to Java by Slime-dogg · · Score: 1

      Nice troll, but is completely useless in regards to the problem presented. The issue isn't which platform to use, the issue is the ease of migrating. I don't think that switching from .NET 1.1 to Java would be far more time consuming, and a bigger waste of resources, than going to .NET 2.0.

      --
      You need to restart your computer. Hold down the Power button for several seconds or press the Restart button.
    13. Re:I know this is trollish, but switch to Java by Slime-dogg · · Score: 1

      Eh. I meant to say I don't think the .NET->Java migration would be any easier, and would in fact be a bigger waste of time. Yeah.

      >.>

      --
      You need to restart your computer. Hold down the Power button for several seconds or press the Restart button.
    14. Re:I know this is trollish, but switch to Java by Dolda2000 · · Score: 1
      Azureus: Note: Using an old Java version or having more than one installed may cause severe problems like 100% CPU usage! The latest official Java is version 1.5 Update 6. That sure sounds like telling you to use a specific version to me.
      Really? To me, it seems that they're saying to use a specified version or later. They aren't saying to use 1.5-6, but just not to use one that isn't too old, such as 1.5-6.
      The absolute prerequisite is a correctly installed Java 1.4.x or 1.5.x. Yep, no dictating specific versions there.
      I can't really tell if you're being sarcastic or not, but since 1.5.x is the latest version, that's the same as saying "1.4 or later".
    15. Re:I know this is trollish, but switch to Java by BillAtHRST · · Score: 1

      Can you say "deprecated"?

    16. Re:I know this is trollish, but switch to Java by BobPaul · · Score: 1

      Azureus:
      Note: Using an old Java version or having more than one installed may cause severe problems like 100% CPU usage!
      The latest official Java is version 1.5 Update 6.

      That sure sounds like telling you to use a specific version to me.

      jasperreports:
      JRE 1.3 or higher


      That's not sun updating something and breaking it, that's Azurues devs taking advantage of features in the newer java that don't exist in older java. When you try to use things that don't exist, strange things happen (like 100% CPU). You can install Java 1.5 Update 6 and run both Azureus and jasperreports, though. You'll never find an app that says "Use JRE 1.3 ONLY." This is the case with .Net.

      If you install .Net 2.0 and you CANNOT run apps that require the .Net 1.1 runtime. Sure, MS lets you install both simultaneously, but that is NOT backwards compatibility, that's just 2 runtimes simultaneous.

    17. Re:I know this is trollish, but switch to Java by aybiss · · Score: 0

      I don't know how your post got modded insightful, but then this *is* a site for Linux and Sun fanboys.

      dotNET's technology far outstrips Java's in so many respects, and yes, it goes obsolete, much as what we still have for Java should have a long time ago.

      As far as migration goes, there were some problems for those of us that jumped on the bandwagon too soon, such as there not being a properly compatible DirectX SDK. These have been sorted since, obviously - this is Micro$oft we're talking about. :-)

      The main problems that I found came up were errors in the code that are trapped by better debugging - they've gotten stricter on cross-thread accesses for instance, because the general public now have multi-CPU machines.

      Where is that in Java? (Not counting hacky open-source add-ons.) And if you're *really* worried, recommend that your company keep using .NET1.1 because its still supported technology.

      As someone who has worked in depth with both technologies, and seeing the migration of .NET to other platforms through Mono, I would not recommend anyone invest serious amounts of time in Java code that can be done with half as much typing in C#.

      I don't like everything in .NET2.0, but in the same way I can't go back to Java from .NET1.1 ("Primitives aren't objects? Hh yeah, this is Java... Damn!"), I won't go back from .NET2.0.

      Aaron.

      --
      It's OK Bender, there's no such thing as 2.
    18. Re:I know this is trollish, but switch to Java by kaffiene · · Score: 1

      Slashdot is a place for Sun fanboys? You've never come here before, have you?

    19. Re:I know this is trollish, but switch to Java by aybiss · · Score: 0

      I try not to come here too often, it's bad for the soul. But are you telling me that if Sun had released Java 3 and it was .NET2.0 the product would have a longer lifespan? And that Slashdot wouldn't hail it as the new God of code?

      The lifespan of a programming language is limited by the moment that something truly better (not just more bells and whistles) comes along, which was I guess my original point.

      --
      It's OK Bender, there's no such thing as 2.
    20. Re:I know this is trollish, but switch to Java by Decaff · · Score: 1

      My problem is that .Net is a framework, while JAVA is a language. Grandparent just assumed the poster was using C#. With .Net they could be using J# (kinda java) or a number of other languages. I'm not endorsing anything, just saying it's kinda apples and oranges.

      Not really. The comparison should not be between .Net and Java, but between .Net and the JVM. There are a vast number of different languages that run on the JVM - far more than for .NET. These include Groovy, BeanShell, python (Jython), ruby (JRuby), Basic, LISP, Scheme, Cobol, Pascal, Modula, TCL, Fortran, Smalltalk....

    21. Re:I know this is trollish, but switch to Java by rp · · Score: 1

      Well, compatibility between Java 1.4 and 1.5 (which is essentially the same step) is a lot better, but I've read that not all Java 1.4 apps run correctly on 1.5.

    22. Re:I know this is trollish, but switch to Java by Anonymous Coward · · Score: 0

      Uhm...wtf are you smoking? We run our ASP.NET apps compiled against 1.1 on a 2.0-only machine without problems. We serve about 20,000 users daily, so I'm pretty sure that previous versions work okay on newer installs.

      For more details check out the book ".Net Framework Design Guidelines". In there they talk about a lot of the pain they caused themselved with some bad decisions and the inability to fix them due to backwards compatibility requirements.

      They admit their mistakes and *do* fix the framework and mark the old stuff as deprecated, so anyone that thinks you have to run frameworks side-by-side is smoking something.

    23. Re:I know this is trollish, but switch to Java by BobPaul · · Score: 1

      They admit their mistakes and *do* fix the framework and mark the old stuff as deprecated, so anyone that thinks you have to run frameworks side-by-side is smoking something.

      I guess that leads to the questions "Why are both 1.1 and 2.0 in Windows update as installable options? Why doesn't the installation of 2.0 trump the installation of 1.1? (Why does it let me install both?) And why have I seen applications that require 1.1 installed, and not 2.0?" For example, BizTalk server 2004does not run with the .Net 2.0.

      I've never seen a Java app that says "This will work on Java 1.3 BUT NOT NEWER." He a microsoft KB says this is the case with BizTalk Server 2004, and the ability to install both VMs side by side shows that they expect it to be the case with other software as well.

      I guess you got lucky with your Apps in that they only did things in 1.1 that can still be done exactly the same way in 2.0. Good for you.

  6. My opinion by eosp · · Score: 0

    1.1 and 2.2 are almost the same and are compatible for most normal uses.. It shouldn't be too hard to move over.

  7. Prototype first by figleaf · · Score: 1

    Get a couple of crackshot dev to compile your apps.
    Test the apps in a test bed envoirnment.
    Your 90% of your stragegies will come out off the problems you encounter in your test-bed.

    Second don't try to do too many things at once. For example, it would be tempting to move to 64-bit with 2.0

    MSDN and TechEd videos are good resources for code migation issues. Some resources you can checkout are
    Migrating ASP.Net
    Microsoft .NET Pet Shop 4

  8. since we are talking about .net by josepha48 · · Score: 1
    I'd like some info on a .net migration from VB 6.0.

    Some background on this. Our VB 6.0 is not object oriented at all, and it was originally VB 3.0 that was ported to VB 6.0. The forms have code in them.

    I'd like to know if migrating from VB 3.0/6.0 to .net would be a total rewrite or what. I have analyzed some of the code and I know the biggest issue I see is the Variant types, but not sure what else, and if it is possible. This is a really large project.

    On another note, if anyone knows of a way to migrate Vax Basic to C that would be great too.

    --

    Only 'flamers' flame!
    Does slashdot hate my posts?

    1. Re:since we are talking about .net by Unoti · · Score: 1

      It's pretty much a total rewrite. The old VB code isn't really object-oriented, and the new code will (should!) be. The new environment and development tools are vastly superior to VB 6, though. Totally worth the effort if your developers are reasonably good OO designers. If they're not, then VB6 is a good place to stay until they are.

    2. Re:since we are talking about .net by Anonymous Coward · · Score: 0

      I'm nearing the end of a project that fits your description exactly. It's been a nightmare, especially since the original product contain a few 3rd party controls as well.

      First, go through the vb 6 code and get rid of the variants at all costs. They'll be converted to objects and you don't want that.

      Second, eliminate all control arrays. The conversion will kludge something that works, but they're harder to get rid of after the conversion than before.

      Finally, go over all of your data access code and get it all up to at least ADO. It'll convert more cleanly.

      Oh, and strip out any 3rd party controls if at all possible, or convert them to the latest version you can get your hands on.

    3. Re:since we are talking about .net by CastrTroy · · Score: 1

      Well, as far as using variant types, you can still use Object, and that will get you about the same functionality as the variant. A lot depends on whether or not this is a web application. If it's not you're lucky, because a lot of your code will probably be able to function. If it's a Web app, then you got lots of problems, because of the whole code-behind page fiasco. Also, you can use a lot of old VB code in the New VB.Net, to ease the transition, but plan on getting rid of it. You can still used recordsets and stuff, but it doesn't multithread as well so if you're running a web app, you'll want to get rid of this code asap. The one question I have to ask is, why are you using variant types? Even QBasic had variable types, why would anybody choose to use non-typed variables in a language that actually has typed variables. Sure in PHP there's no type declarations, and hence the language is properly designed to work with no-typed variables, but where did programmers get the idea that they should use non-typed variables in a typed language? /end rant

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    4. Re:since we are talking about .net by Anonymous Coward · · Score: 0

      The only time I think you can justify use of variants in vb6, is when you have a function/proc that needs to return an array. I don't think this is possible without declaring the function to return a variant.

    5. Re:since we are talking about .net by josepha48 · · Score: 1
      Thanks, I didn't write the code. I'm stuck with it. Many of these coders don't know what the hell they are doing when they write code, so they wrote lots of bad code.

      Alot of the code uses Me which I heard is a nono in .net also. I ran a code checker and it found lots of problems.

      I guess we need to pull it into .net and see what blows.

      --

      Only 'flamers' flame!
      Does slashdot hate my posts?

    6. Re:since we are talking about .net by orderb13 · · Score: 1

      Me. works fine in .Net (even the 2.0 framework). If you can't remember what all your controls are called it is the best way to make intellisense give them to you.

  9. Migration by panic911 · · Score: 5, Informative

    I do have experience migrating several smaller .net 1.1 apps to 2.0, but nothing even close to this scale. I will give you as much information from my experiences as possible, and hopefully it'll be of some use to you.

    The WinForms upgrade wizard worked pretty much flawlessly for each application I converted over, the trickiest part was setting up Source Control, and it was more of a problem with the source control solution we used (SourceGear). Good source control system once it's setup, but a real pain in the ass until then. There were 3 or 4 fairly large projects and a ton of small ones that all converted without a problem.

    Not sure if you're using the web stuff or not, but that was where I had the most problems. The Web upgrade wizard is far from perfect. You should at least install the latest version of it from: http://www.microsoft.com/downloads/details.aspx?Fa milyID=7cecd652-fc04-4ef8-a28a-25c5006677d8&Displa yLang=en

    That version has fixed several issues I had, but also seemed to introduce a few new ones (or it was a cascading problem, that resulted in different errors when the originals were fixed). I've had to do a lot of tweaking on many aspx pages to get it to find the Code Behind and there were a couple projects that I had to re-assign all my event bindings with, for some reason, although that was with the old version of the conversion wizard so that is probably fixed.

    If SQL is being involed in this upgrade procedure, that was a much harder process to get migrated. Tables, Views and Stored Procedures migrate fine and the Reporting Services reports migrated over.. ok (though VS2005).. but the HUGE hassle is analysis service, if you use that, don't expect it to migrate very easily. DTS stuff was pretty easy to migrate over.

    Anywhere, theres my memory dump. Hope that helps in some way.

  10. Re:Microsoft have papers on this by Duhavid · · Score: 1

    Papers, please?

    Apparently, slashdot will also tell you to recompile,
    and that it all works. Funny, that.

    And that does not match my experience so far. One web
    project, was in 2003, another dev in my group opened
    the project ( as part of our "when do we move" ) up
    in 2005, and had many problems. The conversion process
    doubled up some of the namespace names
    ( what was A.B became A.B.A.B ). Which was funny,
    because my experience in the past on conversion was that
    they mostly worked.

    --
    emt 377 emt 4
  11. You *ARE* trolling by Anonymous Coward · · Score: 0

    MS hasn't made 1.1 obsolete. Lots of people are still developing for it today. And moving to 2.0 is VERY easy. There are some new features, new components and such, but it's like 99.9% backwards compatible. just use the new stuff if you want to (generics, nullable types, whatever). And it's funny how you say they'll sell us a replacement, when the .net framework and the SDK (which is all you need to use .net apps and create them) is totally free, and that it even runs on mono or can be compiled to java bytecode. There's no plans to obsolete .NET anytime soon either. It's all FUD, lies and damn fucking lies from a clueless and frustrated java fanboy.

    And it's not like java guys have no issues to overcome or problems ever... You're NOT sabing any time by going java. You're just using a slightly lesser platform and spending more time to get the job done.

    1. Re:You *ARE* trolling by Anonymous Coward · · Score: 0

      Don't use Mono as an argument that Microsoft's junk is cross platform. Mono has many limitations and anybody that has used .NET extensively knows this. Mono is a great platform but it's not .NET. Mono has the exact same problem that gcj has in the Java world.

      C# is a terrible choice because it's basically nothing more than a Java rip off with the added "advantage" that it ties you to a single, horribly buggy OS. Java is hardly a "lesser platform". But hey, if you like being tied into Microsoft's OS, crappy documentation and a piece of garbage API that is simply masking calls to the Win32 API be my guest. Plus, at least Java has a plethora of open source libraries that anybody can freely use. Microsoft's community around C# is a joke which produces virtually nothing that can be used in a serious production environment.

      Anybody that ties themselves so tightly to Windows these days is brain dead.

    2. Re:You *ARE* trolling by pallmall1 · · Score: 1
      And moving to 2.0 is VERY easy.
      Sure, just Ask Slashdot!
      --
      3 things about computers: they're alive, they're self-aware, and they hate your guts.
    3. Re:You *ARE* trolling by marcovje · · Score: 2, Insightful


      Just a curious question, where do you get your opinion/facts/observation from?

      ( ) because you actually ported a larger app (say 200kloc or so) from 1.x to 2.0,
      ( ) from comparison of superficial announcements and specs?

      No offense intended, but portability on paper is way different than in practice.

  12. necessary trolling by mrsbrisby · · Score: 2, Insightful

    I hate to say it, but you get what you deserve!

    I have C code both in production and development that's over 10 years old at this point, and at no point do we have to find a "upgrade strategy" as the foundations set up by K&R were good 30 years ago, and they're still good now.

    Meanwhile, you're looking at how to deprecate a big chunk of your company's development value after only two years- and although you haven't said it, I wonder if you've even gotten your value back from all that work?

    I'd say to find out how you can make sure you won't do this again in another two years. Start migrating to something else- anything else.

    1. Re:necessary trolling by Utopia · · Score: 1

      There are tons of people like you who still run on Windows NT and stuff still works. My VB app written in 1995 is still used in some organizations.

      No one is saying here that the poster's application is no longer working.
      The poster might have other consideration like to take moving to 64-bit.

    2. Re:necessary trolling by wrook · · Score: 1

      I'm going to have to disagree with you on this. Not because I necessarily disagree with what you wrote, but because you missed the point of a .Net upgrade. .Net is not a language. It's a framework. As much as I hate frameworks (and hate them with a passion), saying "I have C code I haven't changed in 10 years" is completely beside the point. The class libraries have changed in the next version.

      So this question is more analogous to "I'm moving from Gtk 1.2 to Gtk 2.0. What's likely to break?". Try doing that without any code changes. Your fancy, schmancy C language doesn't help you at all.

      Granted, choosing to link against a framework where *everything* is going to get changed at once -- GUI, network, math, class libraries, etc -- (whether you want it or not) is a bloody stupid idea. And using a development environment where you can't write static libraries is a recipe for upgrade hell.

      So I agree with you. I ... umm ... I mean *they* ... deserve what they got. But it has nothing to do with the language they chose to write their code in.

    3. Re:necessary trolling by Nataku564 · · Score: 1

      Or the fact that Visual Studio 2003 is a piece of crap, and 2005 is actually worth using.

    4. Re:necessary trolling by iguana · · Score: 2, Insightful

      No matter the technology, porting to a new platform is a chunk of work. Even in C.

      I work in embedded systems. I don't care how "standard" C is--it's only the source code that's standard. When we move to a new processor or the compiler upgrades, we spend weeks chasing subtle bugs out of the code. Never mind complex stuff like trying to port our stuff to a new RTOS or trying to integrate thousands+ of lines of purchased source code into our product.

    5. Re:necessary trolling by slashdotnickname · · Score: 2, Informative

      I have C code both in production and development that's over 10 years old at this point

      As I programmer myself, I realize you're talking about code that's pretty self-contained and algorithmic in nature.

      Other coding projects, though, need to interface with hardware and other commercial software (like databases) all of which evolve over time... and if you want to take advantage of any new advancements they might provide then your code will have to evolve as well. Sometimes you don't even have a choice (a database company might drop support entirely for an old package) so updating code is part of the job.

      Take graphics, for example... programmable shaders were practically unheard of 10 years ago, but they dramatically speed up some type of graphics applications. I've recently "dusted" some great opengl code I wrote in college. It still works, but I upgraded it to use some new 2.0 features and it's much faster now

    6. Re:necessary trolling by Anonymous Coward · · Score: 0
      Not because I necessarily disagree with what you wrote, but because you missed the point of a .Net upgrade. .Net is not a language. It's a framework. As much as I hate frameworks (and hate them with a passion), saying "I have C code I haven't changed in 10 years" is completely beside the point. The class libraries have changed in the next version.

      .NET is not a framework, it's a platform. Don't let the Microsoft marketing fool you. Think of a framework as the tools you use to help you build your web apps or client apps, the platform is the lower level you are actually running on, now rather than Win32, it's .NET, i.e. we are talking about the CLR etc, so consider it more like an OS upgrade.

      [snip] So I agree with you. I ... umm ... I mean *they* ... deserve what they got. But it has nothing to do with the language they chose to write their code in.

      I think you're missing the forest for the trees to put it simply. Yeah, OP was talking about .NET, previous poster about C, either way they both have code, that needs to be upgraded every so often: compiler changes, libraries change, OS changes. It is rather surprising though that something intended to be higher level, more abstract, such as something written for .NET is actually more "brittle" than something written in standard C, but it makes sense when you consider C has been around for years, and has a stable standard. And what's really amazing is I can take that C code, and run it on _different_ platforms. Many apps take advantage of this, consider Linux which is fairly easily able to be ported to many different architectures, from Sharp handhelds to mainframes. Or take Java also. So yes, the language, and the underlying requirements of that language - it does matter.

    7. Re:necessary trolling by master_p · · Score: 1

      Yeah, every app should be done in C. Why bothering with C++, C#, Java, Python, Perl, PHP, ML, Haskell, Erlang, Lisp etc? what can be done in those languages can easily be done in C anyway...

      [/sarcasm]

    8. Re:necessary trolling by mrsbrisby · · Score: 2, Insightful

      As I programmer myself, I realize you're talking about code that's pretty self-contained and algorithmic in nature.

      No, I'm not.

      Other coding projects, though, need to interface with hardware and other commercial software (like databases) all of which evolve over time... and if you want to take advantage of any new advancements they might provide then your code will have to evolve as well. Sometimes you don't even have a choice (a database company might drop support entirely for an old package) so updating code is part of the job.

      I have no difficulty interfacing with hardware or commercial software in C. I have no problem _writing database servers_ in C.

      And not to put to fine a point on it, but if your database company dropped support for something your business depended on, you made a horrible mistake in picking that database company.

      Yes, upgrading is wrong. If your vendor makes you upgrade, it's because THEY made a mistake by shipping buggy code, or YOU made a mistake by picking them. Whether the upgrade is better or worse than the previous version is for ME, the user, or the developer to decide, and not my vendor.

      In any event, you missed my point: C# and .NET is an immature moving target. A company or an individual that puts so much of themselves into such a beast gets what they deserve when Microsoft says "nononono, we didn't mean that, here's what we REALLY meant. just in time for people to start deploying" and deprecates all your hard work.

      I am not saying that there is never a place for C# or .NET or C++ or anything even remotely similar to that. I'm saying that if you have to build out a bunch of technologies that are supposed to last, and "ah" suprise- what's to stop Microsoft from doing this again in two years?

      Why not just avoid the whole mess?

    9. Re:necessary trolling by mrsbrisby · · Score: 1

      I work in embedded systems. I don't care how "standard" C is--it's only the source code that's standard. When we move to a new processor or the compiler upgrades, we spend weeks chasing subtle bugs out of the code.

      You do of course realize that those bugs were already there.

      Never mind complex stuff like trying to port our stuff to a new RTOS or trying to integrate thousands+ of lines of purchased source code into our product.

      I think that's a little different.

      You at least know you're porting to a new kernel with slightly different semantics, and you'll also know when you're trying to purchase infrastructure.

      The problem is upgrading to something to get some futures benefit- like converting your application to your own private RTOS- an emulation layer that runs between your POSIX-like application and whatever else you want to run on. It doesn't have any immediate benefit to you (after all, most RTOS are either fairly similar, or not really a good target to port to), but it just might.

      Here's a group that wants upgrades. They don't know why- it's clearly "for futures stuff", but it's going to break things, and you know, just by the time they get done, they might have to start back up all over again for .NET 3.0

    10. Re:necessary trolling by CastrTroy · · Score: 1

      The only thing that would be good about having only 1 programming language is that it would get us past the HR bots so much more easily. No more of this 5 years Java, 5 Years C++, 5 Years VB.Net. You could just say i've been a programmer for 5 years, and that would be enough. If you only have 3 years of Java, and they want 5 years, sometimes you don't get in, even though you have 10 years of solid development experience behind you.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    11. Re:necessary trolling by mrsbrisby · · Score: 1

      So this question is more analogous to "I'm moving from Gtk 1.2 to Gtk 2.0. What's likely to break?".

      It's not similar to that at all.

      Try doing that without any code changes. Your fancy, schmancy C language doesn't help you at all.

      That's not the point. He's been writing this code for two years, and maybe they're just getting to the point where they can do something with it and BAMMO they need to start thinking about where they're going next.

      If you're looking for a good analogy it's something like this:

      Vendor gives you fancy shiny new SQL interface, so you begin porting your entire enterprise to it (after adequate testing of course). It takes two years and you start seeing some benefits. Vendor decides after two years that they've made some things better but in order to get ANY of it, you need to redo the last two years AGAIN.

      The point is what's to stop this cycle?

      (A) the vendor gets it right and stops.
      (B) the customer gets it right and stops.

    12. Re:necessary trolling by mrsbrisby · · Score: 1

      Yeah, every app should be done in C. Why bothering with C++, C#, Java, Python, Perl, PHP, ML, Haskell, Erlang, Lisp etc? what can be done in those languages can easily be done in C anyway...

      Mostly right. Of the languages you listed, there are some gems:

      * perl4 code stills runs in perl5 interpreters. Perl6 promises to run perl5 and perl4 code.

      * Lisp too has remained unchanged [incompatibly] for decades.

      * Erlang was deliberately designed for language-feature durability

      Of course, C++, C#, Java, Python, and PHP have all been moving targets (incompatibly I might add, although Java and Python certainly show signs of getting better). ML has long since been fragmented needlessly, and Haskell is too new for me to comment.

      I might add that Objective-C, FORTRAN and COBOL are excellent, durable languages as well. The Objective-C framework has demonstrated that it's extremely durable as well.

      But don't confuse my point: Durability is [certainly] not the most important thing in a language or a framework, but it IS important, and basing so much of your company on something that has demonstrated that durability is not important at all is dangerous.

      Bottom line: If the poster actually wants durability, they shouldn't be looking at .NET at all.

      That's not to say .NET or C++ won't become durable- maybe in five or ten years we can make that decision. Surely code will have to be written in the meantime, and that will find faults in its overall design.

    13. Re:necessary trolling by plague3106 · · Score: 1

      Meanwhile, you're looking at how to deprecate a big chunk of your company's development value after only two years- and although you haven't said it, I wonder if you've even gotten your value back from all that work?

      Bull. All of the work should go over smoothly. I ported several mid sized applications over, and they went just fine. you'll get some warning as you'll likely be using some depreciated classes, but you can continue to use them just fine.

      In fact the only problems I had were because the project files an .config files weren't checked out before i tried to convert them (it doesn't check them out, although it says it will). Other than that, everything worked fine in .Net 2 as it did in 1.1.

      That 10 year old code may still be working, but I'll be I can add new features alot easier in my C# code than you could in plain C.

    14. Re:necessary trolling by mrsbrisby · · Score: 1

      Bull. All of the work should go over smoothly. I ported several mid sized applications over, and they went just fine. you'll get some warning as you'll likely be using some depreciated classes, but you can continue to use them just fine.

      We're using different definitions. Mid-sized projects take a few months. Large projects are the ones than span years.

      The point behind this is that you cannot be using deprecated classes, because if you were, you'd still be targetting .NET 1.1

      Or to put this another way- the author isn't asking how they can compile their code with the .NET 2.0 toolchain, but how they can "keep up" with the changes that were introduced with .NET 2.0.

      That 10 year old code may still be working, but I'll be I can add new features alot easier in my C# code than you could in plain C.

      I didn't say working, I said it's in production and development. That means it's still maintained, improved, and etc, to keep up with the growing demands from our customers.

      Come see me in 8 more years, and we'll be able to compare some 10 year old C with 10 year old C#.

    15. Re:necessary trolling by plague3106 · · Score: 1

      We're using different definitions. Mid-sized projects take a few months. Large projects are the ones than span years.

      If you're taking years between releases, you're doing something wrong. At any rate it shouldn't matter at all. C# is C#, no matter how much of it you have.

      The point behind this is that you cannot be using deprecated classes, because if you were, you'd still be targetting .NET 1.1

      Um, sorry, where does it say using a class that's depreciated means you're targeting 1.1? It doesn't; the fact that you CAN still use those classes means you can target 2.0. So if i have some old code that uses an obsoleted class and i add into it some new code that uses newer classes, which framework am I targeting?

      Or to put this another way- the author isn't asking how they can compile their code with the .NET 2.0 toolchain, but how they can "keep up" with the changes that were introduced with .NET 2.0.

      He said 'move to .net 2,' which i read as 'run under the 2.0 framework.' That doesn't mean you have to rewrite your existing code; after all, just because a class is marked as obsoleted doesn't mean you can't use it. Its not at the point yet where they declare the class 'dead.'

      Keeping up should be easy; there isn't much to be done to move to non-obsoleted changes. Except for removing references to obsoleted classes, why would you revisit code that works just include one of the newer classes? If it works now, leave it alone. If you run across it later, and something in 2.0 can make the code simplier, fine. But to recode just for the sake of recoding isn't smart.

      I didn't say working, I said it's in production and development. That means it's still maintained, improved, and etc, to keep up with the growing demands from our customers.

      So? My point was i could deliver those new features faster in C# than you can in C. You didn't adress it at all.

      Come see me in 8 more years, and we'll be able to compare some 10 year old C with 10 year old C#.

      What would be the point? Unless it would be to demonstrate that in those 10 years your product has a lot less functionality than the C# one... good way to miss the point.

  13. But that shouldn't work at all... by Shag · · Score: 4, Funny
    an IT department of over 300 people and 2 years of development


    Wait... and you're saying they got something done? That's not how it's supposed to happen!


    (cynic)

    --
    Village idiot in some extremely smart villages.
    1. Re:But that shouldn't work at all... by wiggles · · Score: 1

      Heh... What he didn't say was that the only thing he needs to migrate is Hello World.

  14. Article on this topic by soccerdad · · Score: 2, Informative

    Not to plug my own work, but I recently posted an article that touches some on this topic. You can find it here: http://www.blognet.info/weblogs/entry.php?u=adhale jr&e_id=1560.

    I hope it helps someone...

    Donnie

  15. MS lifecycle and support by $exyNerdie · · Score: 4, Insightful

    That's what you get for using Microsoft app platform. By the time you will move everything to .Net framework 2.0, they will have 3.0 released and you will have to go through this all over again. When I paid over $2000 to get Visual Studio 2002, little did I know that it only supported .net Framework 1.0. When v1.1 came out, Microsoft said you have to buy Visual Studio 2003. Now that v2.0 is out, Miscosoft says you have to buy Visual Studio 2005. Your VS2002 or 2003 won't take .net framework 2.0 and they don't give you a tool/patch to make it work. Just keep buying and paying $$'s...

    1. Re:MS lifecycle and support by mtutty · · Score: 1

      You paid $2000 for VS.NET? What the hell is wrong with you?

      Enough fanboy crap. Java is good, and so is .NET. You can continue to run your 1.1 apps in the 1.1 framework, ON THE SAME SERVER AS your 2.0 web apps. Any 1.1 desktop apps will also run side-by-side with 2.0 apps.

      Switching to the newer framework without a need for its new features is the result of too much magazine-reading by the PHBs.

    2. Re:MS lifecycle and support by Karma+Farmer · · Score: 1

      When I paid over $2000 to get Visual Studio 2002, little did I know that it only supported .net Framework 1.0.

      I paid over $10,000 to get Visual Studio 2002.

      I guess Microsoft thinks I'm five times better than you.

    3. Re:MS lifecycle and support by popeyethesailor · · Score: 4, Insightful
      Another retarded slashdot comment/moderation. Newsflash for you:

      YOU DONT NEED THE IDE FOR .NET DEVELOPMENT!

      The .NET Framework SDK has always contained all the compilers, build tools, and everything one needs to get started. And there's a complete free software stack of .NET development tools, including Nant, NProf, Ncover, Testdriven.NET, Nunit, SharpDevelop, CruiseControl.NET, Log4Net, Subversion and a dozen others I've missed. I've regularly seen people sticking with emacs and the above tools, for their entire development work.

      And guess what, if you need a nice,shiny IDE, MS is giving portions of the IDE too! The Express editions get most of the functionality, except for some enterprise features. The cost of development tools should negligible, in a large-scale organisation atleast. VS.NET 2005 is worth the money, IMHO. Its not a VB6 world anymore, guys. There're legitimate reasons to bash MS, but this is not one of them.

    4. Re:MS lifecycle and support by pallmall1 · · Score: 2, Insightful
      Java is good, and so is .NET.
      Which .NET? Will all .NETs run on Vista? Will .NET run on linux, or will MS decide to litigate MONO and others out of existence? Will MS change license terms again, making it illegal to run .NET on anything but MS licensed systems? Will MS patches and updates applied to MS systems ? Will newer .NETs be able to control previous MSOffice applications and functionality, or will they all have to be "upgraded" as well? ...and on and on.

      All of the above questions have one thing in common. All the answers come from Microsoft. All decisions are made by Microsoft, and not by the developer.
      --
      3 things about computers: they're alive, they're self-aware, and they hate your guts.
    5. Re:MS lifecycle and support by $exyNerdie · · Score: 0, Redundant

      Another retarded slashdot comment/moderation. Newsflash for you:
      YOU DONT NEED THE IDE FOR .NET DEVELOPMENT!


      Hello!! You can do all your programming in Notepad or any text editor...Would you do that?? How can they sell those IDE's for outrageous prices?? Why would anyone pay for them? You think they are all dummies?

    6. Re:MS lifecycle and support by Osty · · Score: 1

      Which .NET?

      One would assume the one from Microsoft, since .NET is their name (pieces of .NET, like the C# language and the Common Language Runtime, have been standardized by ECMA).

      Will all .NETs run on Vista?

      If you mean, "Will the Mono and Rotor implementations of the ECMA-standardized bits run on Vista?" I'd assume so. And if not, they're open source so go make them work (yes, even Microsoft's Rotor is open source). Now if the question is whether .NET 1.0 or 1.1 will run on Vista, I have no idea. I'd assume not, but then .NET 2.0 is backwards-compatible and does a pretty good job without requiring you to recompile 1.x assemblies for 2.0. 2.0 is not forward-compatible, meaning that you can't take 2.0 assemblies and run them on a 1.x runtime thanks to necessary changes in the IL to truly support generics (unlike Java, where generics are just syntactic sugar for object boxing), among other things.

      Will .NET run on linux, or will MS decide to litigate MONO and others out of existence?

      When was the last time Microsoft litigated against someone? Yes, they have a stack of patents, but it's mostly for defensive purposes. And besides, Mono has worked pretty hard to stay clear of any patent-encumbered portions of .NET.

      Will MS change license terms again, making it illegal to run .NET on anything but MS licensed systems?

      They certainly can do that with their implementation. I see nothing wrong with them screwing users of pirated software. But their run-time EULA for .NET doesn't apply to Mono.

      Will MS patches and updates applied to MS systems ?

      What? What does patching have to do with .NET? And if Microsoft wants to force all patches through WGA, they have that right. They have no responsibility to users of pirated software. Since Microsoft's .NET implementation only runs on Windows, it doesn't apply at all to users of Mono on non-Microsoft platforms.

      and on and on

      Not really.

      All of the above questions have one thing in common. All the answers come from Microsoft. All decisions are made by Microsoft, and not by the developer.

      Well, no. Microsoft controls their implementation of .NET, but anybody is free to implement the ECMA standards (see Mono). Microsoft does have a say in the ECMA standard as an interested party, but ultimately it's up to ECMA what goes into the standard. As for support, Microsoft has a published lifecycle model for support that is very generous -- a minimum of 10 years for Business and Developer products, which means that .NET 1.0 will be supported until 2011. .NET 1.1 will be supported even longer, and all .NET Framework versions can run side-by-side. If you haven't transitioned from 1.0 to 1.1 by 2011, it sucks to be you.

    7. Re:MS lifecycle and support by Nazadus · · Score: 1, Flamebait

      Would you like some cheese and crackers with that whine?

      You don't _have_ to migrate. No gun is put to your head. It's not like they are going to make all computers uninstall 1.0 for 2.0. It's backwards compatible. That means, program in 2002 and .NET X.0 will work. It just means you don't get the nice new shiny features. If you want those AND the IDE, then they deserve their money. They have earned it.

      Now, had you said "I want to program in WM5!" then you might have a partially valid argument. But you'r still ignorant as fuck.

      Are you seriously wanting them to write features for FREE?!?

      And even cooler -- if you are in college or school, get the Acedemic version of MS VS 2005 for $50 (like I did) from ccvsoftware.com.

      Stop being a Linux fan boy and learn to make informed decisions.
      You wouldn't last two seconds on the OpenBSD-Misc mailing list.

      --
      "Do or do not. There is no try." -- Master Yoda (Half man, half muppet)
    8. Re:MS lifecycle and support by master_p · · Score: 1

      It goes back longer than that. Microsoft actually sold us a very broken C++ codebase with VC++ 6.0, which actually drove many to Visual Basic (as it was easier to do the easiest and most usual tasks), thus forcing entire codeshops to ride the MS bandwagon...

      Actually Stroustrup must sue Microsoft for giving C++ a bad name...

    9. Re:MS lifecycle and support by Jugalator · · Score: 1

      Hello!! You can do all your programming in Notepad or any text editor...Would you do that??

      No, you pick one of the better editors he suggested. Why on Earth would you do it in Notepad and what's your point?

      --
      Beware: In C++, your friends can see your privates!
    10. Re:MS lifecycle and support by Jugalator · · Score: 1

      Just keep buying and paying $$'s...

      Or just be satisfied with .NET 1.1. It's not like it's just a tiny bugged framework anyway. We stuck around with VC++ 6 for ages, skipping both VS.NET 2002 and most of 2003, and just now catches on. Unsurprisingly, we had no trouble sticking with VC++ 6 for all that time, and I have no doubts we'll stick with .NET 2.0 for quite long.

      --
      Beware: In C++, your friends can see your privates!
    11. Re:MS lifecycle and support by $exyNerdie · · Score: 1

      Hello!! You can do all your programming in Notepad or any text editor...Would you do that??

      No, you pick one of the better editors he suggested. Why on Earth would you do it in Notepad and what's your point?


      The point is that VS is the best editor for enterprise/team development. The others are not better, they are inferior in comparison...

    12. Re:MS lifecycle and support by Anonymous Coward · · Score: 0

      YOU DONT NEED THE IDE FOR .NET DEVELOPMENT!

      The .NET Framework SDK has always contained all the compilers, build tools, and everything one needs to get started. And there's a complete free software stack of .NET development tools, including Nant, NProf, Ncover, Testdriven.NET, Nunit, SharpDevelop, CruiseControl.NET, Log4Net, Subversion and a dozen others I've missed. I've regularly seen people sticking with emacs and the above tools, for their entire development work.


      With those limitations, why would I bother with .Net at all that when the free tools in Java are so much better?

      Unfortunately, the open source .Net community is playing catch-up, and if you want to do development comfortably in .Net, you have to buy the latest VS.Net. Telling people to use SharpDevelop or Emacs is just silly. They are better off just sticking with Java and Eclipse.

    13. Re:MS lifecycle and support by DJDutcher · · Score: 1
      You wouldn't last two seconds on the OpenBSD-Misc mailing list.
      Was this last line supposed to be funny? Or is the OpenBSD-Misc a really tough mailing list? Do they personally insult people's mothers or something? Maybe I should use that line as my sig...
    14. Re:MS lifecycle and support by MrCopilot · · Score: 1
      His comments are still valid, I like a lot of developers got up to speed (through betas, ms seminars etc) with .net 1.0 at launch our app was fully compatible and then watched my app break in 1.1. We Released a patch and started directly on rewriting in other languages.

      Vendor Lock-in is real and painful. If you use Microsoft's .Net it can be excruciating. The IDE is irrelavant to this topic. His points were that he shells out cash for an ide that is useless in as little as 18 months.

      My apps have a little longer lifetime than that. And if it it executes today it should damn well execute tomorrow. There is no way around that problem using the .Net Framework, Hell you have to first decide which version (if any) the customer has. Very cumbersome for the support group. Not worth my time, maybe Enterprise apps where "standard clients" have assumed configurations I wouldn't have this problem, but my customers are across the spectrum. I swear, if I hear "How are we going to port this to the mac/linux?" concerning another .net app I am going to lose it. You just want to shake someone higher up and say if you want to be cross platform then you DO NOT BUY MS tools.MS=MSonly now and always.

      Someone else metioned Java, not a bad idea for the webapps. But not the only cross-platform solution, especially for executables. I'm digging qt-opensource-windows a-lot right now. Check it out http://www.trolltech.com/products/qt/ Admittedly not the a webapp tool but a good app toolkit/framework. Great thing is if they increase their versions the old ones still work. Version 4 is current and I still develop in 3, being open source has the advantage of not ever disappearing.

      --
      OSGGFG - Open Source Gamers Guide to Free Games
    15. Re:MS lifecycle and support by Anonymous Coward · · Score: 0

      Spoken like someone who's only ever used VS. I get more done with my team using vim and (gasp!) human communication than any MS shill I know. The IDE is never the limiting factor if you have a job worth doing.

    16. Re:MS lifecycle and support by PPGMD · · Score: 1

      Why would you move? Generally speaking a 1.0 application with run on the 2.0 framework, and if it doesn't you can install the 1.0 framework on the machine, and it will run side by side with the 2.0 framework, with the programs select the correct framework, of course this behavior can be altered by the administrator of the machine.

    17. Re:MS lifecycle and support by DevStar · · Score: 1
      And even cooler -- if you are in college or school, get the Acedemic version of MS VS 2005 for $50 (like I did) from ccvsoftware.com.



      Or better yet, if you're in college, get you school to pay $800/year and the whole school gets an academic alliance license. Every student, faculty members, and staff get access to MSDN, Visual Studio, Office, Windows, etc... At a school like Ohio State this comes down to a few cents per person per year.

    18. Re:MS lifecycle and support by jo42 · · Score: 1
      I was going to suggest, first, that you find the assmonkeys that made 1.1 incompatible with 2.0 and kick them in the nuts. Hard. Several times.

      Then do the migration. When it is done, send the bill to Microsoft for your time and effort.

  16. Why bother? (If you have a choice) by Foxel · · Score: 1

    I thought the whole point of the .NET versioning system/GAC was that all assemblies will run under the correct revision of .NET?

  17. Slowly - is how we're doing it by TheBracket · · Score: 1
    We're in a similar boat, and taking it very slowly. For existing systems that don't fit well with new .NET 2 setups (some ASP.NET apps), for now they are running as .NET 1 apps. Fortunately, it's easy to host multiple sites with different .NET versions. We are gradually planning to update these as they come due for replacement/refreshing.

    All new development is using .NET 2, with APIs using either the old .NET 1 assembly or being updated as necessary. We have a couple of critical APIs that have been branched, with the .NET 1 version in maintenance mode and active development in the .NET 2 tree (bugfixes being backported as necessary).

    For actually updating .NET 1.1 setups to 2.0, we are following Microsoft's advice: start by porting each component, and then port the application itself. It can be a little tedious, but most of the time it goes pretty quickly. It helps a LOT if you've been anal about keeping things loosely coupled in APIs, I think it could be a lot more painful with tons of closely intertwined libraries - but that's true of any setup.

    Finally, fear the ASP.NET project conversion wizard. It does horrid things sometimes!

    --
    Lead developer, http://wisptools.net
  18. Agree fully by Baki · · Score: 1

    Indeed sometimes one gets the feeling that Sun, in the name of backwards compatability, is too conservative. People scream for new features. But in the long run, when you have large projects in a very large organization (with 1000's of developers) you can be glad that Java does not develop like C# does.

    Yes, Java made some design mistakes in the beginning, and even today we're still stuck with them. However, MSFT also was able to copy Java and introduce new design errors in .NET even though they had years of experience to learn from (but alas they suffer from the not invented here syndrome), and they do not make a problem to make incompatible changes.

    Which is the reason that all larger enterprises use Java and don't even think of .NET.

  19. Do people ever learn? by ErikTheRed · · Score: 3, Insightful

    One of the major potential benefits of using class frameworks and object-oriented programming is to free code from heavy dependencies on underlying infrastructure through abstraction. And yes, I know it's not mandatory or anything, but the potential is staring you in the face and so it's silly not to take advantage of it. With .NET (and MFC, etc before it), Microsoft can't do too good of a job of this because to do so would take you off the Windows / Office / Servers / Visual Studio upgrade treadmill, from which they derive their income. There are plenty of libraries and frameworks out there that will allow you to build for Win9x (still!), NT/XP/Vista/2Kx/.net, OSX, Linux, etc. that offer exceptional stability between versions.

    Yes, Microsoft has some decent tools out there (Visual Studio has come a long way since the first version), but their behavior here has been consistent for the two decades or so that Windows has been out - you will wind up doing some significant porting and testing between versions of their tools, because compatibility between versions is not a priority for them. Selling you upgrades it the priority. Adding value is not a priority - they'll give just enough additional value between versions to make enough people jump, thereby forcing even more people to jump to maintain compatibility with the first set. It's an endless treadmill. If you (or your company) chooses to spend the immense amount of time and money to run on this treadmill, that's perfectly fine with me. I'll just sit over here accomplishing far more per dollar of CapEx and per man-hour.

    --

    Help save the critically endangered Blue Iguana
    1. Re:Do people ever learn? by Anonymous Coward · · Score: 0

      My employer ditched and ported from VB to Java for this reason. So far it has worked out.

  20. converting to ASP.NET 2.0 by Anonymous Coward · · Score: 0

    This article, "Converting Our Application to ASP.NET 2.0", may be of some use:

    http://www.blognet.info/weblogs/entry.php?u=adhale jr&e_id=1560

  21. Run a pilot by darnok · · Score: 1

    As others have said, MS has put you in the position of having to migrate your production apps possibly well before you've recovered your costs. You might do well to ponder that, and make sure you're not setting yourself up to do it all over again in a couple of years' time.

    On the other hand, if it's job security you're after, you can always blame it on MS while taking your pay cheque for redoing work with which you'll quickly become expert.

    The only sensible approach IMHO is to run a pilot migration of a single app/server, and see what resources are required, what problems crop up and how you can remove them for other migrations that follow, and how long it actually takes. I'd expect 90%+ of your code to cleanly migrate to .NET 2.0 (if you decide to go that way), but that other 10% might be a real pain to deal with. Get all the MS expertise you can afford for the pilot, because they'll act as conduits for exchanging info between yourselves and other MS customers who are going through the same thing.

    Once you've done a pilot and gotten that data out of it, you can estimate what's required to migrate your other apps.

    Personally, if I was in your spot, I'd take a close look at what your apps do and see if there isn't a better/more agile solution than just shifting to .NET 2.0. Having worked for years in large enterprises, I know there's "enterprise apps" and "department/workgroup/... apps" - I'd be inclined to treat the latter as a separate category of deliverable, and look outside .NET and J2EE for your development. For smaller Web-based apps, tools like Ruby on Rails look particularly compelling - agility and speed of development are key, and the technology isn't going to "go away" as with .NET 1.1 because it's open source and you can use it as long as you want.

    If you're e.g. going with a SOA approach to your development, it shouldn't matter what toolsets you use; just use what gets the job done best. That's not always going to be .NET or J2EE, particularly for smaller/less critical apps.

    1. Re:Run a pilot by Unoti · · Score: 1

      You complain that MS is forcing you to recompile and retest the code, and you spank Microsoft for this atrocity. Then you go on to suggest that a good alternative is to rewrite the entire application in another platform. The effort to recompile and retest under 2.0 is trivial to accomplish and a very small risk compared to the monstrous undertaking of completely re-writing the entire application. If you didn't sound so level headed, I'd think your comments were motivated by something other than reason.

    2. Re:Run a pilot by darnok · · Score: 1

      Don't worry, lots of people don't think I'm level headed...

      The reason I'm suggesting the OP looks outside the J2EE/.NET duopoly is that he's been burned once, and may be at the start of a cycle where he'll be burned again in a few years' time. "Fool me once, shame on you; fool me twice, shame on me".

      I suggested running a pilot migration to 2.0 so he can ascertain the true costs of jumping from 1.1 to 2.0. If, as others have said, it's not a trivial step, then he'll find out during this migration; if it is trivial, then of course you'd use that as your "default" process for other apps as well. Either way, he needs to establish what it's going to cost (time, resources and $$$) to get from where he is to where he wants to be.

      You say that testing is trivial, but I bet the true costs of testing a bunch of apps that have just been recompiled are a lot higher than you might think. Unit testing, provided the code structure supports it, could be straightforward; user acceptance, functional and load testing could be a lot more expensive as you tend to get a lot less re-use out of your previous work with these testing streams. Depends on the app itself, of course... Deployment in a well-managed enterprise is always expensive; outage windows, change management, etc all cost $$$.

      On a broader level, I think we're actually approaching a tipping point, where the traditional approach of spending loads of money on developers, loads more on testing, then loads more on maintenance/operations, then finally throwing away everything to develop a new/replacement app that's 20% different using the latest/greatest toolset is going to go away. It's been several years since Java came out, and, while it was relatively state of the art at that point, there's now more productive approaches to application lifecycle management available. I've watched JVM1.1 -> 1.2 -> 1.3 ... migrations going on, and the costs of what always appears at the outset to be a simple exercise are extremely high - I think there's now a generation of IT management that wants a better answer than "we need to migrate to the latest version of X, because if we don't then Y won't support us any more".

      C#/.NET is very Java-like in its approach to development, so I lump the two together. Certainly MS is very aware that it needs its customers to keep buying and using the latest generation of product; the OP is in that position now, and a key factor to consider is that there are other ways to go forward from where he is.

  22. C standard by kupci · · Score: 1
    Not as familiar with C, but as for C++, they take great efforts to be careful about language and library changes breaking compatibility, check out Stroustrup's thoughts on the latest version of C++.

    You're marked a troll, but the advice is on the mark IMO. Ironically, Microsoft's code (I'm not talking about their .NET, but for example their Win32 API) is rather backwards compatible. And always take the trouble to steer clear of Microsoft-specific extensions where possible (i.e. managed C++ != C++). You can take 10 year old code, run it through Visual C++, and it runs on Windows XP. But that's the way it should be. Customers don't want to muck with migrations every 1 or 2 years, they want some decent ROI.

    1. Re:C standard by mrsbrisby · · Score: 1

      Not as familiar with C, but as for C++, they take great efforts to be careful about language and library changes breaking compatibility,

      Really? This program used to compile in G++:

      #include <iostream>
      int main(int argc, char *argv[]) { cout << "Hello World" << endl; }


      And yet, now it doesn't. Why? Namespaces.

      You can take 10 year old code, run it through Visual C++, and it runs on Windows XP.

      Actually, this is something to attribute to Microsoft. By breaking the C++ standard in so many places for so long, they've really made their own version of C++ (which they actually tried to submit to ECMA recently as "C++/CIL" if I recall correctly)

      It's not C++ that's stable- far from it, C++0x breaks things again. Subtle things, but important things. Microsoft has at least done well at making MSC++ stable.

      Customers don't want to muck with migrations every 1 or 2 years, they want some decent ROI.

      Agreed.

    2. Re:C standard by jgrahn · · Score: 1
      Really? This program used to compile in G++: #include int main(int argc, char *argv[]) { cout And yet, now it doesn't. Why? Namespaces.

      No. Broken compiler. Including iostream (like you do) instead of iostream.h was intended to mean "great, now I'm ready to migrate to the std namespace; hit me!".

  23. Hilarious by JanusFury · · Score: 2, Interesting

    Half the comments so far are advising the guy to ditch .NET ASAP so that he doesn't have to upgrade again.

    He doesn't HAVE to upgrade at all! He's voluntarily decided to upgrade to a new version of an existing product. How is this a negative thing? It could definitely be a bad idea, but I don't see anyone saying that.

    It's bad enough that people don't even read linked articles, do people even read the text of the story before posting anymore?

    --
    using namespace slashdot;
    troll::post();
    1. Re:Hilarious by amliebsch · · Score: 1
      He doesn't HAVE to upgrade at all! He's voluntarily decided to upgrade to a new version of an existing product.

      Not only that, but for all the bitching about terrible Ask Slashdot questions, all the answers are answering the question they wished he would have asked instead of the one he actually did ask. Totally unhelpful!

      --
      If you don't know where you are going, you will wind up somewhere else.
    2. Re:Hilarious by niteblade · · Score: 1

      As a .NET developer I'd like to thank the slashdot community for their constant bashing of .NET. I think the lack of respect and interest in .NET has really helped drive down the supply of decent .NET developers thus contractor rates have been increasing nicely (since business really doesn't give a crap what the most techies prefer, they have are creating a massive demand for this work -> big demand/low supply = big $). Bob

    3. Re:Hilarious by aCapitalist · · Score: 1

      As a .NET developer I'd like to thank the slashdot community for their constant bashing of .NET. I think the lack of respect and interest in .NET has really helped drive down the supply of decent .NET developers thus contractor rates have been increasing nicely (since business really doesn't give a crap what the most techies prefer, they have are creating a massive demand for this work -> big demand/low supply = big $). Bob

      Haha, nice one Bob. While the open source jihadists whine about Microsoft, you're out getting rich.

    4. Re:Hilarious by pallmall1 · · Score: 1

      So, your answer is don't upgrade? That's not really very helpful.

      --
      3 things about computers: they're alive, they're self-aware, and they hate your guts.
    5. Re:Hilarious by amliebsch · · Score: 1

      Huh? I don't think I said that. I was pointing out an answer to the question, "how should I go about upgrading to 2.0" of "you should have used something else/switch to something else" is not answering the question that was asked.

      --
      If you don't know where you are going, you will wind up somewhere else.
  24. Re:Agree fully - Riiiight by Anonymous Coward · · Score: 0

    "Which is the reason that all larger enterprises use Java and don't even think of .NET."

    Which is why Java project starts in Fortune 500 companies are on their way down while .NET project starts in that group are on their way up, eh?

    Go ahead and keep on wearing those blinders, fanboi!

    (FWIW, I work in a mixed shop, so don't go calling me one.)

  25. Test the Performance by Unoti · · Score: 1

    We just ported our large server-based application from CLR 1.1 to 2.0.

    The key problem we encountered was performance. A few things performed dramatically more slowly in 2.0 than they did in 1.1. In particular, we had some VB.Net code that was doing some things with late binding that were about 100 times slower than they were in 1.1. We had to track that down using a profiler and rewrite that section to use normal binding instead of late binding.

    The second thing that was slower was some aspects of the XML parser, in particular InferXMLSchema.

    The key suggestion I make to you is to do performance testing. Put your application under load and baseline the performance under 1.1, then compare with the same load test under 2.0. Use a profiler to track down the differences if they are major. In our case, the performance difference was major enough that we needed to rewrite certain small parts of the code. Afterwards the performance between 1.1 and 2.0 was about the same.

    But this is key: do the performance testing! The difference can be huge.

    The upgrade is totally worth doing, though, especially if you're doing socket communications and leaking memory.

  26. You *ARE* trolling indeed by Anonymous Coward · · Score: 0

    Just a ripoff? Okie. It's more like Java done right - a better language AND framework (yes, the APIs and all).

    And only idiots like you pretend windows is horribly buggy as some early win95 beta on shitty hardware. Basically nothing you say has a basis in reality, but feel free to believe it.

    As far as the frameworks and tools go, .NET definitely has the edge, no doubts about it. Most of the best java frameworks have already been ported (NHibernate, NAnt, etc - dozens of them), add a bunch of .Net only frameworks (the EL isn't bad at all), MUCH better dev tools (VS2005) including some wicked 3rd party tools like LLBLGEN Pro, VisualAssist X, Reshaper, dotTrace, Resharper, PromptSQL, etc. Same for 3rd party tools (dev express, dundas , infragistics, etc). Documentation and support wise, java is behind as well. MS has newsgroups, MSDN(!), XML feeds, starter kits, very useful MSDN blogs, forums, tons of communities (such as codeproject), gotdotnet, application architecture mag, etc. etc etc (this could be like 1200 pages long).

    Only incompetent idiots like you can't produce something that can't be used in a serious production environment in C#. You're only proving your ignorance.

    Have fun relying on Sun's constant misguided failures for a platform. It failed at pretty much everything they tried (being popular on the desktop, on the web, making java the best platform, EVERYTHING they do ends up in a failure [except perhaps solaris]). And Java jobs are on the decline here (unsurprisingly).

    1. Re:You *ARE* trolling indeed by Anonymous Coward · · Score: 0

      You lost all credibility when you said that .NET has the edge in terms of frameworks. That's just a completely idiotic statement. You're also way off in terms of tools, VS2005 can't even compete with a free project like Eclipse. It also isn't open source and doesn't have much of a community around it. IntelliJ IDEA, which is not free but is significantly cheaper than the full VS2005, blows it away completely.

      In terms of your statements about the communities you're either trolling or just another completely clueless MSDN shill. All of the .NET communities are a pathetic joke made up of mostly incompetent MS shills. The items you list about the communities (XML feeds, starter kits, blogs, forums, project hosting etc.) the Java community has had for years. Welcome to 10 years ago!

      And yes Windows is horribly buggy, that's pretty much an indisputable fact at this point. Enjoy tying yourself tightly to it for the next 10 years.

    2. Re:You *ARE* trolling indeed by Anonymous Coward · · Score: 0

      After seeing this discussion of .Net 2.0 migration I must remember why my employer switched to developing in Java - simply because the company was burnt bady by Microsoft forcing a complete rewrite of all our VB6 applications at the cost of many millions of dollars. Anyone that was screwed once this way would surely be insane to continue down the same path again, right? I just don't understand why anyone would buy into a songle source platform like .Net after the VB6 fiasco.

    3. Re:You *ARE* trolling indeed by Anonymous Coward · · Score: 0

      Just because you don't know about all the great stuff available for .NET doesn't mean I've lost any credibility. And if you think Eclipse or IDEA blows VS2005 away, then clearly you haven't even seen it.

      There's only 1 troll (and Java shill & fanboy) here :P

      Windows buggy? Only if YOU touch it I suppose. Tons of corporations use it everyday with no issues whatsoever. It's highly stable, and that IS an indisputable fact. Yeah, it's just you... Java trolls bashing MS using outdated Win95-era pseudo-arguments and BSOD jokes, yeah... Just shows how clueless you are.

      You haven't lost any credibility, you've never had any! Enjoy being jobless in 10 years when Java's dead.

    4. Re:You *ARE* trolling indeed by Anonymous Coward · · Score: 0
      And if you think Eclipse or IDEA blows VS2005 away, then clearly you haven't even seen it.

      I haven't seen it. It doesn't run on any decent operating systems, so I haven't been able to. But when it does, I'll be first in line to try a copy.

      You haven't lost any credibility, you've never had any! Enjoy being jobless in 10 years when Java's dead.

      Sure, just like Cobol, Fortran, and C, right? If anything, Java people will be making 5x more money than you to maintain and support the huge number of existing Java apps. Meanwhile, your company will have to spend assloads of money every 4 years to upgrade and retrain everyone for Microsoft's next buzzword^w language. Have fun with that. Fanboy.

    5. Re:You *ARE* trolling indeed by Anonymous Coward · · Score: 0

      C will definitely outlive Java. Cobol and Fortran aren't exactly what you'd call mainstream, but in 10 years they'll be more popular than Java which everybody will have dropped like the turd it is :)

      Then the Java jobs will pay nicely, just like mainframe jobs today - all of the 3 jobs left that is. Enjoy EI while we're raking in the $.

      Obviously Java's affected your sanity.

  27. Re:Agree fully - Riiiight by Anonymous Coward · · Score: 1, Insightful

    "Which is why Java project starts in Fortune 500 companies are on their way down while .NET project starts in that group are on their way up, eh?"

    In terms of enterprise applications, it's hard to go up when you're being used almost everywhere like Java, however, it's not hard to go up if you're being used almost nowhere like .NET.

    P.S. Just because you work in a mixed shop doesn't mean that you're not a .NET fanboy.

  28. Migrate.. or Transition? by Anonymous Coward · · Score: 0

    I am not entirely sure why you would want to migrate your existing applications to .NET 2.0. They work fine side-by-side, just as you can multiple JVMs on the same machine. ASP.NET 1.1/2.0 applications are a joy to manage side-by-side on Windows 2003/IIS.

    If you are considering migrating these apps so that every line of code you write from date X will target the .NET 2.0 platform, I would guess you have some technology-fever. This just doesn't make "cents". Presuming you have healthy culture where good employees are compelled to stay, you've already made significant investments in their skills, the same skills they used to build your existing applications. You've made huge investments in developing and stabilizing these existing applications.

    You may take issue with this, knowing that you have on-going initiatives that require extending your current .NET 1.0/1.1 applications. In these cases it may be that migrating some application to .NET 2.0 will result in positive ROI. You can only answer this question yourself, and "we reeeely want to use VS2005" is not a factor in cost/benefit analysis. The real question is "can we get the new required functionality faster if we start (nearly) from scratch in .NET 2.0 than by enhancing with existing app"?

    Now, if you want to reuse the business logic you've developed in previous versions of .NET from .NET 2.0, I recommend you start developing an SOA strategy. I know, it's just a buzzword, but the principle of interoperating with legacy code in a uniform manner (say, web services) is a solid one.

    Now, turning to the transition question, I presume you would like to do new development and initiatives in .NET 2.0. Good choice! This is an amazing platform for productivity and flexiblity. My suggestion is to send your developers to some top-notch trainers--DevelopMentor and Franklin's Net come to mind.

    Make no mistake, .NET 2.0 is about productivity. It makes some things that were ++un-easy in prior versions ++easy.

    P.S. To all you Java guys who like to presume you know everything because you... grrr, nevermind. Think of it like moving a web application from Struts to JSF. That's the kind of "migration" he's faced with here.

  29. An On-topic reply. by popeyethesailor · · Score: 4, Informative
    Well, its not that hard. What broke a lot of things for us was the new Website template introduced in the ASP.NET 2.0 betas. To put it short, they changed the entire deployment model, and this pissed off a number of people. MS did a u-turn, and launched this. This made the migration work flawlessly, and you also get all the benefits of ASP.NEt 2.0 without code changes :) Read Scott Guthrie's blog frequently; there's good stuff there.

    Side-by-side installation hasnt been a problem either. Both frameworks can co-exist, with a few tweaks here and there. The language (C#) has gotten a bit nicer. More shortcuts, faster development, and overall superb IDE support(VS.NET 2005). The deprecated features have been done for a reason, and overall the changes make sense. While the performance is a bit better, I dont know if its enough to make a business case. If I can, I would wait a bit more, till a Vista release; especially if I'm doing WinForms apps.

  30. hate to sound like a dick... by Anonymous Coward · · Score: 0

    but out of 300 people doing development with this environment for 2 years, how did it land on you to figure out how to migrate it?

  31. We've been preparing for the 'migration' too. by cwensley · · Score: 1

    I work for a company in a similar situation.. with a project that has about 150k lines of c# code.

    If you have many (or any) ASP.NET applications, I suggest using the (NEW, in beta) ms-supported "Web Application" plug-in. This works the same way as VS.NET 2003, and will make NO changes to your existing code base - making the migration as simple as just resolving some naming conflicts with the new classes introduced in 2.0. This plug-in is here

    For us, we actually switched to using a complete code-based web application (no aspx or ascx files at all), which has turned out to be the EASIEST transition - we can compile our code in both 2003 and 2005 with no problems (until we start taking advantage of the 2.0 features, of course).

    The only real problem would be when switching to the new 'Web Site' ASP.NET model, which is just ridiculous as doing the conversion just messes up all of your existing code and it's pretty much guaranteed not to work without manually fixing it up.

    Hope this helps!

    1. Re:We've been preparing for the 'migration' too. by Anonymous Coward · · Score: 0

      >For us, we actually switched to using a complete code-based web application (no aspx or ascx files at all), which has turned out to be the EASIEST transition - we can compile our code in both 2003 and 2005 with no problems (until we start taking advantage of the 2.0 features, of course).

      This is actually a pretty godd thing. Using a template or xslt based system that generates html will save you another transition again in a few years when MS changes asp.net/web projects again (they didn't get them right again in VS 2005)

  32. Microsoft by Karma+Farmer · · Score: 1

    300 people and 2 years of development

    If you have 300 developers, talk to Microsoft. You're dropping a half million a year just for MSDN licenses. They can afford to have a product expert hold your hand for week.

    1. Re:Microsoft by Nataku564 · · Score: 1

      This assumes they all have MSND licenses. It is entirely possible to purchase Visual Studio and not get that overpriced help menu. It does have its merits, but from what I have used, it doesn't justify the cost. A google or two brings up the answer in the same amount of time.

    2. Re:Microsoft by abh · · Score: 1

      I'm not sure on current pricing, but in 2003 purchasing Visual Studio Enterprise Developer Edition was $1800. MSDN Universal (which basically means every piece of software MS releases) was $2100.

      To me, for $300, it makes sense. There's a lot more than a "help menu" as you call it. Unlimited newsgroup support with guaranteed response times, as well as phone support.

    3. Re:Microsoft by BoomerSooner · · Score: 1

      with the msdn universal you get 10 licenses for VS.Net, not to mention all the other MS products as well...

      MSDN is an excellent way to go.

    4. Re:Microsoft by Karma+Farmer · · Score: 1

      I wasn't talking about the MSDN "help menu." As far as I know, the MSDN help system is absolutely free, and most of my google searches bring it up first anyhow.

      I was talking about the MSDN developers subscription. It's basically a developer's license to every piece of software MS makes (including all server software and operating systems), plus access to most beta software, plus free upgrades for a year, plus "real-ish" support.

      Given the price difference between the two, anyone who purchases a full version of Visual Studio is seriously uninformed, and doesn't deserve to manage even one developer (much less 300).

  33. Look out for IIS and WSE interoperability by lateralus_1024 · · Score: 2, Interesting

    We are in the process of making the change from .Net 1.1 to 2.0, mostly due to a decision to migrate to Visual Studio 2005 Team. Thus far, the only issues we've run into is backwards compatibility with WSE2.0. We had to migrate to Web Services Enhancements 3.0 due to issues with IIS. Aside from that, we haven't had many issues other than a few test tools (AppSight)not yet compatible with v2.0.

    --
    If you think /. comments are bad, check out Digg.
  34. Response to the trolls by humblecoder · · Score: 3, Insightful

    I see a lot of people saying things along the lines of "thats what you get for sticking with Microsoft". I think this is a somewhat unfair statement.

    First off, it's not like .Net 2.0 makes 1.1 obsolete. I know that programmers are attracted to all the "new and shiny stuff" like lemmings to a cliff, but if logically speaking, unless there is a true BUSINESS REASON for porting an application, why not just leave it where it is. It is not like Microsoft is suddenly going to pull the plug on 1.1. It'll still work just fine and dandy. In fact, you can run a 2.0 and a 1.1 application pretty much side-by-side, so there really isn't any issues here.

    Second, it's not like Microsoft is the only one coming out with new revisions every few years. This is pretty much the same strategy employed by most software makers, including the open source folks. Some people have brought up Java as this great and wonderful language. I am not a Java expert but I know that Java has gone through several iterations and during that time, many of their libraries and frameworks have changed. Functions have been deprecated. Libraries and their API's have been rewritten. New features have been added. I am not saying that this is a bad thing, but it is strange that people throw Microsoft under the bus, while giving Sun a pass.

    I think the migration path from 1.1 to 2.0 is fairly simple from what I understand. There are various tools and wizards to convert over some of the changed libraries. For the most part, though, the core language hasn't changed. It is only the associated libraries. I say for the most part since there have been certain enhancements to the language, like generics (which I think was also added to Java at some point as well, so again there is a double standard here).

    I think if one were going to debate that Microsoft has too much software churn, a better example would be the change from VB6 to VB.Net. In that case, there was a much bigger change which very little migration path, other than interoperability and re-writing code. From my point of view, VB6 was totally toss into the trash can there. In contrast, the path from 1.1 to 2.0 really isn't that big of a deal. Microsoft took a lot of flak for the VB6-to-VB.Net debacle, so maybe they learned their lesson.

    1. Re:Response to the trolls by LoveMe2Times · · Score: 1

      like generics (which I think was also added to Java at some point as well, so again there is a double standard here)



      The difference being that you can generally upgrade JVMs without breaking backwards compatability. People started re-writing parts of their Java apps because they *wanted* to. Those who didn't need new language features could still upgrade the JVM for performance enhancements etc without rewriting any code. From what it sounds like, though, the problem is more with the .Net frameworks than the actual VM or language changes. Java tends to require minor code-fixing as well when frameworks like JSP/JSF are updated. But these changes aren't bundled with a new VM, so you only go through the effort when you want the benefits of the new framework. Well, eventually new appservers will quit supporting old standards, so upgrading your appserver might also convince you to upgrade, but that has nothing to do with Sun or Java per se.

    2. Re:Response to the trolls by Keeper · · Score: 1

      You can run .Net 1.0, 1.1, and 2.0 code side by side without breaking compatibility. Instead of dealing with the version hell associated with subtle changes in API behaviors or optimizations (see MFC*.dll), they fork everything when releasing a new version -- logic being you can't break anything if you don't change it.

    3. Re:Response to the trolls by chaves · · Score: 1
      >You can run .Net 1.0, 1.1, and 2.0 code side by side without breaking compatibility.

      Are you saying that having only version 2.0 of the framework installed, I can run apps developed for .Net 1.0, 1.1 and 2.0? Or does it require to have multiple versions of the framework?

      And what if I have a 1.0 or 1.1 application and want to take advantage of one new feature in 2.0 in one (and only one) of my classes? Why should I have to convert the entire application?

      You might call it bashing, but it is not. Backward compatibility is a very important requirement, almost as much important as the feature set. It makes evolving a platform harder, but it can be done. Microsoft took the easy path, at expense of its customers. That is easy to do when you have vendor lock-in.

      Not wanting to sound as a fan boy here, but Java is a great counter-example - I don't know of any deprecated API that had actually been removed or stopped working.

    4. Re:Response to the trolls by KlomDark · · Score: 1

      Yes, but the entire pre-.NET VB approach just begged to be thrown in the trash can. It was a pooch. It sucked. It was a badly designed bunch of GUI grap thrown on top of the original Microsoft DOS BASIC. It was great for a learning experience, but life is so much better with a 'real' VB.NET, rather than the suck-ass VBx's of the past.

    5. Re:Response to the trolls by plague3106 · · Score: 1

      Are you saying that having only version 2.0 of the framework installed, I can run apps developed for .Net 1.0, 1.1 and 2.0? Or does it require to have multiple versions of the framework?

      You can do either; its your choice.

      And what if I have a 1.0 or 1.1 application and want to take advantage of one new feature in 2.0 in one (and only one) of my classes? Why should I have to convert the entire application?

      I doubt there's one new feature that you'd want to use in just one class. That's just a silly thing to ask. BTW, the 'conversion' is usually just converting the project files and may some config files (if you tied your app to a specific version, for example, it will undo that.. why convert if you are only going to support the older runtime?). There's also a list of breaking changes, so you'll be able to easily 'fix' any code.

      You might call it bashing, but it is not. Backward compatibility is a very important requirement, almost as much important as the feature set. It makes evolving a platform harder, but it can be done. Microsoft took the easy path, at expense of its customers. That is easy to do when you have vendor lock-in.

      No, its bashing. Much of the changes are new additions to the framework and you have a list of breaking changes. If you want to take advantage of the new features you'll need to port. If you don't then leave it. Just like people that want to take advantage of the newest directx will need to target that library, or the newest java. Much of the framework is untouched from .Net 1.1.

      Not wanting to sound as a fan boy here, but Java is a great counter-example - I don't know of any deprecated API that had actually been removed or stopped working.

      That doesn't happen with moving to .Net 2 either. Look up the ObsoleleAttribute. There's nothign Obsoleted that will cause a compile error. You'll have plenty of time before those changes come.

    6. Re:Response to the trolls by Leinweber · · Score: 1

      Im going to reply to this at the root thread level. This is the most intellegent statement I have had opportunity to read in this ENTIRE Thread.

  35. correction by pallmall1 · · Score: 1
    Will MS patches and updates applied to MS systems ?
    Shoud be ... Will MS patches and updates applied to MS systems break older .NETs?

    Repeat to myself ... preview is my friend.
    --
    3 things about computers: they're alive, they're self-aware, and they hate your guts.
  36. Easy! Drop .NET and Move To Perl, or Java, or... by Anonymous Coward · · Score: 0
    anything else. There's nothing to it.

    Keep one .NET developer to maintain the crap you've already written. Feed him well for 6 months and he'll stay. After that he'll quit anyway, which is perfect, since you won't need him anymore.

  37. Does this summary fit? by pallmall1 · · Score: 1

    QUESTION: Which .NET?
    ANSWER: Microsoft's

    QUESTION: Will all .NETs run on Vista?
    ANSWER: Probably not, depending on the version of the Microsoft .NET you want to run, even though the answer to the first question implies there's no .NETs to choose from.

    QUESTION: Will .NET run on linux, or will MS decide to litigate MONO and others out of existence?
    ANSWER: Only if Microsoft wants to, but don't worry because you can trust Microsoft.

    QUESTION: Will MS change license terms again, making it illegal to run .NET on anything but MS licensed systems?
    ANSWER: Microsoft can do this, and should, because all non-MS licensed systems are pirate systems. But don't worry, because the Microsoft run-time EULA for .NET doesn't apply to Mono (unless they change it like you asked).

    QUESTION*: Will MS patches and updates applied to MS systems?
    ANSWER: What's that got to do with .NET?
    * -- The question was malformed in it's original post.

    Regarding the ECMA, you say, "anybody is free to implement the ECMA standards (see Mono)," but don't you mean just the "ECMA-standardized bits"? Microsoft might not submit any changes made to newer versions of .NET to the ECMA for review, leaving the current ECMA-standardized bits orphaned. Ironic that Microsoft might use their "embrace, extend, extinguish" tactic on one of their own things.

    As for the support, what good is the support for .NET 1.x if the operating systems running it are no longer supported? The example for 10+ years of support is for "Self-help online support," which is just like the support you can get for MS-DOS or Windows 95. If you consider that generous product support, it sucks to be you.

    --
    3 things about computers: they're alive, they're self-aware, and they hate your guts.
  38. 1.1 - 2.0, VB.NET - C#? by Yuioup · · Score: 1

    Hi,

    We're about to start using VS2005, but we've been using VB.NET for the last 2 years.

    I was wondering. Is it also wise to convert the 1.1 code over to C# and THEN move it over to VS2005? Or is this tackling too many problems at the same time?

    Y

    1. Re:1.1 - 2.0, VB.NET - C#? by EraserMouseMan · · Score: 1

      My advice would be to convert to 2.0 first. Then convert one project at a time to C# (if your solution(s) contain more than one project). The port to C# is relatively straight-forward. The schedule risk lies in converting to 2.0. Plus you may want to incorporate some of the new features (generics, partial classes, etc.) of 2.0 when you convert to c#.

  39. option 3 by kallax · · Score: 1

    Delphi produces .NET 2 apps through VCL, and virtually all platforms - including Linux - have a VCL compiler. Essentially, write once, compile per platform. IOW halfway between Java (slow and no recompiles necessary) and .NET (native code and locked into the OS). So the options are probably: no upgrade, get MS to help you upgrade, or use VCL. There is no doubt that MS is taking the mickey out of us, but frankly when pople pay 500k in licensing for products they can download free, they seem somehow exonerated - but frankly all capitalist entities are there to milk their clients. so....

    1. Re:option 3 by chriseyre2000 · · Score: 1

      What version of Delphi are you using? The latest version of Delphi, Delphi 2006 is .Net 1.1 only afaik (http://www.borland.com/resources/en/pdf/products/ delphi/bds2006_feature_matrix.pdf)

    2. Re:option 3 by kallax · · Score: 1

      Well this is the thing: all non-MS companies follow behind by a number of months because MS protects the sales of their development tools in this way. Frankly I think that VS is only just catching up to Delphi 7 in some ways - both as IDE (equi-space controls feature as an example) and in terms of things like intraweb's RAD web development, but who can go without .Net 2 webparts? There are similar features in other languages, when it comes to MS platform the best choice should be an MS IDE and an MS laguage and an MS compiler. The fact that there is a 7MB C# IDE which looks identical to VS2005 does make me wonder though.....

    3. Re:option 3 by AuricTheCodePoet · · Score: 1

      Ok, Kallax your forgetting something, Delphi is up for sale.

    4. Re:option 3 by Anonymous Coward · · Score: 1, Informative

      I am a proud owner of the latest Delphi 2006. I love Delphi, and have used it for years. It is possibly the best RAD develoment environment for windows.

      You, however, are clueless.

      #1, delphi cannot compile CLR 2.0. The next release called 'Highlander' can, but wont be out for almost A YEAR. Also, Borland is in the process of selling Delphi, so it may be even longer. It also cant do the compact framework (yet) so mobile .Net is out of the question still.

      #2 VCL is NOT on 'virtually all other platforms'.
      VCL on Linux? Wrong. If youre thinking of Kylix, CLX is not VCL, Its close, but you cant cross compile. Its Trolltech QT based like KDE, and recent distros wont even load Kylix now that theyre 4 years out of date.
      FreePascal? FCL isnt VCL either. Sure, sysutils is there, but none of the popular widgets are.
      Lazarus? Just a wrapper around freepascal.
      OK, now that linux is out of the way, what other platforms are there? Old Mac: nope. Apple OSX:nope. Solaris:nope. Free/Open/Net/BSD:nope.

      #3 "write once, compile per platform" ? WTF are you thinking? No version of Delphi I have ever used have targeted anything other than the version of windows youre running it on.

      dude, I love Delphi too, but quit spreading lies.

    5. Re:option 3 by kallax · · Score: 1

      Well if his developers had wanted future-proofing they should have used C++ on Linux. The original write-once, compile-anywhere solution. :oP

  40. Die Troll! by Anonymous Coward · · Score: 0

    I love how you were modded as flamebait, but reading the replies shows a distinct lack of flames! Clearly your post is going to cause trouble; it already hasn't!

  41. Re:Agree fully - Riiiight by Baki · · Score: 1

    Since Java is used for almost 100% of new projects (at least in Switzerland in large companies), it can hardly go up any further.

    Now Java/J2EE has replaced any other environment in the last years, obviously it is seen that in some cases there may be better solutions. Not each project is intended to last for 10 years, sometimes you just need some quick and dirty tool or prototype, for which a scripting language might be more appropriate. If it is a little tool with strong emphasis on GUI and office integration, of course .NET comes to mind as well. I have nothing against that. Lateley we have seen the approach that one tool (J2EE) had to be used for any task as forced by centralized architecture departments. Now I think they have seen that this was wrong, and one has to use the right tool for the job. However, for any large and long term project, there still is no real alternative (nor is one needed) for Java.

  42. What I did by Anonymous Coward · · Score: 1, Informative

    I have a web app (about 4.5Mb of raw source) which was ported from .Net 1.1 to .Net 2.0 and SQL 2000 to 2005 at the same time. Process I used:

    Note: I don't use Visual Studio. I develop with Textpad and editors as most porting problems are to do with Visual Studio.

    - Create SVN branch.
    - Move build scripts from Nant to MSbuild
    - Move web forms to new code behind model
    - Build and run unit tests. Fix any incompatibility warnings (mainly System.Configuration.ConfiguraionSettings has been moved to ConfigurationManager)
    - Move nasty collections to Generics and adjust test cases.
    - Build and run unit tests. Success.
    - Alter deployment scripts in MSbuild.
    - Test deploy and run tests
    - Deploy to live.

    IT'S EASY IF YOU BUILD YOUR SOFTWARE TO BE UPGRADED. This is something that most companies do not do.

    Took 6 working days in total with ONE developer.

  43. Why do you need to migrate? by Anonymous Coward · · Score: 0

    I work for a very large bank. We're currently using all 3 flavors of .NET here, and look at applications on a case by case basis for which ones need to be upgraded. First off, do you have an urgent need to migrate from 1.1 to 2.0? Why can't you keep applications on the 1.1 framework? It isn't going anywhere anytime soon. It will be supported for a long time(probably longer then the life of your apps). When it makes sense, we will move our applications to the new framework, but not just to move them. All new development here is being done with the 2.0 framework, however we can get variances to develop for 1.1. Applications that are written in 1.1 and have new business requirements are also analyzed. If the requirement is small, we'll simply continue with 1.1 and make the changes in the 1.1 framework, if the changes are large enough, we'll make the changes and port to 2.0. We have no black and white answer as to what constitues migrating, it's left up to the individual business units to make that decision.

  44. Where have you been? by yoprst · · Score: 1

    2.0 was available (as beta) for sooooo long. Of course, you'll compile your old code, but you won't rewrite it to take advantage of generics / new framework classes...

  45. That's What Microsoft Always Says... by Anonymous Coward · · Score: 0
    about their previous OS/SDE when they're marketing the new one.

    Why can't I publish ASP versus ASP.NET benchmarks? When you sign the EULA on .NET you sign away rights to publish any benchmarks. Microsoft is hiding the reality.

    The real answer is that .NET isn't worth the migration. It's less secure, not significantly faster (and unless you pay attention is not scalable), and more difficult by an order of magnitude to program.

    And Microsoft doesn't use .NET for developing the major applications. When I see Microsoft Office written in .NET I will consider .NET a possible development platform.

  46. Divide Well, Hope to Conquer by ndykman · · Score: 3, Interesting

    One thing I haven't seen discussed here is taking a strategy on which parts to move. This isn't "do it all at once" kind of situation. .Net 1.1 is still there, works, and having .Net 2.0 doesn't break that.

    There's a couple of strategies here. Firstly, you can go for low-hanging fruit. Many of the changes in .Net 2.0 are in things that use ASP, ADO, and so on. So, if you have core frameworks that are based on the core libraries, they probably can be very quickly ported to the new language. The optimum case is a recompile, retest and it's done. So, you can pick the stuff you think will mostly easily move to .Net 2.0, and port that.

    The other approach is to take a risk-aggresive approach. Take the most critical pieces you have (say, like a framework or a library that a lot of apps and so on use) and port those. Concentrate on that effort, because until those ports are done, you most likely can't move forward anyway. Repeat this approach until are well on the .Net 2.0 road. For a really hard-core approach, pick both most critical and hardest to do first.

    Given your large code base, I think it is best to get the old code working first, as tempting as it may be to use all the latest features of .Net 2.0. For example, you really may want to use those spiffy Web Part APIs on your portal, but get your old stuff running first.

    But, the key here is to pick those libraries, applications, etc. and work in stages. I don't think a big-bang migration will work very well here.

  47. Got any MTA code? Prepare for pain by Twon · · Score: 1

    I'm migrating code from 1.1 to 2.0 now that uses legacy MTA COM objects to do a lot of its work, and it's been a colossal pain in the neck. Any event handlers that access form controls now throw exceptions unless they're specifically commanded not to, since the controls aren't thread-safe. It also becomes somewhat harder to debug concurrency issues when one of those zillion Invoke() calls that now litter your code decides to deadlock, since things that weren't waiting to join() other threads now are, and it's out of your hands.

    1. Re:Got any MTA code? Prepare for pain by jauren · · Score: 1

      Any event handlers that access form controls now throw exceptions unless they're specifically commanded not to, since the controls aren't thread-safe.

      It has always been well-documented that you were in undefined behavior land if you tried this, so you can't very well complain now that the system is actually calling you on it. It's trying to _help_ you identify code that has undefined behavior. By just shutting off those exceptions, you're effectively plugging your ears and closing your eyes and saying, "I can't see you! I can't hear you!" while the water rises around you.


      It also becomes somewhat harder to debug concurrency issues when one of those zillion Invoke()
      calls that now litter your code decides to deadlock, since things that weren't waiting to
      join() other threads now are, and it's out of your hands.


      Use BeginInvoke instead of Invoke unless you need synchronous behavior, and if you do need synchronous behavior, are you really sure you should be using separate threads? If your code is littered with Invokes now, then 2.0 wasn't the problem -- you had a bad concurrency design to begin with.

      --
      A foolish inconsistency is not excused by a reference to Emerson.
    2. Re:Got any MTA code? Prepare for pain by Twon · · Score: 1

      You are absolutely correct, and if I were actually designing this system instead of merely struggling to maintain it, things might have been different. I'm certainly not arguing with the library's good intentions -- however, I'm still stuck in the unenviable position of having to work around them. You mention bad concurrency design -- the problem is that there is NO concurrency design. This app would be perfectly happy in a STAThread -- except for a dependency on a MTA COM object that pukes when you try to use it from a STA context. The guy who wrote the COM object is long gone... :(

  48. Why? by mcho · · Score: 1

    Given that this comment is almost 24 hours after the posting and it doesn't trash Micro$oft or take sides in the great Windows vs Linux vs Apple vs Newton vs Software Patent debate, chances are that no one will see this...

    ...but why has no one asked the simple question of "why?"

    Why is there a need to port from .Net v1.1 to v2.0? If you've spent the resources of 300 people over 2 years to develop the first version, why are you going to throw that away and re-write for a newer version of a framework?

    Isn't IT suppose to *save* money through efficiency and productive (etc.) gains? Well, unless your a "consultant" that question wouldn't make sense.

  49. 2 changes from a developer's perspective by gigi · · Score: 1

    1) dozens of additional compile warnings as .NET 1.1 APIs have been marked [Obsolete].
    Makes it harder to find genuine problems.

    2) StackOverflowException: it now kills your app without leaving a stack trace, and it's very difficult to find it. (if you are not the author of the code)

    If you have a test suite, your problems are easy to solve. /g

  50. .NET web forms in 2.0 (was: Re:Test test test) by sh4na · · Score: 1

    Hey, I got rid of web project files as soon as I started using subversion and got in to continuous integration with cruisecontrol.net and nant... It's a stupid idea to have special "web projects" anyway, those are simply class libraries that get created outside what should be a single consolidated solution tree and compile to /bin instead of /bin/debug, and that force vs to load the project by calling the web server, which of course just has to be running when you load the solution. All of it very silly and unnecessary.

    If you want to do a single quick dirty page just to test something, it's useful, but if you're doing a project that includes several class libraries with and without asp.net, just do everything in class libraries and configure the virtual dirs yourself. Much neater and nicer.

    Just for the record, so you won't think I'm running my big mouth without actual experience on this, my latest .net project includes a solution with no less than 30 projects in it, which is no mean feat to mantain, let me tell ya. About 10 of those are web apps, imagine having all of them as "web projects" and loading the solution that for each one, had to go to the webserver to retrieve whatever it needs... or if I need to change virtual paths on the site, oh the pain! Been there, done that, got the tshirt, web projects out the window.

    --
    shana
    ......gone crazy, back soon, leave message
  51. MSDN Cost by Amadodd · · Score: 1

    We've just taken the plunge after having our 2003 subscription lapse. The MSDN versions has changed somewhat, but i think the professional version is ~$2,500 full price. The top Enterprise one goes for $10k. We settled on the enterprise developer version for ~$5k since it had some stuff we wanted. Upgrade prices are 2/3rd of full I think.

    --
    Freedom of speech doesn't come with bandwidth.
  52. imanewb by Anonymous Coward · · Score: 0

    Hi, im a 2nd year undergrad computer science student.

    I hear that java is all the rage, and ms is evil. I dont understand what the cli is or what a runtime is, but

    its your own fault for using ms products you useless tool!

    use java because sun microsystems are really 'sticking it to the man'...

    why not just use some php and javascript for your big enterprise apps? framework? i need no stinking framework!

    angst >> wisdom, any day lol

  53. Re:Microsoft have papers on this by poopdeville · · Score: 1
    --
    After all, I am strangely colored.