Microsoft WebsiteSpark Now Negates The Cost For Web Devs and Designers

by Jon Davis 26. September 2009 18:52

A couple weeks ago I posted a blog entry ("Is The Microsoft Stack Really More Expensive?") describing the financial barrier to entry for building software--particularly web apps--on the Microsoft platform. The conclusion was that the cost is likely to be nil if you're a) willing to settle for the Express products and everything else bundled in the Microsoft Web Platform Installer (which includes a slew of open source ASP.NET and PHP web apps to start you off), b) starting a software company, c) a student, or d) an employee of a company willing to foot the bill for an MSDN license (to you personally, not to your team).

Well, Microsoft just created yet another program, for those of you who are e) building or designing web sites. (Sweeeeet!!) For a $100 offing fee (a fee that you pay when your license ends, rather than when it begins) you get Windows Web Server 2008 R2, SQL Server 2008 Web Edition, Visual Studio 2008 Professional Edition, and Expression Studio 3.

Not bad! Although, your license ends in three (3) years (same as BizSpark).

Link: Microsoft WebsiteSpark

Microsoft: Please use and retain static documentation URLs!

by Jon Davis 2. December 2008 20:03

Microsoft needs to learn how to use their handy dandy URL routing know-how and, for Pete's sake, KEEP TECHNICAL DOCUMENTATION ONLINE at a static URL where it will never move. Said URL should be organized logically where it it will never be meaningless, rather than a codified flavor-of-the-day database/CMS URL.

Bad: http://msdn.microsoft.com/en-us/ms123402.aspx

Good: http://msdn.microsoft.com/en-us/netframework/2.0/breakingchanges/  (redirects to or proxies the "Bad" URL)

I spent several minutes trying to track down the .NET 2.0 Breaking Changes documentation. Microsoft's 404 page didn't even bother to give me any best-guess assistance, it just said, "We're sorry, but the page you requested could not be found. Please check your typing and try again, or use the search options on this page." Sorry? You're sorry?! This was a very important document and only three or four years have passed, and you're "sorry"? You're not sorry. You're lazy. If this didn't happen so regularly I wouldn't mind so much but it seems like anything older than a couple years gets treated this way.

It is not enough if documentation stays online, guys; the URL matters equally, because it's the URL that blogs, forums, and articles reference in everyday online business. You need to name your URLs more carefully than you name the titles of your documents, and keep them forever. 50 years from now I expect the same data to be at the same URL, period.

By the way, the corrected URL for .NET Framework 2.0's Breaking Changes list is: http://msdn.microsoft.com/en-us/netframework/aa570326.aspx. We'll just see how long this one lasts. *sigh*  I'd be tempted to spider it but there's an MSDN Library CD/DVD lying around here somewhere...

 

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , ,

Peeves

jQuery Has Won The 3+ Year Javascript Framework Battle (As Far As I'm Concerned)

by Jon Davis 28. September 2008 15:33

It's official. jQuery has become the new de facto standard for the web development community. By rolling jQuery in with Visual Studio and the ASP.NET core tools pipeline, a whole new precedent has been set in the software industry.

jQuery was already supported in many major IDEs, including Aptana Studio (which is built on Eclipse), but usually only sharing with other frameworks like prototype. But there are two IDEs that have pretty much ruled the software industry for the last several years: Visual Studio and Eclipse. Neither one has chosen any particular "favorite" Javascript open source framework. You usually get a bundle of different frameworks being supported or nothing at all (import something yourself or roll your own).

But Microsoft's decision to adopt a third party software framework, bundle it, and make it a foundational component of its own, is an earth-shaking paradigm shift. This is something that will turn the software industry on its head. There is a whole industry carved out from the trenches that Microsoft dug. Giving a third party framework the honor of being placed into the middle of it all and running half the show, so to speak, is absolutely breathtaking, a moment to be awed. Right now everyone should take a moment and let their mouths gape because this is just short of bizzare.

And I mean that with no pretentions. I'm not saying that "this is unlike Microsoft", although it is, because there really is no precedent for this. The only precedents I can think of have been support for open standards--support for HTML (Internet Explorer), HTTP, FTP (bundled in Explorer), the TCP/IP stack, OpenGL, keyboard/mouse standardization, compact disc file system support, and standard driver support. But all of those things have traditionally always had, with very few exceptions, a proprietary implementation of software of Microsoft's own making or bought out. Most of the exceptions come from third parties such as Intel, who licensed technology, which is not the same as bundling open source code.

jQuery is licensed on the MIT license. Microsoft will be a "normal" participant with the jQuery community just like anyone else; they will introduce ideas, report bugs, and propose bug fixes, but they will go through a QA and approval process just like everyone else.

The closest thing I can think of that even remotely equates to Microsoft getting this involved with and supporting of outsiders in the web community was back in the late 90s, when Microsoft got very involved with the W3C and helped shape the directions of Dynamic HTML and the DOM, not to mention their extensive involvement with the XML and then SOAP initiatives and the insanely detailed UDDI [dis]proving that followed. But once again, those are standards / protocols, not code. So even though Microsoft has done amazing shifts in supporting the open source communities with CodePlex (bravo!), I'm curious if this really is the first time, ever, that Microsoft has done this on behalf of their proprietary development platforms (Visual Studio, ASP.NET).

On a final note, I must say that I absolutely adore jQuery and what it does for web development. jQuery working with Microsoft's ASP.NET MVC and C# 3.0 w/ LINQ are all a match made in heaven. Knowing that Microsoft is going to build on top of jQuery is almost like getting a wonderful new programming language akin to C#, but built for the web. So really, my day just went from being depressed from the last week to being literally overjoyed like I just got engaged to marry someone or something.

How My Microsoft Loyalty Is Degrading

by Jon Davis 7. June 2008 16:59

I've sat in this seat and often pronounced my discontent with Microsoft or a Microsoft technology, while still proclaiming myself to be a Microsoft enthusiast. Co-workers have often called me a Microsoft or Windows bigot. People would even give me written job recommedations pronouncing me as "one who particularly knows and understands Microsoft technologies".

But lately over the last year or two I've been suffering from malcontent, and I've lost that Microsoft spirit. I'm trying to figure out why. What went wrong? What happened?

Maybe it was Microsoft's selection of Ray Ozzie as the new Chief Software Architect. Groove (which was Ozzie's legacy) was a curious beast, but surely not a multi-billion-dollar revenue product, at best it was a network-based software experiment. Groove's migration to Microsoft under the Office umbrella would have been a lot more exciting if only it was quickly adopted into the MSDN vision and immediately given expansive and rich MSDN treatment, which it was not. Instead, it was gradually rolled in, and legacy SDK support just sort of tagged along or else "fell off" in the transition. Groove was brought in as an afterthought, not as a premier new Microsoft offering. Groove could have become the new Outlook, a rich, do-it-all software platform that brought consolidation of the team workflows and data across teams and diperate working groups, but instead it became just a simple little "IM client on steroids and then some" and I quickly abandoned it as soon as I discovered that key features such as directory sharing weren't supported on 64-bit Windows. So to bring Ozzie in and have him sit in that chair, and then have that kind of treatment of Ozzie's own Groove--Groove being only an example but an important, symbolic one--really makes me think that Microsoft doesn't know what on earth it's doing!! Even I could have sat in that chair and had a better, broader sense of software operations and retainment of vision, not that I'm jealous or would have pursued that chair. The day I heard Ozzie was selected, I immediately moaned, "Oh no, Microsoft is stuck on the network / Internet bandwagon, and has forgotten their roots, the core software platforms business!!" The whole fuzzy mesh thing that Microsoft is about to push is a really obvious example of where Microsoft is going as a result of bringing in Ozzie, and I hardly find a network mesh compelling as a software platform when non-Microsoft alternatives can so easily and readily exist.

