| By .NETDJ News Desk | Article Rating: |
|
| September 11, 2003 01:42 PM EDT | Reads: |
15,630 |
Scott Hanselman's article on "The Myth of .NET Purity" (articlenews.cfm?id=356) struck a chord (with even .NETDJ editor-in-chief Derek Ferguson jumping into the discussion).
Why the Myth Exists at All...
I think this article is right on, but felt that we should
confront the issue of why this kind of rebuttal is needed (and it is
needed). We find people who are earnest only in so far as they can
justify their existence. Therefore they brand something heresy as
soon as they abandon the practice themselves. Let's assume that COM
interop was a horrible waste of resources; it still wouldn't justify
discarding in such a wholesale manner a tool and the wealth of
existing functionality the last generation always holds. I have heard
people in ASP circles a while back declare that "session state is
bad." Like hybrid applications, session state in ASP is a tool; use
it or don't use it, but if you happen to need a hammer it doesn't
make the saw evil.
Posted by Patrick Hynds on Jul 17 @ 10:16 PM
But "Wrapping" Can Still Get Out of Hand!
I would never suggest that COM Interop should be gotten rid
of or is in any way, shape, or form "evil." However, as a developer
who spends more than 90% of my coding time working with the
System.DirectoryServices and System.Management namespaces, let me
tell you - MS could have saved developers a lot of grief by having
written some managed protocol handlers here, rather than just
wrapping up the old, troubled APIs.
As one example of this, the DirectoryEntry class in System.DirectoryServices allows you to pass a username and password to its constructor. However, when you use the WinNT ADSI provider, these parameters are sometimes ignored. Why is this? Because of a limitation in the existing APIs that were wrapped!
Similar problems abound in the System.Management namespace - where I recently managed to prove that Impersonation (a native API) interacts differently with EnablePrivileges (a wrapped API) under ASP.NET than it does under the Console. In working through this with MS, I have been passed around to 10 different people in their support infrastructure. Why? Because the old, obscure APIs that have been wrapped are a "dark art" known only to a few individuals within the Redmond infrastructure.
Once again: it would've been better to have recreated the
whole thing in C#.
Posted by Derek Ferguson on Jul 18 @ 10:12 AM
Practicality Is What Matters Most
There is a lot to be said for purity for purity's sake? I
have never subscribed to this type of thinking. At the end of the day
we all want to build dependable software that solves the business
problem at hand. Everything should always be taken in the context of
a solution with a sense of practicality. I think most of the software
development community has this maturity.
Posted by Dean Guida on Jul 25 @ 04:00 PM
Your Comments on system.directory Are Interesting
Your comments on system.directory are interesting. ADSI is
simply a com wrapper, so technically it's a "wrapped wrapper" of the
native LDAP API, which of course is C++ only. That being said, the
directory entry class you are referring to is a "wrapped, wrapped
wrapper." Ultimately, the big disappointment of the .NET Framework
1.1 and the hope for 2.0 is more native framework classes.
Posted by Tim Huckaby on Jul 25 @ 07:07 PM
Send us your feedback. Letters may be edited for length and clarity. Please provide full name, location, and, if applicable, title and company.
Published September 11, 2003 Reads 15,630
Copyright © 2003 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By .NETDJ News Desk
.NETDJ News Desk monitors Microsoft .NET and its related technologies, including Silverlight, to present IT professionals with news, updates on technology advances, business trends, new products and standards, and insight.
- Cloud People: A Who's Who of Cloud Computing
- Cloud Expo New York: Delivering Digital Marketing on the Cloud
- AWS Going into a New Line of Work
- Session Topics: 12th Cloud Expo / Cloud Expo New York
- Five Big Data Features in SQL Server
- How Bon-Ton Stores Align Business Goals with IT Requirements
- Cloud Conversations: AWS EBS, Glacier and S3 Overview | Part 2 S3
- Amazon Cuts Prices on S3
- Cloud Conversations: AWS EBS, Glacier and S3 Overview | Part 3
- Google Submits Concessions to EC; Gets Sued in the UK
- Compuware Signs New APM Partnership
- Component Models in Java | Part 1
- Cloud People: A Who's Who of Cloud Computing
- Software Defined Networking – A Paradigm Shift
- Cloud Expo New York: Delivering Digital Marketing on the Cloud
- AWS Going into a New Line of Work
- Session Topics: 12th Cloud Expo / Cloud Expo New York
- Help Desk Solution Empowers Employees
- Five Steps Toward Achieving Better Compliance with Identity Analytics
- Five Big Data Features in SQL Server
- Development Testing for Java Applications
- Big Data Is Not Just About Marketing: Don’t Forget the IT Department’s Needs
- How Bon-Ton Stores Align Business Goals with IT Requirements
- A Cloud-Based Testing Tool for the Budget-Minded
- Where Are RIA Technologies Headed in 2008?
- Processing XML with C# and .NET
- AJAX World RIA Conference & Expo Kicks Off in New York City
- JSON vs XML - A Jason vs Freddie Sequel
- The Top 250 Players in the Cloud Computing Ecosystem
- Has the Technology Bounceback Begun?
- BPEL Processes and Human Workflow
- i-Technology Viewpoint: The Very Confused World of 3D and XML
- Generating XML from Relational Database Tables
- "HP's Problem Ain't the SAP Install," Says Sun's Schwartz
- Open Source Database Special Feature: An Introduction to Berkeley DB XML
- eXist - An Introduction To Open Source Native XML Database


























