Memi.Reflection

Private members of memi's thoughts
Posted: by

Comments

Matt Cosier said:

Welcome to the blog sir.

Will be interested in reading your topics!

Matthew Cosier
# February 18, 2004 9:38 AM

Memi Lavi said:

What a nice welcome...
I'm already feel at home.
# February 18, 2004 9:46 AM

Bill Evjen said:

This has ALWAYS annoyed me as well. For VB.NET, it should be off by default.
# February 18, 2004 11:48 AM

Dave Rothgery said:

The checkbox shouldn't be there at all. If third-party developers weren't supposed to see a method, it'd be properly scoped so that no one would see it.
# February 18, 2004 12:02 PM

Roy Osherove said:

Great to have another Israeli Blogger join the group!
Welcome :)
# February 18, 2004 12:33 PM

Joe Coder said:

Advanced features are for advanced languages....
# February 18, 2004 12:44 PM

Memi Lavi said:

Ooooo.... Do I smell an upcoming fight between the VB-ers and the C#-ers? Don't we have enough with the .NET-vs-Java fights?
# February 18, 2004 1:11 PM

Memi Lavi said:

Thanks!

Actually, I decided to go on line after reading some great Israeli blogs, like yours and Yossi Taguri's.
# February 18, 2004 1:12 PM

Dave Rothgery said:

I'm not sure (though I've been known to shout VB Now! VB Forever! on a few online fora). It occurs to me that my comment may have been unclear -- I don't even think there should be the option to turn "show advanced members" OFF; if a method/property is in scope, you should always see it in IntelliSense. Setting things up so that some VB.NET users (those who didn't think MS would do something this silly, and so never noticed the "show advanced members" checkbox) don't see some methods/properties is just odd.
# February 18, 2004 1:54 PM

Udi Dahan - The Software Simplist said:

Good to see more Israeli bloggers ! Welcome !

Maybe we're getting close enough to critical mass to have a blogger dinner. What do you think ?
# February 18, 2004 4:51 PM

Roy Osherove said:

Hmm... dinner....
# February 18, 2004 6:27 PM

Roy Osherove said:

Memi: Ignoring the trolls is something we all have to learn :)
# February 18, 2004 6:28 PM

Yura2000 said:

Welcome!

And I've opened my blog at dotnetjunkies after about month and half of waiting to ScottW reply.

Memi, what is your magic? :-))


# February 19, 2004 2:39 AM

Yura2000 said:

Ooops...
Now I have URL too :-))
# February 19, 2004 2:40 AM

Memi Lavi said:

Hi Yuri.

Actually, there was no magic invloved, just a lot of patience. I sent mail to ScottW, which left unanwered. I waited about two weeks, then sent another mail, this time from the company mail with all the bla bla stuff in my signature. This time I was answered in less than 6 hours.
# February 19, 2004 8:01 AM

Roy Osherove said:

I wonder where you learned UI design guidelines? or was it all intuition?
perhaps you could elaborate on some recommended books and articles on the subject?
# February 21, 2004 6:56 PM

Yura2000 said:

HI!
IMO, it may be not a newbie syndrome, but wrong scale of values.
Both newbie and experienced developer may have it.
Newbie becuse time board, "thinking" OO or SOA etc.
Experienced developer - because such job he leaves to low rank programmers( I' not snobby
and don't think this is a right way :-))

# February 22, 2004 2:00 AM

Udi Dahan - The Software Simplist said:

Are you talking about a general "Welcome to .Net" presentation, or something more specific ?
# February 22, 2004 2:35 AM

Francois Verbeeck said:

May I suggest you : www.only4gurus.com ? They have hundreds and hundreds of materials convering .net technologies. Otherwise, you can also search on google and limit yourself with ppt files (ie : http://www.google.com/search?num=100&hl=en&lr=&ie=ISO-8859-1&newwindow=1&as_qdr=all&q=%22asp.net%22+filetype%3Appt). Hope it helps !
# February 22, 2004 2:42 AM

Memi Lavi said:

Udi, I'm talking about some more specific presentations. I already have an excellent ppt which gives overview of the .NET framework.
# February 22, 2004 3:07 AM

Yura2000 said:

Send me your email.
I'll send you few PPTs I have , about Remoting, CodeDom and more subjects.

yurig@clal-ins.co.il
# February 22, 2004 4:28 AM

Memi Lavi said:

Hi Roy.

Actually, I wasn't talking about UI design. I'm not a graphic designer, and not pretend to be one. What I'm talking about is making a system that user can use and understand. To do so, I really didn't read anything. I just changed phase (or disk, in programmer's jargon...) and started to look at the application from the user's eyes. I guess there are some usability gurus out there that would have found much more problem than I did.
# February 22, 2004 7:21 AM

G. Andrew Duthie said:

http://microsoft.sitestream.com/PDC2003/Default.htm

has all of the presentations, including powerpoints, from last year's PDC. Get 'em soon, because that site is only available for a limited time.

There are also a number of the ASP.NET presentations from the PDC available at http://www.asp.net/whidbey/, which should be available at least until such time as the content is out of date.
# February 22, 2004 8:25 AM

Eric Maino said:

Check out http://www.msdnaa.com. There is a ton of great stuff on there.
# February 22, 2004 9:47 AM

Steve Maine said:

True, the Java guys are going to enjoy generics sooner than us .NET folks, but personally I'm glad to wait.

There's been much written about the implementation differences between .NET generics and Java generics. The fact that Java implemented generics without making changes to the underlying VM means that generics will always just be a compiler hack in the Java world.

Yes, we're going to be waiting for generics until Whidbey. The upside is that when we do get them, they will be first-class citizens in the .NET world -- with a highly optimized execution architecture and full reflection support.
# February 22, 2004 3:15 PM

Roy Osherove said:

Yep. Templates rule and suck at the same time ;-)
I'd love to see such an add-in.
# February 23, 2004 4:49 AM

Yura2000 said:

Sure.
I did it once - not the best thing for the spare time :-)
I'd like to get such AddIn.
# February 23, 2004 6:17 AM

Travis Laborde said:

Count me in. I've tried - and failed - to get it working. An AddIn like that would be worth $ to me :)
# February 23, 2004 7:36 AM

Eddie Garmon said:

Creating the templates themselves it very easy. I have made available several base templates here: http://eddie.synapticpop.com/category/3.aspx

But, the real value comes from knowing javascript, and reading and fully understanding the core scripts supplied in the VS.Net environment. That is very hard to automate.
# February 23, 2004 10:27 AM

Kent Tegels said:

Go find the K&R C programming book. That's where I saw them in the trade first. Its an old military phrase for "f'ed up."
# February 24, 2004 8:27 AM

Karl said:

# February 24, 2004 8:33 AM

Ian Cooper said:

Go to http://www.mcs.kent.edu/docs/general/hackersdict/02Entries

and see the entry for 'foo' which has the most comprehensive eytmology for programmer's use of foo and bar in variable names.
# February 24, 2004 8:33 AM

Omer van Kloeten said:

Originates from F.U.B.A.R: [f(ucked) u(p) b(eyond) a(ll) r(ecognition).]
http://dictionary.reference.com/search?q=fubar&r=67
# February 24, 2004 9:00 AM

Memi Lavi said:

Thanks, Ian & Omer. Looks like the links you brought solved this accute problem.

Karl, the link you brought only explains that these vars used in many samples. Well, this I already know...
# February 24, 2004 1:07 PM

Paul Wilson said:

I can't really help on your main issue, but the “designer can't show page inherited from abstract page class” bug is resolvable since its not a bug at all. You simply need to make sure that anytime you refer to something that depends on a context existing, like a querystring, cookie, session, or viewstate, that's in your constructor or public property -- make sure you enclose such things in an if block that first checks if the context is not null. The designer must instantiate your base page and access its public properties, and having any code in them that assumes a runtime context will lead to what you see as a bug.
# February 26, 2004 9:26 AM

Yuri Gorobets said:

Hi Memi,
IMO, you could add the new property , something like IsVisible on the Server Side.
The your customized Visible property always set to true;
Now, in OnPrerender, for instance you'll add the Style "display" attribute according to you IsVisible property: block or none.
I think it will give you complete and independent solution to your problem.
# February 29, 2004 3:18 AM

Memi Lavi said:

Hi.
I thought of this solution, but I don't want to have two "visible" properties on the control. It will lead, somewhere in the future, to confusion and inconsistency. In addition, there will still be a problem if the control "original" visibiliy is set to false by other methods. In this case, the title control will still be visible.
# February 29, 2004 4:53 AM

TrackBack said:

# March 9, 2004 4:33 AM

natty gur said:

Strong point!

although I'm one runners (and it makes me tired) I also think that daily practical approach is also required as main part of Tech Ed.
# March 9, 2004 1:48 PM

Udi Dahan - The Software Simplist said:

I could give you a short in-house session for your team on best practices with the DAAB. You can send me mail at InHouseTraining AT TheSoftwareSimplist NOSPAM DOTcom.
# March 9, 2004 4:07 PM

Memi Lavi said:

Actually, the DAL app block was only an example. What I was trying to say is that we better concentrate on what we have right now than stare wide-eyed at bright new technologies that will be availabe, in the better case, a year from now.
# March 9, 2004 4:19 PM

TrackBack said:

You have been Taken Out! Thanks for the good post.
# March 10, 2004 3:39 PM

Robert McLaws said:

Gotta Disagree with you here. Your argument doesn't hold water. The DataGrid should have already killed these companies then, and they are doing quite well.

Companies that depend on their single Grid component for survival and cannot innovate are better off dead anyways. There are a million new features in the control space in Whidbey that makes it dirt simple to make killer controls. Everyone and their mom makes a grid control. Innovate something else and let MS do whetever they are going to do.
# March 10, 2004 4:12 PM

Shannon J Hager said:

I disagree. The developer that wants to improve on what he finished yesterday, by definition, wants to improve on what already exists.

A mediocre grid? That is a challenge.

ObjectSpaces that don't work with MySQL or Oracle? Sounds like there is a need for something better.

The developer that will use the vanilla Gridview is the same developer that used the vanilla Datagrid. Yesterday's uncompromising developer isn't going to compromise tomorrow, either.

Whidbey's new tools will make for better, cooler, faster prototypes and demos, but when it is time for real development, real components will be written and used, just like before.
# March 10, 2004 4:15 PM

Jeffrey S. Berg said:

Better Competition means better products. The more Microsoft pushes the envelop the more other companies have to push the envelope. That is how progress happens.

;-) The Jeff
# March 10, 2004 4:48 PM