Maybe it's Microsoft's audacity to abandon their legacies in their toolsets, such as they have done with COM and with VB6. There still remains zero support for easily building COM objects using the Visual Studio toolsets, and I will continue to grumble about this until an alternative component technology is supported by Microsoft that is native to the metal (or until I manage to get comfortable with C/C++ linked libraries, which is a skill I still have to develop 100% during my spare time, which is a real drag when there is no accountability or team support). I'm still floored by how fast Microsoft abandoned DNA for .NET -- I can completely, 100% understand it, DNA reached its limits and needed a rewrite / rethink from the bottom up, but the swappage of strategies is still a precedent that leaves me with a bad taste in my mouth. I want my personal investments in software discovery to be worth something. I'm also discouraged--the literal sense of the word, I'm losing courage and confidence--by the drastic, even if necessary, evolutionary changes Microsoft keeps doing to its supported languages. C# 2 (with stuff like generics support) is nothing like C# 1, and C# 3 (with var and LINQ) is nothing like C# 2. Now C# 4 is being researched and developed, with new support for dynamic language interop (basically, weak typing), which is as exciting as LINQ was, but I have yet to adopt even LINQ, and getting LINQ support in CLR object graphs is a notorious nightmare, not that I would know but everyone who tries it is pronouncing it as horrible and massive. Come to think of it, it's Microsoft's interop strategy that has been very frustrating. COM is not Remoting, and Remoting is not WCF. WCF isn't even supported in Mono, and so for high performance, small overhead interprocess communications, what's the best strategy really? I could use WCF today but what if WCF is gone and forgotten in five years?

Maybe it's the fact that I don't have time to browse the blogs of Microsoft's developer staff. They have a lot of folks over there, and while it's pretty tempting to complain that Microsoft "codes silently in a box", the truth is that there are some pretty good blogs being published from Microsofties, such as "If broken it is, fix it you should", albeit half of which I don't even understand without staring at it for a very long time. Incidentally, ScottGu does a really good job of "summing up" all the goings on, so thumbs-up on that one.

I think a lot of my abandonment of loyalty to Microsoft has to do with the sincerity of my open complaint about Internet Explorer, how it is the most visible and therefore most important development platform coming from Redmond but so behind-the-times and non-innovative versus the hard work that the Webkit and Mozilla teams are putting their blood, sweat, and tears over, that things like this [http://digg.com/tech_news/Time_breakdown_of_modern_web_design_PICTURE] get posted on my wall at the office, cheerily.

Perhaps it's the over-extended yet limited branding Microsoft did with Vista, making things like this [http://reviews.cnet.com/8301-13549_7-9947498-30.html] actually make me nearly shed a tear or two over what Windows branding has become. That Windows Energy background look looks neat, but it's also very forthright and "timestamped", kind of like how disco in the 70's and synth-pop in the 80's were "timestamped", they sounded neat in their day but quickly became difficult to listen to. That's what happens with too strong of an artistic statement. Incidentally, Apple's Aqua interface is also "timestamped", but at least it's not defaulting with a strong artistic statement plastered all over the entire screen. I like the Vista taskbar, but what's up with the strict black, why can't that or other visual aspects be tweaked? At least it's mostly-neutral (who wants a bright blue or yellow taskbar?), but it's still just a bit imposing IMO.

I'll bet it has to do with the horrifying use of a virtualized Program Files directory in Windows Server 2008 where the practice was unannounced. This is the sort of practice that makes it VERY difficult to trust Microsoft Windows going forward at all. If Windows is going to put things in places that are different from where I as a user told them to be placed, then we have a behavioral disconnect--software should exist to serve me and do as I command, not to protect me from myself while deceiving me.

At the end of it all, I think my degrading sense of loyalty could just be the simple fact that I really am trying to spread out and discover and appreciate what the other players are doing. I mentioned before that Mac OS X is still the ultimate, uber OS, but now that I have it, I confess, I had no idea. Steve Jobs is brilliant, and it's also profound how much of OS X is open source, basically all of the UNIXy bits, which says a lot about OSS. Mind you, parts of the Mac I genuinely do not like and have never liked, such as the single menubar, which violates very key and important rules for UI design. I also generally find it difficult to manage multiple applications running at once, for which I much prefer the Windows taskbar over the Dock if only because it's more predictable, and although it violates UI principles I prefer Alt+Tab for all windows rather than Command+Tab just for applications because every window is its own "workflow" regardless of who owns it. But, among other things, building on PostScript for rendering, for example, was a fantastic idea; on the other hand, Microsoft's ClearType would have been difficult to achieve if Windows used PostScript for rendering. Anyway, meanwhile, learning and exposing myself to UNIX/Linux based software is good for me as a growing software developer, and impossible to cleanly discover in Windows-land without using virtual machines.

In other words, the only way one can spread out and discover the non-Microsoft ways of doing things, and appreciate the process of doing so, is to stop swearing by the Microsoft way to begin with, and approach the whole thing with an open mind. In the end, the Microsoft way may still prove to be the best, but elimination of bias (on both sides) is an ideal goal to be achieved before pursuing long-term personal growth in software.

Currently rated 3.9 by 10 people

  • Currently 3.9/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

General Technology | Operating Systems | Software Development | Microsoft Windows | Mac OS X

Trying To Get My Head In The Clouds ...

by Jon Davis 29. April 2008 05:59

Just when I was about to get super excited about the next New ThingTM from Microsoft, which is the big new Mesh initiative ..

http://www.mesh.com/

.. suddenly the Aptana team (creator of the Aptana Studio IDE, the best open source IDE for Javascript development, and creator of Jaxer, the first AJAX server) pulls another magic trick out of its hat and blows me away again!!

http://www.eweek.com/c/a/Application-Development/Aptana-to-Launch-Cloud-Platform/

What's intriguing is that about a year or so ago I was blogging about some distributed-database-over-the-web mesh ideas that I had, that no one except a couple people talked to me about to comment on my ideas. I set up a wiki at http://www.distributeddb.net/ (down) (.. it's back up). Frankly, it fulfilled at a technical level exactly what Microsoft is trying to achieve. But while I knew I was on the right track as to where things could go and will inevitably be going, I pulled the plug on the initiative and retracted my blog posts and wiki (but it's back up now) because, frankly, I was ashamed of my lack of qualifications. I open up distributed database theory books and cannot get past the first sentence or two, they are beyond my comprehension skills.

With regard to this mesh / cloud stuff, though, I'm just really glad that I was on the right track, even if I couldn't lay claim to fame on the ideas, try as I might have considered.

UPDATE: No.. no, no, no ..... I misunderstood what Microsoft's mesh was all about. I picked up from the MIX stuff, from articles such as I think one was in SD Times, and from blog posts, that Microsoft's mesh was about web developers. But now that they've given me an "invite", I only see the ability to connect devices, such as a PC and, later, a Mac or a mobile phone to the mesh, so that you can put files out on your own personal mesh. And I can't even use the "device" installer on my PC because it doesn't allow itself to be run in a Windows Vista environment where UAC is turned off.

I don't get it. Not what I had in mind after all. Besides, if I wanted Internet-accessible file storage, I have my choice of Groove or Subversion (the latter of which, by the way, is more handy and usable for synchronizing my files between home and than FTP or anything else I've used).

