>
 Friday, August 19, 2005
« Indigo/Avalon Redistributables | Main | Stored Procedure Naming Conventions »

Hi everyone, long time no blog eh? Been out of town almost entirely, working on Indigo and InfoCard projects/book...and just “super” busy. But, although I should be working right now...I just read this article by Calvin Austin entitled “Is the C# Party Over?” http://jdj.sys-con.com/read/11774.htm

This really makes me want to think about what has happened with .NET through these past few years. What has it done for my clients? What has it done for me? Is the momentum still behind it?

Ok, but when I blog, I blog...and this is a long one...

The short answer is that I think Calvin is doing what most that are passionate about their respective platforms do: compare and contrast on what you have seen, and draw conclusions that are heavily slanted in your preferred platform’s direction. It’s normal, lots of people do it. I can let it go. But it is worth discussing…to make sure another perspective is heard. Jon Box, a fellow RD (www.microsoft.com/rd) commented here: http://jonbox.dotnetdevelopersjournal.com/c_is_the_party_over.htm

And, Dino Chiesa of Microsoft responded here: http://dotnet.sys-con.com/read/118121.htm

 

Now, here are my thoughts…more of a personal perspective…

 

First of all, let me state that although the majority of my experience is with Microsoft technologies, I did spend 4 solid years in a 100% J2EE environment while I spent “spare” time on the initial .NET release…and since .NET released those roles switched and moved back to my usual full time .NET efforts while working with J2EE (specifically Web services) in my “spare” time…and have made and happily kept many friends in the Java community as a result. I happen to have a lot of respect for both platforms…I think they both have their strengths and weaknesses, and frankly the choice between the two is often one of company investment in talent and existing code base, or simply put “your community preference”. Both are highly capable platforms for scalable server-side systems hosting Web applications and services. Ok, I’ll say it -> service-oriented systems.

Did we need Visual Studio and .NET?

From a personal perspective on the Microsoft front, I used to develop in VB 3.0…6.0, but I ended up using the Win32 API most of the time to do anything really useful, therefore C++, MFC, ATL ended up being where I spent more of my time. There were things about VB I appreciated, like development productivity and UI designers. But I liked the power and low-level control of C++, because I needed it. Moving to C# for me was like a merge of both into one happy package: productivity and power. But on top of it, I felt I acquired the elegance of the Java deployment model, which I had worked with for several years. Therefore, I had it all! I’m not comparing .NET to Java development environments, the latter of which I know have in the past years really come along with productivity-oriented development tools (WebLogic Workshop, Eclipse…) as well…I’m simply stating that I really appreciated what I got with C# and Visual Studio 2002/2003, and I’m sure others that have tried it probably felt the same. I have even had Java friends that moved to C#, and loved it! They couldn’t believe the productivity/power combination. But, to be fair, I have other Java friends that tried it and still prefer Java, and that’s ok too.  Bottom line: We needed .NET (C# as my preference) and Visual Studio.

Are releases too frequent?

Of course my clients, for example, have to talk a lot about their goals, and if it makes sense to develop in 1.1 today, or 2.0 for tomorrow. As with most innovations, Visual Studio 2005 promises to make things even more productive with everything from designers and wizards to refactoring. .NET 2.0 has added many APIs, built-in functionality, low-level capabilities like generics (finally a better STL from my C++ days).  Yes, Microsoft is releasing MORE. Yes, they have to, because it is still a relatively new development paradigm and there is much to do, plus there is a great base to build on now. In particular Microsoft had to address the productivity needs of the VB 6 developer, and add in modern productivity tools from SOA designers to refactoring. They are simply “must haves”.