Roy Osherove said:

I have to agree with the other comments here. I don't see other companies falling behind if they keep innovating, and there's *always* something to innovate in. In fact, I think MS is giving 3rd party vendors a real easy time, and a simple benchmark to pass. They make stuff for the masses, which usually means mediocre at best. Only a small vendor can take something "small" like a grid and make it as powerful as people *really* want it to be. I don't see any danger of what you propose ahead. I only see better, cooler stuff on the horizon from 3rd party vendors.
# March 10, 2004 4:55 PM

Wallym said:

Sorry dude, but I respectfully disagree.

Wally
# March 10, 2004 5:02 PM

Paul Wilson said:

I disagree too. Take O/R mappers. While some vendors fear losing their market, I think the reality is that most potential customers don't even know what an O/R mapper is yet! The free ObjectSpaces will finally expose O/R mappers to a huge audience, and it will give credence to the fact that you don't need stored procs. Then some of those people will realize the vast potential they never knew about and seek out the O/R mappers which work with Oracle and MySql (like the WilsonORMapper -- http://www.ORMapper.net).
# March 10, 2004 7:54 PM

Yuri Gorobets said:

No, man! Not such the situation :-)
It was, it will.
But small companies still alive, new and good controls still sold, and user groups still supported and visited( yesterday it was sort of crowdy, isn't it? :-))
# March 11, 2004 7:28 AM

TrackBack said:

You have been Taken Out! Thanks for the post.
# March 15, 2004 4:29 PM

Eli said:

You got it all wrong...
The .NET concept was accualy copied from Java.

E.g.: VB6 has a sea of staments anf functions. .NET, on the other hand got its great namespaces. But that came only after Java presented it packages.

And what about the CLR? Isn't it a duplication of the java bytecode?
# March 16, 2004 9:40 PM

Memi Lavi said:

Eli, I think you are the one who got it all wrong.

There is no doubt that many .NET elements were copied from Java, also it is arguable whether they were copied from C++ or Java.
However, the Java's CLR equivalent is not the bytecode, but the JVM. The bytecode equivalent is the MSIL. In addition, namespaces are really like packages, but while packages impose the directory structure, the namespace is only a name. Moreover, you can have multiple namespaces in the same file, which is sci-fi in Java.

There is a big different, though, between the CLR and the JVM. The JVM, because of its multi platform nature, can't depend on the OS resources, and should contain all the services usually supplied by the OS. The CLR, on the other hand, builds heavily on the Windows OS, and can use its resources. Some may say it's a good thing, while some will prefer the multi platform abilities of the JVM.

However, what I was trying to point out isn't the similar features of the Java and .NET, but the fact that while Java supposed to be open environment, the connectivitiy and sharing of MS technologies are much better.
# March 17, 2004 2:28 AM

Jerry Pisk said:

The biggest flaw in .Net is that it is too much beginner oriented. It's designed to be easy to use, not to write efficient applications. The way Asp.Net "separates" code from presentation is a good example of that. If you compare it to real MVC frameworks in Java (like Struts) you see that Asp.Net is just a toy. .Net might do better for desktop applications but there I have to agree with Sun, desktop is becoming less and less important, even Microsoft is moving away (with their push into web services and SOA).
# March 20, 2004 2:54 PM

Memi Lavi said:

I'm completely disagree with you. This is a typical Java way of thinking: if it's easy - it's flawed. It's true that the .NET is much easier to use than Java, but I can't see why that's bad.
The ASP.NET does not suppose to be an MVC framework. It suppose (and succeed) to be an event driven, stateful web interface environment. You can use this environment in an MVC framework, or in any other framework you would like. In fact, there are some articles scattered in the net that explains how ASP.NET can be utilized to create an efficient MVC framework.
According to your argument, the JSF marks the end of the MVC, from the same reasons. Is that so?
According to the "desktop is becoming less and less important", it is far from truth. If you are following the latest updates from MS or the Java community, you can see a growing tendency toward desktop systems. With .NET, you'll be able to deploy windows-based apps easily with Click-Once on whidbey, while with Java you can use the Java Web Start. BTW, it has nothing to do with SOA or Web Services - desktop applications can communicate with services as well as web applications.
# March 20, 2004 4:03 PM

Jerry Pisk said:

Memi, you're making way too many assumptions. I've only used Java on a single, about 1,000 lines project. The vast majority of my work is done with Microsoft's technologies. Yet you assume I have the typical Java way of thinking... It's actually a C/C++ way of thinking about VB based development. But I agree with the point - if it's easy then it's flawed. Not because it's easy but because it allows people who have absolutely no clue to write code. And it puts too much restriction on people who actually know what they're doing, single form page model is a huge problem. It makes the development simple for newbies who have no idea how a web client works but it restricts advanced development.

As for what Asp.Net is - http://msdn.microsoft.com/library/en-us/dnaspp/html/aspnet-aspnet-j2ee-struts.asp. It states that "ASP.NET implements MVC using the Page Controller pattern. contrast to the Struts implementation, which allows complete application-level control, the Page Controller pattern applies the controller at the level of individual pages."

I haven't looked at JSF, as I said I don't use Java with the exception of a single small project. But I can't imagine how it's going to stop existing frameworks from working. All I've been commeting on is Microsoft talking about how .Net allows you to separate code from presentation on the web, that's simply not true. The fact that you have two source files doesn't mean anything since they're still tied together, acting as a single unit.
# March 21, 2004 6:18 PM

Memi Lavi said:

I disagree about the "if it's easy - it's flawed" axiom. I do agree that newbies will make more architectural mistakes if they can to, but the same thing goes for hard core languages, such as C++. I'm sure you've seen some horrible code snippets written in C++, even though it's far from being an "easy language".
As to the ASP.NET being MVC framework, I think that MS has a big misconception about what MVC is. In a real MVC framework, there is one, and only one, controller. When there is controller for every page, there is no MVC. Therefore, ASP.NET != MVC.
The code - presentation seperation exists in .NET in the level that when creating ASP.NET page, the developer can write the code behind file, while the graphic designer can create the graphics in the aspx page itself, without disturbing each other. No doubt they are tied together, and in order to acheive full seperation in the app level, you would have to use seperate code blocks for the logics.
# March 22, 2004 6:07 AM

not always said:

And if the team doesn't care about their project, then of course MS can just 'force' their way into the desktop. Unremovable MS msgr? An IE that is so far behind everything else in the market and so bug ridden that the internet community as a whole is worse off for it's existance. Oh, and the use of secret internal APIs to make other MS products work better then ISVs software is really good buiness tactics and perfectly acceptable.... assuming you don't work for the poor ISV that has been snufed out by the giant. Those sure help 'acceptance' of MS software don't they.
# March 22, 2004 12:05 PM

TrackBack said:

# March 22, 2004 9:39 PM

Memi Lavi said:

I think you didn't get my point.
I didn't say MS products are good (although I think so, but we can argue about this). I said they have a great success in the public. Notice: not the "developers" public, who can rant all day about IE bugs, but the normal public, those who use mainly Office and IE. They don't give a damn about the DHTML abilities of IE vs Mozilla. They don't care about the .NET capabilities of the Office 2003 or the programming model of the OpenOffice. All they want is a tool that is easy to use, and have a great UI consistency across all its features. And this, my friend, MS simply does best.
# March 23, 2004 2:51 AM

Thomas Tomiczek said:

::I must say the I don't agree with that. The
::ASP.NET page model is really easy compared
::to the traditional page model

Really?

I have people telling me all of the time ASP was easie. WAY easier.
# March 23, 2004 5:43 AM

AndrewSeven said:

Scott M. has a post :
Is ASP.Net too hard? http://scottonwriting.net/sowblog/posts/852.aspx

The biggest barier of Asp.Net is that you need to learn about it first. VBS was much more of a lowest common denominator of programming.

I enjoy the separation of aspx and code-behind, but both are part of the presentation layer, they do not represent separate tiers of an application.

# March 23, 2004 8:59 AM

Dennis said:

if (easy == flawed) {
use(AssemblyLanguage);
}
# March 23, 2004 11:14 AM

TrackBack said:

# March 24, 2004 8:49 AM

OmegaSupreme said:

I guess they thought the old tabbed look was too fancy ! Unlike most sites they've actually toned it down with the new look.
# March 29, 2004 5:55 AM

Omer van Kloeten said:

Good one... I had a good laugh there. :)