So, um, nevermind what I said about distributed databases ( ?? ) .. garbage analogy, nothing to do with this.

Currently rated 1.2 by 6 people

  • Currently 1.166667/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , , , ,

Computers and Internet | Distributed Database | Web Development

Addendum 1 to Lists Of Microsoft's Fame And Shame - 2008

by Jon Davis 19. April 2008 10:27

After posting my blog article, "Lists of Microsoft's Fame and Shame - 2008", I knew going in that there were some things I was going to miss, on both sides (fame and shame).

There's one thing that I'm a little disgusted with myself for forgetting, and that is:

Shame:

  • SVN (Subversion)
    • Nothing makes it seem to the software community more so than SVN that Microsoft "knows" software from only the confines of their own innovations and culture. On this technology alone, it sometimes seems like they live in a box and engineer in a cave.
    • Visual Source Safe is not version control. It's change control. The difference is as much cultural as it is functional; think a bunch of productive engineers in an agile group ("update", "OK, merged"), versus a bunch of wedgie-suffering tightwads in a red tape overwhelmed corporation ("can you please check that in so I can edit some of the code?")
    • I tried and failed to install Team Foundation Server three times and never got it right. The list of steps is a full page long, and each step takes several minutes of installing stuff -- set up Windows, figuring out whether or not to set up Active Directory, set up SQL Server Std. (not any version but Standard!), set up Windows SharePoint (don't confuse it with Office SharePoint! Don't confuse the version number!), optionally configure SharePonit for Active Directory, etc., etc. In the end, I always had something up and running, but when I would go load the SharePoint intance up in a web browser it would give me some stupid IIS error. Was I not supposed to hit it with a web browser? I don't know; the Help file didn't say.
    • I don't consider mysef a genius, and I don't consider myself a moron either. I consider myself having slightly-better-than-average intelligence. I think my I.Q. was measured 115 when I was a kid, whoopty doo. But I can set up SVN server and SVN client (w/ TortoiseSVN) without a lot of effort, as well as a few free issue tracking web sites like Gemini. I don't have Visual Studio integration (but you can use Ankh or Visual SVN), but I do have version control and a tracking system.
    • This blog post is very telling of the whole cultural situation over there in Washington.

Currently rated 1.3 by 3 people

  • Currently 1.333333/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , , ,

Lists Of Microsoft's Fame And Shame - 2008

by Jon Davis 5. April 2008 20:44

Since everyone loves to pick on Microsoft, I think we can summarize exactly what has caused such a commotion among technology enthusiasts. The areas where Microsoft has been given most reputational grief have been where the bar was raised higher by a third party, or else where a third party has made people scratch their heads and wonder, "Why am I using Microsoft's technology, anyway?" So I'd like to suggest a list of technologies that shame Microsoft.

To Microsoft's Fame