In 3.5 years we have had 2 releases, with a third one on the way: Visual Studio 2005. It should be no surprise that Visual Studio 2002/.NET Framework 1.0 was followed with a release of Visual Studio 2003/.NET Framework 1.1, to fix some oversights of the initial release. Realize that Visual Studio and the .NET Framework represent major innovations to Microsoft’s previous technologies. It was years in the making, but you would expect a major paradigm shift to come with demands from the community, particularly in the beginning. With 1.0 we had the merge of productive development tools for Windows, Web, Mobile and even database level development and debugging simplified some of the common pains of VB, C++ and ASP developers previously. C# gave C++ developers an elegant new object-oriented language with a common API layer that would be shared with other languages, and a new deployment model that enabled XCOPY deployment and a secure runtime among many other features. C++ developers could migrate their code, work in a more productive UI design environment, and share in the same deployment model. ASP developers could actually debug, and design code that isn’t spaghetti, not to mention richer UI in a fraction of the time. VB developers were offered the power they didn’t have before so that may account for some of the lag in adoption…because Visual Studio 2005 will finally provide the level of Wizard that VB developers were lacking by comparison to the simplicity of VB6.

To compare, there have been 6 releases of the Java specification in 9 or 10 years. The Java open source community has interim releases too, including nightly builds. They do this to provide bug fixes immediately and enhancements that will ultimately lead to a next release. So, you can’t really say Microsoft releases any major update to software faster than the Java community. And, you can’t really say that both sides don’t complain about the change, or issues with compatibility (which I think are frankly easier to manage in .NET because of side-by-side deployment). There was a 1 year lag before 1.1 followed 1.0 with fixes. And now it has been a few years since and 2.0 hasn’t even released yet. I think it just SEEMS like more because in the past few years Microsoft has been more open than ever about their future releases, very very early on.

Bottom line: 2.0 is an appropriate release but we need to be careful not to give the impression that new tools means “migrate everything”. That costs businesses money. You don’t “just migrate”. You decide what is best for your business. 1.1 is a perfectly stable environment to continue working on. I would agree, however, that there is pressure from developers when a new release comes out, to push the company forward, and the productivity gains of moving forward will actually evaluate to the bottom line as well.

Should your business migrate to 2.0?

It is not bad that we have a major release with 2005. But, it means you have to make choices as a business. If you are starting a new project today, do it with 2.0 in my opinion. If you have an application built on 1.1, you need to think a little harder about your goals as a business. Is it worth it to migrate the system or application? Can the business benefit from taking advantage of deployment and security features of ClickOnce? Can you reduce ASP.NET application maintenance overhead with master pages and other new controls and features? This is all up for discussion…but if you want to stay with 1.1, because of costs to the business…that is also an option. Just like there are many Java applications that have stayed with earlier versions for stability and cost containment.

Is deployment platform really an issue anymore?

Calvin made a comment on .NET limiting your choice of deployment platform. I say “who cares?”. Seriously, this is an obvious statement.  We have know from day 1 that Microsoft = Windows. Who cares anymore? We live in a service-oriented time. Many applications, many platforms, many departments, many vendors, many industries are integrating. Large corporations have Unix, Linux, Windows and other systems spread across departments. What they need are ways to communicate with distributed applications. Interoperability with Web services is one way, but there are many many ways to interoperate or expose functionality across platform besides that. We need people to think about the best tool for the best job, and deploy accordingly. If you require only UNIX or Linux boxes…I guess Microsoft will lose that account…but I would ask the question: why does it have to be UNIX or Linux, before making a final decision. And if that’s the way the cookie crumbles…ok then…there are always these choices.

I’m bordering on rambling now, and I really should be writing my book, so suffice it to say I think that Calvin was inaccurate, and a little slanted. I would hate to see people read that without another perspective, and from this blog entry, you can read three other perspectives: from Jon, Dino and me.

Back to Indigo…a “future” release of Microsoft technology that will once again improve our existence J

8/19/2005 8:48 PM What The?  | Comments [31]  |  View reactions  |  Trackback
Wednesday, August 24, 2005 6:06:18 PM (GMT Standard Time, UTC+00:00)
I am still pretty sceptical over architectures built using web service models. I know it is the rave, andI use them now to solve major Java/.NET interop issues. But just getting things to run on a single machine is amazingly challenging. Having an application that needs 15 services running on as many servers located in various locations over the Internet seems pretty "pie in the sky".

I want that to work and we are closer now than ever to realizing it. But building it and maintaining it (living with all the odities that arise daily from that type of solution) are two very different approaches to design :)
Friday, December 07, 2007 12:01:18 AM (GMT Standard Time, UTC+00:00)
xiuy kizcyvap ehlzup cjlgibkam frent bzciep hazto
Friday, December 07, 2007 10:27:31 AM (GMT Standard Time, UTC+00:00)
Very good site. Thanks.