btw, what picture?
# March 29, 2004 8:43 AM

Memi Lavi said:

Maybe I wasn't clear about it...

I meant to the picture on the second link, to Douglas Adams site. Here:
http://www.douglasadams.com/creations/
# March 29, 2004 8:55 AM

Guy Sofer said:

I would move visibility dependencies between elements to be handled by client side JS event handlers. But with this approach the assumption is the the entry form is already gets to the client (I don't sure this is what you want). I do have a similar problem on a project I'm involved right now. You can see more details on this approach within my blog
http://weblogs.asp.net/guys/articles/93521.aspx
# April 8, 2004 12:59 PM

TrackBack said:

# April 20, 2004 2:13 AM

adamw said:

Erm, this is normal - Google thinks (quite rightly) that you are typing a URL, and gives you the single URL view for "asp.net". At the bottom of the page, there's a link...

Find web pages that contain the term "asp.net"

Click that to run a normal search, which returns 4,940,000 results for me.
# April 20, 2004 6:09 AM

Shannon J Hager said:

Quotes are your friend. Always surround search terms with quotes when they have other punctuation or symbols in them. "C#", for example.
# April 20, 2004 6:18 AM

Scott Mitchell said:

Yeah, this was a concern many pointed out when Microsoft officially released ".NET" back in July 2000. Many people I talked to were concerned about search quality for technologies containing a common domain name suffix (.NET) as well as non-English characters (such as the # in C#). Of course, the name before .NET (+, as in ADO+, ASP+, etc.) would have been no better search-engine-wise, as + is a commonly used token in search engines! :-)
# April 20, 2004 12:38 PM

Dan K said:

did you search for asp.net or "asp.net"? "asp.net" yields tons of results. up with the quotes!!! yay!
# April 21, 2004 10:59 AM

Jerry Pisk said:

Typical Microsoft comment. That delay is configurable (at least in Eclipse it is and Weblogic is based on Eclipse afaik), apparently no Microsoft users ever go into settings, they just blindly accept defaults. If you know the method/member name (such as Equals or Length or similar) it's much faster to type it in without Intellisense.
# April 24, 2004 4:53 PM

Memi Lavi said:

We are a bit harsh today, aren't we?
First, Weblogic Workshop has nothing to do with Eclipse. It is Eclipse's alternative (and a good one) offered by BEA.
Second, this problem occurs even if the delay's setting is 0. If I'll accept the defaults in Eclipse, I won't have intellisense (or Code Assist, in Eclipse terminology) at all.
# April 24, 2004 5:38 PM

Jerry Pisk said:

I'm always harsh, it's not just today... Nothing personal, either. But give Eclipse and especially IntelliJ a try, they seem to be the preffered Java IDEs.
# April 25, 2004 3:05 PM

Dewey Vozel said:

You think that the same people who wrote the VB.NET components of VS.NET wrote the C# components? I'm sure it was merely a differing of development minds between the two camps.

I do agree with Joe Coder though and I have to add...C# Now! C# Forever!
# April 28, 2004 3:57 PM

Yannick Smits said:

It is included in the Visual Studio Community Technology Preview (CTP) available through MSDN universal.
# May 5, 2004 12:20 AM

TrackBack said:

# May 7, 2004 10:57 AM

dj said:

yes, any respectable c# developer should know this. vb.net is way too wordy.
# May 7, 2004 11:06 AM

Matt Hawley said:

Amen to that. However the whole naming convention for interfaces is there for a reason - so developers will know if it is an interface. I'd have a hard time listening to that presenter after the fact, I mean he may know a little, but if he even *thinks* that multiple inheritance is possible, hes way over misinformed and tredding on just plain "HELLO" mode. Makes me almost wonder if he had any experience at all or was just giving the canned talk.
# May 7, 2004 11:13 AM

Christian Nagel said:

With interfaces named with I this is clear anyway.
# May 7, 2004 11:15 AM

denny said:

or....

IMHO VB is better in this area....

there are differences between an interface and a base class.... *BIG* ones!

so say you are having to maintian code someone else wrote.... say they wrote it in C# and were less than stellar at using "I" in interfaces and so on...

you might not realize at first which case you had .....

but in VB the two cases are 100% clear, you know on one (or two) lines what you have.

BTW: I am *NOT* wanting less skills in a dev. just why should we bust our chops on that kind of stuff? I'd rather create a new / better algorithm for something than have to chase down an interface definition....
# May 7, 2004 11:18 AM

Memi Lavi said:

I feel uncomfortable with the assumption that an interface should be distincted from class by the 'I' at the beginning, and that's all.
I really don't think you can base your architecture on code conventions. Convention, unlike architecture, is subjet to changes. If tomorrow the convention will change, and interfaces no longer will begin with 'I' (as in Java) - what will you do then?

BTW - the presenter is far from being a newbie. He is a CTO of a large software company in Israel.
# May 7, 2004 11:20 AM

Christian Nagel said:

Matt, multiple inheritance is possible with interfaces. One interface can inherit multiple interfaces.
interface IA
interface IB
interface IC : IA, IB
# May 7, 2004 11:21 AM

Sahil Malik said:

I just posted my <vent>comments</vent> about C# versus VB.NET on my blog.

http://dotnetjunkies.com/WebLog/sahilmalik/archive/2004/05/07/13071.aspx

Guys get over it, C# isn't anymore sexier than VB.NET. The seximost language I have ever used has to be C++.
# May 7, 2004 11:58 AM

Roy Osherove said:

who was the presenter? what talk was this?
# May 7, 2004 4:54 PM

Memi Lavi said:

Christian - I think you used the wrong terms in your post. Multiple Inheritance is not possible with interfaces. Multiple Implementation is what you're looking for. A class can implement multiple classes, while it can inherit only one class.
The definition of Inheritance is that a class takes all the functionality of its ancestor. Interfaces do not have functionality at all, and therefore you cannot inherit them. Interfaces only define the class, well, interface, and not its inner plumbing, and therefore you Implement it, and not inherit it.

Roy - I really don't think I should tell the presenter name (although he is a CTO of one of our largest competitors...). I don't think it has anything to do with this discussion. If it is really important to you - send me a mail.
# May 8, 2004 1:42 PM

TrackBack said:

# May 8, 2004 7:09 PM

TrackBack said:

# May 8, 2004 7:33 PM

Christian said:

Memi, what do you name the inheritance relationship with an interface that has multiple interfaces it derives from? An interface never has an implementation, so this is not implementation inheritance.
If you have a class that derives from multiple interfaces, of course this is "implements". If you have an interface that derives from multiple interfaces, this is not "implements", you ust "inherit" the members of the base interface.

interface IA
{
void A();
}
interface IB
{
void B();
}
interface IC : IA, IB // this is not an implementation
{
void C();
}
class X : IC // this is an implementation
{
public void A() {}
public void B() {}
public void C() {}
}
# May 9, 2004 12:31 AM

Avner Kashtan said:

I'm not sure I agree with you, semantically speaking.

When an object implements IComparable, it IS a comparable object. I think of interfaces just like inheritance in terms of identity, only a bit more abstract. Mazda is-a Car, in terms of identity, but it also is-a IVehicle. Interfaces give you the contract, inheritence adds to that contract a bit of pre-defined implementation, too.
# May 9, 2004 4:31 AM

Memi Lavi said:

I think the last sentence of your response summed it up quite nicely. Interfaces do give me the contract - and that's all they give me. They don't give me any implementation, and therefore I don't think I can inherit them.
# May 9, 2004 4:55 AM

Avner Kashtan said:

I think the use of the word "inherit" is the problem - of course you can't inherit, since the meaning of "inherit" here is "derive an interface and an implementation".

I think a good analogy to an interface is a Role. If I am hired as, say, a gardener. I implement IGardener and its Plant() and Mow() functions, then from an OO "is-a" perspective, I *AM* a gardener, even though I don't inherit any implementation.
# May 9, 2004 5:12 AM

Memi Lavi said:

I think your example is wrong. If you only implement IGardener, then you don't know *HOW* to mow and plant, you only know that you should do that. In that perspective (and in your employer's perspective...) you're a pretender, not a gardener.
If you really want to be a gardener, you should inherit from an existing one, who knows the job and can teach you all the inner plumbing of mowing and planting.
# May 9, 2004 8:48 AM

Avner Kashtan said:

But we're dealing with contracts here. "is-a" is a contract. I am a gardener. I may do it badly, I may do it well. I may do it like some other gardener (in which case the interface implementation is inherited implicitly, along with the rest of the implementation) or I may do it my own way - as far as the client/calling code cares, I am-a gardener.
And if I implement IGardener as well as IProgrammer, while being a subclass of Person, I am not a Person who implements IGardener and IProgrammer - I am a Person, and I am a Gardener, and I am a Programmer.
Inheritence carries an implicit Interface Implementation too - if I subclass Person, I am (in effect) implementing a so-called "IPerson", even if the implementation is given to me for free.
# May 9, 2004 11:00 AM

TrackBack said:

# May 10, 2004 2:57 AM

TrackBack said:

# May 10, 2004 3:08 AM

dev said:

When I registered and installed this last year (there was an ad for it in the VS.NET 2003 update package I bought), I started recieving (unanswered) phonecalls from the company within 24 hours. I think the last one I got from them was about a month ago. I never got around to installing so I never bothered returning their phone calls.

Hopefully you'll get the same harassment and will be able to ask them personally about hte problem.
# May 10, 2004 3:52 AM

Wim said:

Check your IIS mappings. All your sites are now likely to be mapped to the ASP.NET 1.0 version of ASPNET_ISAPI.DLL.

When running VS.NET 2003 the debugger expects version 1.1 of the ASP.NET ISAPI, but since your website maps to version 1.0, you can't debug it...

Try remapping your websites to 1.1 and you should be OK.

Cheers,
Wim
# May 10, 2004 5:39 AM

TrackBack said:

Memi asks about using .NET for real-time apps. Naturally, that depends on what kind of application you're writing and what is meant by real-time. Without direct way to access CPU interrupts, deal with direct memory access and assign interrupt priority...
# May 10, 2004 6:40 AM

Ido Samuelson said:

How about trying to run the aspnet_regiis.exe
# May 10, 2004 7:26 AM

Ido Samuelson said:

If I would have to explain what interface is and why it can multiple inherit other interfaces I woulds explain it as follow:
Interface is a contract which who ever implement it MUST follow the rules in it. A contract can be based on other contracts or in other words a contract can have the same rules from differnt contracts. You don't define how the rule is actually working but you do define whoever wants to implement the contract MUST then define the rules.
# May 10, 2004 7:30 AM

Memi Lavi said:

Thanks for the info, but I've already checked the IIS mappings.
# May 10, 2004 7:36 AM

Kyle Heon said:

Yes, I too received numerous phone calls once I downloaded tha app. That is always fun. I would also recommend trying aspnet_regiis because that has solved issues for me in the past that made little to no sense at all.
# May 10, 2004 11:48 AM

David Levine said:

I don't see how plain-vanilla .NET can be considered as any sort of a realtime environment when the GC will suspend all application threads for an indefinite period of time to run finalizers, and the code in finalizers is unbounded.

IMO I'd have to know what definition they are using for realtime before anyone can evaluate if .NET is suitable.
# May 10, 2004 2:24 PM

Ido Samuelson said:

Hey there! I see you liked our talk :)