Before I get started, I want to point out the areas that Microsoft has excelled in:

  1. Microsoft Word & Microsoft Outlook
    • Word processing has become a staple of the computing world. Apart from web browsing and e-mail, the word processor is the next most important and relevant "killer app" of computing technology. Microsoft Word continues to astound us with major new features with every release. It has evolved in sophistication regularly. It is not without its quirks -- for example, there's nothing more annoying than running out of callout diagram graphics due to fixed memory allocation -- but Microsoft has consistently tried to keep Word up-to-date with the demands of its users, and no other word processor can compare with its overall user experience.
    • Microsoft Outlook might feel a little sluggish for some, and I still resent the fact that Microsoft never implemented NNTP support within Microsoft Outlook, but it is still the ultimate app for the office. Maintaining e-mails, calendaring, and task lists in one application, it is always the first app to run when I get in at work, and the last app to close, if I ever close it. And it gets the most attention every day.
      • Microsoft Outlook's greatest area for growth is project management support. Outlook would be a natural environment for managing projects. If the communications and collaboration environment that Outlook already is was consolidated with issue tracking, resource allocation (perhaps merge with MS Project), and even basic SCRUM, professionals would be flocking to the platform all over again. There's always Sharepoint for team collaboration, but Outlook being a desktop application with tuned responsiveness, it blows any AJAX web application out of the water (and please don't even think Silverlight, with its lack of OLE integration, limited [or no] drag-and-drop, limited contextual menu support, and no windowing support). I think Microsoft has regularly missed opportunities to make Outlook the ultimate "portal" for all things related to collaboration.
  2. Visual Studio, .NET, and C# - http://msdn.microsoft.com/
    • A few years ago I sent a big gripe e-mail to one of Apple's feedback e-mail addresses. It said something along the lines of, "You guys just don't get it. There's a really good reason why more apps are written for Windows rather than for the Mac, and it isn't because Windows is superior. It's because Microsoft pours boatloads of its money into developer support. The MSDN program is probably more important for Microsoft than Windows itself. The return on investment that Microsoft gets with all of its investments with development tools is a no-brainer. If you guys would establish a 'developer network', provide refined developer tools, and make being a Mac developer one of the most exciting and rewarding things about your technology, people would be flocking to your platform." I still believe that this is true. Ironically, a few months after that e-mail there was a huge developer tools push by Apple. Heh..
    • Visual Studio and the core Microsoft SDKs blow all of the competitors, even the latest and greatest iterations of IDEs like Eclipse and NetBeans, completely out of the water. Don't get me wrong, I love what I see in focused IDEs like Aptana. But as a do-it-all toolset, Visual Studio 2008 is just insane. I actually don't think there's anything, except for easy COM object development (*sob* I still miss VB6), that Visual Studio can't do. C# (which is Microsoft's invention and part of the Visual Studio and MSDN strategies) is an incredibly elegant language, even more so than Java, and that's saying a lot because Java as a language was very nice. Using Visual Studio for web development is also very rewarding; I work with it every day.
      • Microsoft is doing something very right with CodePlex and Microsoft's open source initiatives. However, I think that Microsoft should put the plug back in on their idea that they prototyped during the VS 2005 beta of community-generated libraries directly integrated in a community browser. This is a huge feature of Eclipse and NetBeans alike, and if we could get our third party open source Visual Studio plug-ins and API libraries from a common interface it would be quite ideal for the developer community. Perhaps an open source initiative can be established for this.
    • I'm still not quite sold on WPF because of its bloat, and Silverlight 2 is still pretty painfully stripped-down, but what it does introduce is very, very exciting. Adobe Flash would have easily become a product technology to shame Microsoft, but when it comes to what Silverlight 2 and Blend 2.5 promise and are already delivering in beta form, Microsoft has taken the higher ground. Granted, Flash has the user base. But being a geek, I don't care; I firmly believe that the user base will follow the superior toolset.
      • I think that Microsoft still needs to implement a few things before Silverlight will really become a "killer app" technology platform, keeping in mind that for every Flash-based banner ad or RIA, there is a Flash game being introduced on the web:
        1. Limited windowing support. Please. I want to open a Silverlight window, without opening a web browser window with another isolated Silvelight app. Let me. 
        2. GDI+-esque bitmap manipulation support. For example, we should be able to render to a canvas, buffer to a bitmap, and reuse the bitmap as we like. Let us render pixels. I don't know what kind of installation footprint a rasterization API would introduce, but it seems like it would be pretty light.
        3. WPF-esque 3D support by befriending OpenGL. Please. Every platform supports OGL. EVERY PLATFORM!
    • DirectX is the responsible runtime API for, what, 90% of modern commercial electronic games today? At least, that is certainly accurate of PC games. Direct3D is feature-rich, setting the bar for the programmability of a video card's GPU (using a Shader Model programming API), to say nothing of supporting a complete set of interfaces for generating 2D and 3D scenes with lighting and high resolution textures. XACT offers a complete audio API and toolset, after years of one tool experiment after another for audio and music. DirectX also has networking APIs and input device APIs (flight sticks, gamepads, steering wheels, etc.). All your game engine needs are met with DirectX ... except for the game engine itself. That's where XNA comes in.
    • Direct3D is clearly superior in featureset than OpenGL.
    • DirectX as a suite of APIs specifically targeting Windows is vastly superior to SDL.
    • While I still scratch my head wondering why XNA and WPF are so completely isolated, and that there is neither XAML rendering support in XNA nor XNA features in WPF, I am very impressed with Microsoft's XNA. XNA had a warm welcome to the community in 2007, I feel. But XNA was quickly forgotten by the general developer community by the end of 2007, until XNA Game Studio Express v2.0 was released.
      • Microsoft's XNA strategy has been very thorough, with the Creators Club web site completing the big picture. But what Microsoft still needs to do with XNA to continue to gain and retain amateur game developers and establish the "YouTube For Games" community that it intends to foster is to convince developers to deploy Windows game install packages today, and to feature XNA games on Windows before the roll out XNA games on Xbox Live Marketplace. Microsoft should create a web service driven "XNA Amateur Games Browser" for Windows, now! It should be an optional Windows Update download for Windows Vista Ultimate. Microsoft has really blown it in gaining and retaining amateur game developers' attention on the Microsoft Windows platform. XNA has been a missed opportunity; the technology and toolset are solid, but XNA is till marketed, intentionally or not, as an Xbox technology that requires $99 to participate in, which is tragic. Most game developers would opt for spending that kind of money on such cross-platform technologies as Torque and Unity (http://unity3d.com/). Microsoft XNA needs an InstantAction-like community before it seeks out the Xbox Live Marketplace community.
  3. Windows Server 2008
    • In some ways, Window Server 2008 represents the culmination of all things heavily tested, refined, tuned, and applicable for both simple and complex scenarios and for executing both simple and complex computing applications. It compares quite closely with Mac OS X. Mac OS X, being built on a UNIX foundation, comes straight out of the box with the rich featureset of UNIX network and system tools, to say nothing of its extensibility to support additional UNIX apps that can run naturally and stably on it. But not only does Windows Server 2008 support all of the essentials of an operating system workstation as well as an IT server, it also has a UNIX compatibility subsystem, and on top of that it sets a MUCH higher bar in many areas of server technology that currently other platforms simply do not support. Just browsing the optional features one can install onto Windows Server straight out of the box, suddenly even the beta-quality grab bag of nifty new technologies one can choose in a modern Linux distro is not able to compare, even in features alone.
    • Not long ago, I posted a blog entry indicating that I'd prefer Windows Vista Ultimate SP1 over Windows Server 2008 as a web developer workstation. I think I may have to retract that opinion. Other people have posted performance comparisons of these two operating systems and have found that Windows Server 2008 performs significantly better than Vista SP1. This is very disappointing as I love Vista and was very much looking forward to SP1 picking up he pace to be on par with Windows Server 2008. 
      • I have three workstation-related complaints for Windows Server 2008, based on my watching my co-worker's / buddy's experiences with using it as a workstation:
        1. No sidebar even with Vista experience installed?!
        2. COD 4 BSOD's on Windows Server 2008 on an nVidia Quadro 1500 card that worked fine for me on Windows Server 2003, as well as for me on Vista x86 and on Vista x64. Sup widdat?
        3. What's with that awful addressbar/progressbar locking up Windows Explorer functionality just because the OS is (I guess) indexing system contents?? My buddy couldn't even right-click a folder and view Properties at times because of this stupid indexing lock-up. This went on for a month or so before it apparently went away on its own, we figured it finally managed to index everything, or something. But this one thing kept me from making the switch from Server 2003!! 
  4. IIS 7.0 & WCF
    • IIS is now fully programmable on all parts of a request pipeline, even at the protocol level (IIS is no longer a web server, it is a network application server).
    • Microsoft has taken their experiences of the nightmares that came about with COM/DCOM/COM+, MTS, .NET 1.x Remoting, and ASP.NET Web Services, and made a simple yet pretty complete solution for it all. As long as you code all your software around data contracts, you have WCF-handshakeable, interopable software that can cross most any boundary. Hosted on IIS 7, said software can cross any physical boundary.

To Microsoft's Shame

These things said, here's a list of technologies and third party products where I think Microsoft should be paying closer attention as they bring shame upon Microsoft.

    • When Scott Guthrie came here to Scottsdale (that's where I live) this year, Hamid Shojaee from Axosoft did a little presentation for his company's products, and he used presentation software that kept me blinking in awe. Although judging from the presentation the presentation software he used looked like it was pretty lightweight in features (I found out later it was Keynote for Mac), based on Hamid's presentation Keynote had one thing that made me realize that Microsoft is going about its PowerPoint strategy all wrong. I realized that rock-solid, eye-catching presentations are all about being flicker-free, with full 3D fly-ins and no visible pause between tween frames. I noticed this about Silverlight; when I look at http://www.quiksilver-europe.com/ and hover my mouse over the video player, I see something that Flash can't do, which is look frame-free and flicker-free because its animation engine is time-based, not frame-based. Between WPF and Silverlight, Microsoft already has the technology to support all this. If the next version of PowerPoint is not overhauled to look this smooth, Microsoft should be ashamed of themselves!
  1. Firefox and Webkit (TIE)
    • Once upon a time, Microsoft innovated in the web browser technology market. They introduced a powerful software plug-in model with ActiveX and pushed it out on Internet scale. They invented the fully programmable HTML DOM.
    • Eventually,
      • C# was introduced.
      • Firefox came on the scene.
      • George W. Bush was elected president.
      • Microsoft got complacent about their web browser strategy, and made it official that they would never innovate on the browser again.
    • The effects of Microsoft taking their genius Internet Explorer innovations staff (the Trident team) off of Internet Explorer and onto WPF and Silverlight has taken its toll. As web technology has evolved, Internet Explorer has become the uber-pimple of the computing world. It's the annoying, ugly blemish that people want to pinch and pop but not only won't go away but it's right out there for everyone to see on the face of Windows and you can't get rid of it. It has a slow release schedule, its dev team has been silent towards the community, and it is clearly not a part of Microsoft's MSDN strategy, yet at the same time it is one of the most prominent and heavily used development platforms that runs on Windows. I'm greatly looking forward to IE8, but Microsoft is still playing catch-up with the other browsers.
    • Microsoft has a lot of nerve to suggest that the different meanings of the word standards ("standard as in popularity? standard as in typical? standard as in standards-body documented standard?") are applicable to web technology. If you're going to put yourself out there on the web and interoperate with a platform-agnostic network, to the extent of those agnostic technologies (HTML, XHTML, CSS, Javascript, etc.) there is only one definition of standards, and that is the definition of standards that comes from the international standards bodies, in this case the W3C. Microsoft can do what they want with XAML, VBScript, and ActiveX, but if they're not going to submit to standards bodies on platform-agnostic technologies, they should drop IE and adopt Firefox or WebKit, or else they will risk their users doing as much which in effect would significantly lessen the necessity of Windows (the necessary host operating system of IE).
    • Mozilla, Safari, and Opera leaders are actively leading in innovating on the web standards, like HTML 5, a practice that Microsoft started in the early days of the web, and later abandoned. Microsoft is still not actively participating in these discussions.
    • XPCOM and XPI! Make it so!!
    • Earlier in this blog post I mentioned Windows Server 2008 being most like Mac OS X. But Mac OS X still sets certain standards for the Ultimate Operating System. Granted, Windows Vista and/or Windows Server 2008 is still the OS of choice for practical use because of the rich developer tools that Microsoft offers and because of the extent of third party apps that are available because of it. But Mac OS X still sets the bar for
      1. True "it just works" plug-and-play functionality. I don't know what Apple is doing to make things "just work", but all of the iterations of the Mac have always been rediculously clean and easy to use, for both hardware add-ons and software installations.
      2. Application packaging; Mac apps continue the trend today that they've always had, of getting both Apple apps and third party apps (except MS Office for Mac) all presenting themselves as a nicely packaged, self-contained file, rather than a gajillion DLLs among one or several shell-executable files. Mac users don't use a Start menu because they don't need one.
      3. Platform interopability. Virtualization is not platform interop. Microsoft's UNIX compatibility layer is a step in the right direction, but it isn't enough. Windows is still proprietary Windows; UNIX apps have to be re-compiled to work on the UNIX compatibility layer, and for that one might as well use Cygwin which is far easier and "funner" to use (which isn't saying it's fun). A more appropriate approach might be andLinux.org's.
      4. With Mac OS X's UNIX based core, the rich suite of well-established UNIX applications are at OS X's disposal, including Apache Web Server. Apache in itself is not all that astounding in contrast to IIS, but it is one little tool in a long list of applications that make any non-Windows computer user compelled to stick with the Mac.
      5. The new file browsing features in the latest version of the Mac that put Windows Vista's thumbnail and slide show views to shame are absolutely astounding.
      6. The new video conferencing features in the latest version of the Mac are also astounding. Windows doesn't have anything like that.
    • I've said it before, and I'll say it again: The Start menu on a mobile device is perhaps the suckiest, stupidest design idea ever invented and implemented in mainstream technology. To the same extent, though, the iPhone's multi-touch, naturalistic, responsive interface is perhaps the greatest interface design ever conceived and implemented in mainstream technology. The bar has been set about 3 times higher than it was; now Microsoft needs to measure up with its Windows Mobile strategy, and until they do I will never buy a Windows Mobile device, not when there is the iPhone, now with binary SDK available for 3rd party developers. (The 30% commission requirement only ups the quality requirement for the third parties.)
    • Q: What if a different, solid commercial database was built versus Microsoft SQL Server?
      • A: It might be called Oracle, which is butt-ugly and has a cuture of its own full of down-trodden people who don't smile.
    • Q: What if someone open-sourced a complete database server for production web and entrprise apps as free alternative to SQL Server?
      • A: It might be called mySQL, which is feature-incomplete, and until recently lacking in administrative tools worth touching with a ten foot pole.
      • A: It might also be called Firebird, and although it has the maturity timescale and featureset of a complete DB, it also lacks the polish, usability, documentation, and presentation that geeks of today demand. (That or maybe I just don't like their web site.)
    • Q: What if Microsoft built a tiny-scale, .NET-based version of their SQL Server product?
      • A: It would be called SQL Server Compact Edition, and it would suck (meaning, lacking of features and being generally non-innovative)
    • Q: What if someone built a tiny-scale, native database engine that could be used anywhere?
      • A: It would be called SQLite, and although it rocks, it is a half-baked solution with no associated administration tools or C# managed API hooks in its core implementation.
    • Q: So what if someone built a Microsoft SQL Server look-alike, with decent performance, deep joins, T-SQL transactions, T-SQL sprocs, triggers, and managed assembly plug-ins, all in managed code, and with elegant administration tools, and produced it into a small compiled codebase that can be deployed on anything from medium scale web or enterprise apps to tiny-scale mobile applications?
      • A: It would be called VistaDB, and Microsoft should be astounded, if not absolutely frightened.
    • Every time I see another search indexing technology show up on Windows, I moan. "Index Server". "Office Search". "Microsoft Search". "Desktop Search". "Microsoft Search Server". For goodness sake, come up with and standardize on a solid API already!!
    • Apache Lucene is a blazingly fast text indexing software library. It can be used as a super-fast alternative not only to Google but also SQL Server.
    • Apache Solr, a server implementation around the Lucene search engine, is to search technology is what, say, early iterations of mySQL might have been to SQL databases. It is a buggy but functional demonstration of a complete and rediculously powerful data indexing and querying engine that can be used with both REST and JSON queries.
    • Microsoft Search Server is just a stupid pre-fab web page, a Googlish front-end to a spidered web site, proof that Microsoft just doesn't get it. Microsoft's indexing strategy is limited to file scanning and reproduction, a la Nutch. Microsoft clearly hasn't figured out how technologies like Lucene can render database engines like SQL Server's Full-Text Indexing obsolete.
  2. jQuery and the tersed Javascript community
    • Where jQuery shames Microsoft is where it also shames some of the other Javascript libraries. jQuery is to Javascript and DOM objects what LINQ is to C# and database objects, XML, and managed objects. It trivializes querying them, collecting them, calling on them, and performing operations on a group of them in one line of execution code (without a for loop).
    • The team that jQuery shames is not the LINQ team, but rather the ASP.NET AJAX team that implemented the Javascript framework. (A nice job they did, by the way, but heck, jQuery shames everybody!) See, Javascript already has a language community and culture, like C# and Java have community and culture. The Javascript community favors terseness and shortcuts by way of minified libraries that do much with little effort. Even in the simplest sense, this might mean short, terse, lower-cased code. Microsoft favors Pascal Casing and long namespaces. They went halfway and shortened the "System" namespace in Javascript to "Sys", but it still uses long, Pascal-Cased namespaces and OO-esque coding style rather than terse functional programming coding style.
    • Part of the terseness and "easy calling" approach pursued by the Javascript community is the simplistic approach of using one-liner databinding of HTML forms to REST URIs. The same community also typically interoperates with an MVC-oriented server architecture like PHPCake or Ruby On Rails. ASP.NET AJAX's approach, meanwhile, is to maintain viewstate and pass everything including the kitchen sink in a slow, klunky ASP.NET page postback lifecycle that could, and should, be cleaned up with a RESTful WCF / MVC AJAX view lifecycle.
    • Any time a corporation makes a commercial product that sells well and is very innovative but is being purchased primarily as a workaround for a failure of Windows or other Microsoft product, it brings awful shame upon Microsoft. In this case, the shame is the failure on Microsoft's part to support unencrypted QAM on Windows Media Center.
  3. Microsoft's own Xbox Live Dashboard / Marketplace -- Hello, Windows Team??
    • No competing technology platform has trivialized the usefulness of Microsoft Windows like Microsoft's own Xbox Live Dashboard and Marketplace. This was a hugely missed opportunity that Microsoft completely overlooked, whereby the rich, consolidated, packaged user experience that is enjoyed on the Xbox 360 could be transferred to the Microsoft Windows platform.
    • Web pages (@live.com) don't cut it. Putting Microsoft Downloads on Silverlight doesn't cut it. You have a rich Presentation Foundation on Windows that could have been used to deploy rich interactive experiences, as well as even rediculous DRM functionality built into Windows Vista, why isn't all of this being featured in Windows Ultimate?!
    • Valve's Steam cuts it for the game side of things, but lacking the WPF wow and full-screen experience that Microsoft could have introduced, and lacking the media purchases and downloads, it isn't enough.
    • Windows Media Center (which, by the way, I do use several hours every single day) would have cut it, if only it natively and more seamlessly supported the same package-extensibility featureset, marketplace integration, and Games category where marketplace demos can be downloaded and played, that are enjoyed on the Xbox.
  4. SVN (added 4/19/2008)
    • Nothing makes it seem to the software community more so than SVN that Microsoft "knows" software from only the confines of their own innovations and culture. On this technology alone, it sometimes seems like they live in a box and engineer in a cave.
    • Visual Source Safe is not version control. It's change control. The difference is as much cultural as it is functional; think a bunch of productive engineers in an agile group ("update", "OK, merged"), versus a bunch of wedgie-suffering tightwads in a red tape overwhelmed corporation ("can you please check that in so I can edit some of the code?")
    • I tried and failed to install Team Foundation Server three times and never got it right. The list of steps is a full page long, and each step takes several minutes of installing stuff -- set up Windows, figuring out whether or not to set up Active Directory, set up SQL Server Std. (not any version but Standard!), set up Windows SharePoint (don't confuse it with Office SharePoint! Don't confuse the version number!), optionally configure SharePonit for Active Directory, etc., etc. In the end, I always had something up and running, but when I would go load the SharePoint intance up in a web browser it would give me some stupid IIS error. Was I not supposed to hit it with a web browser? I don't know; the Help file didn't say.
    • I don't consider mysef a genius, and I don't consider myself a moron either. I consider myself having slightly-better-than-average intelligence. I think my I.Q. was measured 115 when I was a kid, whoopty doo. But I can set up SVN server and SVN client (w/ TortoiseSVN) without a lot of effort, as well as a few free issue tracking web sites like Gemini. I don't have Visual Studio integration (but you can use Ankh or Visual SVN), but I do have version control and a tracking system.
    • This blog post is very telling of the whole cultural situation over there in Washington.

Notice that I didn't mention things like mySQL, Ruby, PHP, Apache Web Server, Flash/Flex, Java, or Ubuntu Linux as key items on the list. All of these, while in some cases being innovative and even heavily used, simply don't match up with the depth of features, usability, and/or stability of those mentioned above. mySQL is a half-baked wannabe, Rail's founder presents himself to supporters having "constructive criticism" with a big "F*** YOU" on the overhead projecter, PHP is at a technical level no more special than ASP Classic using Javascript, Apache now needs to contend with IIS 7, Flash/Flex has been ousted (for its toolset) by Silverlight, Blend, and Visual Studio, Java has been beaten by C# / .NET, Ubuntu is just another Linux distro that wants to mean something special but comes up short (yes, even with Compiz-Fusion). They're good, but not good enough to bring shame upon Microsoft, or else Microsoft has finally managed to catch up, and get a little ahead.

kick it on DotNetKicks.com

Cascading .NET Versioning In The Path

by Jon Davis 16. December 2007 15:21

The .NET Framework v3.0 and v3.5 both broke some versioning rules, and I suppose there was good reason. Version 3.0 was just version 2.0 plus a few new DLLs for WPF, WCF, WF, and CardSpace. But those new technologies were huge, huge enough to give the .NET Framework a new version number. Meanwhile, though, the C# language and .NET Framework 3.5 forked off cosistency again, in a way that was unnecessary, and with double the damage. C# 3.0 runs on .NET 3.5 -- that is way too confusing. C# 3.0 compiles to the .NET 2.0 CLR. That is way too confusing, too. .NET Framework 3.5 builds on top of .NET Framework 3.0 and 2.0. That would make sense, except that v3.0 and v2.0 are sort of seperate entities.

If you open up C:\Windows\Microsoft.NET\Framework, you'll find each of these .NET Framework versions deployed in their own directory..

08/29/2007  12:30 AM    <DIR>          v1.0.3705
08/29/2007  01:01 AM    <DIR>          v1.1.4322
12/15/2007  03:13 PM    <DIR>          v2.0.50727
11/02/2006  08:15 AM    <DIR>          v3.0
11/19/2007  09:49 PM    <DIR>          v3.5
08/28/2007  05:22 PM    <DIR>          VJSharp

Incidentally, notice that v3.0 and v3.5 don't have build numbers, while the others do. Refer back to my rant about inconsistency. (Personally, I never liked the build numbers being there anyway.) Meanwhile, VJSharp is completely unversioned.

Then there are tons of utility files that do not belong in this directory at all, and Microsoft allowed a mess to be made in here:

08/29/2007  05:39 AM    <DIR>          1028
08/29/2007  06:58 AM    <DIR>          1030
08/29/2007  02:57 AM    <DIR>          1031
08/29/2007  03:10 AM    <DIR>          1035
08/29/2007  04:13 AM    <DIR>          1036
08/29/2007  06:05 AM    <DIR>          1040
08/29/2007  03:55 AM    <DIR>          1042
08/29/2007  07:27 AM    <DIR>          1043
08/29/2007  06:31 AM    <DIR>          1044
08/29/2007  05:16 AM    <DIR>          1046
08/29/2007  03:39 AM    <DIR>          1049
08/29/2007  03:23 AM    <DIR>          1053
08/29/2007  04:33 AM    <DIR>          2052
08/29/2007  04:53 AM    <DIR>          3082
11/01/2006  11:33 PM            72,704 NETFXSBS10.exe
02/20/2003  06:44 PM            36,354 NETFXSBS10.hkf
09/18/2006  02:32 PM            41,392 netfxsbs12.hkf
11/19/2007  09:09 PM            16,896 sbscmp10.dll
11/19/2007  09:09 PM            16,896 sbscmp20_mscorwks.dll
11/19/2007  09:09 PM            16,896 sbscmp20_perfcounter.dll
11/01/2006  11:33 PM             5,120 sbs_diasymreader.dll
11/01/2006  11:33 PM             5,120 sbs_iehost.dll
11/01/2006  11:33 PM             5,120 sbs_microsoft.jscript.dll
11/01/2006  11:33 PM             5,632 sbs_microsoft.vsa.vb.codedomprocessor.dll
11/01/2006  11:33 PM             5,120 sbs_mscordbi.dll
11/01/2006  11:33 PM             5,120 sbs_mscorrc.dll
11/01/2006  11:33 PM             5,120 sbs_mscorsec.dll
11/01/2006  11:33 PM             5,120 sbs_system.configuration.install.dll
11/01/2006  11:33 PM             5,120 sbs_system.data.dll
11/01/2006  11:33 PM             5,120 sbs_system.enterpriseservices.dll
11/01/2006  11:33 PM             5,120 sbs_VsaVb7rt.dll
11/01/2006  11:33 PM             5,120 sbs_wminet_utils.dll
11/19/2007  09:09 PM            16,896 SharedReg12.dll

Now we're one step closer to looking like the infamous Windows Registry. Each Microsoft employee or department gets to put his own file or entry wherever he wants, see? I wonder how many Microsoft employees have decided to move their office desks to the middle of the front lobby, besides the nice front desk lady(ies).

Anyway, the reason why I posted here is because, ironically, the .NET Framework does not appear in the PATH for some strange reason. I've always had to manually add "DOTNET", pointing to C:\Windows\Microsoft.NET\Framework\v1.1.4322 or ...\v2.0.50727 to my environment variables, then add %DOTNET% to my PATH. I used this regularly for tools like my own AssemblyLister so I could easily pre-JIT my assemblies for faster boot time (even if the trade-off is slower runtime performance). But this broke with v3.0 and it is still broken in v3.5, because there is no CLR and Framework directory that runs .NET Framework v3.5. .NET Framework v3.5, like v3.0, is just some add-on assemblies to v2.0. But if I were to reference only the v2.0 directory, I would only have the v2.0 framework (plus the GAC, which, fortunately, contains the v3.0 and v3.5 DLL assemblies, but not their utilities).

Fortunately, you can cascade the .NET versions in the PATH. I don't know why I didn't do this a long time ago, but the PATH environment variable, which is a semi-colon delimited list of directories in which to search for files in the file system shell without referencing their complete paths, is already a cascading list. In other words, when searching for a file using the PATH, the first directory listed is scanned first, then the second, and so on.

One thing I like about the .NET Framework versioning that Microsoft claimed that they are committed to when they were working on v2 was that the .NET Framework will try to be forwards-compatible and will always be backwards-compatible to assemblies targeting different versions of the CLR. This means that a v1.1 assembly can be run in a v2.0 CLR, and a v2.0 assembly might be able to run in a v1.1 CLR. In the end, it's just MSIL that the CLR breaks down into machine code at runtime (unless it's pre-JITted).

So as long as you're using an environment (such as cmd.exe or PowerShell) that splits the PATH string into multiple directores, recursively finding more %variables%, and scans them one by one in cascading order, you can effectively use a single environment variable to reference all of your .NET Framework directories at the same time, with the newer .NET Framework files taking priority over the older files. To do this, just add each .NET Framework version, starting with v3.5, then v3.0, then v2, then v1.1 (if v1.1 is installed), into a DOTNET environment variable, and then add %DOTNET% to your path.

  • DOTNET = C:\Windows\Microsoft.NET\Framework\v3.5; C:\Windows\Microsoft.NET\Framework\v3.0; C:\Windows\Microsoft.NET\Framework\v2.0.50727; C:\Windows\Microsoft.NET\Framework\v1.1.4322; C:\Windows\Microsoft.NET\Framework\v1.0.3705
  • PATH (virtually on %PATH%, not literally) = %PATH%;%DOTNET% 

By "virtually on %PATH%, above, all I mean is that you would replace %PATH% with what it already is, then append ";%DOTNET%".

If I wanted to use the 64-bit versions of the .NET Framework, I could do the same, using C:\Windows\Microsft.NET\Framework64\, but meanwhile also adding the x86 paths for compatibility.

  • DOTNETX64 =
     
    C:\Windows\Microsoft.NET\Framework64\v3.5; C:\Windows\Microsoft.NET\Framework64\v3.0; C:\Windows\Microsoft.NET\Framework64\v2.0.50727; C:\Windows\Microsoft.NET\Framework\v3.5; C:\Windows\Microsoft.NET\Framework\v3.0; C:\Windows\Microsoft.NET\Framework\v2.0.50727; C:\Windows\Microsoft.NET\Framework\v1.1.4322; C:\Windows\Microsoft.NET\Framework\v1.0.3705
     
    - or -

    C:\Windows\Microsoft.NET\Framework64\v3.5; C:\Windows\Microsoft.NET\Framework64\v3.0; C:\Windows\Microsoft.NET\Framework64\v2.0.50727; %DOTNET%
  • PATH = %PATH%;%DOTNETX64%

Unfortunately, though, this brings another issue into the mix. Which one do you want in your PATH, %DOTNET% or %DOTNETX64%? This is an important question. I do ASP.NET development in 32-bit and I debug my apps in explicit x86 CPU build mode (because Visual Studio doesn't let me perform edit-and-continue tasks in 64-bit, which is already the default environment for the "Any CPU" build mode). But without compiling to 64-bit, CLR assemblies can hit the RAM registry space ceiling, quickly running out of RAM (OutOfMemoryException or something similar), and this has happened to me already while building a search engine server based on Lucene.NET.

To be honest, I'm still not sure. I'm going to try using the 64-bit path variable (%DOTNETX64%) for now and see if it brings me any problems. I think Windows is defaulting to that one already. Meanwhile, though, I can still continue to target x86 CPUs in my builds.

So to test this out, I try where in Vista to see the cascading effect. (Note that any time you change the PATH environment variable, or any environment variable(s), you must close the command shell window and restart it before the variables will propogate. They will not propogate into the GUI shell until you log out and log back in.)

C:\Users\Jon>where ngen
C:\Windows\Microsoft.NET\Framework64\v2.0.50727\ngen.exe
C:\Windows\Microsoft.NET\Framework\v2.0.50727\ngen.exe
C:\Windows\Microsoft.NET\Framework\v1.1.4322\ngen.exe

So it seems to work, which is nice.

Meanwhile, I still need an environment variable to single directory for my primary CLR, which contains ngen.exe and csc.exe and other CLR essentials.

  • CLRDIR = C:\Windows\Microsoft.NET\Framework64\v2.0.50727

There's one last change I need to make, though. It might make more sense to change the environment variable %DOTNET% to %NETFXX86%, and then change %DOTNETX64% to %NETFX%. This way, apps that target a %NETFX% environment variable can properly target the environment's complete and CPU-targeted environment rather than just focus solely on x86 compatibility.

So, here's what I have in the end:

  • NETFXX86 =
     
    C:\Windows\Microsoft.NET\Framework\v3.5;
    C:\Windows\Microsoft.NET\Framework\v3.0;
    C:\Windows\Microsoft.NET\Framework\v2.0.50727;
    C:\Windows\Microsoft.NET\Framework\v1.1.4322;
    C:\Windows\Microsoft.NET\Framework\v1.0.3705
      
  • NETFXX64 =
     
    C:\Windows\Microsoft.NET\Framework64\v3.5;
    C:\Windows\Microsoft.NET\Framework64\v3.0;
    C:\Windows\Microsoft.NET\Framework64\v2.0.50727
     
  • NETFX = %NETFXX64%; %NETFXX86%
     
  • DOTNET = %NETFX%
     
  • CLRDIR = C:\Windows\Microsoft.NET\Framework64\v2.0.50727
      
  • PATH =
     
    C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin; %SystemRoot%\system32; %SystemRoot%; %SystemRoot%\System32\Wbem; %SYSTEMROOT%\System32\WindowsPowerShell\v1.0\; C:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\; C:\Program Files (x86)\Microsoft SQL Server\80\Tools\Binn\; C:\Program Files\Microsoft SQL Server\90\DTS\Binn\; C:\Program Files\Microsoft SQL Server\90\Tools\binn\; C:\Program Files (x86)\Microsoft SQL Server\90\DTS\Binn\; C:\Program Files (x86)\Microsoft SQL Server\90\Tools\Binn\VSShell\Common7\IDE\; C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies\; C:\Program Files (x86)\QuickTime\QTSystem\; C:\Program Files (x86)\Common Files\Adobe\AGL; C:\Windows\SUA\common\; C:\Windows\SUA\usr\lib\; C:\Program Files\Microsoft Network Monitor 3\; E:\filez\dev\IronPython-1.1; C:\Program Files (x86)\GnuWin32\bin; C:\ruby\bin; C:\MinGW\bin; C:\cygwin\bin;
    %NETFX%

Now I can use "native" .NET apps like csc.exe or ngen.exe, and have all tools and assemblies on hand, without manually loading the SDK command shell.

I created an EXE to auto-configure this: SetNetFxEnvVars.exe [source] Note that it will require an immediate reboot. Note also that if you're using Internet Explorer, in order to run the EXE you must download it and then unblock it (right-click it, choose Properties, then click Unblock).

kick it on DotNetKicks.com

Currently rated 3.0 by 2 people

  • Currently 3/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , , , , , , , ,

Software Development | Microsoft Windows


 

Powered by BlogEngine.NET 1.4.5.0
Theme by Mads Kristensen

About the author

Jon Davis (aka "stimpy77") has been a programmer, developer, and consultant for web and Windows software solutions professionally since 1997, with experience ranging from OS and hardware support to DHTML programming to IIS/ASP web apps to Java network programming to Visual Basic applications to C# desktop apps.
 
Software in all forms is also his sole hobby, whether playing PC games or tinkering with programming them. "I was playing Defender on the Commodore 64," he reminisces, "when I decided at the age of 12 or so that I want to be a computer programmer when I grow up."

Jon was previously employed as a senior .NET developer at a very well-known Internet services company whom you're more likely than not to have directly done business with. However, this blog and all of jondavis.net have no affiliation with, and are not representative of, his former employer in any way.

Contact Me 


Tag cloud

Calendar

<<  November 2018  >>
MoTuWeThFrSaSu
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

View posts in large calendar