Saturday, January 05, 2008 8:20:34 PM (GMT Standard Time, UTC+00:00)
vdgrteb aqjk drfx kjfsh qgudyln fcwmiyqdo wihzup
Thursday, January 31, 2008 1:47:17 PM (GMT Standard Time, UTC+00:00)
Useful site. Thank you!!
Tuesday, February 12, 2008 10:56:23 AM (GMT Standard Time, UTC+00:00)
Useful site. Thanks!!


Wednesday, February 13, 2008 1:30:43 PM (GMT Standard Time, UTC+00:00)
Useful site. Thanks:-)
Thursday, February 14, 2008 11:01:53 AM (GMT Standard Time, UTC+00:00)
Useful site. Thanks!!
Friday, February 15, 2008 5:26:48 AM (GMT Standard Time, UTC+00:00)
Useful site. Thank you.




Wednesday, February 20, 2008 10:41:26 AM (GMT Standard Time, UTC+00:00)
Useful site. Thank you.




Thursday, February 21, 2008 9:58:29 AM (GMT Standard Time, UTC+00:00)
Useful site. Thank you!!


Friday, February 22, 2008 2:21:13 PM (GMT Standard Time, UTC+00:00)
Useful site. Thanks!!!




Thursday, February 28, 2008 12:06:53 AM (GMT Standard Time, UTC+00:00)
Useful site. Thank you!!









Friday, February 29, 2008 2:48:54 PM (GMT Standard Time, UTC+00:00)
Useful site. Thanks:-)




Friday, March 07, 2008 11:10:09 AM (GMT Standard Time, UTC+00:00)
Useful site. Thank you!!!




Saturday, March 08, 2008 5:03:56 AM (GMT Standard Time, UTC+00:00)
Useful site. Thank you!!!

Saturday, March 08, 2008 5:05:02 AM (GMT Standard Time, UTC+00:00)
Useful site. Thank you!!!

Sunday, March 09, 2008 12:28:06 AM (GMT Standard Time, UTC+00:00)
Useful site. Thanks!!!




Sunday, March 09, 2008 1:45:39 AM (GMT Standard Time, UTC+00:00)
Useful site. Thank you!!!




Sunday, March 09, 2008 1:45:40 AM (GMT Standard Time, UTC+00:00)
Useful site. Thank you!!!




Tuesday, March 18, 2008 7:56:37 AM (GMT Standard Time, UTC+00:00)
Useful site. Thank you!!!
Thursday, March 20, 2008 6:52:50 AM (GMT Standard Time, UTC+00:00)
Useful site. Thank you!!
Saturday, March 22, 2008 9:38:42 AM (GMT Standard Time, UTC+00:00)
Useful site. Thank you!
Sunday, March 30, 2008 7:59:28 AM (GMT Standard Time, UTC+00:00)
Useful site. Thanks!

Thursday, April 10, 2008 11:53:29 AM (GMT Standard Time, UTC+00:00)
Useful site. Thank you.
Monday, April 14, 2008 11:10:59 AM (GMT Standard Time, UTC+00:00)
Useful site. Thanks!!!
Friday, April 18, 2008 7:33:27 PM (GMT Standard Time, UTC+00:00)
Useful site. Thank you!!









Friday, July 18, 2008 3:04:00 PM (GMT Standard Time, UTC+00:00)
Cool site. Thank you!!!



















Friday, July 18, 2008 3:04:12 PM (GMT Standard Time, UTC+00:00)
Cool site. Thank you!!!



















Friday, July 18, 2008 6:49:53 PM (GMT Standard Time, UTC+00:00)
Cool site. Thank you!!!



















Thursday, August 07, 2008 10:02:03 PM (GMT Standard Time, UTC+00:00)
Very good site. Thank you!



















Name
E-mail
(will show your gravatar icon)
Home page

Comment (HTML not allowed)  

    ON THIS PAGE
    SEARCH
    CATEGORIES
    ARCHIVES
    BLOGROLL

Designed by NUKEATION STUDIOS