You can call me on 067-888150.

Basically making the real-time app in .net was based on nothing! .NET had NO market experience was released in the same month I started to work for that company. Since their was no MDX I had to write wrappers and to deal with a LOT of interops. The Application today can grab over 100 frames per second from a video grabber card with 16 inputs. write avi files from those frames (each frame around 300KB) ofcourse display all frames. And a LOT of logic for detections. The performance the application gets have no difference then other equiliant applications in today market. Hardware was then 512MB ram , AMD 2000+ and a 7200 Drive.

# May 11, 2004 1:56 AM

Ido Samuelson said:

One more note though,

When you write a real-time application you consider PERFORMANCE into any step! which mean you HAVE to write caching platform, instance pooling, IO pooling and even thread pooling. Does anyone really think their company have the time and money to do it better then the CLR?
# May 11, 2004 2:00 AM

Ido Samuelson said:

Read my post about it
# May 11, 2004 2:26 AM

Larry Osterman said:

If you're going to use exception handling, you need to wrap every operation that might concievably throw (including arithmetic operations), just like if you were checking for error codes.

Check out Michael Grier's blog for more details (http://weblogs.asp.net/mgrier). I believe that Raymond's (http://weblogs.asp.net/oldnewthing) also written about this.


# May 13, 2004 12:59 PM

laxmi said:

how do u do a global error trapping for a desktop app?
# May 13, 2004 1:04 PM

Dan said:

I would agree with Memi on this one, you must only trap when you can do something usefull(correct the situation, add infos, release ressources, etc.). And please do not obscure exact exception message with a new Throw like "Something wrong happened.".

You could also use global catching. In WebApps, you just code the OnError in Global.asax and in WinForms you do an AddHandler Application.ThreadException. So every exception uncatched by you will end up with full stacktrace in your loggin mecanism.

Btw, i have found countless links and documents about exception handling in managed .NET, so i don't quite understand comments like : "exception handling is one of the least documented aspects of .net programming"

Here's some usefull links with tips about exception :

HTH;

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/exceptdotnet.asp

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag/html/scalenetchapt05.asp
# May 13, 2004 3:27 PM

Dan said:

To laxmi : "...in WinForms you do an AddHandler Application.ThreadException..."
# May 13, 2004 3:30 PM

TrackBack said:

# May 17, 2004 7:56 AM

JosephCooney said:

Not to be confused with m3rlin - my templating code generator (also on GotDotNet) http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=dfef25fa-f545-4289-b9fc-05270ea41fb3
# May 17, 2004 9:34 PM

Memi Lavi said:

Although those toools serve completely different goals, the similarities of their names is amusing...
# May 18, 2004 12:38 AM

JosephCooney said:

Yes - I was amused also when I saw it on GotDotNet "Merlin..templates...hang on a minute!" It is very hard to come up with an individual name (I am certainly not claiming that m3rlin even is).
# May 18, 2004 12:55 AM

TrackBack said:

# May 18, 2004 2:26 AM

Yuri Gorobets said:

Greate job, Memi!!!
I'm really impressed!
# May 18, 2004 5:56 AM

Anon said:


I reckon it's your code so you do what you please with it. Don't let one person force you into making a mistake where someone might take advantage of all your hard work.

Not all of us FOSS zealots are the same. Some of us realise that the whole point is about choice, not trying to force someone to release something they don't want to.
# May 18, 2004 7:38 AM

Brix said:

There is no much documentation or walkthrough about templates.
I am one of the guys who would want to see the code more for a learning process than anything else.

I also thought that gotdotnet was about learning dot net through examples by providing code.
I have got it wrong then?


Thanks
# May 18, 2004 8:32 AM

Greg said:

I agree it's your code, your work, your effort so handle it as you feel right...

But I also would like to see the code.

Always wigs me out a little when a GDN "Sample" doesn't include the code sample... While it might not be against the letter of the GDN law, it feels it's against the intent.

Also running EXE's from vendors you know is scary enough, let alone from an "unknown" on GDN. Not saying this applies to you :) but do YOU trust your machine to any unknown EXE you get from GDN or other like site? Or do you feel safer when you know you have the code bits to review?

I think you'll get more people interested in you and your work if you release the source with the EXE on GDN (once it's ready of course).

Still, so far, your app is pretty cool... :)

# May 18, 2004 10:38 AM

Shannon J Hager said:

I thought that "User Samples" was the area where users were able to share their code samples. I did not find any description on the site that backs that up, though, so I don't know why I had that idea.
# May 18, 2004 5:52 PM

Addy Santo said:

I totally agree. It can be summed up into one key rule: "never use exceptions for applicational logic or flow control".

If you expect something as part of the normal/semi-normal application flow, that should not be implemented using exception handling. Exceptions should be reserved for situations which are truly exceptional, ie. "someone yust yanked out the hard disk"
# May 20, 2004 11:00 AM

Mike said:

I used aspnet_regiis.exe to remove all versions of ASP.NET and then installed the 1.1 version and all worked fine.
# May 20, 2004 1:01 PM

William said:

Okay, I'm a big fan of ASP.NET over anything else, but I don't think Netcraft has any way of knowing how many of those sites actually have ASP.NET pages. A lot of people probably install ASP.NET on their Windows servers and never use it. Most people who bother with Tomcat (JSP server) actually use it.
# May 20, 2004 6:08 PM

Nat said:

# May 21, 2004 3:50 PM

bert corderman said:

very cool, thanks for sharing this. I am going to try it out with some templates at work this week? Are you planning on releasing the source code? I am currenlty a web developer and I am impressed with the GUI you designed

Thanks
Bert
# May 31, 2004 6:42 PM

Shannon J Hager said:

I was one of the #1 guys. I would rather have a copy laying around than never being able to remember where I saw it or having it removed from the web...

Now I am #4, I guess. I whipped out Merlin, read the documentation/walk-through, and made a template I've been meaning to make for a few weeks now.

Actually, I guess I am guy #2. Rock on.
# June 1, 2004 2:02 AM

Omer van Kloeten said:

Most of the blogosphere has indeed contracted Futuritis. Then again, it's the Microsoft Hype Machine[tm] at work here. You can't do much about that anymore...
# June 4, 2004 9:09 AM

Rolando said:


I disagree. Blogs owners have the right to write about whatever they want in their blogs. Many of the MS bloggers work in Longorn technologies so is obvious that they will not write about .net v1.x

I think there's a lot of net 1.x blogging around, if you're not happy with http://weblogs.asp.net you should give

http://dotnetjunkies.com/weblog/
http://www.hanselman.com/blog/
http://www.geekswithblogs.net
...

a try.

but I *do* think MS could put more resources to net 1.x, We're waiting for SP1 for months, seems MS has tied SP1 for .net 1.1 with SP2 for WinXP.
# June 4, 2004 10:32 AM

AT said:

Your current is VS 2003 ??

How about VS6.0 ? A lot of applications was created for VS6.0 and still need to be supported.

Or how about another crazy fact - one of largest banks in Ukraine use MS-DOS application coded on BorlandC with DPMI, for network (i.e. not a relational) database on shared Netware drive using Netware file transactions. It serve clients well. (But they will migrate to another system in next 2-3 years :o)

So ? Do you realy need to use latest or not-yet released technology ?
# June 5, 2004 7:05 PM

Stephane Rodriguez said:


(shameless plug)

If you need a native Excel generator, why not try xlsgen (http://xlsgen.arstdesign.com) ? It's 15$ for the dev license, and royalty-free for the distribution. xlsgen will go as far as producing the C# code for an existing xls file for you.


# June 6, 2004 5:16 AM

Sikko2go said:

I do agree with you. Just made the switch from VB6 to .NET, and only for part of our projects... and it looks like the only thing I see is bloggers writing about Whidbey etc etc. First I need at least a year to get used to the 2003 version. And even then I don't know if I'm interested in the 2005 edtn. But OK, on the other hand I can imagine that top notch developers who started working with .NET years ago now are really looking out for new version. Well, it's aways a tradeoff I guess :)
# June 16, 2004 4:07 PM

Darrell said:

The problem you are talking about can be solved by branching (is usually called branching by most CM tools). However, VSS's support for branching sucks.
# June 16, 2004 4:11 PM

Adam Weigert said:

Actually, if you have any experience with the Interwoven product TeamSite (our content manager of choice) you will know about the concept of a WORKAREA.

Though we do not implement it correctly here, this is how it goes.

A project is a branch. Each branch has a STAGING area that is the CURRENT VERSION of the application.

Each editor or developer in this case has their own workarea in the branch (project).

They make their changes, keep them all local to their workarea while not affecting anyone else.

When they need the file locally it is downloaded to their PC, when they are done they upload it to their workarea.

Once they are complet and want to integrate it into the VERSIONED copy, they submit it to the STAGING area.

Great concept and implementation that works well if you use it right.

Another concept is a EDITION which is a snap shot of the STAGING area at a given point in time. Basically the same thing as labeling.

The workarea method works great for seperating work developers are doing so they can blow away their workarea and not affect their co-developers doing their work.

They can, however, still submit bad code from their WORKAREA. But since the WORKAREA is part of the server piece, it gets a daily backup and shouldn't crash that often.
# June 16, 2004 4:27 PM

Greg said:

I've seen this happen and our solution was a policy that only code that compiles is checked in.
The given function or feature doesn't have to work, but it DOES have to compile...

As for Version vs Backup, I use it for both.

My primary dev workstation is a notebook... and have lost HD's with a good bit of work on them. So we use SS to protect our intellectual property and sanity by checking in often (as long as it compiles).

There are few things worse than loosing weeks+ of effort (and trying to remember exactly WHAT code changes you made in the period).

As for using other backup solutions, in our company, it's just not viable (heck our file servers don't seem to be reliably backed up... but that's another rant).

# June 16, 2004 8:07 PM

Eddie Garmon said:

VSS6 can currently supports this, with an automation tool and the use of labels. When code is ready to be integrated label it 'ready'. When you need to get code for a build, get 'ready' not the tip.

I've seen that VSS 2k5 will support, this and that it is known as shelving.
# June 16, 2004 11:51 PM

Memi Lavi said:

Adam - looks like the "Workarea" concept is the same as "Streaming" in ClearCase terminology. Is that so?

Eddie - The Shelving feature is new to me. It is not reminded in the mentioned article, and I could find only one article (blog, actually) that mention it. Could you elaborate on this? Where can I find info on it?
# June 17, 2004 12:50 AM

v said:

vcv
# June 21, 2004 12:56 AM

Chris Sells said:

I'm not picking on my Memi, because you make valid points, but if the folks that complained about the lack of posting on current technologies would simply make postings about current technologies instead, we'd be set. : )

On a more serious note, blogging is about passion. It's not anyone's job to blog, so people do it because they want to. Frankly, I don't know how Raymond Chen does it. Most folks can only post about what they care about *right*now*. Hell, if I'm in a car and I come up with a topic, I can rarely keep up the passion long enough to get home and post, let alone post about something I cared about some number of months or years ago.

So, it's a double-edged sword. MS product team members can either blog about what they're working on now, which, by definition, hasn't shipped yet, or they're not going to really post at all.

What I'd really like to see is more members of PSS posting, because those guys are *way* into the current set of technologies and often know more about it than any individual product team member ever knew.
# July 6, 2004 1:16 PM

Greg said:

.NET sucks it's a fact. It maybe suitable for Desktop aplications running in VERY powerful desktops, but Microshit need's one more decade to make a SO suitable to run serious client-server applications.
# July 7, 2004 2:18 PM

Henry Alfred said:

Orkut is doing a good job showing how bad .NET is. Im my personal opinion if you are a seriou Web Developer, you don't do nothing is MS. That's M$ way: a lot of marketing but just a weak product under a lot of makeup
# July 7, 2004 2:27 PM

TrackBack said:

S dot One heeft het over .NET &raquo; TFBL Award&#8230;
# July 18, 2004 9:20 PM

Jason Mauss said:

#2 isn't such a bad option if you go with some javascript like

window_onLoad(){
window.status = "save complete.";
}

this way the message will be displayed after the page loads and you don't need to worry about the "Done" or "Opening Page..." status getting in the way. If the user's complain about not seeing a message/status about it completing successfully - tell them about the status bar. If they really care about it that much they will remember to look down there - at least for your web application anyway. It's just a matter of user training.
# July 20, 2004 5:10 PM

L M said:

I've been thinking lately about something like the "toast" messages that pop up for different reasons from the tray. Something like having a div "float" up from the lower right corner of the screen, saying that whatever it was worked and then it would automatically go away after a few seconds. That way, they get the notification but don't have to do anything.
# July 20, 2004 5:44 PM

Jason Mauss said:

That's not a bad idea...you could dynamically inject both the <div> into the page and the script that pops up the <div> and then makes it go away.
# July 20, 2004 5:49 PM

Johnny Hall said:

Option 3 is generally the way I go. There's usually at least some real estate on the screen that you can use.

I use the space to the right of the "action" button.

Option 4 (no message = ok) is not a good option, IMO. How many users would just click the button again and again, assuming that nothing happened?
# July 20, 2004 6:03 PM

Jerry Pisk said:

Why exactly would you redisplay the form a user has just submitted? Just ditch Asp.Net, with its incredible bad page post back model and use a real framework (Struts or Maverik) and have your business logic (saving the data) forward execution to an appropriate view - if the save is successful then forward to a page that just says "Save successful" in the body, if it fails forward the control back to the input page, with an error message.
# July 20, 2004 7:05 PM

Shannon J Hager said:

Not giving any feedback is bad. Silently succeeding looks/feels just like silently failing. If the page shows the results of the actions (if you just updated/added something and the next page shows a view of that data), then you are giving the user some feedback. If you have a form and you submit it and you still have the user on that same edit form after the add/update, then the user has no idea whether the action failed or succeeded and the only way to check is to leave the page and then come back. That's no good.

If you can not fit "Save successful" or some other verification on the page, I think you probably need to rethink your layout. Surely you would display a message if the action failed, correct? There is room, then.

If you don't need to continue the edit/viewing process, I second Jerry's suggestion above: sending to a confirmation page. I don't agree with his "real framework" troll, but that's another story...
# July 20, 2004 11:18 PM

Jerry Pisk said:

Ok, you can do it right even with .Net :) But it doesn't make it easy, the problem here is that whatever processes the request should be something else than the page that displays the input form. The input form page should only get control if it's needed, such as when there are errors in the input, or when the processing fails (so the user can try again), but not when the processing succeeds.
# July 21, 2004 1:48 AM

Memi Lavi said:

Actually, I thought about L M solution (the "toast" message) the moment I clicked the "Post" button (I guess I was inspired by SharpReader or MSN Messenger...), and I'm working on an HTC file that will perform this very same action.

Jerry - the reason we would like to redisplay the same page has nothing to do with the technology, but with the design docs. My question this time was rellevant to a J2EE project I'm involved in, but the solution will be applied to all our projects.

Shannon - Of course, in case of failure we will display error message. But the error message is displayed in a dedicated error page, with details about the required next action, and not on the same form, therefore the area problem is not rellevant.

I must say I don't like the confirmation page concept. It's, IMHO, a worse version of the popoup solution (#1, which no one mentioned as the preferrred solution). Using confirmation page we force the user not only to perform some unnecessary action (such as clicking to go to the original form) but also to go through the server when doing so (which is not a problem in the popup solution).
# July 21, 2004 2:23 AM

Jim Bolla said:

A typical page flow in one of my apps is as follows:

1: Entity List/Search - to select the entity to work with.

(clicks one - hyperlink)

2: Entity View - no action buttons, only display info and hyperlinks for edit and to add/view related entities

(clicks edit - hyperlink)

3: Entity Edit - edit form, can either modify/delete the entity record or go back to #2

(clicks save - button)

(passes validation, successful - back to page #2)

the user now knows their modification were successful because they are no longer on the edit form and they can usually see their changes on the display page. this makes sense to me because instead of focusing on confirmation, the app is focused on getting them to where they want to be next.
# July 21, 2004 10:26 AM

Memi Lavi said:

But why does the user need step #2? Why not open the form in the Edit mode?
It looks like he is forced to perform another click just to reach the task he meant to do from the start.
# July 21, 2004 11:17 AM

Kyle Heon said:

I had the same issue where I work except our default SCM is StarTeam and had the SCC integration in VS.NET working. Then I installed VSS as part of a test and the next time I loaded up VS.NET VSS took over as the default SCM. I found this free utility that lets you switch the default SCM on your system. It sits in the systray. Check it out: http://www.kilic.net/weblog/archives/000183.html
# July 21, 2004 11:30 AM

Omer van Kloeten said:

Trying to run ClearCase and VSS on the same machine causes VB6 to lose the battle on both sides: Neither of the providers work for it.
Heh.
# July 21, 2004 12:12 PM

Memi Lavi said:

Omer, this is not what I am experiencing. I have no problem using VSS in VB6 even though ClearCase is installed on my machine.
# July 21, 2004 12:28 PM

Jim Bolla said:

Step 2 typically has more on it than what is on the edit screen. For example, if it's a company view, then the page will not only show the data on the company record, but info like the number of employees in that company, with a link to go to the employee list for that company. Basically computed data that one couldn't modify on an edit screen and thus doesn't make sense there.
# July 22, 2004 1:13 PM

UdiDahan@TheSoftwareSimplist.com (Udi Dahan - The said:

If you are SO tapped for screen real estate that you can't afford a little green label that appears beside (or under) your action button that says "done" (or something like that) GET A BIGGER MONITOR!

Just kidding.

I suppose you could try changing the background color of the action button to green in case of success, red for failure. You could also tooltip for more information - like the reason of the failure, however most beginners haven't grasped the concept of tooltips.
# July 22, 2004 4:16 PM

- said:

High contrast in this case refers to a particular color scheme, not physical settings on the display.
# July 24, 2004 4:09 PM

Snorrk said:

High Contrast has nothing to do with monitor settings.

It's a special display mode that uses a high contrast color scheme along with large fonts to help people with vision disabilities to better see what is on-screen. A simple test would be to just follow the instructions and see how the High Contrast settings affects the display of Windows.

And why in hell did you get the idea that something accessed through Accessibility Options has anything to do with the contrast of the monitor?
# July 24, 2004 4:11 PM

Udi Dahan - The Software Simplist said:

This saved my ass TODAY!
# July 26, 2004 7:48 AM

rick said:

I had the same thoughts, but after playing around with them I'm singing a slightly different tune. What the *DataSource controls offer is a provider interface for your databound controls. When you're prototyping an app, you can throw some controls around, connect them to some simple Access DB, and you're set. Later on, you can upgrade to SQL Server, stored procedures, and the SqlDataSource: without changing anything.

As for the ObjectDataSource, I'm not too keen on paying the reflection task, but you should be able to build a custom DataSource that binds to your business layer specifically.
# July 31, 2004 10:24 PM

Thomas Tomiczek said:

::Which DataSource control will be the real
::hit? Will this concept be widely used?

They WILL be used. 95% of the developers out there have no clue about what constitutes a good program - they will eat what they are served.

What I personally mislike about the data sources, is that they are not COMPONENTS anymore. Why does it have to be in the visual part of the page? Makes no sense to me.
# August 1, 2004 12:42 PM

Paschal said:

I share the same feelings. I ranted recently n this stupid idea to include a sql connection string in a ASPX page. This going to be a nightmare for serious people who take a project made by a beginner.
Microsoft is a big marketing machine and what they see is only a way to collect more developers, even if they have to screw a whole professional community. Java guys must laugh now !
# August 1, 2004 12:58 PM

TrackBack said:

Exceptions vs. Error Codes
# August 25, 2004 7:21 AM

Guy S. said:

My laptop was crash too this week. Because my wife use my laptop as well we both had to wait until the lab will make it up again.

Anyway, we should consider to buy another machine - for my wife, of course (and keep this blog entry - this is for me).

[And for next time I'm going to build and burn a ghost image file of my laptop OS and data. This will make the restore process much easier.]
# September 4, 2004 2:54 AM

Avner Kashtan said:

Just a short comment about VSTO - the 26-method interface hell was NOT VSTO, but rather the Smart Documents framework. I definitely agree with you - it got you nice results but at a cost of most of your sanity and frayed nerves.
The first version of VSTO enabled you to write code-behind code in C# or VB.NET and attach it to the same document events that VBA code could respond to up until now.
VSTOv2 encompasses the abilities of Smart Documents into the (much more convenient) VSTO context, rather than continuing the rather kludgy and annoying Smart Document framework.
# September 18, 2004 5:23 PM

Alex Hoffman said:

Let's just hope that .NET is actually on those machines to take advantage of ClickOnce.
# September 18, 2004 5:53 PM

Omer van Kloeten said:

Congratulations :D
# September 25, 2004 6:39 PM

Alex Hoffman said:

Mazeltov!
# September 25, 2004 8:26 PM

Douglas Reilly said:

Congratulations! Four Children! That should keep you very busy!
# September 25, 2004 9:54 PM

Jackie Goldstein said:

Mazal Tov!
# September 26, 2004 7:49 AM

Ian Griffiths said:

Believe it or not you don't need .NET on the target machines to take advantage of ClickOnce.

With .NET v1.x this is a requirement if you want to use href (aka 'no touch') deployment. But since this is such a sticking point, Microsoft have developed a solution with ClickOnce that enables .NET to be deployed automatically.

It's part of a more general 'bootstrap' mechanism. ClickOnce is able to feed any number of prerequisite packages out to the client machine before giving out the application itself. The .NET redistributable is simply one of these.

Obviously for this to work, the end user needs to be able to run the install as an administrator, and they have to elect to do so. There's no getting around the fact that the machine owner's permission must be obtained in order to install the .NET framework.

But assuming the user is willing, ClickOnce is able to make that happen.
# October 9, 2004 3:08 PM

Dean Harding said:

What version of .NET are you using? I got 1.1, and I get a compile error ("division by constant zero" if I try to compile your code. I also get an exception when using variables (i.e. "int a = 1, b = 0; int c = a/b;")

However, doing the same with float and double values is different. It is possible, in this case, to divide stuff by zero, resulting in +/- infinity. The reasons are mostly historical, but it does help in certain situations (like it can make formulas for parallel circuits with zero resistances magically work - you get a divide by zero then a divide by infinity).

Anyway, I guess you can say that it results in +/- infinity because "it's in the standard" (that is, IEEE 754 - the ubiquitous standard for floating point numbers)
# December 15, 2004 6:12 PM

Darren T said:

Division by zero has always resulted in infinity. Computers just can't handle infinity, so you end up with a division by zero answer.
Its fairly easy to see why the answer to a division by zero equation will give you infinity. Start with any number and start dividing it by progressively smaller and smaller values. Your results will get bigger and bigger.

The really curious question is what is zero divided by zero. Personally, I believe its a set of all numbers.
# December 16, 2004 2:25 AM

Brock Allen said:

You're using VB.NET I'll wager. C# throws.
# December 16, 2004 4:17 PM

法国 said:

Excellent And
Merry Christmas
# December 16, 2004 8:09 PM

Dean Harding said:

@Darren: No, division by zero is undefined. What you're thinking of is a different concept, that of the limit of 1/x, as x *approaches* 0 is inifinity. It doesn't mean that 1/0 *equals* infinity.

If you could write "1/0 = ∞", then the inverse needs to be true as well, namely, "0.∞ = 1" but zero multiplied by anything is zero. You could just as easily say "2/0 = ∞", therefore "0.∞ = 2" - clearly the same calculation can't have two different answers, hence division by zero is not defined for real numbers.
# December 16, 2004 9:59 PM

Oleg Tkachenko said:

Usual advices:
1. Use XPathDocument
2. Upgrade to latest .NET SP
3. Optimize your stylesheet - get rid of //, use keys etc.

And beware than using MSXML in .NET isn't supported by Microsoft.
# December 22, 2004 5:34 AM

Teemu Keiski said:

Check this out:

Improving .NET Application Performance and Scalability - Improving XML Performance
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag/html/ScaleNetChapt09.asp

See the section "XSLT Processing". It includes more dicussion about things Oleg already mentioned but also a few others to consider.
# December 22, 2004 9:47 AM

Jon Galloway said:

Glad you asked this question - I've been wondering the same thing. Interesting performance comparison article here:
http://www.ondotnet.com/pub/a/dotnet/2003/07/14/xsltperf.html

I think I'll stay with .NET and look at what Oleg and Teemu suggested.
# December 22, 2004 7:41 PM

TrackBack said:

# January 13, 2005 7:54 PM

AndrewSeven said:

The EnvDTE is still there, you could use it to explore the project properties a bit or try some of the other d-t services.


# March 20, 2005 6:27 PM

Simon Calvert said:

In VS2005, you'll be able to get to config easily, and use the strongly-typed management APIs on configuration.

IWebApplication webApp = (IWebApplication)Component.Site.GetService(typeof(IWebApplication));
if (webApp != null)
Configuration config = webApp.OpenWebConfiguration(true);

Simon
ASP.NET
# March 21, 2005 12:27 PM

Memi Lavi said:

Hi Simon.

Thanks for the info.
Perhaps I'm missing something, but I can't find any reference to the Component object in the code. In addition, I'm talking about WinForms application, and not Web Application.

To clarify: I'm trying to get this info in the EditValue method of my custom UITypeEditor.
Do you know how do I get this info there?
# March 22, 2005 1:52 PM

TrackBack said:

^_^,Pretty Good!
# April 9, 2005 10:40 PM

TrackBack said:

^_^,Pretty Good!
# April 9, 2005 10:40 PM

TrackBack said:

^_^,Pretty Good!
# April 9, 2005 10:40 PM

TrackBack said:

^_^,Pretty Good!
# April 9, 2005 10:40 PM

TrackBack said:

^_^,Pretty Good!
# April 9, 2005 10:40 PM

Howard van Rooijen's Blog said:

I was working on some proof of concept web controls this weekend; my team has just started work on a...
# May 29, 2006 10:46 AM

Govinda said:

We can inherit multiple class in interfaces

# June 10, 2007 4:50 AM

Asad said:

Lol on your strange thinking , weak product say who ??

# June 19, 2007 10:08 AM

Tony Donovan said:

For vales of A close to zero, Sin(A)/A is less than 1 and greater than Cos(A). When A = 0, and Cos(A) = 1, can it be PROVED that Sin(A)/A is not = 1?

# July 22, 2007 4:08 AM

Neil Pullinger said:

Having every method return an object type means casting. A possible alternative is to define an error code property in your classes.

# August 15, 2007 4:38 AM

links for 2007-08-28 | IndianGeek said:

Pingback from  links for 2007-08-28 | IndianGeek

# August 28, 2007 7:23 PM

Tom said:

>For vales of A close to zero, Sin(A)/A is less than 1 and greater than Cos(A). When A = 0, and Cos(A) = 1, can it be PROVED that Sin(A)/A is not = 1?

Yes it can.  In mathematics, *by definition* division by zero does not yield a number.

Floating point numbers, *by definition* do not follow the rules of mathematics in all cases.  Such as division by zero.

# October 15, 2007 11:30 AM

Jeff said:

Well, I'm probably older than everyone here.  I've done switches  on DCC boxes, assembler, Fortran, APL, SNOBOL, BAL, C++< C#, COBOL, PL/I and other languages I've forgotten to mention here.  My favorite programming language has become PHP hands-down.

The whole purpose of computers is not the '  J $ ' (jump to dollar is the shortest program ever written - what machine?) or OOP.  The whole purpose is to produce applications for business, R&D, academics and governments (too bad about that last one).  The PHP folks have made it a quick and easy task.  

OOP is inherent in Visual Basic (oh yeah, I programmed that for 5+ years).  But, I think OOP in PHP is a Microsoft plot to screw up the language - but that's me.  With all the hidden wonders in C#, you need to buy a library of Microsoft books to really get a complete understanding - and that's Microsoft's intention guys.

There are 15 to 20 ways to say "Hello World" in Visual Studio among the various languages and the perversion of top-down programming.  Why do you think Microsoft talks about "spaghetti code" so often?  ALL code looks like a mess - just ask anyone outside the programming world.  

The real challenge is to get the politicians to pass laws so that each and every night of the year, we can all go to sleep knowing that our taxes are paid.  What does that have to do with programming?  Just wait.  You'll find out after the next dot-com bust.  Or the wife that wants to buy more house than the minimal that is necessary.  Or the next major outsourcing push.  Or the next major business downturn.

If you are cranking out a new way for marketing to begin making money every day, you will still be on the job.  If you are enamored with "you inherit a class and implement an interface", sorry, marketing could care less.

For me, after a 3 week C# project, I'm happy to say I've got a new PHP (non-OOP by the way) project lined up for the next few months.

Bye Bye!

# October 19, 2007 12:41 AM

Ummm said:

Jeff's comment may be the dumbest thing I've ever read in my life.

# October 30, 2007 3:21 PM

shine said:

hi!

good one only........

# November 1, 2007 8:11 AM

Productivity Killers said:

Pingback from  Productivity Killers

# November 26, 2007 8:22 PM

VS 2005 - The road to the (Dark | Client) Side said:

Pingback from  VS 2005 - The road to the (Dark | Client) Side

# November 27, 2007 2:26 AM

James said:

In C# you can inherit an interface for which the implementation is in a base class.  This cannot be done in VB.  If the Implements keyword had been used in C#, the below code would not make sense since B does not actually provide the implementation for IFoo but inherits it.

   public class A

   {

       public void DoIt()

       {

       }

   }

   public class B:A,IFoo

   {

   }

   public interface IFoo

   {

       void DoIt();

   }

# November 28, 2007 1:47 PM

Rajesh said:

Hi,

In a ASP.NET project, if a business rule check fails, then by your explanation, I would need to return a error code. But how as a separate object or a hashtable

# April 20, 2008 11:24 AM

Maxx said:

Speaking of inheritance, I would hate to be the guy who inherits Jeff's mountain of spaghetti.

# April 23, 2008 2:17 PM

Marco said:

Kyle, I just downloaded the utility and It works!

Thank you.

# June 12, 2008 3:22 AM

Shulamit Geisler said:

I would appreciate if you can email me your batch that changes the registry for clear case and sourcesafe/

Thank you

Shualmit Geisler

shulamit@itc.mof.gov.il

# June 17, 2008 5:25 AM

www.dvddecoderspro.com said:

Tip# 4– Remove Spyware from your PC. Nothing brings a fast computer to a slow crawl faster than annoying Spyware that installs itself on your PC without your permission. Not only is Spyware a pain in the@ to try and remove manually, but it can be used

# June 27, 2008 6:32 AM

venousto said:

quel est les solution non reel

de 0X=4

0X=X

0X=i

X^0=i

0X=4i

0X^0=6i

celui de bernard werber

qui prouve à tord que 1=2

et moi je rectifi avec les complyx

quel est la solution non reel

1/(0x^3-0x^2-1+2i)+1/(i-0x^i)-0x^2+0x+4=0

phebus.journalintime.com/.../2006-05-02-zero

# June 30, 2008 5:06 AM

avi dvd burning said:

I can’ t stand this machine anymore. Its too slow. Getting hard rebuilding over and over every day. Down to 3 gigs of free space too. Time to buy a new one. Anyone care to contribute with the‘ help Zac get a new PC so he can program his open source stuff

# July 1, 2008 5:42 PM

dvd decrypter software said:

I didn’ t really believe that error could be in the way of zipping the template package but I gave my idea a try: I unzipped the template that I had uploaded successfully, then I deleted the zip- package and zipped back the template- files I had unpacked

# July 8, 2008 7:06 AM

shrink dvd said:

Mondorescue backs up your GNU/ Linux server or workstation to tape, CD- R, CD- RW, DVD- R[ W], DVD R[ W], NFS or hard disk partition. In the event of catastrophic data loss, you will be able to restore all of your data[ or as much as you want], from bare

# July 19, 2008 10:10 AM

copy dvd movies said:

Best- Family- Info. com Articles And Reviews! Health, Home And Happiness… « A TONIC Guide to Home Gardening Using Perennial Garden Flowers in Gardening»

# July 24, 2008 4:23 AM

dvd copy decrypt said:

Send a message Subscribe to RSS feed Tell a friend Add to My MSN Add to Live.

# July 24, 2008 8:37 AM

Ephedrine. said:

Ephedrine faq ephedrine fatloss. Ephedrine. Ephedrine in salt licks and chicken feed. Ephedrine laws. Ephedrine weight loss products. What contains ephedrine. Danger of ephedrine.

# July 30, 2008 3:09 AM

Lexapro. said:

Half life of lexapro. Lexapro. Can you take lexapro while pregnant.

# August 4, 2008 1:01 AM

How long do effexor xr side effects last for. said:

Haldf life effexor xr. Effexor xr. Withdrawl effects effexor xr. Effexor xr pharmeceutical. Wyeth effexor xr.

# August 5, 2008 3:19 PM

Free legitimate work at home job company. said:

Work at home for companies. Work at home.

# September 1, 2008 3:52 AM

PasserBy said:

Some people have serious personality problems here - too many code gurus are too arrogant.

# September 2, 2008 9:38 PM

ArchitectJustStoppingBy - Derek Hinch said:

Well, all your syntax in either language (C#/VB) reduces itself down to IL, where you can have multiple implementations, but just once Inheritance. Regardless of use, syntax declaration, or otherwise - you are stuck with this fact if you use .Net.

# September 4, 2008 10:04 PM

cptHotKeys said:

You both inherit and implement an interface, an interface has definitions of methods and so on with no functionality or behavior. When we implement an interface we also inherit its behavior and functionality, or lack there of. It is upto the developer to add functionality which makes it more like polymorphism....

# November 1, 2008 5:55 AM

cptHotKeys said:

James, why would you need to declare that the derived class implements the interface when it is already done in the base class.

Does the derived class not inherit the  (for lack of better words) decloration of implementation?

# November 1, 2008 6:03 AM

Derek Hinch said:

cptHotKeys: An interface is a definition of enforcement that describes a class's assured functionality. It can also be used to instaniate a type base on interface where you can cast down another type to be able to interact in a pure faction - between the objects with assurance those function signatures exist as well as the base return types. Take a look at WCF and datacontracts VS. implementation methods. You will see the latter interace usages within WCF. The fore usages simply are used for assured, type safe interaction between two types. If you are not using the 'object sender' style observer pattern event args, you can use generics to know the types, thus evaluate with reflection to parse the Interface implemenations. Once verified, you can be assure a cast to ItheInterface will be assured between your implementer are that sender.

If this doesn't make sense, you suck and Im sorry. I am drunk and am still wondering how this question is still left unanswered.....wtfo, 4chan anyone.

# June 5, 2009 1:57 AM

WyldOne said:

Oh this is becoming quite common anymore, and I just see it from the application side.

How so?

I need one _particular_ version of java JRE for the firewall software + and this is stupid a particular version of  web browser as well. This one is also bad because you have to manually put in the dll code to the plugin directory or it will use the wrong version by default. Good thing there are two browsers to be able to use

Need another for the java app for time management software. (that is NOT computable with above) Furthermore; they released a version that required two _different_ version s of Java in the same app.

A third java version for a outside agency app that get this, eats all memory(massive memory leak) and can't be run with the other two.

O Joy to the world of 'convenient programming'

Whatever happened to backward computability, to testing, to simple and easy to understand software? Oh I forgot the compiler (whoops I mean super uber-duper application development suite version 123.23.4) that will take care of that?

Sarcastic? you bet! true, you bet.

We keep trying to hack fit a system that was never designed to do it in the first place. Add to that all the 'steering committees' where the participants are not there to improve the product, but to sabotage the efforts of all.

# November 19, 2009 12:24 AM